A method, device, apparatus and storage medium for vehicle-mounted data transmission
Patent Information
- Application Number
- CN202610735416.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-05-26
- Publication Date
- 2026-08-18
AI Technical Summary
此时,车载网络采用单链路网络,无法保证车载数据传输的高效稳定性
[0010] In a sixth aspect, embodiments of this application provide a computer-readable storage medium for storing a computer program that causes a computer to perform the in-vehicle data transmission method provided in the first and second aspects of this application.
Smart Images

Figure CN122601575A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of data processing technology, specifically to a method, apparatus, device, and storage medium for in-vehicle data transmission. Background Technology
[0002] With the development of vehicle-to-everything (V2X) communication technology, vehicles are typically equipped with corresponding electronic control units (ECUs) to acquire various data during vehicle operation and perform data transmission.
[0003] Typically, vehicles are equipped with an Ethernet network as their in-vehicle network to handle data transmission. However, this single-link in-vehicle network cannot guarantee efficient and stable data transmission. Summary of the Invention
[0004] This application provides a method, apparatus, device, and storage medium for vehicle data transmission, which utilizes multiple network links to achieve low-latency transmission of vehicle data, ensuring efficient and stable vehicle data transmission.
[0005] In a first aspect, embodiments of this application provide a method for in-vehicle data transmission, the method comprising: The first transmission data packet is determined from at least two transmission data packets of the vehicle; Based on the network quality of at least two network links associated with the vehicle, determine the network link corresponding to each first transmission data packet; Each of the first transmission data packets is transmitted based on the network link corresponding to each of the first transmission data packets.
[0006] Secondly, embodiments of this application provide a method for in-vehicle data transmission, the method comprising: Acquire at least two transmission data packets from the vehicle, and calculate the packet identifier of each transmission data packet in the at least two transmission data packets; The data packet that matches a flow table entry based on a packet identifier in a preset flow table is identified as the second data packet; Each second transmission data packet is transmitted through the network link corresponding to the flow table entry matched in the flow table.
[0007] Thirdly, embodiments of this application provide an apparatus for in-vehicle data transmission, the apparatus comprising: The first data determination module is used to determine the first transmission data packet from at least two transmission data packets of the vehicle; The network link determination module is used to determine the network link corresponding to each first transmission data packet based on the network quality of at least two network links associated with the vehicle. The first data transmission module is used to transmit each of the first data transmission packets based on the network link corresponding to each of the first data transmission packets.
[0008] Fourthly, embodiments of this application provide an apparatus for in-vehicle data transmission, the apparatus comprising: The data acquisition module is used to acquire at least two transmission data packets from the vehicle and calculate the packet identifier of each transmission data packet in the at least two transmission data packets; The second data determination module is used to determine the at least two transmission data packets that hit the flow table entry based on the packet identifier in the preset flow table as the second transmission data packet; The second data transmission module is used to transmit each second data transmission packet through the network link corresponding to the flow table entry hit by each second data transmission packet in the flow table.
[0009] Fifthly, embodiments of this application provide an electronic device, which includes: A processor and a memory, the memory being used to store a computer program, and the processor being used to invoke and run the computer program stored in the memory to perform the in-vehicle data transmission method provided in the first and second aspects of this application.
[0010] In a sixth aspect, embodiments of this application provide a computer-readable storage medium for storing a computer program that causes a computer to perform the in-vehicle data transmission method provided in the first and second aspects of this application.
[0011] In a seventh aspect, embodiments of this application provide a computer program product, including a computer program / instructions that, when executed by a processor, implement the in-vehicle data transmission method provided in the first and second aspects of this application.
[0012] The technical solution provided in this application determines a first transmission data packet from at least two transmission data packets of a vehicle, and determines the network link corresponding to each first transmission data packet based on the network quality of at least two network links associated with the vehicle, thereby transmitting each first transmission data packet. This achieves multi-link transmission of vehicle data, reduces transmission latency of vehicle data, efficiently utilizes the vehicle's multi-link transmission capability, maximizes the rapid transmission of multiple transmission data packets, ensures efficient and stable vehicle data transmission, and improves the response rate and accuracy of vehicle data transmission. Attached Figure Description
[0013] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0014] Figure 1 A flowchart illustrating a method for in-vehicle data transmission provided in an embodiment of this application; Figure 2 An exemplary schematic diagram illustrating the transmission process of at least two data packets provided in the embodiments of this application; Figure 3 Another exemplary schematic diagram illustrating the transmission process of at least two data packets provided in the embodiments of this application; Figure 4 A flowchart illustrating the network link quality detection process provided in this application embodiment; Figure 5 A flowchart illustrating the method for determining the network link corresponding to the first transmitted data packet provided in this application embodiment; Figure 6 A flowchart illustrating another method for in-vehicle data transmission provided in this application embodiment; Figure 7 A schematic block diagram of a vehicle-mounted data transmission device provided in an embodiment of this application; Figure 8 A schematic block diagram of another in-vehicle data transmission device provided in an embodiment of this application; Figure 9 A schematic block diagram of an electronic device provided in an embodiment of this application. Detailed Implementation
[0015] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of this application.
[0016] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this application described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or server that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or devices.
[0017] Considering the problem that traditional single-link networks for vehicle data transmission cannot guarantee high efficiency and stability, this application proposes a novel vehicle data transmission scheme. A first transmission data packet is determined from at least two transmitted data packets from the vehicle. Based on the network quality of at least two network links associated with the vehicle, the network link corresponding to each first transmission data packet is determined. Each first transmission data packet is then transmitted in this manner, thereby achieving multi-link transmission of vehicle data, reducing transmission latency, ensuring high efficiency and stability of vehicle data transmission, and improving the response rate and accuracy of vehicle data transmission.
[0018] Figure 1 This is a flowchart illustrating a method for in-vehicle data transmission according to an embodiment of this application. This method can be executed by the in-vehicle data transmission apparatus provided in this application. The in-vehicle data transmission apparatus can be implemented in any software and / or hardware manner. For example, this in-vehicle data transmission apparatus can be applied to any electronic device, which can be any type of vehicle.
[0019] Specifically, such as Figure 1 As shown, the method may include the following steps: S110, determine the first transmission data packet from at least two transmission data packets of the vehicle.
[0020] To ensure normal vehicle operation, any vehicle typically has at least one Electronic Control Unit (ECU). This ECU calculates, processes, and interprets real-time sensor data collected by various sensors to precisely control the vehicle's functions. Furthermore, to enhance the vehicle's intelligence, various in-vehicle applications are installed, such as navigation, multimedia, utility tools and services, intelligent assistants, and voice control, greatly enriching the driving experience. Each ECU can run at least one in-vehicle application on its software layer, enabling precise control and optimization of various vehicle systems through hardware and software collaboration between the application and the ECU.
[0021] Therefore, through the collaborative work of hardware and software between the vehicle application and the ECU, the vehicle can collect various sensor data, user operation data, user interaction data and external environment perception data related to each vehicle application in real time. The relevant data output by each vehicle application is then combined into at least two data packets in this application, so that at least two data packets can be transmitted to the vehicle's backend server for corresponding data analysis and processing, thereby achieving precise control of the vehicle.
[0022] In some implementations, lower-spec vehicles may have only one in-vehicle application installed, running on the software layer of a single ECU. Higher-spec vehicles, on the other hand, may have multiple in-vehicle applications installed, with at least one application running on the software layer of a single ECU.
[0023] Therefore, if only one in-vehicle application is installed in the vehicle, using a traditional point-to-point connection with the Transmission Control Protocol (TCP), all application data output by that application can be packaged into a single data packet for transmission. However, if multiple in-vehicle applications are installed, the application data output by each application can be packaged into a separate data packet, resulting in multiple data packets for multiple in-vehicle applications.
[0024] It is understandable that at any given moment, multiple in-vehicle applications may only have one in-vehicle application outputting the corresponding application data, which is then packaged into a single transmission data packet.
[0025] In this application, in order to ensure the high efficiency of in-vehicle data transmission, the vehicle will be equipped with multiple Subscriber Identity Module (SIM) cards to provide multiple network links for the vehicle under multiple operator networks, so that the vehicle can perform efficient transmission of in-vehicle data through multiple network links, thereby providing the vehicle with a multi-link transmission capability.
[0026] However, when only one in-vehicle application is installed on the vehicle, or when only one in-vehicle application outputs the corresponding application data among multiple in-vehicle applications, the data is usually packaged into a single data packet for transmission, which does not efficiently utilize the multi-link transmission capabilities provided by the vehicle, and may result in high latency in in-vehicle data transmission.
[0027] Therefore, in order to fully and efficiently utilize the multi-link transmission capabilities of vehicles and maximize the in-vehicle data transmission rate, this application can adopt the Multipath Transmission Control Protocol (MPTCP) approach to design a Software Development Kit (SDK) plugin that supports data distribution, denoted as the MPTCP plugin. Then, in the case where only one in-vehicle application is installed on the vehicle, such as... Figure 2 As shown, this application can pre-configure the above-mentioned MPTCP plugin on the ECU on which the vehicle application runs, so that the application data stream output by the vehicle application can be segmented at the source of the vehicle application, so that the vehicle application outputs multiple application sub-data streams, and each application sub-data stream is packaged into a transmission data packet to perform vehicle data transmission.
[0028] When multiple in-vehicle applications are installed on the vehicle, each application data stream output by each application can be packaged into a transmission data packet, resulting in multiple transmission data packets. Therefore, this application can adaptively determine whether the aforementioned MPTCP plugin needs to be pre-configured for the in-vehicle applications running on the software layer of each ECU to complete the data fragmentation of the application data streams output by each in-vehicle application.
[0029] For example, such as Figure 3As shown, this application eliminates the need to pre-configure the aforementioned MPTCP plugin for the in-vehicle applications running on the software layer of each ECU, allowing the application data stream output by each in-vehicle application to be packaged into a single transmission data packet, thus obtaining multiple transmission data packets. Alternatively, this application can selectively pre-configure the aforementioned MPTCP plugin for one or more in-vehicle applications running on the software layer of a certain ECU, allowing a portion of the application data stream output by each in-vehicle application to be fragmented and then combined with other application data streams that have not undergone data fragmentation to be packaged into multiple transmission data packets.
[0030] In summary, by pre-installing the aforementioned MPTCP plugin on the corresponding in-vehicle application running on the software layer of the corresponding ECU, at least two transmission data packets of the vehicle can be obtained.
[0031] Specifically, at least two transmission data packets from the vehicle can be obtained through a pre-installed Multipath Transmission Control Protocol (MPTCP) plugin on the in-vehicle application. Furthermore, the at least two transmission data packets from the vehicle can include at least one of the following: 1) At least two first fragment data streams output after the application data stream of at least one vehicle application is fragmented, wherein each first fragment data stream is a transmission data packet.
[0032] Specifically, once at least one in-vehicle application has the aforementioned MPTCP plugin pre-configured, it can segment the application data stream output by the in-vehicle application from its source, and output multiple application sub-data streams as at least two first segmented data streams output by the at least one in-vehicle application. Then, each first segmented data stream is packaged into a transmission data packet to obtain at least two transmission data packets.
[0033] 2) Application data streams output by at least two in-vehicle applications, wherein the application data stream output by one in-vehicle application is a transmission data packet.
[0034] Specifically, at least two in-vehicle applications do not have the aforementioned MPTCP plugin pre-installed, allowing at least two in-vehicle applications to directly output their respective application data streams. By packaging the application data streams output by at least two in-vehicle applications into a single transmission data packet, at least two transmission data packets can be obtained.
[0035] 3) At least three data streams are formed by at least two second fragmented data streams output after the first application data stream output by the first vehicle application and the second application data stream of the second vehicle application are fragmented, wherein each second fragmented data stream is a transmission data packet and each first application data stream is a transmission data packet.
[0036] Specifically, at least two in-vehicle applications are categorized into two types: a first in-vehicle application and a second in-vehicle application. The first in-vehicle application does not have the aforementioned MPTCP plugin pre-installed, while the second in-vehicle application does. This allows the first in-vehicle application to directly output its first application data stream, and the second application data stream output by the second in-vehicle application to be fragmented, resulting in multiple application sub-data streams, which serve as at least two second fragmented data streams output by the second in-vehicle application. Then, each first application data stream is packaged into a transmission data packet, and each second fragmented data stream is packaged into a transmission data packet, resulting in at least three transmission data packets.
[0037] Furthermore, after obtaining at least two transmission data packets from the vehicle, this application can perform transmission analysis on each transmission data packet to determine the first transmission data packet of this transmission.
[0038] It is understood that the first transmission data packet can be all the transmission data packets in at least two transmission data packets, or it can be a portion of the transmission data packets in at least two transmission data packets.
[0039] S120, determine the network link corresponding to each first transmission data packet based on the network quality of at least two network links associated with the vehicle.
[0040] It is understandable that, in order to ensure the efficiency of in-vehicle data transmission, vehicles are equipped with multiple SIM cards to provide multiple network links for the vehicle under multiple operator networks. As at least two network links associated with the vehicle in this application, the vehicle can perform efficient transmission of in-vehicle data through multiple network links, thereby providing the vehicle with a multi-link transmission capability to minimize the transmission latency of in-vehicle data.
[0041] In this application, after determining the first transmission data packet from at least two transmission data packets, in order to ensure the performance of vehicle data transmission in each network link, this application can detect in real time various network parameters of each network link provided by each SIM card equipped in the vehicle, such as transmission delay, retransmission rate, packet loss rate, throughput, etc., to analyze the transmission performance of each network link and determine the network quality of each network link.
[0042] Then, for each first transmitted data packet, this application can analyze the network quality of each network link to determine the specific amount of data that each network link can support for transmission under low latency, and thus set a corresponding data volume allocation ratio for each network link. Then, by analyzing the data size of each first transmitted data packet and combining it with the aforementioned data volume allocation ratio for each network link, a load balancing method can be used to dynamically and evenly allocate each first transmitted data packet to the most suitable network link. This first transmitted data packet is then associated and bound to the allocated network link, thus determining the network link corresponding to each first transmitted data packet. This allows subsequent transmission of each first transmitted data packet to be carried out using the corresponding network link, thereby achieving multi-link transmission of vehicle data while ensuring the transmission performance of each network link, and improving the efficiency and stability of vehicle data transmission.
[0043] For example, such as Figure 2 or Figure 3 As shown, each ECU in the vehicle acquires at least two transmission data packets in real time. After identifying the first transmission data packet from these two packets, the first transmission data packets are forwarded to the onboard communication module (Telematics Box, or TBOX) deployed in the vehicle via Ethernet. The onboard TBOX, acting as an intelligent communication gateway in the vehicle, can use load balancing to dynamically allocate each first transmission data packet to a suitable network link by analyzing the network quality of each network link associated with the vehicle, thereby determining the network link corresponding to each first transmission data packet.
[0044] Therefore, it can be seen that the step of determining the network link corresponding to each first transmission data packet based on the network quality of at least two network links associated with the vehicle in this application is performed by the vehicle-mounted communication module deployed on the vehicle.
[0045] S130, based on the network link corresponding to each first transmission data packet, transmit each first transmission data packet.
[0046] After determining the network link corresponding to each first transmission data packet, this application can dynamically allocate each first transmission data packet to the corresponding network link, and transmit each first transmission data packet to the vehicle backend server through the network link corresponding to each first transmission data packet. The vehicle backend server performs corresponding data analysis and processing on each first transmission data packet, and feeds back corresponding response control messages to the vehicle, thereby achieving precise control of the vehicle.
[0047] The technical solution provided in this application determines a first transmission data packet from at least two transmission data packets of a vehicle, and determines the network link corresponding to each first transmission data packet based on the network quality of at least two network links associated with the vehicle, thereby transmitting each first transmission data packet. This achieves multi-link transmission of vehicle data, reduces transmission latency of vehicle data, efficiently utilizes the vehicle's multi-link transmission capability, maximizes the rapid transmission of multiple transmission data packets, ensures efficient and stable vehicle data transmission, and improves the response rate and accuracy of vehicle data transmission.
[0048] As an optional implementation of this application, in order to ensure the accuracy of in-vehicle data transmission, this application can determine the first transmission data packet from at least two transmission data packets of the vehicle in the following two ways: Method 1: Each of the at least two transmitted data packets is designated as the first transmitted data packet.
[0049] Specifically, in order to ensure the comprehensive and accurate transmission of vehicle data, this application can directly determine each transmission data packet as the first transmission data packet after obtaining at least two transmission data packets, so that the transmission of all at least two transmission data packets can be performed subsequently.
[0050] Method 2: Calculate the packet identifier of each of the at least two transmitted data packets, and determine the transmitted data packets that do not match the flow table entry based on the packet identifier in the preset flow table as the first transmitted data packet.
[0051] Specifically, considering that each transmitted data packet can be a different fragmented data stream output by the same in-vehicle application, or a different application data stream or a different fragmented data stream output by different in-vehicle applications, it indicates that different transmitted data packets have different identification information.
[0052] Therefore, in order to accurately distinguish each transmitted data packet and achieve accurate transmission of vehicle data across multiple network links, this application, after obtaining at least two transmitted data packets from the vehicle, can calculate and generate a unique data identifier for each transmitted data packet by analyzing information such as the source address, destination address, fragment number, and transport layer protocol. This identifier serves as the packet identifier for each transmitted data packet. The packet identifiers of each transmitted data packet can be used to accurately describe and distinguish each transmitted data packet.
[0053] In some implementations, this application can obtain the 5-tuple information of each transmitted data packet, which may include the source Internet Protocol (IP) address, source port number, destination IP address, destination port number, and transport layer protocol. Then, a specific hash algorithm is used to perform a hash operation on the 5-tuple information of each transmitted data packet to obtain the 5-tuple hash value of each transmitted data packet, and the 5-tuple hash value of each transmitted data packet is used as the packet identifier of the transmitted data packet.
[0054] It is understandable that the source and destination port numbers of different data packets output by the same in-vehicle application at the same time may be different, and the source IP address, source port number, destination IP address, and destination port number of different data packets output by different in-vehicle applications at the same time may also be different. Therefore, different data packets output by different in-vehicle applications at the same time have different 5-tuple information, resulting in different packet identifiers for each data packet.
[0055] Furthermore, considering that various in-vehicle applications installed in the vehicle typically generate multiple data packets at different times and send them to the vehicle's backend server for analysis and processing, different data packets output by the same in-vehicle application at different times may have the same packet identifier due to having the same five-tuple information, and therefore need to be transmitted to the vehicle's backend server through the same network link. Therefore, to improve the transmission performance of in-vehicle data, this application can pre-construct a flow table, which can record the association between the packet identifier of each historical data packet in the historical transmission process of in-vehicle data and the network link allocated to that historical data packet (i.e., the network link corresponding to that historical data packet). Each flow table entry can describe the association between the packet identifier of a historical data packet and the network link corresponding to that historical data packet.
[0056] In some implementations, this application may use key-value pairs in the flow table to record the association between the packet identifier of each historical transmitted data packet and the network link corresponding to that historical transmitted data packet. Here, the key in the key-value pair is the packet identifier of each historical transmitted data packet, and the value is the network link corresponding to that historical transmitted data packet.
[0057] In this application, after calculating the packet identifier of each of the at least two transmitted data packets, the packet identifier of each transmitted data packet is used sequentially to index each packet identifier recorded in the above flow table, thereby determining whether each transmitted data packet can successfully hit a flow table entry based on the packet identifier of the transmitted data packet.
[0058] At this point, if a certain data packet successfully hits a flow table entry based on the packet identifier, it means that this data packet and the historical data packets recorded in the hit flow table entry will be transmitted through the same network link, so that the vehicle backend server can accurately receive the relevant data packets continuously output by the same in-vehicle application through the same network link.
[0059] If a data packet does not match any entry in the flow table based on its packet identifier, it means that the data packet needs to be allocated from multiple network links to the most suitable network link for transmission.
[0060] Therefore, in order to ensure the accurate transmission of vehicle data, after determining whether each transmission data packet can successfully hit a flow table entry based on the packet identifier of the transmission data packet, this application can find the transmission data packets that do not hit a flow table entry based on the packet identifier from at least two transmission data packets, and determine the transmission data packets that do not hit a flow table entry as the first transmission data packets, so that the corresponding network links can be allocated to each first transmission data packet by analyzing the network quality of multiple network links, thereby completing the efficient transmission of vehicle data.
[0061] In some implementations, to improve the efficiency of in-vehicle data transmission, this application identifies at least two data packets that do not match flow table entries based on packet identifiers in a preset flow table as the first data packets. Furthermore, after determining the network links corresponding to each first data packet based on the network quality of at least two network links associated with the vehicle, it can also create flow table entries corresponding to each first data packet in the flow table based on the packet identifier of each first data packet and the network links corresponding to each first data packet.
[0062] In other words, for each first transmitted data packet, this application can associate the packet identifier of the first transmitted data packet with the network link corresponding to the first transmitted data packet to obtain an association relationship. Then, a new flow table entry is created in the above flow table, and the above association relationship is recorded in the new flow table entry, so that the new flow table entry is used as the flow table entry corresponding to the first transmitted data packet.
[0063] For example, for each first transmitted data packet, this application can use a key-value pair approach, using the packet identifier of the first transmitted data packet as the key and the network link corresponding to the first transmitted data packet as the value corresponding to the key, thereby creating a flow table entry for the first transmitted data packet in the above flow table to describe the association between the packet identifier of the first transmitted data packet and the network link corresponding to the first transmitted data packet.
[0064] Furthermore, considering that after the first data packets of the same batch output by various in-vehicle applications within a certain period have finished transmitting, the network link allocated to the first data packets will no longer continue transmitting this batch of first data packets. However, when each in-vehicle application re-outputs at least two data packets of the next batch after a certain interval, a new network link will be allocated to them. Therefore, after the first data packet transmission ends, the flow table entries created above corresponding to each first data packet will become invalid. Alternatively, if a flow table entry created above is not hit for a long period, it indicates that this flow table entry has no auxiliary significance for in-vehicle data transmission and will also become invalid.
[0065] Therefore, in order to ensure the validity of the flow table, after creating a flow table entry corresponding to each first transmission data packet based on the packet identifier of each first transmission data packet and the network link corresponding to each first transmission data packet, this application will also set an associated expiration time for the flow table entry corresponding to each first transmission data packet. The expiration time represents the transmission end time of the first transmission data packet.
[0066] In other words, for the flow table entries created in the above flow table corresponding to each first transmission data packet, this application can determine the approximate end time of each first transmission data packet by analyzing the specific transmission requirements and transmission duration of each first transmission data packet. In this way, an associated expiration time is set for the flow table entry corresponding to the first transmission data packet in the above flow table, and the expiration time is used to characterize the cleanup time of the flow table entry corresponding to the first transmission data packet.
[0067] For example, the expiration time of the flow table entry corresponding to each first transmission data packet can be a preset duration after the first transmission data packet ends (e.g., 5s), or the maximum allowed duration for which the flow table entry has not been hit (e.g., 120s).
[0068] Therefore, this application can periodically detect the expiration time of each flow table entry in the above flow table to determine whether each flow table entry has expired, thereby periodically cleaning up invalid flow table entries and ensuring the simplicity and effectiveness of the flow table.
[0069] In one or more embodiments provided in this application, it is considered that in addition to the first transmission data packet, there may be other transmission data packets remaining in at least two transmission data packets. Therefore, in order to achieve comprehensive and accurate transmission of vehicle data, after determining whether at least two transmission data packets can successfully hit a flow table entry based on the packet identifier in the above-mentioned flow table, this application can further determine the transmission data packets that hit the flow table entry based on the packet identifier in the flow table as the second transmission data packets; and transmit each second transmission data packet through the network link corresponding to the flow table entry hit by each second transmission data packet in the flow table.
[0070] Specifically, this application can identify the transmission data packet that has a matching flow table entry based on the packet identifier from at least two transmission data packets, and determine the transmission data packet with the matching flow table entry as the second transmission data packet. Then, to ensure comprehensive and accurate transmission of vehicle data, this application can directly find the flow table entry matched by each second transmission data packet, and determine a network link recorded in this flow table entry based on the association relationship already recorded in this flow table entry. This indicates that this network link is the specific network link used by the second transmission data packet in historical transmission. Therefore, this application can use this network link as the network link corresponding to the second transmission data packet, and allocate the second transmission data packet to this network link. Thus, through the network links corresponding to each second transmission data packet, each second transmission data packet is transmitted to the vehicle's backend server. The vehicle's backend server performs corresponding data analysis and processing on each second transmission data packet to provide corresponding response control messages to the vehicle, thereby achieving precise vehicle control.
[0071] It is understandable that, since at least two transmission data packets output by each in-vehicle application are dynamically changing, the flow table is also dynamically updated. Therefore, each transmission data packet may hit one flow table entry based on its packet identifier, or it may not hit any flow table entry. Thus, the hit results of at least two transmission data packets in this application for flow table entries based on their packet identifiers may fall into the following three categories: Scenario 1: Each of the at least two transmitted data packets successfully matches a flow table entry in the aforementioned flow table. Therefore, the first transmitted data packet does not exist in the at least two transmitted data packets, and each of the at least two transmitted data packets is the second transmitted data packet.
[0072] Scenario 2: Each of the at least two transport packets does not match any flow table entry mentioned above. In this case, each of the at least two transport packets is the first transport packet, and there is no second transport packet among the at least two transport packets.
[0073] Scenario 2: At least two portions of the transmitted data packets successfully match a flow table entry, while the remaining portions do not match any flow table entry. In this case, the portions of the transmitted data packets are considered the second transmitted data packet, and the remaining portions are considered the first transmitted data packet.
[0074] The technical solution provided in this embodiment determines the network link corresponding to each first transmission data packet in at least two transmission data packets based on the network quality of at least two network links, and determines the network link corresponding to each second transmission data packet based on the flow table entries matched by each second transmission data packet in the flow table. In this way, each transmission data packet is transmitted through the network link corresponding to each transmission data packet, thereby realizing comprehensive low-latency transmission of vehicle data, efficiently utilizing the multi-link transmission capability of the vehicle to maximize the rapid transmission of multiple transmission data packets, ensuring the high efficiency and stability of vehicle data transmission, and improving the response rate and accuracy of vehicle data transmission.
[0075] As an optional implementation in this application, in order to improve the response rate and accuracy of vehicle data transmission, for each first transmitted data packet, this application first needs to accurately detect the network quality of each network link associated with the vehicle, so as to accurately analyze the network quality corresponding to each first transmitted data packet in the subsequent process. The following is combined with... Figure 4 This application can provide a detailed explanation of the specific process for detecting the network quality of at least two network links associated with a vehicle.
[0076] Figure 4 A flowchart illustrating the network link quality detection process provided in this application embodiment is shown below. Figure 4 As shown, the method may specifically include the following steps: S410, determine the detection period of each network link based on the current busy / idle status of each of the at least two network links.
[0077] It's understandable that when network links are active, the amount of data transmitted is high, which dramatically increases the probability of various transmission problems. This necessitates frequent monitoring of network link quality to quickly detect performance degradation and ensure data transmission performance. Conversely, when network links are idle, the amount of data transmitted is low, having a negligible impact on performance. This reduces the probability of transmission problems and eliminates the need for frequent monitoring to effectively detect performance degradation and ensure data transmission performance.
[0078] Therefore, in order to achieve the best balance between the detection overhead and the timeliness of network links, this application sets different detection cycles for the active and idle states of network links, so as to accurately detect the network quality of each network link.
[0079] The detection period represents the time interval between two consecutive network quality probes on each network link. Furthermore, the detection period in the active state is shorter than the detection period in the idle state. For example, the detection period in the active state can be 500ms, while the detection period in the idle state can be 2000ms.
[0080] In this application, for each of at least two network links, the application determines whether the network link is active or idle by analyzing the amount of data transmitted on the network link in real time, thereby determining the detection period for each network link.
[0081] S420 detects the quality indicators of each network link based on the detection period of each network link and determines the weight of each quality indicator.
[0082] Among them, network link quality indicators can be network performance parameters of network links under different dimensions, used to comprehensively describe the transmission performance of each network link from multiple dimensions. For example, quality indicators may include, but are not limited to, transmission latency, retransmission rate, packet loss rate, jitter rate, and throughput.
[0083] The weights of each quality indicator can measure the relative importance of each quality indicator in the network quality detection of network links.
[0084] In some implementations, the weight of each quality metric can be determined by the periodic fluctuation range of the quality metric and the quantitative impact factor of the quality metric on the network link.
[0085] Among them, the periodic fluctuation range of the quality index can be used to describe the degree of change of the quality index over multiple consecutive detection cycles.
[0086] It is understandable that during the historical detection process of each network link, the quality indicators of the network link are continuously detected in multiple historical detection periods, and the standard deviation of the indicator value or the difference between the maximum and minimum indicator value of each quality indicator in multiple consecutive detection periods is calculated to determine the periodic fluctuation range of each quality indicator.
[0087] The quantitative impact factor of each quality indicator on the network link can be a proportional coefficient that quantifies the specific degree of influence of each quality indicator on the network link during network quality detection. It is used to describe the proportion of influence of each quality indicator on the network link during network quality detection.
[0088] In this application, after determining the detection period for each network link, in order to ensure accurate detection of network quality of each network link, this application can periodically use the PING command to detect the specific values of various quality indicators of each network link according to the detection period of each network link.
[0089] In this application, active probing and / or passive monitoring can be used to periodically detect the quality indicators of each network link.
[0090] Furthermore, for each quality indicator, this application can also calculate the periodic fluctuation amplitude of the quality indicator by analyzing the degree of change of the quality indicator in multiple consecutive historical detection cycles, and combine the magnitude of the quantitative impact factor of the quality indicator on the network link to comprehensively determine the weight of the quality indicator.
[0091] S430 determines the network quality of each network link based on the quality indicators of each network link and the weight of each quality indicator.
[0092] For each network link, after determining the various quality indicators and their weights, this application can use the weights of each quality indicator to perform a weighted summation of the various quality indicators of the network link, thereby determining the network quality of the network link.
[0093] Therefore, the network quality of each network link can be determined using the same method described above.
[0094] For example, taking transmission delay, packet loss rate, and jitter rate as quality indicators, the network quality of each network link can be calculated as follows:
[0095] in, A network quality score is given for each network link. For the transmission delay of each network link, For the packet loss rate of each network link, This represents the jitter rate for each network link. , , These are the weights for transmission latency, packet loss rate, and jitter rate for each network link, with default values of 0.5, 0.3, and 0.2.
[0096] In one or more embodiments provided in this application, in order to improve the response rate and accuracy of in-vehicle data transmission, for each first transmission data packet, this application first needs to accurately assign the most suitable network link to each first transmission data packet. Next, this application will provide a detailed explanation of the specific process for determining the network link corresponding to each first transmission data packet.
[0097] Figure 5A flowchart illustrating the method for determining the network link corresponding to the first transmitted data packet provided in this application embodiment is shown below. Figure 5 As shown, the method may specifically include the following steps: S510, determine the flow allocation ratio for each network link based on the network quality of each of at least two network links.
[0098] A better network link can handle a larger amount of data while maintaining the performance of in-vehicle data transmission. Conversely, a worse network link requires a smaller amount of data to handle while still maintaining the performance of in-vehicle data transmission.
[0099] Therefore, in order to ensure the efficient and stable transmission of vehicle data, for each of the at least two network links, after periodically detecting the network quality of each network link, this application can compare the network quality of each network link to determine the amount of data that the network quality of each network link can support, and set the corresponding data volume allocation ratio for each network link as the flow allocation ratio of each network link.
[0100] In some implementations, the flow allocation ratio for each network link in this application can be the network quality score ratio for each network link. For example, assuming a vehicle is associated with two network links, one with a network quality score of 0.7 and the other with a network quality score of 0.9, the flow allocation ratio for these two network links can be the ratio of their network quality scores, i.e., 7:9. Thus, in each first transmitted data packet, approximately 44% of the data volume of the first transmitted data packet can be allocated to the network link with a network quality score of 0.7, while approximately 56% of the data volume of the first transmitted data packet can be allocated to the other network link with a network quality score of 0.9.
[0101] It is understandable that some network links associated with the vehicle may fail to support the successful transmission of vehicle data due to data congestion, network paralysis, or other reasons. The at least two network links in this application are mainly used to complete the actual transmission process of at least two data packets.
[0102] Therefore, in order to ensure the effective transmission of vehicle data, this application can construct an available link pool, in which multiple basic communication links supporting successful transmission of vehicle data are dynamically maintained.
[0103] Furthermore, based on the network quality of each basic communication link associated with each vehicle, this application can pre-classify the network into the following five states: excellent transmission state, good transmission state, acceptable transmission state, congested transmission state, and paralyzed transmission state. Among them, the excellent transmission state, good transmission state, and acceptable transmission state can all be described as a transmission availability state.
[0104] Therefore, at least two network links in this application can be basic communication links in the aforementioned available link pool, and the current network state of the basic communication links in the aforementioned available link pool meets the network transmission requirements. The network transmission requirements can be to support successful transmission of vehicle data. In other words, the current network state of the basic communication links in the aforementioned available link pool can be any of the following: excellent transmission state, good transmission state, or acceptable transmission state.
[0105] In some implementations, in order to ensure the dynamic updating of the available link pool, this application can detect the network quality of each basic communication link to determine the current network status of each basic communication link, and update the available link pool based on the current network status of each basic communication link.
[0106] In other words, for each basic communication link associated with the vehicle, this application can use the network quality detection method provided for each network link described above to periodically detect various quality indicators of each basic communication link and determine the weight of each quality indicator. Then, the weights of each quality indicator are used to perform a weighted summation of the various quality indicators of each basic communication link to obtain the network quality of each basic communication link.
[0107] Furthermore, by analyzing the network quality of each basic communication link, the actual transmission performance of each basic communication link for vehicle data is determined, thereby identifying which of the five network states each basic communication link is currently in, thus determining the current network state of each basic communication link. Then, by determining whether the current network state of each basic communication link supports successful transmission of vehicle data, the basic communication links whose current network state meets the network transmission requirements are dynamically selected, thereby dynamically updating the corresponding available link pool.
[0108] It is understood that the available link pool mentioned above may include various basic communication links in three network states: excellent transmission state, good transmission state, and acceptable transmission state.
[0109] For example, by scoring the network quality of the aforementioned basic communication links. By dividing the network into different intervals, five network states can be identified: excellent transmission, good transmission, acceptable transmission, congested transmission, and paralyzed transmission. A network quality score for a given basic communication link satisfies... At that time, the basic communication link is in excellent transmission condition; the network quality score of a certain basic communication link meets the requirements. At that time, the basic communication link is in a good transmission state; the network quality score of a certain basic communication link meets the requirements. At that time, the basic communication link was in a reasonably good transmission state; the network quality score of a certain basic communication link met the requirements. If the quality indicators are not successfully detected after the preset detection time, the basic communication link is in a state of transmission congestion; if there is no signal on a basic communication link, the basic communication link is in a state of transmission paralysis.
[0110] In some implementations, due to the network instability of each basic communication link, the current network state of each basic communication link may continuously change between the five network states mentioned above. Therefore, the available link pool can be updated in the following ways: removing a first communication link from the available link pool, the first communication link including basic communication links whose current network state changes from a transmission available state to a transmission congestion state or a transmission paralysis state; and / or adding a second communication link to the available link pool, the second communication link including basic communication links whose current network state changes from a transmission congestion state or a transmission paralysis state to a transmission available state.
[0111] In other words, by periodically probing the network quality of each basic communication link, it is possible to accurately determine which of the five network states each basic communication link is in, thereby determining the current network state of each basic communication link. Moreover, when any basic communication link is in one of the three available transmission states—excellent transmission, good transmission, or acceptable transmission—this basic communication link can be added to the pool of available links as a usable network link.
[0112] Therefore, when the current network status of a certain basic communication link changes from a transmission available state to a transmission congestion state or a transmission paralysis state, this application can use this basic communication link as the first communication link and remove the first communication link from the above-mentioned available link pool to prevent the subsequent use of the first communication link for invalid transmission of vehicle data.
[0113] When the current network status of a certain basic communication link changes from a transmission congestion state or a transmission paralysis state to a transmission availability state, this application can use this basic communication link as a second communication link and add the second communication link back to the above-mentioned available link pool so that the second communication link can continue to be allocated to the corresponding transmission data packets for vehicle data transmission.
[0114] On the other hand, if the current network state of a basic communication link changes from a transmission-available state to a transmission-congested state or a transmission-paralyzed state, this basic communication link, designated as the first communication link, will be removed from the aforementioned pool of available links. Considering that when the first communication link is removed from the pool of available links, there may be remaining data to be transmitted that has not yet been sent, the first communication link will no longer support efficient in-vehicle data transmission. Specifically, when the first communication link is in a transmission-congested state, it can still support in-vehicle data transmission, but with significant transmission latency. When the first communication link is in a transmission-paralyzed state, it completely does not support in-vehicle data transmission.
[0115] Therefore, in order to ensure the high efficiency and stability of vehicle-mounted data transmission, this application can further describe the specific processing method of the existing data to be transmitted in the first communication link under the following two circumstances: In scenario one, according to the preset migration step size, the existing data to be transmitted in the third communication link is gradually migrated to the corresponding network link in the available link pool. The third communication link includes the first communication link whose current network status changes from a transmission available state to a transmission congestion state.
[0116] In other words, when the current network state of a certain first communication link changes from a transmission-available state to a transmission-congested state, this application can pre-set a migration step size to describe the amount of data that needs to be migrated after each preset time interval. Therefore, after the current network state of a certain first communication link changes from a transmission-available state to a transmission-congested state, this application treats this first communication link as a third communication link and, according to the aforementioned preset migration step size, performs data migration on the existing data to be transmitted in this first communication link once every preset time interval. This gradually migrates the existing data to be transmitted in this first communication link to one of the network links in the aforementioned available link pool, thereby improving the performance of in-vehicle data transmission.
[0117] In scenario two, the existing data to be transmitted in the fourth communication link is immediately migrated to the corresponding network link in the available link pool. The fourth communication link includes the first communication link whose current network status changes from a transmission available state to a transmission paralysis state.
[0118] In other words, when the current network status of a certain first communication link changes from a transmission available state to a transmission paralysis state, this application can use this first communication link as a fourth communication link and immediately migrate all the existing data to be transmitted on this fourth communication link to a certain network link in the above-mentioned available link pool, thereby improving the performance of vehicle data transmission.
[0119] S520, based on the flow allocation ratio of each network link, the first data volume of existing data to be transmitted in each network link, and the second data volume of each first transmission data packet, determine the network link corresponding to each first transmission data packet.
[0120] Since each network link typically transmits data sequentially during in-vehicle data transmission, when a network link is allocated multiple data packets, there may be remaining data packets that have not yet been transmitted, which will also consume a certain amount of load on the network link. The existing data to be transmitted in each network link can be the remaining data packets that have been allocated but not yet transmitted in each network link.
[0121] Therefore, after determining the flow allocation ratio of each network link, this application can determine the maximum allocated data volume of each network link by calculating the sum of the first data volume of existing data to be transmitted in each network link and the second data volume of each first transmitted data packet, and combining this with the flow allocation ratio of each network link. Then, by calculating the difference between the maximum allocated data volume of each network link and the first data volume of existing data to be transmitted in that network link, the remaining allocated data volume of each network link can be obtained, thereby determining the remaining allocation ratio of each network link.
[0122] Furthermore, by analyzing the second data volume of each first transmission data packet and combining it with the remaining allocation ratio of each network link, a load balancing method can be used to dynamically and evenly allocate each first transmission data packet to the most suitable network link, thereby determining the network link corresponding to each first transmission data packet.
[0123] The technical solution provided in this embodiment determines the flow allocation ratio of each network link based on the network quality of each of at least two network links. It also determines the network link corresponding to each first transmission data packet by combining the first data volume of existing data to be transmitted in each network link and the second data volume of each first transmission data packet. In this way, each transmission data packet is transmitted through the network link corresponding to each transmission data packet, thereby realizing comprehensive low-latency transmission of vehicle data, efficiently utilizing the multi-link transmission capability of the vehicle to maximize the rapid transmission of multiple transmission data packets, ensuring the high efficiency and stability of vehicle data transmission, and improving the response rate and accuracy of vehicle data transmission.
[0124] Figure 6 A flowchart illustrating another method for in-vehicle data transmission provided in this application embodiment. This method can be executed by another in-vehicle data transmission apparatus provided in this application. This other in-vehicle data transmission apparatus can be implemented in any software and / or hardware manner. Exemplarily, this other in-vehicle data transmission apparatus can be applied to any electronic device, which can be any type of vehicle.
[0125] Specifically, such as Figure 6 As shown, the method may include the following steps: S610, acquire at least two transmission data packets of the vehicle, and calculate the packet identifier of each transmission data packet in the at least two transmission data packets.
[0126] Specifically, through the collaborative work of hardware and software between in-vehicle applications and the ECU, the vehicle can collect various sensor data, user operation data, user interaction data, and external environment perception data related to each in-vehicle application in real time. This data is then combined with the relevant data output by each in-vehicle application into at least two data packets in this application. These data packets are then transmitted to the vehicle's backend server for corresponding data analysis and processing to achieve precise vehicle control.
[0127] The vehicle's at least two transmitted data packets may include at least one of the following: 1) At least two first fragment data streams output after the application data stream of at least one vehicle application is fragmented, wherein each first fragment data stream is a transmission data packet.
[0128] Specifically, once at least one in-vehicle application has the aforementioned MPTCP plugin pre-configured, it can segment the application data stream output by the in-vehicle application from its source, and output multiple application sub-data streams as at least two first segmented data streams output by the at least one in-vehicle application. Then, each first segmented data stream is packaged into a transmission data packet to obtain at least two transmission data packets.
[0129] 2) Application data streams output by at least two in-vehicle applications, wherein the application data stream output by one in-vehicle application is a transmission data packet.
[0130] Specifically, at least two in-vehicle applications do not have the aforementioned MPTCP plugin pre-installed, allowing at least two in-vehicle applications to directly output their respective application data streams. By packaging the application data streams output by at least two in-vehicle applications into a single transmission data packet, at least two transmission data packets can be obtained.
[0131] 3) At least three data streams are formed by at least two second fragmented data streams output after the first application data stream output by the first vehicle application and the second application data stream of the second vehicle application are fragmented, wherein each second fragmented data stream is a transmission data packet and each first application data stream is a transmission data packet.
[0132] Specifically, at least two in-vehicle applications are categorized into two types: a first in-vehicle application and a second in-vehicle application. The first in-vehicle application does not have the aforementioned MPTCP plugin pre-installed, while the second in-vehicle application does. This allows the first in-vehicle application to directly output its first application data stream, and the second application data stream output by the second in-vehicle application to be fragmented, resulting in multiple application sub-data streams, which serve as at least two second fragmented data streams output by the second in-vehicle application. Then, each first application data stream is packaged into a transmission data packet, and each second fragmented data stream is packaged into a transmission data packet, resulting in at least three transmission data packets.
[0133] Furthermore, after obtaining at least two transmission data packets from the vehicle, considering that each transmission data packet can be a different fragmented data stream output by the same in-vehicle application, or a different application data stream or a different fragmented data stream output by different in-vehicle applications, it indicates that different transmission data packets have different identification information.
[0134] Therefore, in order to accurately distinguish each transmitted data packet and achieve accurate transmission of vehicle data across multiple network links, this application, after obtaining at least two transmitted data packets from the vehicle, can calculate and generate a unique data identifier for each transmitted data packet by analyzing information such as the source address, destination address, fragment number, and transport layer protocol. This identifier serves as the packet identifier for each transmitted data packet. The packet identifiers of each transmitted data packet can be used to accurately describe and distinguish each transmitted data packet.
[0135] In some implementations, this application can obtain the 5-tuple information of each transmitted data packet, which may include the source Internet Protocol (IP) address, source port number, destination IP address, destination port number, and transport layer protocol. Then, a specific hash algorithm is used to perform a hash operation on the 5-tuple information of each transmitted data packet to obtain the 5-tuple hash value of each transmitted data packet, and the 5-tuple hash value of each transmitted data packet is used as the packet identifier of the transmitted data packet.
[0136] It is understandable that the source and destination port numbers of different data packets output by the same in-vehicle application at the same time may be different, and the source IP address, source port number, destination IP address, and destination port number of different data packets output by different in-vehicle applications at the same time may also be different. Therefore, different data packets output by different in-vehicle applications at the same time have different 5-tuple information, resulting in different packet identifiers for each data packet.
[0137] S620, at least two transmission data packets that match the flow table entry based on the packet identifier in the preset flow table are identified as the second transmission data packet.
[0138] Considering that various in-vehicle applications installed in a vehicle typically generate multiple data packets at different times and send them to the vehicle's backend server for analysis and processing, different data packets output by the same in-vehicle application at different times may have the same packet identifier due to having the same five-tuple information, and therefore need to be transmitted to the vehicle's backend server through the same network link. Therefore, to improve the transmission performance of in-vehicle data, this application can pre-construct a flow table. This flow table can record the association between the packet identifier of each historical data packet in the historical transmission process of in-vehicle data and the network link allocated to that historical data packet (i.e., the network link corresponding to that historical data packet). Each entry in the flow table can describe the association between the packet identifier of a historical data packet and the network link corresponding to that historical data packet.
[0139] In this application, after calculating the packet identifier of each of the at least two transmitted data packets, the packet identifier of each transmitted data packet is used sequentially to index each packet identifier recorded in the above flow table, thereby determining whether each transmitted data packet can successfully hit a flow table entry based on the packet identifier of the transmitted data packet.
[0140] At this point, if a certain data packet successfully hits a flow table entry based on the packet identifier, it means that this data packet and the historical data packets recorded in the hit flow table entry will be transmitted through the same network link, so that the vehicle backend server can accurately receive the relevant data packets continuously output by the same in-vehicle application through the same network link.
[0141] Therefore, this application can find the transmission data packet that has hit the flow table entry based on the packet identifier from at least two transmission data packets, and determine the transmission data packet that has hit the flow table entry as the second transmission data packet.
[0142] It is understood that the second transmission data packet can be all the transmission data packets in at least two transmission data packets, or it can be a portion of the transmission data packets in at least two transmission data packets.
[0143] S630: Transmit each second transmission data packet through the network link corresponding to the flow table entry matched by each second transmission data packet in the flow table.
[0144] To ensure comprehensive and accurate transmission of vehicle data, this application can directly locate the flow table entry corresponding to each second transmission data packet from the aforementioned flow table. Based on the recorded relationships in this flow table entry, it determines a network link recorded in this flow table entry, indicating that this network link is the specific network link used by the second transmission data packet during historical transmission. Therefore, this application can use this network link as the network link corresponding to the second transmission data packet, assigning the second transmission data packet to this network link. Thus, through the network links corresponding to each second transmission data packet, each second transmission data packet is transmitted to the vehicle's backend server. The vehicle's backend server performs corresponding data analysis and processing on each second transmission data packet to provide corresponding response control messages to the vehicle, thereby achieving precise vehicle control.
[0145] In one or more embodiments provided in this application, it is considered that in addition to the second transmission data packet, there may be other transmission data packets remaining in at least two transmission data packets. Therefore, if a transmission data packet does not match any flow table entry based on the packet identifier, it indicates that this transmission data packet needs to be allocated from multiple network links to the most suitable network link for transmission. Therefore, in order to achieve comprehensive and accurate transmission of vehicle data, after determining whether at least two transmission data packets can successfully match a flow table entry based on the packet identifier, if there is a transmission data packet among the at least two transmission data packets that does not match a flow table entry based on the packet identifier, then the transmission data packet that does not match a flow table entry based on the packet identifier is identified as the first transmission data packet.
[0146] Specifically, this application can identify, from at least two transport data packets, the transport data packet that did not hit a flow table entry based on the packet identifier in the aforementioned flow table, and determine the transport data packet that did not hit a flow table entry as the first transport data packet.
[0147] Then, using the vehicle data transmission scheme provided for the first transmitted data packet in the above embodiments, the network quality of multiple network links associated with the vehicle is analyzed to allocate corresponding network links for each first transmitted data packet, thereby transmitting each first transmitted data packet and completing the efficient transmission of vehicle data.
[0148] The technical solution provided in this application identifies the second transmission data packet from at least two transmission data packets of a vehicle, based on the packet identifier that matches a flow table entry in a preset flow table. The second transmission data packets are then transmitted via the network link corresponding to the flow table entry they match. This achieves multi-link transmission of vehicle data, reduces transmission latency, efficiently utilizes the vehicle's multi-link transmission capabilities, maximizes the rapid transmission of multiple transmission data packets, ensures efficient and stable vehicle data transmission, and improves the response rate and accuracy of vehicle data transmission.
[0149] Figure 7 This is a schematic block diagram of a vehicle-mounted data transmission device provided in an embodiment of this application. Figure 7 As shown, the device 700 may include: The first data determination module 710 is used to determine the first transmission data packet from at least two transmission data packets of the vehicle; The network link determination module 720 is used to determine the network link corresponding to each first transmission data packet based on the network quality of at least two network links associated with the vehicle. The first data transmission module 730 is used to transmit each of the first data transmission packets based on the network link corresponding to each of the first data transmission packets.
[0150] In some implementations, the at least two transport data packets include: At least two first fragmented data streams are output after data fragmentation of the application data stream of at least one in-vehicle application, wherein each first fragmented data stream is a transmission data packet; and / or At least two in-vehicle applications output application data streams, wherein one in-vehicle application outputs an application data stream that is one of the transport data packets; and / or At least three data streams are formed by fragmenting the first application data stream output by the first vehicle application and the second application data stream of the second vehicle application, and outputting at least two second fragmented data streams, wherein each second fragmented data stream is a transmission data packet and each first application data stream is a transmission data packet.
[0151] In some implementations, the at least two transmission data packets are obtained through a pre-installed multipath transmission control protocol plugin on the vehicle application; the step of determining the network link corresponding to each first transmission data packet based on the network quality of at least two network links associated with the vehicle is performed by the vehicle communication module deployed on the vehicle.
[0152] In some possible implementations, the first data determination module 710 can be specifically used for: Each of the at least two transmitted data packets is identified as the first transmitted data packet; or Calculate the packet identifier of each of the at least two transmitted data packets, and determine the transmitted data packet that does not match a flow table entry based on the packet identifier in the preset flow table as the first transmitted data packet.
[0153] In some implementations, the in-vehicle data transmission device 700 may further include a first data processing module. This second data processing module can be used for: The data packet that hits a flow table entry based on the packet identifier in the flow table is identified as the second data packet. Each second transmission data packet is transmitted through the network link corresponding to the flow table entry matched in the flow table.
[0154] In some implementations, the in-vehicle data transmission device 700 may further include a flow table entry creation module. This flow table entry creation module can be used for: Based on the packet identifier of each first transmission data packet and the network link corresponding to each first transmission data packet, a flow table entry corresponding to each first transmission data packet is created in the flow table.
[0155] In some implementations, the in-vehicle data transmission device 700 may further include a flow table entry failure module. This flow table entry failure module can be used for: An associated expiration time is set for each flow table entry corresponding to the first transmission data packet, wherein the expiration time represents the cleanup time of the flow table entry corresponding to the first transmission data packet.
[0156] In some implementations, the in-vehicle data transmission device 700 may further include a network quality detection module. This network quality detection module can be used for: The detection period for each of the at least two network links is determined based on the current busy / idle status of each network link. Based on the detection period of each network link, the quality indicators of each network link are detected, and the weight of each quality indicator is determined. The network quality of each network link is determined based on the quality indicators of each network link and the weights of each quality indicator.
[0157] In some implementations, the weight of each quality metric is determined by the periodic fluctuation range of the quality metric and the quantitative impact factor of the quality metric on the network link.
[0158] In some implementations, the network link determination module 720 can be specifically used for: The flow allocation ratio for each of the at least two network links is determined based on the network quality of each network link. The network link corresponding to each first transmission data packet is determined based on the flow allocation ratio of each network link, the first data volume of existing data to be transmitted in each network link, and the second data volume of each first transmission data packet.
[0159] In some implementations, the at least two network links are basic communication links in an available link pool, and the current network state of the basic communication links in the available link pool meets the network transmission requirements.
[0160] In some implementations, the in-vehicle data transmission device 700 may further include a link pool update module. This link pool update module can be used for: The network quality of each basic communication link is detected to determine the current network status of each basic communication link, and the available link pool is updated based on the current network status of each basic communication link.
[0161] In some implementations, this link pool update module can be specifically used for: Remove the first communication link from the available link pool, the first communication link including the underlying communication link whose current network state changes from a transmission available state to a transmission congestion state or a transmission paralysis state; and / or Add a second communication link to the pool of available links. The second communication link includes the base communication link whose current network state changes from a transmission congestion state or a transmission paralysis state to a transmission availability state.
[0162] In some implementations, the in-vehicle data transmission device 700 may further include a data migration module. This data migration module can be used for: According to a preset migration step size, the existing data to be transmitted in the third communication link is gradually migrated to the corresponding network link in the available link pool. The third communication link includes the first communication link whose current network state changes from a transmission available state to a transmission congestion state; and / or The existing data to be transmitted in the fourth communication link is immediately migrated to the corresponding network link in the available link pool. The fourth communication link includes the first communication link whose current network status changes from a transmission available state to a transmission paralysis state.
[0163] In this embodiment, a first transmission data packet is determined from at least two transmission data packets of the vehicle, and the network link corresponding to each first transmission data packet is determined based on the network quality of at least two network links associated with the vehicle. Each first transmission data packet is transmitted in this way, thereby realizing multi-link transmission of vehicle data, reducing the transmission latency of vehicle data, efficiently utilizing the multi-link transmission capability of the vehicle, maximizing the rapid transmission of multiple transmission data packets, ensuring the high efficiency and stability of vehicle data transmission, and improving the response rate and accuracy of vehicle data transmission.
[0164] It should be understood that the device embodiments and method embodiments can correspond to each other, and similar descriptions can be found in the method embodiments. To avoid repetition, further details are omitted here. Specifically, Figure 7 The apparatus 700 shown can execute any of the method embodiments provided in this application, and the foregoing and other operations and / or functions of each module in the apparatus 700 are respectively for implementing the corresponding processes in the various methods of the embodiments of this application. For the sake of brevity, they will not be described in detail here.
[0165] The apparatus 700 of this application embodiment has been described above from the perspective of functional modules in conjunction with the accompanying drawings. It should be understood that this functional module can be implemented in hardware, in software instructions, or in a combination of hardware and software modules. Specifically, the steps of the method embodiments in this application can be completed by integrated logic circuits in the processor's hardware and / or by software instructions. The steps of the method disclosed in this application embodiment can be directly embodied as being executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. Optionally, the software module can reside in a mature storage medium in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. This storage medium is located in memory, and the processor reads information from the memory and, in conjunction with its hardware, completes the steps in the above method embodiments.
[0166] Figure 8 This is a schematic block diagram of another in-vehicle data transmission device provided in an embodiment of this application. (See diagram for reference.) Figure 8 As shown, the device 800 may include: The data acquisition module 810 is used to acquire at least two transmission data packets of the vehicle and calculate the group identifier of each transmission data packet in the at least two transmission data packets; The second data determination module 820 is used to determine the transmission data packet that hits the flow table entry based on the packet identifier in the preset flow table as the second transmission data packet; The second data transmission module 830 is used to transmit each second data transmission packet through the network link corresponding to the flow table entry hit by each second data transmission packet in the flow table.
[0167] In some implementations, the in-vehicle data transmission device 800 further includes a first data processing module. This first data processing module can be used for: If among the at least two transmitted data packets there is a transmitted data packet that does not hit a flow table entry based on the packet identifier in the flow table, then the transmitted data packet that does not hit a flow table entry based on the packet identifier in the flow table is determined as the first transmitted data packet; The method for transmitting vehicle data according to the first aspect of this application transmits each of the first transmission data packets.
[0168] In this embodiment, from at least two transmitted data packets of the vehicle, the transmitted data packet that hits a flow table entry based on a packet identifier in a preset flow table is determined as the second transmitted data packet. The second transmitted data packets are then transmitted through the network links corresponding to the flow table entries that each second transmitted data packet hits in the flow table. This achieves multi-link transmission of vehicle data, reduces the transmission latency of vehicle data, efficiently utilizes the vehicle's multi-link transmission capability, maximizes the rapid transmission of multiple transmitted data packets, ensures the high efficiency and stability of vehicle data transmission, and improves the response rate and accuracy of vehicle data transmission.
[0169] It should be understood that the device embodiments and method embodiments can correspond to each other, and similar descriptions can be found in the method embodiments. To avoid repetition, further details are omitted here. Specifically, Figure 8 The apparatus 800 shown can execute any of the method embodiments provided in this application, and the foregoing and other operations and / or functions of each module in the apparatus 800 are respectively for implementing the corresponding processes in the various methods of the embodiments of this application. For the sake of brevity, they will not be described in detail here.
[0170] The apparatus 800 of this application embodiment has been described above from the perspective of functional modules in conjunction with the accompanying drawings. It should be understood that this functional module can be implemented in hardware, in software instructions, or in a combination of hardware and software modules. Specifically, the steps of the method embodiments in this application can be completed by integrated logic circuits in the processor's hardware and / or by software instructions. The steps of the method disclosed in this application embodiment can be directly embodied as being executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. Optionally, the software module can be located in a mature storage medium in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. This storage medium is located in memory, and the processor reads information from the memory and, in conjunction with its hardware, completes the steps in the above method embodiments.
[0171] Figure 9A schematic block diagram of an electronic device provided in an embodiment of this application.
[0172] like Figure 9 As shown, the electronic device 900 may include: The system includes a memory 910 and a processor 920. The memory 910 stores computer programs and transfers the program code to the processor 920. In other words, the processor 920 can retrieve and run the computer program from the memory 910 to implement the methods described in the embodiments of this application.
[0173] For example, the processor 920 can be used to execute the above-described method embodiments according to instructions in the computer program.
[0174] In some embodiments of this application, the processor 920 may include, but is not limited to: General-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
[0175] In some embodiments of this application, the memory 910 includes, but is not limited to: Volatile memory and / or non-volatile memory. Non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory can be random access memory (RAM), used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), Enhanced SDRAM (ESDRAM), Synchronous Link DRAM (SLDRAM), and Direct Rambus RAM (DR RAM).
[0176] In some embodiments of this application, the computer program may be divided into one or more modules, which are stored in the memory 910 and executed by the processor 920 to perform the method provided in this application. The one or more modules may be a series of computer program instruction segments capable of performing a specific function, which describe the execution process of the computer program in the electronic device.
[0177] like Figure 9 As shown, the electronic device may also include: Transceiver 930, which can be connected to processor 920 or memory 910.
[0178] The processor 920 can control the transceiver 930 to communicate with other devices; specifically, it can send information or data to other devices or receive information or data sent by other devices. The transceiver 930 may include a transmitter and a receiver. The transceiver 930 may further include antennas, and the number of antennas may be one or more.
[0179] It should be understood that the various components in the electronic device are connected through a bus system, which includes a data bus, a power bus, a control bus, and a status signal bus.
[0180] This application also provides a computer storage medium storing a computer program thereon, which, when executed by a computer, enables the computer to perform the methods of the above-described method embodiments. Alternatively, this application also provides a computer program product containing instructions that, when executed by a computer, cause the computer to perform the methods of the above-described method embodiments.
[0181] When implemented using software, it can be implemented entirely or partially as a computer program product. This computer program product includes one or more computer instructions. When these computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium accessible to a computer or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., digital video disc (DVD)), or a semiconductor medium (e.g., solid-state disk (SSD)).
[0182] Those skilled in the art will recognize that the modules and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0183] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple modules or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or modules may be electrical, mechanical, or other forms.
[0184] The modules described as separate components may or may not be physically separate. The components shown as modules may or may not be physical modules; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. For example, the functional modules in the various embodiments of this application may be integrated into one processing module, or each module may exist physically separately, or two or more modules may be integrated into one module.
[0185] The above are merely specific embodiments of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the technical scope disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A method for in-vehicle data transmission, characterized in that, include: The first transmission data packet is determined from at least two transmission data packets of the vehicle; Based on the network quality of at least two network links associated with the vehicle, determine the network link corresponding to each first transmission data packet; Each of the first transmission data packets is transmitted based on the network link corresponding to each of the first transmission data packets.
2. The method according to claim 1, characterized in that, The at least two transmitted data packets include: At least two first fragmented data streams are output after data fragmentation of the application data stream of at least one in-vehicle application, wherein each first fragmented data stream is a transmission data packet; and / or At least two in-vehicle applications output application data streams, wherein one in-vehicle application outputs an application data stream that is one of the transport data packets; and / or At least three data streams are formed by fragmenting the first application data stream output by the first vehicle application and the second application data stream of the second vehicle application, and outputting at least two second fragmented data streams, wherein each second fragmented data stream is a transmission data packet and each first application data stream is a transmission data packet.
3. The method according to claim 1, characterized in that, Determining the first transmission data packet from at least two transmission data packets of the vehicle includes: Each of the at least two transmitted data packets is identified as the first transmitted data packet; or Calculate the packet identifier of each of the at least two transmitted data packets, and determine the transmitted data packet that does not match a flow table entry based on the packet identifier in the preset flow table as the first transmitted data packet.
4. The method according to claim 3, characterized in that, Also includes: The data packet that hits a flow table entry based on the packet identifier in the flow table is identified as the second data packet. Each second transmission data packet is transmitted through the network link corresponding to the flow table entry matched in the flow table.
5. The method according to claim 3, characterized in that, The process of calculating the packet identifier of each of the at least two transmitted data packets, and determining the transmitted data packets whose flow table entries were not matched based on the packet identifier in a preset flow table as the first transmitted data packets, and after determining the network link corresponding to each first transmitted data packet according to the network quality of the at least two network links associated with the vehicle, further includes: Based on the packet identifier of each first transmission data packet and the network link corresponding to each first transmission data packet, a flow table entry corresponding to each first transmission data packet is created in the flow table.
6. The method according to claim 1, characterized in that, Also includes: The detection period for each of the at least two network links is determined based on the current busy / idle status of each network link. Based on the detection period of each network link, the quality indicators of each network link are detected, and the weight of each quality indicator is determined. The network quality of each network link is determined based on the quality indicators of each network link and the weights of each quality indicator.
7. The method according to claim 1, characterized in that, The step of determining the network link corresponding to each first transmitted data packet based on the network quality of at least two network links associated with the vehicle includes: The flow allocation ratio for each of the at least two network links is determined based on the network quality of each network link. The network link corresponding to each first transmission data packet is determined based on the flow allocation ratio of each network link, the first data volume of existing data to be transmitted in each network link, and the second data volume of each first transmission data packet.
8. The method according to claim 7, characterized in that, The at least two network links are basic communication links in the available link pool, and the current network state of the basic communication links in the available link pool meets the network transmission requirements, further including: The network quality of each basic communication link is detected to determine the current network status of each basic communication link, and the available link pool is updated based on the current network status of each basic communication link.
9. A method for vehicle-mounted data transmission, characterized in that, include: Acquire at least two transmission data packets from the vehicle, and calculate the packet identifier of each transmission data packet in the at least two transmission data packets; The data packet that matches a flow table entry based on a packet identifier in a preset flow table is identified as the second data packet; Each second transmission data packet is transmitted through the network link corresponding to the flow table entry matched in the flow table.
10. The method according to claim 9, characterized in that, Also includes: If among the at least two transmitted data packets there is a transmitted data packet that does not hit a flow table entry based on the packet identifier in the flow table, then the transmitted data packet that does not hit a flow table entry based on the packet identifier in the flow table is determined as the first transmitted data packet; Each of the first transmission data packets is transmitted using the vehicle-mounted data transmission method according to any one of claims 1-8.
11. An electronic device, characterized in that, include: A processor and a memory, the memory being used to store a computer program, the processor being used to invoke and run the computer program stored in the memory to perform the method of vehicle data transmission as described in any one of claims 1-8 or 9-10.
12. A computer-readable storage medium, characterized in that, Used to store a computer program that causes a computer to perform the method of in-vehicle data transmission as described in any one of claims 1-8 or 9-10.
13. A computer program product, characterized in that, Includes a computer program / instruction that, when executed by a processor, implements the method for in-vehicle data transmission as described in any one of claims 1-8 or 9-10.