Data transmission method, device, equipment, system and storage medium
Transmission of public data through multicast channels and transmission of differential data by multiple unicast channels, solving the problems of public data and differential data transmission efficiency and personalized needs in one-to-many transmission scenarios, and achieving efficient and accurate data transmission.
Patent Information
- Application Number
- CN202310859386.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-12
- Publication Date
- 2025-01-14
AI Technical Summary
In one-to-many data transmission scenarios, how to efficiently transmit public data and differentiated data must not only ensure the transmission efficiency of public data, but also meet diverse and personalized needs.
Public data is transmitted through one multicast channel, and differential data is transmitted using multiple unicast channels. Data identification is used for differential data identification and common data identification are used to avoid additional unicast channels and improve transmission efficiency and accuracy.
It realizes efficient transmission of public and differentiated data, reduces resource overhead, meets diverse and personalized needs, and improves the quality and flexibility of data transmission.
Smart Images

Figure CN119316244A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communication technology, and in particular to a data transmission method, apparatus, device, system and storage medium. Background Art
[0002] With the development of communication technology, one-to-many data transmission scenarios are becoming more and more common. One-to-many data transmission refers to a sending device transmitting data to multiple receiving devices, where the transmitted data may include the same public data or different differential data. For example, in the vehicle's smart cockpit scenario, the vehicle's central control device plays a video on multiple rear-seat devices of the vehicle. The video content is the public data, while the video progress, volume, subtitles, etc. controlled by different passengers for different rear-seat devices and the screen adaptation data corresponding to rear-seat devices of different screen sizes are differential data.
[0003] Therefore, in the scenario of one-to-many data transmission, how to transmit common data and difference data is an urgent problem to be solved. Summary of the invention
[0004] The present application provides a data transmission method, apparatus, device, system and storage medium for one-to-many transmission of common data and difference data.
[0005] In the first aspect, a data transmission method is provided. Taking the execution of the method by a first device as an example, the first device sends common data to multiple second devices through a multicast channel, and the common data is the same data; the first device sends corresponding difference data to multiple second devices through multiple unicast channels, and the difference data of each of the multiple second devices is different.
[0006] The first device in the method realizes one-to-many transmission of public data through a multicast channel, thereby improving the transmission efficiency of public data and reducing the resource overhead of transmitting public data; on this basis, the method realizes one-to-many transmission of differential data through multiple unicast channels, so that in the one-to-many data transmission scenario, both public data and differential data can be transmitted, making the data type of the one-to-many transmission data richer; and because the differential data can enable different second devices to perform different personalized operations, the method can better meet the diverse one-to-many data transmission scenario requirements.
[0007] Among them, one unicast channel can correspond to one second device, that is, the number of multiple unicast channels is the same as the number of multiple second devices. The first device corresponds to a sending device in a one-to-many data transmission scenario, and multiple second devices correspond to multiple receiving devices in a one-to-many data transmission scenario. There is no limitation on the execution order of the first device sending common data to multiple second devices through a multicast channel and the first device sending corresponding difference data to multiple second devices through multiple unicast channels respectively. Optionally, the first device can simultaneously send common data to multiple second devices through a multicast channel, and send corresponding difference data to multiple second devices through multiple unicast channels respectively. The difference data of each of the multiple second devices is different, which may mean that the difference data of each of the multiple second devices is completely different; it may also mean that the difference data of each of the multiple second devices is partially different, and the different parts of the difference data between the multiple second devices are also different.
[0008] In a possible implementation, in addition to sending corresponding difference data to multiple second devices through multiple unicast channels, the first device also sends corresponding retransmission data to multiple second devices through the multiple unicast channels, and the retransmission data is at least one of the common data or difference data that needs to be retransmitted by different second devices. Since the common data transmitted through the multicast channel may have packet loss, the common data with packet loss is retransmitted. Since the common data that needs to be retransmitted by different second devices may be different, the retransmission data corresponding to different second devices is transmitted through the unicast channels corresponding to different second devices. In the present application, the retransmission data is transmitted through multiple unicast channels that transmit difference data, and there is no need to establish a separate unicast channel for transmitting the retransmission data. While ensuring the transmission quality of the common data through retransmission, the resource overhead caused by the additional establishment of unicast channels can also be avoided, thereby improving the data transmission efficiency.
[0009] In a possible implementation, the message containing the difference data carries a first difference identifier, and the first difference identifier is used by multiple second devices to identify the difference data received through the unicast channel; the message containing the common data carries a first common identifier, and the first common identifier is used by multiple second devices to identify the common data received through the unicast channel. In the case where the retransmitted data transmitted through the unicast channel includes the retransmitted common data, the first device will transmit both the difference data and the retransmitted common data through the unicast channel. Therefore, by carrying the first difference identifier in the message containing the difference data and carrying the first common identifier in the message containing the common data, it is convenient for the second device on the receiving side to identify whether the data corresponding to the message received through the unicast channel is common data or difference data.
[0010] In a possible implementation, the first device stores indication information corresponding to multiple second devices respectively, the indication information indicates the storage location of public data that has been sent but not yet confirmed, and the indication information corresponds to the identifier of the public data that has been sent but not yet confirmed. Since the public data sent by the first device to multiple second devices is the same, if the public data that has been sent but not yet confirmed and corresponds to the multiple second devices respectively is directly stored, it will result in multiple copies and storage of the public data that has been sent but not yet confirmed, resulting in a large resource overhead. In the present application, by storing the indication information, the indication information indicates the storage location where the public data that has been sent but not yet confirmed is stored, thereby effectively reducing the resource overhead.
[0011] In a possible implementation, after the first device sends public data to multiple second devices through a multicast channel, it receives a packet loss request message through the first unicast channel corresponding to the third device in the multiple unicast channels, and the third device is any second device in the multiple second devices; in the case where the packet loss request message includes the second public identifier and the first identifier of the public data that needs to be retransmitted, based on the second public identifier indicating the public data, the first indication information corresponding to the first identifier is obtained in the indication information corresponding to the third device, and the public data stored in the storage location indicated by the first indication information is used as the retransmission data corresponding to the first unicast channel. The retransmitted public data in the retransmission data corresponding to different unicast channels can be obtained through the received packet loss request message, which ensures the accuracy of the acquisition of the retransmission data. The accurate transmission of the retransmission data solves the packet loss problem of data transmission, thereby improving the transmission quality of data transmission.
[0012] In a possible implementation, the first device also stores difference data that has been sent but not yet confirmed and corresponds to multiple second devices. In this case, for a packet loss request message received through a first unicast channel corresponding to a third device among multiple unicast channels, when the packet loss request message includes a second difference identifier and a second identifier of difference data that needs to be retransmitted, the first device obtains the difference data corresponding to the second identifier from the difference data that has been sent but not yet confirmed corresponding to the third device based on the second difference identifier indicating the difference data, and uses the difference data corresponding to the second identifier as the retransmitted data corresponding to the first unicast channel. The retransmitted difference data in the retransmitted data corresponding to different unicast channels can be obtained through the received packet loss request message, thereby ensuring the accuracy of obtaining the retransmitted data. The accurate transmission of the retransmitted data solves the packet loss problem of data transmission, thereby improving the transmission quality of data transmission.
[0013] In a possible implementation, after the first device sends public data to multiple second devices through a multicast channel, it receives a reply message through a second unicast channel corresponding to a fourth device in multiple unicast channels, where the fourth device is any second device among the multiple second devices; in the case where the reply message includes a third public identifier and a third identifier of the received public data, based on the third public identifier indicating the public data, the second indication information corresponding to the third identifier in the indication information corresponding to the fourth device is deleted; if multiple reply messages are received through multiple unicast channels respectively, and the multiple reply messages all include the third identifier, the public data stored in the storage location indicated by the second indication information is deleted. By timely deleting the indication information stored in the multicast unanswered storage unit through the received reply message, and timely deleting the stored public data through the received multiple reply messages, the storage space of the first device can be saved.
[0014] In a possible implementation, when a first device receives a response message through a second unicast channel corresponding to a fourth device among multiple unicast channels, and when the response message includes a third difference identifier and a fourth identifier of received difference data, based on the difference data indicated by the third difference identifier, the first device deletes the difference data corresponding to the fourth identifier in the difference data that has been sent but not yet confirmed corresponding to the fourth device, thereby saving storage space of the first device.
[0015] In a one-to-many data transmission scenario, in addition to the first device sending difference data to multiple second devices, there is also a situation where any second device sends difference data to the first device, that is, different difference data are exchanged between the first device and the multiple second devices. Optionally, the difference data sent by the first device to multiple second devices is called first difference data, and the difference data sent by any second device to the first device is called second difference data, and the second difference data is different data sent by different second devices to the first device.
[0016] In a possible implementation, the first device receives the second difference data sent by the fifth device through a third unicast channel corresponding to the fifth device in multiple unicast channels, and the fifth device is any second device among the multiple second devices. As a result, the first device and multiple second devices can transmit difference data to each other, which improves the transmission flexibility of difference data and meets more diverse one-to-many data transmission scenarios. In addition, the unicast channel used by the first device to transmit the first difference data and retransmission data to the second device can also be used by the second device to transmit the second difference data to the first device, further improving the utilization rate of the unicast channel and reducing the resource overhead caused by data transmission.
[0017] In the second aspect, a data transmission method is provided. Taking the second device executing the method as an example, the second device receives public data sent by the first device through a multicast channel. The second device is one of multiple devices receiving the public data, and the public data is the same data; the second device receives difference data sent by the first device through a unicast channel, and the difference data of the multiple devices are different.
[0018] The multiple devices in the second aspect correspond to the multiple second devices in the first aspect, that is, the second device is any second device in the multiple second devices. The common data and the difference data are received respectively through the multicast channel and the unicast channel, so as to realize the transmission of the common data and the difference data in the one-to-many transmission data scenario, so that the data type of the one-to-many transmission data is richer. And because the second device can perform different personalized operations according to the difference data, the method can better meet the diversified one-to-many transmission data scenario requirements.
[0019] In a possible implementation, in addition to the second device receiving the difference data sent by the first device through the unicast channel, the second device can also receive the retransmission data sent by the first device through the unicast channel, and the retransmission data is at least one of the common data or the difference data that the second device needs to retransmit. Receiving the retransmission data through the unicast channel receiving the difference data allows the difference data and the retransmission data to be transmitted through the same unicast channel, without the need to establish a separate unicast channel for transmitting the retransmission data. While ensuring the transmission quality of the common data through retransmission, the resource overhead caused by the additional establishment of a unicast channel can also be avoided, thereby improving the data transmission efficiency.
[0020] In a possible implementation, the message containing the common data received through the unicast channel carries a first common identifier, and the message containing the difference data received through the unicast channel carries a first difference identifier; the method further includes: storing the common data received through the multicast channel; identifying the message received through the unicast channel based on the first common identifier and the first difference identifier, and storing the identified common data and difference data separately. By using the first common identifier and the first difference identifier, the second device can accurately identify whether the data received through the unicast channel is common data or difference data, thereby improving the accuracy of the received data.
[0021] In a possible implementation, when it is determined that the public data corresponding to the first identifier needs to be retransmitted, a packet loss request message including the second public identifier and the first identifier of the public data that needs to be retransmitted can be returned to the first device through a unicast channel; when it is determined that the public data corresponding to the third identifier is received, a response message including the third public identifier and the third identifier of the received public data can be returned to the first device through a unicast channel. By feedback of the packet loss request message including the second public identifier and the response message including the second public identifier, the first device can determine the reception status of the public data, and then can realize the packet loss retransmission of the public data, thereby improving the transmission quality of the public data.
[0022] In a possible implementation, when it is determined that the difference data corresponding to the second identifier needs to be retransmitted, a packet loss request message including the second difference identifier and the second identifier of the difference data that needs to be retransmitted can be returned to the first device through a unicast channel; when it is determined that the difference data corresponding to the fourth identifier is received, a response message including the third difference identifier and the fourth identifier of the received difference data can be returned to the first device through a unicast channel. By providing feedback of the packet loss request message including the second difference identifier and the response message including the third difference identifier, the first device can determine the reception status of the difference data, and then can implement packet loss retransmission of the difference data, thereby improving the transmission quality of the difference data.
[0023] In a one-to-many data transmission scenario, in addition to the second device receiving the difference data sent by the first device, there is also a situation where the second device sends difference data to the first device, that is, the second device and the first device exchange different difference data. Optionally, the difference data sent by the first device and received by the second device is called the first difference data, and the difference data sent by the second device to the first device is called the second difference data, and the second difference data is different data sent by different second devices to the first device.
[0024] In a possible implementation, in addition to the second device receiving the difference data or retransmission data sent by the first device through the unicast channel, the second device can also send the second difference data to the first device through the unicast channel. Optionally, after the second device sends the second difference data to the first device through the unicast channel, it can also store the second difference data that has been sent but not yet confirmed. As a result, the second device and the first device can transmit difference data to each other, which improves the transmission flexibility of the difference data and meets more diverse one-to-many data transmission scenarios. In addition, the unicast channel used for the second device to receive the first difference data and retransmission data sent by the first device can also be used for the second device to transmit the second difference data to the first device, further improving the utilization rate of the unicast channel and reducing the resource overhead caused by data transmission.
[0025] In a third aspect, a data transmission apparatus is provided, the apparatus being applied to a first device, the apparatus comprising:
[0026] A transceiver module, used to perform operations related to receiving and / or sending in the first aspect or any possible implementation manner of the first aspect;
[0027] A processing module is used to perform other operations besides the receiving and / or sending related operations in the first aspect or any possible implementation manner of the first aspect.
[0028] In a possible implementation, the transceiver module includes a receiving module and / or a sending module. The receiving module is used to perform reception-related operations, and the sending module is used to perform sending-related operations.
[0029] In a possible implementation, the transceiver module is used to send common data to multiple second devices through a multicast channel, where the common data is the same data; and to send corresponding difference data to multiple second devices through multiple unicast channels, where the difference data of each device is different.
[0030] In a possible implementation, the transceiver module is further configured to send corresponding retransmission data to multiple second devices respectively through multiple unicast channels, where the retransmission data is at least one of common data or difference data that needs to be retransmitted by different second devices.
[0031] In one possible implementation, the message containing the difference data carries a first difference identifier, which is used by multiple second devices to identify the difference data received through a unicast channel; the message containing the public data carries a first public identifier, which is used by multiple second devices to identify the public data received through a unicast channel.
[0032] In a possible implementation, the first device stores indication information corresponding to the plurality of second devices respectively and difference data that has been sent but not yet confirmed, the indication information indicates a storage location of the public data that has been sent but not yet confirmed, and the indication information corresponds to an identifier of the public data that has been sent but not yet confirmed;
[0033] The transceiver module is also used to receive a packet loss request message through a first unicast channel corresponding to a third device in multiple unicast channels, where the third device is any second device among multiple second devices; in the case where the packet loss request message includes a second public identifier and a first identifier of public data that needs to be retransmitted, based on the second public identifier indicating the public data, first indication information corresponding to the first identifier is obtained in the indication information corresponding to the third device, and the public data stored in the storage location indicated by the first indication information is used as the retransmission data corresponding to the first unicast channel; in the case where the packet loss request message includes a second difference identifier and a second identifier of difference data that needs to be retransmitted, based on the second difference identifier indicating the difference data, the difference data corresponding to the second identifier is obtained in the difference data that has been sent but not yet confirmed corresponding to the third device, and the difference data corresponding to the second identifier is used as the retransmission data corresponding to the first unicast channel.
[0034] In a possible implementation, the transceiver module is also used to receive a reply message through a second unicast channel corresponding to a fourth device in multiple unicast channels, where the fourth device is any second device among the multiple second devices; in a case where the reply message includes a third public identifier and a third identifier of the received public data, based on the third public identifier indicating the public data, the second indication information corresponding to the third identifier in the indication information corresponding to the fourth device is deleted; in a case where the reply message includes a third difference identifier and a fourth identifier of the received difference data, based on the third difference identifier indicating the difference data, the difference data corresponding to the fourth identifier in the difference data that has been sent but not yet confirmed corresponding to the fourth device is deleted; in a case where multiple reply messages are received through multiple unicast channels respectively, and the multiple reply messages all include the third public identifier and the third identifier, the public data stored in the storage location indicated by the second indication information is deleted.
[0035] In a fourth aspect, a data transmission device is provided, which is applied to a second device and includes:
[0036] A transceiver module, used to perform operations related to receiving and / or sending in the second aspect or any possible implementation manner of the second aspect;
[0037] A processing module is used to perform other operations besides the receiving and / or sending related operations in the second aspect or any possible implementation manner of the second aspect.
[0038] In a possible implementation, the transceiver module is used to receive common data sent by the first device through a multicast channel, where the common data is the same data; and receive difference data sent by the first device through a unicast channel, where the difference data of the multiple devices are different.
[0039] In a possible implementation, the transceiver module is further configured to receive retransmission data sent by the first device through a unicast channel, where the retransmission data is at least one of common data or difference data that the second device needs to retransmit.
[0040] In a possible implementation, a message containing common data received through a unicast channel carries a first common identifier, and a message containing difference data received through a unicast channel carries a first difference identifier; a processing module is used to store common data received through a multicast channel; based on the first common identifier and the first difference identifier, the message received through the unicast channel is identified, and the identified common data and difference data are stored separately.
[0041] In a possible implementation, the transceiver module is also used to return a packet loss request message including a second public identifier and the first identifier of the public data that needs to be retransmitted to the first device through a unicast channel when it is determined that the public data corresponding to the first identifier needs to be retransmitted; and return a response message including a third public identifier and the third identifier of the received public data to the first device through a unicast channel when it is determined that the public data corresponding to the third identifier is received.
[0042] In a possible implementation, the transceiver module is also used to return a packet loss request message including the second difference identifier and the second identifier of the difference data that needs to be retransmitted to the first device through a unicast channel when it is determined that the difference data corresponding to the second identifier needs to be retransmitted; and return a response message including the third difference identifier and the fourth identifier of the received difference data to the first device through a unicast channel when it is determined that the difference data corresponding to the fourth identifier is received.
[0043] In a fifth aspect, a data transmission device is provided, comprising: a processor, the processor being coupled to a memory, the memory storing at least one program instruction or code, the at least one program instruction or code being loaded and executed by the processor, so that the data transmission device implements the data transmission method as described in any one of the first aspect or the second aspect above.
[0044] Optionally, the number of the processors is one or more, and the number of the memories is one or more.
[0045] Optionally, the memory may be integrated with the processor, or the memory may be provided separately from the processor.
[0046] In the specific implementation process, the memory can be a non-transitory memory, such as a read-only memory (ROM), which can be integrated with the processor on the same chip or can be set on different chips. This application does not limit the type of memory and the setting method of the memory and the processor.
[0047] In a sixth aspect, a communication device is provided, the device comprising: a transceiver, a memory, and a processor. The transceiver, the memory, and the processor communicate with each other through an internal connection path, the memory is used to store instructions, and the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and control the transceiver to send signals, and when the processor executes the instructions stored in the memory, the communication device executes the method in the first aspect or any possible implementation of the first aspect, or executes the method in the second aspect or any possible implementation of the second aspect.
[0048] In a seventh aspect, a data transmission system is provided, the data transmission system comprising a first device and a plurality of second devices;
[0049] The first device is used to execute the method described in the first aspect or any possible implementation of the first aspect, and any second device among the multiple second devices is used to execute the method described in the second aspect or any possible implementation of the second aspect.
[0050] In an eighth aspect, a computer-readable storage medium is provided, wherein the storage medium stores at least one instruction, and the instruction is loaded and executed by a processor so that a computer implements the method in the above-mentioned first aspect or any possible implementation of the first aspect, or implements the above-mentioned second aspect or any possible implementation of the second aspect.
[0051] In a ninth aspect, a computer program (product) is provided, wherein the computer program (product) comprises: a computer program code, and when the computer program code is executed by a computer, the computer executes the methods in the above aspects.
[0052] In a tenth aspect, a chip is provided, comprising a processor for calling and executing instructions stored in a memory from the memory, so that a communication device equipped with the chip executes the methods in the above aspects.
[0053] In the eleventh aspect, another chip is provided, comprising: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected via an internal connection path, and the processor is used to execute the code in the memory. When the code is executed, the processor is used to execute the methods in the above aspects.
[0054] It should be understood that the beneficial effects achieved by the technical solutions of the second to eleventh aspects of the present application and the corresponding possible implementation methods can be referred to the technical effects of the first aspect and its corresponding possible implementation methods mentioned above, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0055] Figure 1 A schematic diagram of a unicast transmission framework provided in an embodiment of the present application;
[0056] Figure 2 A schematic diagram of a multicast transmission framework provided in an embodiment of the present application;
[0057] Figure 3 A schematic diagram of a reliable multicast transmission framework provided in an embodiment of the present application;
[0058] Figure 4 A schematic diagram of an implementation environment of a data transmission method provided in an embodiment of the present application;
[0059] Figure 5 A schematic diagram of the structure of a data transmission device provided in an embodiment of the present application;
[0060] Figure 6 An interactive schematic diagram of a data transmission method provided in an embodiment of the present application;
[0061] Figure 7 A flowchart of a first device sending common data and difference data provided in an embodiment of the present application;
[0062] Figure 8 A flowchart of a second device receiving common data and difference data through a multicast channel provided in an embodiment of the present application;
[0063] Fig. 9 A flowchart of a second device sending difference data to a first device provided in an embodiment of the present application;
[0064] Fig.10 A flowchart of a first device receiving data through a unicast channel provided in an embodiment of the present application;
[0065] Fig.11 A flowchart of a data transmission method provided in an embodiment of the present application;
[0066] Fig.12 A schematic diagram of a scenario of a data transmission method provided in an embodiment of the present application;
[0067] Fig.13 A schematic diagram of the structure of a data transmission device provided in an embodiment of the present application;
[0068] Fig.14 A schematic diagram of the structure of another data transmission device provided in an embodiment of the present application;
[0069] Fig.15 A schematic diagram of the structure of a data transmission device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0070] In order to make the objectives, technical solutions and advantages of the present application clearer, the implementation methods of the present application will be further described in detail below with reference to the accompanying drawings.
[0071] In the field of communication technology, a variety of data transmission methods have been proposed for the scenario requirements of one-to-many data transmission. For example, taking the scenario of one-to-many data transmission as an example, the methods used in the relevant technology include: using a reliable transmission protocol for unicast screen projection one by one, for example, the reliable transmission protocol is the transmission control protocol (TCP) or the video transmission protocol (VTP); or, using an unreliable transmission protocol for multicast or groupcast screen projection, for example, the unreliable transmission protocol is the user datagram protocol (UDP) or VTP multicast (VTPM); or, using a combination of reliable transmission protocols and unreliable transmission protocols for reliable multicast screen projection, etc.
[0072] See also Figure 1The unicast transmission framework shown takes the reliable transmission protocol as TCP and the number of multiple receiving devices as 4 as an example. When a reliable transmission protocol is used for unicast screen projection one by one, the sending device establishes transmission channels with multiple receiving devices respectively, and the sending device sends the screen image data of the sending device to each receiving device one by one through each transmission channel, thereby achieving a one-to-many screen projection effect. In this case, the transmission channel established with multiple receiving devices respectively using a reliable transmission protocol is a unicast channel. However, as the number of receiving devices increases, the sending device needs to repeatedly send more screen image data to each receiving device, and the overhead of the sending device's central processing unit (CPU), random access memory (RAM), bandwidth and other resources will increase linearly. Especially for the scenario where the sending device is a portable data transmission device, the portable data transmission device cannot meet the overhead caused by repeatedly sending multiple data. Therefore, Figure 1 The unicast framework shown cannot be applied to the scenario where the sending device is a portable data transmission device.
[0073] See also Figure 2 The multicast framework shown takes the unreliable transmission protocol as UDP and the number of multiple receiving devices as 4 as an example. The way to use the unreliable transmission protocol for multicast screen projection is that the sending device and multiple receiving devices are all added to the same multicast group, that is, the sending device and multiple receiving devices establish a multicast channel, and the sending device only needs to send the screen image data once through the multicast channel, and multiple receiving devices can all receive the screen image data, thereby achieving a one-to-many screen projection effect. Figure 2 The multicast framework shown can avoid the problem of increasing resource overhead caused by the increase in the number of receiving devices. However, since the multicast transmission of data is based on an unreliable transmission protocol, reliable transmission cannot be achieved, and the driver layer of multicast transmission cannot retransmit lost data like unicast transmission, which makes multicast transmission have a certain packet loss rate, resulting in the inability to support the requirements of high-quality data transmission in practical applications.
[0074] See also Figure 3The reliable multicast framework shown takes the reliable transmission protocol as TCP, the unreliable transmission protocol as UDP, and the number of multiple receiving devices as 4 as an example. The method of combining the reliable transmission protocol and the unreliable transmission protocol for reliable multicast screen projection is that the sending device and multiple receiving devices all join a multicast group and use the UDP multicast channel to transmit the screen image data. Since multicast transmission is adopted, the transmitted screen image data has a certain packet loss rate. Therefore, reliable TCP unicast channels are established between the sending device and the multiple receiving devices respectively, and the packet loss request messages and packet loss retransmission messages corresponding to the screen image data are transmitted through the unicast channel, thereby compensating for the packet loss problem of multicast transmission, which not only solves the problem of high resource overhead, but also meets the requirements of high-quality data transmission. Optionally, the unicast channel used under multicast transmission can be called a "unicast member of multicast".
[0075] In the embodiment of the present application, the same data that multiple receiving devices need to receive is called public data. Figure 1-Figure 3 In the example, since the screen image data transmitted by the sending device to multiple receiving devices is the same, Figure 1-Figure 3 The screen image data transmitted in the one-to-many transmission only includes public data. However, as the demand for one-to-many data transmission scenarios becomes more and more diverse, there is also a demand for one-to-many transmission of difference data on the basis of one-to-many transmission of public data, and the difference data is different data that multiple receiving devices need to receive. Among them, the public data and difference data of the one-to-many transmission can belong to the same service or different services, which is not limited in the embodiments of the present application.
[0076] For example, since the screens of different receiving devices may have different parameters such as resolution and aspect ratio, different receiving devices need to receive different screen adaptation data in order to better adapt to screens of different sizes. For another example, users of different receiving devices can perform personalized operations on the screen, such as adjusting the video progress, playing volume, selecting songs, adjusting playlists or switching songs, etc., so that different receiving devices need to send different control data to the sending device, and different receiving devices also need to receive different control response data to meet the personalized needs of users. For another example, different receiving devices play different subtitles of videos, so that different receiving devices need to receive different subtitle data. The above-mentioned screen adaptation data, control response data and subtitle data can all be difference data in the embodiments of the present application. In this case, the screen picture data includes difference data in addition to the common data.
[0077] In summary, for the one-to-many transmission of common data and difference data, how to transmit common data and difference data is an urgent problem to be solved. Figure 3Based on the reliable multicast framework shown, the sending device can establish additional multiple unicast channels with multiple receiving devices, so that the sending device can send difference data to multiple receiving devices one by one through the additional multiple unicast channels. In this case, the sending device establishes two unicast channels with any receiving device, one unicast channel is used to transmit packet loss retransmission messages, and the other unicast channel is used to transmit difference data. Although the transmission of difference data can be achieved, the additional multiple unicast channels will cause additional consumption of resources such as CPU and RAM.
[0078] An embodiment of the present application provides a data transmission method, which can use a unicast channel for transmitting packet loss retransmission messages under a reliable multicast framework that combines a reliable transmission protocol and an unreliable transmission protocol to transmit difference data, without the need to establish an additional unicast channel for transmitting difference data. This not only realizes the transmission of common data and difference data, but also reduces the overhead caused by transmitting difference data, thereby improving the efficiency of data transmission.
[0079] The embodiment of the present application does not limit the application scenarios of the data transmission method, and can be applied to any scenario that requires one-to-many transmission of public data and differential data. Optionally, the data transmission method provided in the embodiment of the present application can be applied to a one-to-many wireless screen projection scenario within a local area network. Exemplarily, the one-to-many wireless screen projection scenario within a local area network includes but is not limited to a smart cockpit multi-screen movie viewing scenario, a multi-screen karaoke scenario, a multi-screen online meeting, a multi-screen online education, a multi-screen video surveillance, and the like.
[0080] See also Figure 4 , Figure 4 A schematic diagram of an implementation environment of a data transmission method provided in an embodiment of the present application. Figure 4 As shown, the implementation environment includes a sending device and multiple receiving devices, and the number of the multiple receiving devices is not limited in this embodiment of the application. Figure 4 4 receiving devices are used as an example. One sending device transmits common data and difference data to multiple receiving devices, that is, multiple receiving devices need to receive the same common data from the sending device, and also need to receive different difference data from the sending device.
[0081] In one possible implementation, the sending device or the receiving device may be any electronic product that can perform human-computer interaction with a user through one or more methods such as a keyboard, a touchpad, a touch screen, a remote control, voice interaction, or a handwriting device, for example, a personal computer (PC), a smart phone, a personal digital assistant (PDA), a wearable device, a pocket PC (PPC), a tablet computer (portable android device, PAD), a large screen or a central control screen, etc.
[0082] Taking the one-to-many wireless screen projection scenario as an example, the sending device and each receiving device include a corresponding screen. The sending device is the initiator of the one-to-many service, and is also a device that displays and sends screen image data; each receiving device is the receiving end of the one-to-many service, and is also a device that receives and displays screen image data. The screen image data includes common data and difference data. Optionally, the sending device and each receiving device are connected to the same local area network, and the sending device transmits the common data and difference data to each receiving device through a channel in the local area network, which is displayed on the screen of each receiving device. The embodiment of the present application does not limit the manner in which the sending device and each receiving device are connected to the same local area network. For example, the sending device can start a soft hotspot (soft access point, soft AP) or use a wireless router to connect to the same local area network with each receiving device.
[0083] See also Figure 5 , Figure 5 A schematic diagram of a data transmission device provided in an embodiment of the present application. Figure 5 The data transmission device 501 shown can be Figure 4 A sending device or any receiving device in the implementation environment shown. Figure 5 As shown, the program code of the data transmission method provided in the embodiment of the present application exists in the reliable multicast module 509, and the reliable multicast module 509 is included in the transmission module 505 of the application 502, and the application 502 is deployed on the hardware of the data transmission device 501. When the data transmission method provided in the embodiment of the present application is executed, the program code of the data transmission method provided in the embodiment of the present application is loaded by the processor 508 and runs in the memory 507.
[0084] In the case of sending common data and difference data, the application 502 sequentially calls the transmission module 505, the reliable multicast module 509 and the network interface 506 through the data sending module 503 to send the common data and difference data. In the case of receiving common data and difference data, the common data and difference data are received through the network interface 506, and then the common data and difference data are submitted to the reliable multicast module 509, and the reliable multicast module 509 submits the common data and difference data to the data receiving module 504. The reliable multicast module 509 for the sending and receiving processing logic of the common data and difference data can be seen as follows Figure 6 The relevant description of the data transmission method shown is not repeated here.
[0085] See also Figure 6 , taking the interactive execution of the method by a first device and a plurality of second devices as an example, the data transmission method provided by the embodiment of the application is described. Since the interactive process between the first device and any second device among the plurality of second devices is the same, therefore, in Figure 6 In the example, only the interaction between a first device and a second device is used for demonstration. Figure 6 The data transmission method shown can be applied to Figure 4 In the implementation environment shown, for example, the first device corresponds to Figure 4 The sending device shown, the second device corresponds to Figure 4 For any receiving device among the multiple receiving devices shown in FIG. 1 , the structural schematic diagram of the first device and the second device can be as shown in FIG. Figure 5 As shown. Figure 6 As shown, the data transmission method includes but is not limited to the following steps 601 to 604.
[0086] Step 601: A first device sends common data to multiple second devices through a multicast channel, where the common data is the same data.
[0087] In an embodiment of the present application, the public data is the same data, which may refer to the public data being the same data sent by the first device that needs to be received between multiple second devices. Since the public data received by different second devices is the same, the first device can be connected to the same local area network with multiple second devices, and then send the public data to multiple second devices at one time through a multicast channel. For example, the first device can join the same multicast group with multiple second devices, and the first device sends public data based on the multicast group, and then the second devices belonging to the multicast group can all receive the public data. There is no need for multiple copies and transmissions of the same public data, which simplifies the transmission method of public data, improves the transmission efficiency of public data, and saves the consumption of resources such as CPU and RAM caused by transmitting public data.
[0088] In a possible implementation, the first device stores indication information corresponding to the plurality of second devices, the indication information indicating the storage location of the public data that has been sent but not yet confirmed, and the indication information corresponds to the identifier of the public data that has been sent but not yet confirmed. Optionally, the first device may create a corresponding multicast unanswered storage unit for each second device, for example, after the first device sends public data to the plurality of second devices through a multicast channel, the public data that has been sent but not yet confirmed is stored in the plurality of multicast unanswered storage units corresponding to the plurality of second devices, that is, the first device includes the plurality of multicast unanswered storage units corresponding to the plurality of second devices.
[0089] Since the public data sent by the first device to multiple second devices is the same, directly storing the public data that has been sent but not yet confirmed in the multicast unanswered storage unit corresponding to each second device will result in multiple copies and storage of the public data that has been sent but not yet confirmed, resulting in a large resource overhead. The embodiment of the present application does not limit the form of the multicast unanswered storage unit. For example, the multicast unanswered storage unit can be in the form of a list, a queue, or a linked list. Similarly, the unicast unanswered storage unit, the multicast receiving storage unit, the unicast receiving storage unit, etc. that appear in the embodiment of the present application can be in the form of a list, a queue, or a linked list.
[0090] In an embodiment of the present application, the public data that has been sent but not yet confirmed may not be directly stored in multiple multicast unanswered storage units corresponding to multiple second devices respectively, but indication information is stored in multiple multicast unanswered storage units corresponding to multiple second devices respectively, for example, the multicast unanswered storage unit corresponding to any second device is used to store the indication information. Exemplarily, the indication information may be a pointer to a storage location or a reference to a storage location, which is not limited in the embodiment of the present application. Thus, the storage location of the public data that has been sent but not yet confirmed can be found in the multicast unanswered storage unit through the stored indication information, that is, the public data that has been sent but not yet confirmed only needs to be stored once in the storage location, which effectively saves storage space.
[0091] For example, see Figure 7 The flowchart of the first device sending public data is shown. The first device pushes the public data to the multicast sending queue to wait for sending; the first device sends the public data in the multicast sending queue through the multicast channel, and then pushes the public data that has been sent but not yet confirmed to multiple multicast unanswered queues corresponding to multiple second devices respectively.
[0092] Step 602: The first device sends corresponding difference data to multiple second devices respectively through multiple unicast channels, and the difference data of each of the multiple second devices is different.
[0093] In the embodiment of the present application, the difference data of each of the multiple second devices is different, which may mean that the difference data of each of the multiple second devices is completely different; it may also mean that there are partial differences in the difference data of each of the multiple second devices, and different parts of the difference data between the multiple second devices are also different. For example, the difference data is different data sent by the first device that needs to be received between multiple second devices. The common data and difference data sent by the first device to multiple second devices may belong to the same service or to different services. Among them, one unicast channel corresponds to one second device, that is, the number of multiple unicast channels is the same as the number of multiple second devices. Exemplarily, the multiple second devices include a third device, a fourth device, a fifth device, a sixth device and a seventh device, then the first device sends the difference data corresponding to the third device to the third device through the first unicast channel corresponding to the third device, and the first device sends the difference data corresponding to the fourth device to the fourth device through the second unicast channel corresponding to the fourth device, and so on, and no longer repeat them one by one. Therefore, sending the difference data corresponding to any second device to any second device through the unicast channel corresponding to any second device can ensure the accurate transmission of the difference data.
[0094] Optionally, the execution order of the first device sending common data to multiple second devices through a multicast channel and the first device sending corresponding difference data to multiple second devices through multiple unicast channels is not limited. Optionally, the first device can simultaneously send common data to multiple second devices through a multicast channel and send corresponding difference data to multiple second devices through multiple unicast channels; or, the first device first sends common data to multiple second devices through a multicast channel and then sends corresponding difference data to multiple second devices through multiple unicast channels.
[0095] In a possible implementation, the first device also stores difference data that has been sent but not yet confirmed and corresponds to multiple second devices respectively. Optionally, the first device can create a corresponding unicast unanswered storage unit for each second device. For example, after the first device sends corresponding difference data to multiple second devices respectively through multiple unicast channels, the difference data sent to the third device but not yet confirmed is stored in the unicast unanswered storage unit corresponding to the third device, and the difference data sent to the fourth device but not yet confirmed is stored in the unicast unanswered storage unit corresponding to the fourth device, and so on. That is, the first device includes multiple unicast unanswered storage units that correspond to multiple second devices respectively, and the unicast unanswered storage unit corresponding to any second device is used for any second device to store difference data that has been sent but not yet confirmed.
[0096] For example, see Figure 7The flowchart of the first device sending difference data is shown. Taking the example of the first device sending difference data to the target device, the target device is any second device among multiple second devices, the first device determines the target device corresponding to the difference data and the unicast channel corresponding to the target device according to the difference data, and pushes the difference data to the unicast sending queue corresponding to the target device to wait for sending; the first device sends the difference data in the unicast sending queue corresponding to the target device through the unicast channel corresponding to the target device, and then pushes the difference data that has been sent but not yet confirmed to the unicast unanswered queue corresponding to the second device.
[0097] In a possible implementation, in addition to sending corresponding difference data to multiple second devices through multiple unicast channels, the first device also sends corresponding retransmission data to multiple second devices through the multiple unicast channels, and the retransmission data is at least one of the common data or difference data that needs to be retransmitted by different second devices. Since the common data transmitted through the multicast channel may have packet loss, it is necessary to retransmit the common data that has packet loss. Since the common data that needs to be retransmitted by different second devices may be different, all the corresponding retransmission data need to be transmitted through the corresponding unicast channel. The embodiment of the present application transmits retransmission data through multiple unicast channels that transmit difference data. There is no need to establish a separate unicast channel for transmitting retransmission data. While ensuring the transmission quality of common data, it is also possible to avoid the resource overhead of establishing additional unicast channels, thereby improving the efficiency of data transmission.
[0098] In an embodiment of the present application, the message containing the difference data carries a first difference identifier, and the first difference identifier is used by multiple second devices to identify the difference data received through the unicast channel; the message containing the public data carries a first public identifier, and the first public identifier is used by multiple second devices to identify the public data received through the unicast channel. For example, the first device can add a first difference identifier to the message containing the difference data sent through multiple unicast channels, and add a first public identifier to the message containing the public data sent through multiple unicast channels, which is equivalent to the first device marking the public data with the first public identifier and marking the difference data with the first difference identifier. In the case where the retransmitted data transmitted through the unicast channel includes the retransmitted public data, the first device will transmit both the difference data and the retransmitted public data through the unicast channel. Therefore, by carrying the first difference identifier in the message containing the difference data and carrying the first public identifier in the message containing the public data, it is convenient for the second device on the receiving side to identify whether the data corresponding to the message received through the unicast channel is public data or difference data, thereby improving the accuracy of data transmission.
[0099] Optionally, the first device may determine an identifier of the packet loss message based on the received feedback information for at least one of the common data or the difference data, and then obtain the packet loss message corresponding to the identifier in the stored unanswered storage unit as the retransmission data. Exemplarily, the feedback information may be a response message indicating that it has been received, such as an acknowledgment (ACK) message; the feedback information may be a packet loss request message indicating that retransmission is required, such as a negative acknowledgement (NACK) message.
[0100] The acquisition method of the public data that needs to be retransmitted in the retransmitted data can be that the first device receives the packet loss request message through the first unicast channel corresponding to the third device in the multiple unicast channels, and the third device is any second device in the multiple second devices; in the case where the packet loss request message includes the second public identifier and the first identifier of the public data that needs to be retransmitted, based on the second public identifier indicating the public data, the first indication information corresponding to the first identifier is obtained in the indication information corresponding to the third device, and the public data stored in the storage location indicated by the first indication information is used as the retransmitted data corresponding to the first unicast channel; in the case where the packet loss request message includes the second difference identifier and the second identifier of the difference data that needs to be retransmitted, based on the second difference identifier indicating the difference data, the difference data corresponding to the second identifier is obtained in the difference data that has been sent but not yet confirmed corresponding to the third device, and the difference data corresponding to the second identifier is used as the retransmitted data corresponding to the first unicast channel. Exemplarily, the first indication information corresponding to the first identifier is obtained in the multicast unanswered storage unit corresponding to the third device; the difference data corresponding to the second identifier is obtained in the unicast unanswered storage unit corresponding to the third device.
[0101] Among them, the third device is any second device among the multiple second devices, the second public identifier is used to indicate that the packet loss request message is a packet loss request message corresponding to the public data, the second public identifier can be the same as or different from the first public identifier, and the second difference identifier is used to indicate that the packet loss request message is a packet loss request message corresponding to the difference data, and the second difference identifier can be the same as or different from the first difference identifier. Thus, the public data that needs to be retransmitted in the retransmitted data corresponding to different unicast channels can be obtained through the stored multicast unanswered storage unit and the received packet loss request message, and the difference data that needs to be retransmitted in the retransmitted data corresponding to different unicast channels can be obtained through the stored unicast unanswered storage unit and the received packet loss request message, which ensures the accuracy of the acquisition of the retransmitted data. The accurate transmission of the retransmitted data solves the packet loss problem of data transmission, thereby improving the transmission quality of data transmission.
[0102] It can be known from the above introduction to the feedback information that the first device can also receive a response message returned through a unicast channel. Optionally, the processing method for the response message for public data can be that the first device receives the response message through the second unicast channel corresponding to the fourth device in multiple unicast channels. When the response message includes the third public identifier and the third identifier of the received public data, the second indication information corresponding to the third identifier in the indication information corresponding to the fourth device is deleted based on the third public identifier to indicate the public data; when the response message includes the third difference identifier and the fourth identifier of the received difference data, the difference data corresponding to the fourth identifier in the difference data that has been sent but not yet confirmed corresponding to the fourth device is deleted based on the third difference identifier to indicate the difference data. If multiple response messages are received through multiple unicast channels respectively, and the multiple response messages all include the third identifier, the public data stored in the storage location indicated by the second indication information is deleted. Exemplarily, the second indication information corresponding to the third identifier in the multicast unanswered storage unit corresponding to the fourth device is deleted; the difference data corresponding to the fourth identifier in the unicast unanswered storage unit corresponding to the fourth device is deleted.
[0103] The fourth device is any second device among the plurality of second devices, and the fourth device may be the same as or different from the third device. Thus, the indication information stored in the multicast unanswered storage unit is deleted in time through the received response message, and the stored public data is deleted in time through the received multiple response messages, so that the storage space of the first device can be saved.
[0104] Step 603: The second device receives the public data sent by the first device through the multicast channel.
[0105] In the embodiment of the present application, the second device is any second device among the plurality of second devices. Since the transceiver logic of the plurality of second devices is the same, the transceiver logic of the other second devices among the plurality of second devices is not described in detail in the embodiment of the present application. Optionally, the second device stores the public data received through the multicast channel. For example, the second device may create a multicast reception storage unit, which is used to store the received public data. For example, after the second device receives the public data sent by the first device through the multicast channel, it stores the public data in the multicast reception storage unit.
[0106] In a possible implementation, when it is determined that the public data corresponding to the first identifier is to be retransmitted, a packet loss request message including the second public identifier and the first identifier of the public data that needs to be retransmitted can be returned to the first device through a unicast channel; when it is determined that the public data corresponding to the third identifier is received, a response message including the third public identifier and the third identifier of the received public data can be returned to the first device through a unicast channel. Optionally, it can be determined based on the multicast receiving storage unit whether the public data corresponding to the first identifier needs to be retransmitted or whether the public data corresponding to the third identifier is received. For example, if the public data corresponding to the first identifier is not stored in the multicast receiving storage unit, it is determined that the public data corresponding to the first identifier needs to be retransmitted; if the public data corresponding to the third identifier has been stored in the unicast receiving storage unit, it is determined that the public data corresponding to the third identifier is received. By feedback of the packet loss request message including the second public identifier and the response message including the second public identifier, the first device can determine the reception status of the public data, and then can realize the packet loss retransmission of the public data, thereby improving the transmission quality of the public data.
[0107] For example, see Figure 8 The flowchart shown is that the second device receives public data through a multicast channel. The second device receives data through a multicast channel. When the received data is public data, the second device pushes the public data to a multicast receiving queue to wait for the second device's application to read it; the second device determines whether the public data has packet loss. If the public data has packet loss, the second device feeds back a corresponding packet loss request message to the first device through a unicast channel. If the public data has not been lost, the second device feeds back a corresponding response message to the first device through a unicast channel.
[0108] Step 604: The second device receives the difference data sent by the first device through a unicast channel.
[0109] In the embodiment of the present application, since the first device and the plurality of second devices respectively establish corresponding unicast channels, the unicast channel through which the second device receives the difference data in step 604 is the unicast channel corresponding to the second device. Optionally, the second device stores the difference data received through the unicast channel, for example, the second device may create a unicast receiving storage unit, and the unicast receiving storage unit is used to store the received difference data. For example, after the second device receives the difference data sent by the first device through the unicast channel, the second device stores the received difference data in the unicast receiving storage unit.
[0110] In the case where the second device receives the retransmission data sent by the first device through the unicast channel in addition to the difference data sent by the first device through the unicast channel, since the retransmission data may include public data that needs to be retransmitted, the second device needs to perform unicast sorting on the data received through the unicast channel, so as to push the public data received through the unicast channel to the multicast receiving storage unit, and push the difference data received through the unicast channel to the unicast receiving storage unit. Receiving the retransmission data through the unicast channel that receives the difference data allows the retransmission data and the retransmission data to be transmitted through the same unicast channel, without the need to establish a separate unicast channel for transmitting the retransmission data. While ensuring the transmission quality of the public data through retransmission, the resource overhead caused by the additional establishment of a unicast channel can also be avoided, thereby improving the data transmission efficiency.
[0111] In one possible implementation, a message containing common data received through a unicast channel carries a first common identifier, and a message containing difference data received through a unicast channel carries a first difference identifier; the second device identifies the message received through the unicast channel based on the first common identifier and the first difference identifier, and stores the identified common data and difference data separately. For example, the second device can identify the message received through the unicast channel based on the first common identifier and the first difference identifier, store the data in the message identified as the first common identifier as common data in a multicast receiving storage unit, and store the data in the message identified as the first difference identifier as difference data in a unicast receiving storage unit. Through the application of the first common identifier and the first difference identifier, the second device can accurately identify whether the data received through the unicast channel is common data or difference data, thereby improving the accuracy of the received data.
[0112] Similar to the feedback information for public data described above, when it is determined that the difference data corresponding to the second identifier is to be retransmitted, a packet loss request message including the second difference identifier and the second identifier of the difference data to be retransmitted can be returned to the first device through the unicast channel; when it is determined that the difference data corresponding to the fourth identifier is received, a response message including the third difference identifier and the fourth identifier of the received difference data can be returned to the first device through the unicast channel. Optionally, it can be determined based on the unicast receiving storage unit whether the difference data corresponding to the second identifier needs to be retransmitted or whether the difference data corresponding to the fourth identifier is received. For example, if the difference data corresponding to the second identifier is not stored in the unicast receiving storage unit, it is determined that the difference data corresponding to the second identifier needs to be retransmitted; if the difference data corresponding to the fourth identifier is already stored in the unicast receiving storage unit, it is determined that the difference data corresponding to the fourth identifier is received. By feedback of the packet loss request message including the second difference identifier and the response message including the third difference identifier, the first device can determine the reception of the difference data, and then can realize the packet loss retransmission of the difference data, thereby improving the transmission quality of the difference data.
[0113] For example, see Figure 8 The flowchart shown is that the second device receives unicast data through a unicast channel, wherein the unicast data includes difference data and retransmission data. The second device receives unicast data through a unicast channel, and determines whether the unicast data received through the unicast channel is difference data. If the received unicast data is difference data, the second device pushes the difference data to the unicast receiving queue to wait for the application of the second device to read it; then the second device determines whether the difference data has packet loss. If the difference data has packet loss, the corresponding packet loss request message is fed back to the first device through the unicast channel. If the difference data has not been lost, the corresponding response message is fed back to the first device through the unicast channel. If the received unicast data is not difference data, it indicates that the received unicast data is the retransmitted common data in the retransmission data, and the second device pushes the retransmitted common data to the multicast receiving queue to wait for the application of the second device to read it.
[0114] In summary, through the above steps 601-604, the first device sends common data, difference data and retransmission data to multiple second devices. In the one-to-many data transmission scenario, in addition to the first device sending difference data to multiple second devices, there is also a situation where any second device sends difference data to the first device, that is, different difference data need to be exchanged between the first device and the multiple second devices. Optionally, the difference data sent by the above-mentioned first device to multiple second devices is called first difference data, and the difference data sent by any second device to the first device is called second difference data, and the second difference data is different data sent by different second devices to the first device.
[0115] In the case where the second device sends the second difference data to the first device, the second device can send the second difference data to the first device through the unicast channel for receiving the first difference data. Optionally, the second device creates a unicast unanswered storage unit, which is used to store the second difference data that has been sent but not yet confirmed. For example, after the second device sends the second difference data to the first device through the unicast channel, it can store the second difference data that has been sent but not yet confirmed, for example, in the unicast unanswered storage unit. The logic of the second device sending the second difference data is similar to the logic of the first device sending the first difference data, which will not be repeated here.
[0116] In a possible implementation, the first device receives the second difference data sent by the fifth device through a third unicast channel corresponding to the fifth device in multiple unicast channels, and the fifth device is any second device among the multiple second devices. The logic of the first device receiving the second difference data is similar to the logic of the second device receiving the first difference data, which will not be repeated here. As a result, the first device and multiple second devices can transmit difference data to each other, which improves the transmission flexibility of the difference data and meets more diverse one-to-many data transmission scenarios. In addition, the unicast channel used by the first device to transmit the first difference data and retransmission data to the second device can also be used by the second device to transmit the second difference data to the first device, further improving the utilization rate of the unicast channel and reducing the resource overhead caused by data transmission.
[0117] For example, see Fig. 9 The flowchart shown is a second device sending difference data to a first device. Fig. 9 The difference data in corresponds to the second difference data in the embodiment of the present application. Fig. 9 As shown, when the second device sends difference data to the first device, the second device pushes the difference data to the unicast sending queue to wait for sending, and the second device sends the difference data in the unicast sending queue through the unicast channel, and then pushes the sent but not yet confirmed difference data to the unicast unanswered queue until the response message corresponding to the difference data is received, and then deletes the difference data stored in the unicast unanswered queue. In this way, the second device can send the second difference data to the first device through the unicast channel.
[0118] Optionally, after the first device receives the second difference data sent by the fifth device through the third unicast channel corresponding to the fifth device among the multiple unicast channels, the second difference data can be stored in the unicast receiving storage unit corresponding to the fifth device. In the case where the second difference data corresponding to the fifth identifier is determined to need to be retransmitted based on the unicast receiving storage unit corresponding to the fifth device, a packet loss request message including the fourth difference identifier and the fifth identifier of the second difference data that needs to be retransmitted is sent to the fifth device through the third unicast channel; in the case where the second difference data corresponding to the sixth identifier is determined to be received based on the unicast receiving storage unit corresponding to the fifth device, a response message including the fifth difference identifier and the sixth identifier of the received second difference data is sent to the fifth device through the third unicast channel. Through the feedback of the packet loss request message and the response message, the fifth device can determine the reception status of the second difference data, and then can realize the packet loss retransmission of the second difference data, thereby improving the transmission quality of the second difference data.
[0119] Similarly, if the second device receives a packet loss request message including a fourth difference identifier and a fifth identifier of second difference data that needs to be retransmitted, which is returned by the first device through a unicast channel; then the second difference data corresponding to the fifth identifier is obtained in the unicast unanswered storage unit, and the second difference data corresponding to the fifth identifier is sent to the first device through the unicast channel as retransmitted data. If a reply message including a fifth difference identifier and a sixth identifier of the received second difference data is received from the first device through a unicast channel; then the second difference data corresponding to the sixth identifier in the unicast unanswered storage unit is deleted. The second difference data that needs to be retransmitted can be obtained through the unicast unanswered storage unit and the packet loss request message, thereby ensuring the accuracy of the acquisition of the retransmitted data. The second difference data stored in the unicast unanswered storage unit is deleted in a timely manner through the reply message, thereby saving the storage space of the second device.
[0120] For example, see Fig.10The flowchart of the first device receiving data through the unicast channel is shown. The first device receives data through the unicast channel, determines whether the data received through the unicast channel is difference data, and if the received data is difference data, the first device pushes the difference data to the unicast receiving queue to wait for the first device's application to read it. In the case that the received data is not difference data, determine whether the received data is a reply message. If the received data is a reply message, further determine whether the reply message is a multicast reply message. The multicast reply message is the reply message corresponding to the public data. In the case that the reply message is a multicast reply message, the replied public data is deleted from the multicast unanswered queue. In the case that the reply message is not a multicast reply message, it indicates that the reply message is a unicast reply message, and the unicast reply message is the reply message corresponding to the difference data. The replied difference data is deleted from the unicast unanswered queue. If the received data is not a reply message, it indicates that the received data is a packet loss request message. The requested public data is pushed from the multicast unanswered queue to the unicast sending queue to wait for sending. The requested public data is the public data that needs to be retransmitted, and then the public data that needs to be retransmitted in the unicast sending queue is sent through the unicast channel.
[0121] The method provided in the embodiment of the present application realizes one-to-many transmission of public data through a multicast channel, thereby improving the transmission efficiency of public data and reducing the resource overhead of transmitting public data; on this basis, the method realizes one-to-many transmission of differential data through multiple unicast channels, so that in a one-to-many data transmission scenario, both public data and differential data can be transmitted, making the data type of the one-to-many transmission data richer, and because the differential data can enable different second devices to perform different personalized operations, the method can better meet the diverse one-to-many data transmission scenario requirements.
[0122] In the following, the first device is used as a sending device and the second device is used as a receiving device. Fig.11 The flowchart of the data transmission method shown in the figure illustrates the data transmission method provided in the embodiment of the present application. In the embodiment of the present application, there are multiple receiving devices, and the receiving and sending logic of the multiple receiving devices for common data and difference data is the same. Therefore, the embodiment of the present application takes the receiving and sending logic of one receiving device for common data and difference data as an example for explanation. Fig.11 The first difference data shown in the figure represents the difference data sent by the sending device to the receiving device, and the second difference data represents the difference data sent by the receiving device to the sending device. That is, the sending device and the receiving device can transmit the difference data to each other through the same unicast channel.
[0123] like Fig.11As shown, the sending device includes a multicast sending end, and the receiving device includes a multicast receiving end. Since unicast and multicast are closely coupled in the data transmission scenario, the unicast under multicast is called a unicast member of the multicast. In the embodiment of the present application, public data refers to public data including multiple public data messages, and differential data refers to differential data including multiple differential data messages. Fig.11 Each square in represents a message, so Fig.11 The public data shown in includes 4 public data messages, Fig.11 The first difference data and the second difference data shown in each include three difference data messages.
[0124] exist Fig.11 In step ① shown, the sending device sends the public data in the multicast sending queue to the multicast receiving end through the multicast channel. In the embodiment of the present application, the sending device sends the public data through the multicast channel, and the public data will be received by multiple receiving devices. Fig.11 A receiving device is used as an example for demonstration. When a sending device sends public data through a multicast channel, the sending device will push the public data message that has been sent but not yet confirmed to the multicast unanswered queue corresponding to the receiving device, and delete the public data message in the multicast unanswered queue after receiving the reply message corresponding to the public data message. In the case where there are multiple receiving devices, the multicast unicast members of the sending device also include multiple, that is, one receiving device corresponds to one multicast unicast member, then the public data message that has been sent but not yet confirmed will be pushed to multiple multicast unanswered queues corresponding to multiple unicast members respectively.
[0125] Optionally, the method of pushing the public data messages that have been sent but not yet confirmed to the multiple multicast unanswered queues corresponding to the multiple unicast members can be that the indication information of the storage location of the public data messages that have been sent but not yet confirmed is stored in the multiple multicast unanswered queues. That is, what is stored in the multiple multicast unanswered queues is the indication information rather than the data itself, and the public data messages that have been sent but not yet confirmed only need to be stored in the corresponding storage location, and then the public data messages stored in the storage location will be deleted only after the multiple unicast members of the multicast have responded to the public data messages. In this way, the increase in RAM overhead caused by copying the public data that has been sent but not yet confirmed multiple times in the multiple multicast unanswered queues can be avoided.
[0126] exist Fig.11 In step ② shown in FIG. 1 , the receiving device delivers the public data message received by the multicast receiving end to the multicast receiving queue in the unicast member of the multicast. Optionally, in executing Fig.11After step ① shown, the receiving device will receive the public data message sent by the sending device through the multicast channel. The public data message will be directly delivered to the unicast member of the multicast and stored in the multicast receiving queue of the unicast member, waiting to be read by the application of the sending device.
[0127] exist Fig.11 In step ③ shown, the sending device sends the first difference data in the unicast sending queue through a unicast channel. When the application of the sending device starts the reliable multicast transmission provided by the embodiment of the present application, the public data is sent through step ①, and the difference data is sent through this step ③, and these two steps ① and ③ can be executed simultaneously. When the number of receiving devices is multiple, the sending device needs to determine which receiving device is the target receiving device of the first difference data, and select the unicast sending queue in the corresponding unicast member to send the corresponding first difference data. Similar to step ①, when the sending device sends the first difference data through a unicast channel, the sending device will push the first public data message that has been sent but not yet confirmed to the unicast unanswered queue corresponding to the receiving device, and delete the first difference data message in the unicast unanswered queue until the reply message corresponding to the first difference data message is received.
[0128] In one possible implementation, since data transmission based on a multicast channel is unreliable, there may be packet loss in the public data transmitted through the multicast channel. Therefore, in the case of packet loss in the public data, the sending device needs to retransmit the public data message that has packet loss. Optionally, in step ③, the unicast sending queue of the sending device includes, in addition to the first difference data, the public data message that needs to be retransmitted, or also includes the first difference data message that needs to be retransmitted. Then, the sending device also sends the retransmitted data in the unicast sending queue through the unicast channel, and the retransmitted data includes at least one of the public data message or the first difference data message that needs to be retransmitted corresponding to the receiving device.
[0129] exist Fig.11In step ④ shown, the receiving device performs unicast sorting on the unicast data received through the unicast channel, and pushes the public data message in the unicast data to the multicast receiving queue, and pushes the first difference data message in the unicast data to the unicast receiving queue. After executing step ③, since the unicast data received by the receiving device through the unicast channel may include the first difference data and may also include public data, the receiving device is required to distinguish the received unicast data through unicast sorting. Optionally, when sending unicast data, the sending device will mark the public data and the first difference data with different identifiers, so that the receiving device can distinguish the public data and the first difference data in the unicast data through the identifiers. The embodiment of the present application does not limit the method of marking different identifiers for the public data and the first difference data, and it can be used to distinguish the public data from the first difference data, for example, adding a first public identifier to the public data message, and adding a first difference identifier to the first public data message.
[0130] exist Fig.11 In step ⑤ shown, when the receiving device receives the common data message or the first difference data message, the receiving device returns a corresponding response message to the sending device; when the receiving device detects that the common data message or the first difference data message has packet loss, the receiving device returns a corresponding packet loss request message to the sending device. Exemplarily, during the receiving process of step ② and step ④, if the common data message is successfully received, a response message including the third common identifier corresponding to the common data message is sent through a unicast channel; if packet loss of the common data message is detected, a packet loss request message including the second common identifier corresponding to the common data message is sent through a unicast channel. In addition, during the receiving process of step ④, if the first difference data message is successfully received, a response message including the third difference identifier corresponding to the first difference data message is also sent through a unicast channel; if packet loss of the first difference data message is detected, a packet loss request message including the second difference identifier corresponding to the first difference data message is also sent through a unicast channel.
[0131] exist Fig.11In step ⑥ shown, the sending device receives a reply message or a packet loss request message returned by the receiving device through a unicast channel. Among them, after the sending device receives the reply message from the receiving device through the unicast channel, if the reply message includes the third public identifier and indicates that it is a reply message corresponding to the public data message, the replied public data message in the multicast unanswered queue will be deleted; if the reply message includes the third difference identifier and indicates that it is a reply message corresponding to the first difference data message, the replied first difference data message in the unicast unanswered queue will be deleted. In the case where the multicast unanswered queue stores the indication information of the storage location of the public data message, the indication information of the storage location of the replied public data message in the multicast unanswered queue is deleted. If the sending device receives the reply messages corresponding to the public data messages returned by all the receiving devices, the public data message stored in the storage location will also be deleted.
[0132] In the embodiment of the present application, after the sending device receives the packet loss request message of the receiving device through the unicast channel, if the packet loss request message includes the second public identifier and indicates that it is a packet loss request message corresponding to the public data message, the public data message that needs to be retransmitted is found in the multicast unanswered queue and pushed to the unicast sending queue of the unicast member. If the packet loss request message includes the second difference identifier and indicates that it is a packet loss request message corresponding to the first difference data message, the first difference data message that needs to be retransmitted is found in the unicast unanswered queue and is also pushed to the sending queue of the unicast member.
[0133] exist Fig.11 In step ⑦ shown, the receiving device sends the second difference data in the unicast sending queue through the unicast channel, and the sending device pushes the second difference data received through the unicast channel to the unicast receiving queue. Therefore, in the case where the receiving device needs to send the second difference data to the sending device, the embodiment of the present application can send the second difference data through the unicast channel of the unicast member of the receiving device, so that the unicast channel of a unicast member can be used to transmit the first difference data, retransmission data and the second difference data, thereby improving the utilization rate of the unicast channel and reducing the resource overhead caused by transmitting data. Similarly, the unicast members of the receiving device also include a unicast unanswered queue, which is similar to the unicast unanswered queue of the sending device. Fig.11 Not repeated in .
[0134] In summary, the application of the final receiving device can obtain the common data and differential data by reading the multicast receiving queue and the unicast receiving queue, thereby realizing the transmission of the common data and differential data. And because the transmission of the common data and differential data uses the same unicast channel, the resource overhead caused by the transmission of the common data and differential data is relatively small.
[0135] Below, the data transmission method provided by the embodiment of the present application is illustrated by taking the scenario of projecting the screen of the central control screen in the smart cockpit to multiple rear-row PADs as an example. Fig.12 The central control screen corresponds to the first device or sending device in the embodiment of the present application, and the number of multiple rear-row PADs is 4, corresponding to the 4 second devices or receiving devices in the embodiment of the present application, that is, a one-to-four screen projection scenario.
[0136] Optionally, the transmission protocol used between the central control screen and multiple rear-row PADs is VTP, where VTPM is the port of the multicast channel, and VTP1-4 are the ports of four unicast channels respectively. The central control screen connects to the same LAN with multiple rear-row PADs by starting softAP. During the screen projection process, rear passengers can control the audio volume, video progress, etc. through the PAD, or select subtitles displayed on the PAD. If the screen resolution and aspect ratio of the four rear-row PADs are different, the central control screen also needs to send different picture adaptation data to the four rear-row PADs.
[0137] exist Fig.12 In the scenario shown, the common data is the same picture data displayed by the rear PAD, and the difference data is the control data of the rear passengers for the audio volume, video progress, different subtitle stream data, and different PAD screen adaptation data. Among them, the subtitle stream data and screen adaptation data in the difference data correspond to the first difference data in the embodiment of the present application, and the subtitle stream data and screen adaptation data are transmitted from the central control screen to each PAD. The control data corresponds to the second difference data in the embodiment of the present application, and the control data is transmitted from each PAD to the central control screen. The difference data received or sent by different PADs are different, so the central control screen exchanges difference data 1-4 with the rear PADs 1-4 through VTP1-4 respectively.
[0138] In the embodiment of the present application, the common data and the difference data 1-4 can be transmitted simultaneously. The implementation method of transmitting the common data and the difference data between the central control screen and the multiple rear PADs can be found in Figure 6 or Fig.11 The implementation of the data transmission method shown will not be described in detail here.
[0139] The above describes the data transmission method of the embodiment of the present application. Corresponding to the above method, the embodiment of the present application also provides a data transmission device. Fig.13 is a schematic diagram of a data transmission device provided in an embodiment of the present application, the device is applied to a first device, the first device is the above-mentioned Figure 6 The first device shown, or the first device is the above Fig.11 The sending device shown. Fig.13 As shown in the following multiple modules, the Fig.13The data transmission device shown can perform all or part of the operations performed by the first device. It should be understood that the device may include more additional modules than the modules shown or omit some of the modules shown, and the embodiments of the present application are not limited to this. Fig.13 As shown, the device comprises:
[0140] The transceiver module 1301 is used to execute Figure 6 The receiving and / or sending related operations performed by the first device in the data transmission method shown, or for performing Fig.11 Receiving and / or sending related operations performed by a sending device in the data transmission method shown;
[0141] Processing module 1302, for executing Figure 6 Other operations other than the receiving and / or sending related operations performed by the first device in the data transmission method shown, or for performing Fig.11 Other operations besides the receiving and / or sending related operations performed by the sending device in the data transmission method shown.
[0142] In a possible implementation, the transceiver module includes a receiving module and / or a sending module. The receiving module is used to perform reception-related operations, and the sending module is used to perform sending-related operations.
[0143] In a possible implementation, the transceiver module 1301 is used to send common data to multiple second devices through a multicast channel, where the common data is the same data; and to send corresponding difference data to multiple second devices through multiple unicast channels, where the difference data of each device is different.
[0144] In a possible implementation, the transceiver module 1301 is further configured to send corresponding retransmission data to multiple second devices respectively through multiple unicast channels, where the retransmission data is at least one of common data or difference data that needs to be retransmitted by different second devices.
[0145] In one possible implementation, the message containing the difference data carries a first difference identifier, which is used by multiple second devices to identify the difference data received through a unicast channel; the message containing the public data carries a first public identifier, which is used by multiple second devices to identify the public data received through a unicast channel.
[0146] In a possible implementation manner, the first device stores indication information corresponding to the plurality of second devices respectively and difference data that has been sent but not yet confirmed, the indication information indicating a storage location of the public data that has been sent but not yet confirmed, and the indication information corresponds to an identifier of the public data that has been sent but not yet confirmed; the transceiver module 1301 is further used to receive a packet loss request message through a first unicast channel corresponding to a third device in the plurality of unicast channels, the third device being any second device among the plurality of second devices; in the case where the packet loss request message includes a second public identifier and a first identifier of the public data that needs to be retransmitted, the public data is indicated based on the second public identifier, first indication information corresponding to the first identifier is obtained in the indication information corresponding to the third device, and the public data stored in the storage location indicated by the first indication information is used as the retransmitted data corresponding to the first unicast channel; in the case where the packet loss request message includes a second difference identifier and a second identifier of the difference data that needs to be retransmitted, the difference data is indicated based on the second difference identifier, the difference data corresponding to the second identifier is obtained in the difference data that has been sent but not yet confirmed corresponding to the third device, and the difference data corresponding to the second identifier is used as the retransmitted data corresponding to the first unicast channel.
[0147] In a possible implementation, the transceiver module 1301 is also used to receive a reply message through a second unicast channel corresponding to a fourth device in multiple unicast channels, where the fourth device is any second device among the multiple second devices; in a case where the reply message includes a third public identifier and a third identifier of the received public data, based on the third public identifier indicating the public data, the second indication information corresponding to the third identifier in the indication information corresponding to the fourth device is deleted; in a case where the reply message includes a third difference identifier and a fourth identifier of the received difference data, based on the third difference identifier indicating the difference data, the difference data corresponding to the fourth identifier in the difference data that has been sent but not yet confirmed corresponding to the fourth device is deleted; in a case where multiple reply messages are received through multiple unicast channels respectively, and the multiple reply messages all include the third public identifier and the third identifier, the public data stored in the storage location indicated by the second indication information is deleted.
[0148] The device provided in the embodiment of the present application realizes one-to-many transmission of public data through a multicast channel, thereby improving the transmission efficiency of public data and reducing the resource overhead of transmitting public data; on this basis, the method realizes one-to-many transmission of differential data through multiple unicast channels, so that in the one-to-many data transmission scenario, both public data and differential data can be transmitted, making the data type of the one-to-many transmission data richer, and because the differential data can enable different second devices to perform different personalized operations, the method can better meet the diverse one-to-many data transmission scenario requirements.
[0149] Fig.14is a structural diagram of a data transmission device provided in an embodiment of the present application, the device is applied to a second device, the second device is the above Figure 6 The second device shown, or the second device is the above Fig.11 The receiving device shown. Fig.14 As shown in the following multiple modules, the Fig.14 The data transmission device shown can perform all or part of the operations performed by the second device. It should be understood that the device may include more additional modules than the modules shown or omit some of the modules shown, and the embodiments of the present application are not limited to this. Fig.14 As shown, the device comprises:
[0150] The transceiver module 1401 is used to execute Figure 6 The receiving and / or sending related operations performed by the second device in the data transmission method shown, or for performing Fig.11 Receiving and / or sending related operations performed by a receiving device in the data transmission method shown;
[0151] Processing module 1402, for executing Figure 6 Other operations other than the receiving and / or sending related operations performed by the second device in the data transmission method shown, or for performing Fig.11 Other operations besides the receiving and / or sending related operations performed by the receiving device in the data transmission method shown.
[0152] In a possible implementation, the transceiver module includes a receiving module and / or a sending module. The receiving module is used to perform reception-related operations, and the sending module is used to perform sending-related operations.
[0153] In a possible implementation, the transceiver module 1401 is used to receive common data sent by the first device through a multicast channel, where the common data is the same data; and receive difference data sent by the first device through a unicast channel, where the difference data of the multiple devices are different.
[0154] In a possible implementation, the transceiver module 1401 is further configured to receive retransmission data sent by the first device through a unicast channel, where the retransmission data is at least one of common data or difference data that the second device needs to retransmit.
[0155] In one possible implementation, a message containing common data received through a unicast channel carries a first common identifier, and a message containing difference data received through a unicast channel carries a first difference identifier; a processing module 1402 is used to store common data received through a multicast channel; based on the first common identifier and the first difference identifier, the message received through the unicast channel is identified, and the identified common data and difference data are stored separately.
[0156] In a possible implementation, the transceiver module 1401 is also used to return a packet loss request message including a second public identifier and the first identifier of the public data that needs to be retransmitted to the first device through a unicast channel when it is determined that the public data corresponding to the first identifier needs to be retransmitted; and return a response message including a third public identifier and the third identifier of the received public data to the first device through a unicast channel when it is determined that the public data corresponding to the third identifier is received.
[0157] In a possible implementation, the transceiver module 1401 is also used to return a packet loss request message including a second difference identifier and the second identifier of the difference data that needs to be retransmitted to the first device through a unicast channel when it is determined that the difference data corresponding to the second identifier needs to be retransmitted; and return a response message including a third difference identifier and the fourth identifier of the received difference data to the first device through a unicast channel when it is determined that the difference data corresponding to the fourth identifier is received.
[0158] The device receives common data and difference data through a multicast channel and a unicast channel respectively, realizes the transmission of common data and difference data in a one-to-many data transmission scenario, and makes the data type of the one-to-many data transmission richer. And because the second device can perform different personalized operations according to the difference data, the method can better meet the diverse one-to-many data transmission scenario requirements.
[0159] It should be understood that the above Fig.13 When the device provided in or 14 realizes its functions, only the division of the above-mentioned functional modules is used as an example. In actual applications, the above-mentioned functions can be assigned to different functional modules as needed, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. In addition, the device and method embodiments provided in the above embodiments belong to the same concept, and the specific implementation process is detailed in the method embodiment, which will not be repeated here.
[0160] See also Fig.15 , Fig.15 A schematic structural diagram of a data transmission device 2000 provided by an exemplary embodiment of the present application is shown. Fig.15 The data transmission device 2000 shown is used to perform the above Figure 6Or the operations involved in the data transmission method shown in Figure 11. The data transmission device 2000 is, for example, a data transmission device, an electronic device, a central control screen, a PAD, etc. The data transmission device 2000 can be implemented by a general bus architecture.
[0161] like Fig.15 As shown, the data transmission device 2000 includes at least one processor 2001 , a memory 2003 and at least one communication interface 2004 .
[0162] The processor 2001 is, for example, a general-purpose central processing unit (CPU), a digital signal processor (DSP), a network processor (NP), a graphics processing unit (GPU), a neural-network processing units (NPU), a data processing unit (DPU), a microprocessor, or one or more integrated circuits for implementing the solution of the present application. For example, the processor 2001 includes an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. The PLD is, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof. It can implement or execute various logic blocks, modules, and circuits described in conjunction with the disclosure of the embodiments of the present invention. The processor can also be a combination that implements a computing function, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like.
[0163] Optionally, the data transmission device 2000 further includes a bus. The bus is used to transmit information between the components of the data transmission device 2000. The bus may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig.15 The fact that only one line is used in the diagram does not mean that there is only one bus or only one type of bus.
[0164] The memory 2003 is, for example, a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, or a random access memory (RAM) or other types of dynamic storage devices that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory 2003 is, for example, independent and connected to the processor 2001 via a bus. The memory 2003 can also be integrated with the processor 2001.
[0165] The communication interface 2004 uses any transceiver-like device to communicate with other devices or communication networks, and the communication network can be Ethernet, radio access network (RAN) or wireless local area network (WLAN), etc. The communication interface 2004 may include a wired communication interface and may also include a wireless communication interface. Specifically, the communication interface 2004 may be an Ethernet interface, a Fast Ethernet (FE) interface, a Gigabit Ethernet (GE) interface, an Asynchronous Transfer Mode (ATM) interface, a wireless local area network (WLAN) interface, a cellular network communication interface or a combination thereof. The Ethernet interface may be an optical interface, an electrical interface or a combination thereof. In an embodiment of the present application, the communication interface 2004 may be used for the data transmission device 2000 to communicate with other devices.
[0166] In a specific implementation, as an embodiment, the processor 2001 may include one or more CPUs, such as Fig.15 0 and CPU1 shown in FIG. Each of these processors may be a single-core CPU processor or a multi-core CPU processor. A processor herein may refer to one or more devices, circuits, and / or processing cores for processing data (e.g., computer program instructions).
[0167] In a specific implementation, as an embodiment, the data transmission device 2000 may include multiple processors, such as Fig.15 2001 and 2005 are shown in FIG. Each of these processors may be a single-core CPU or a multi-core CPU. A processor herein may refer to one or more devices, circuits, and / or processing cores for processing data (such as computer program instructions).
[0168] In a specific implementation, as an embodiment, the data transmission device 2000 may also include an output device and an input device. The output device communicates with the processor 2001 and can display information in a variety of ways. For example, the output device may be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector. The input device communicates with the processor 2001 and can receive user input in a variety of ways. For example, the input device may be a mouse, a keyboard, a touch screen device, or a sensor device.
[0169] In some embodiments, the memory 2003 is used to store the program code 2010 for executing the solution of the present application, and the processor 2001 can execute the program code 2010 stored in the memory 2003. That is, the data transmission device 2000 can implement the data transmission method provided by the method embodiment through the processor 2001 and the program code 2010 in the memory 2003. The program code 2010 may include one or more software modules. Optionally, the processor 2001 itself can also store the program code or instruction for executing the solution of the present application.
[0170] In a specific embodiment, the data transmission device 2000 of the embodiment of the present application may correspond to the first device in each of the above method embodiments, and the processor 2001 in the data transmission device 2000 reads the instruction in the memory 2003, so that Fig.15 The data transmission device 2000 shown is capable of performing all or part of the operations performed by the first device.
[0171] Specifically, processor 2001 is used to send common data to multiple second devices through a multicast channel, where the common data is the same data received by different second devices; and send corresponding difference data to multiple second devices through multiple unicast channels respectively, where the difference data is different data received by different second devices.
[0172] For the sake of brevity, other optional implementations are not described here in detail.
[0173] For another example, the data transmission device 2000 in the embodiment of the present application may correspond to the second device in each of the above method embodiments, and the processor 2001 in the data transmission device 2000 reads the instruction in the memory 2003, so that Fig.15 The data transmission device 2000 shown is capable of performing all or part of the operations performed by the second device.
[0174] Specifically, processor 2001 is used to carry a first public identifier in a message containing public data received through a unicast channel, and to carry a first difference identifier in a message containing difference data received through a unicast channel; the method also includes: storing public data received through a multicast channel; identifying the message received through the unicast channel based on the first public identifier and the first difference identifier, and storing the identified public data and difference data separately.
[0175] For the sake of brevity, other optional implementations are not described here in detail.
[0176] The data transmission device 2000 may also correspond to the above Fig.13 In the data transmission device shown in FIG. 14 , each functional module in the data transmission device is implemented by the software of the data transmission device 2000. In other words, the functional modules included in the data transmission device are generated after the processor 2001 of the data transmission device 2000 reads the program code 2010 stored in the memory 2003.
[0177] in, Figure 6 Each step of the data transmission method shown in or 11 is completed by the hardware integrated logic circuit or software instructions in the processor of the data transmission device 2000. The steps of the method disclosed in the embodiment of the present application can be directly embodied as a hardware processor, or a combination of hardware and software modules in the processor. The software module can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware. To avoid repetition, it is not described in detail here.
[0178] The embodiment of the present application also provides a data transmission system, the processing system includes: a first device and a second device. For example, the first device is Figure 5 The data transmission device 501 shown is either Fig.15 The data transmission device 2000 shown in FIG. Figure 5 The data transmission device 501 shown is either Fig.15 The data transmission method performed by the first device and the second device can refer to the above Figure 6 The relevant description of the illustrated embodiment will not be repeated here.
[0179] The embodiment of the present application also provides a communication device, which includes: a transceiver, a memory, and a processor. The transceiver, the memory, and the processor communicate with each other through an internal connection path, the memory is used to store instructions, and the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and control the transceiver to send signals, and when the processor executes the instructions stored in the memory, the processor executes the method required to be executed by the first device.
[0180] The embodiment of the present application also provides a communication device, which includes: a transceiver, a memory, and a processor. The transceiver, the memory, and the processor communicate with each other through an internal connection path, the memory is used to store instructions, and the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and control the transceiver to send signals, and when the processor executes the instructions stored in the memory, the processor executes the method required to be executed by the second device.
[0181] It should be understood that the processor may be a CPU, or other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), field-programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or any conventional processor, etc. It is worth noting that the processor may be a processor supporting the advanced reduced instruction set machine (ARM) architecture.
[0182] Further, in an optional embodiment, the memory may include a read-only memory and a random access memory, and provide instructions and data to the processor. The memory may also include a non-volatile random access memory. For example, the memory may also store information about the device type.
[0183] The memory may be a volatile memory or a nonvolatile memory, or may include both volatile and nonvolatile memory. Among them, the nonvolatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example but not limitation, many forms of RAM are available. For example, static RAM (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM) and direct RAM bus random access memory (DR RAM).
[0184] An embodiment of the present application further provides a computer-readable storage medium, in which at least one instruction is stored. The instruction is loaded and executed by a processor so that a computer implements any of the above data transmission methods.
[0185] The embodiments of the present application also provide a computer program (product), which, when executed by a computer, can enable a processor or a computer to execute the corresponding steps and / or processes in the above method embodiments.
[0186] An embodiment of the present application also provides a chip, including a processor, for calling and executing instructions stored in the memory from the memory, so that a communication device equipped with the chip executes any of the above data transmission methods.
[0187] An embodiment of the present application also provides another chip, including: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected via an internal connection path, and the processor is used to execute the code in the memory. When the code is executed, the processor is used to execute any of the above data transmission methods.
[0188] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on the computer, the process or function according to the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website site, a computer, a server or a data center to another website site, a computer, a server or a data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) mode. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or a data center that includes one or more available media integration. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state drive (solid state disk)), etc.
[0189] Those of ordinary skill in the art will appreciate that, in conjunction with the various method steps and modules described in the embodiments disclosed herein, they can be implemented in software, hardware, firmware, or any combination thereof. In order to clearly illustrate the interchangeability of hardware and software, the steps and components of each embodiment have been generally described in terms of function in the above description. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Those of ordinary skill in the art may use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0190] A person skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware or by instructing related hardware through a program, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.
[0191] When software is used for implementation, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer program instructions. As an example, the method of the embodiment of the present application can be described in the context of a machine executable instruction, and the machine executable instruction is such as included in the program module executed in the device on the real or virtual processor of the target. Generally speaking, a program module includes a routine, a program, a library, an object, a class, a component, a data structure, etc., which performs a specific task or realizes a specific abstract data structure. In various embodiments, the function of the program module can be merged or divided between the described program modules. The machine executable instruction for the program module can be executed in a local or distributed device. In a distributed device, the program module can be located in both a local and a remote storage medium.
[0192] The computer program code for realizing the method for the embodiment of the present application can be written in one or more programming languages. These computer program codes can be provided to the processor of a general-purpose computer, a special-purpose computer or other programmable data processing device, so that the program code, when executed by a computer or other programmable data processing device, causes the function / operation specified in the flow chart and / or block diagram to be implemented. The program code can be executed completely on a computer, partially on a computer, as an independent software package, partially on a computer and partially on a remote computer or completely on a remote computer or server.
[0193] In the context of the embodiments of the present application, computer program codes or related data may be carried by any appropriate carrier to enable a device, apparatus or processor to perform the various processes and operations described above. Examples of carriers include signals, computer-readable media, and the like.
[0194] Examples of signals may include electrical, optical, radio, acoustic or other forms of propagated signals, such as carrier waves, infrared signals, etc.
[0195] A machine-readable medium may be any tangible medium that contains or stores a program for or related to an instruction execution system, apparatus, or device. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination thereof. More detailed examples of machine-readable storage media include an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical storage device, a magnetic storage device, or any suitable combination thereof.
[0196] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and modules described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0197] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the module is only a logical function division. There may be other division methods in actual implementation, such as multiple modules or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or modules, or it can be an electrical, mechanical or other form of connection.
[0198] The modules described as separate components may or may not be physically separated, and the components displayed as modules may or may not be physical modules, that is, they may be located in one place or distributed on multiple network modules. Some or all of the modules may be selected according to actual needs to achieve the purpose of the embodiments of the present application.
[0199] In addition, each functional module in each embodiment of the present application can be integrated into one processing module, or each module can exist physically separately, or two or more modules can be integrated into one module. The above integrated modules can be implemented in the form of hardware or software functional modules.
[0200] If the integrated module is implemented in the form of a software function module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method in each embodiment of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk and other media that can store program code.
[0201] In the present application, the terms "first", "second", etc. are used to distinguish between identical or similar items having substantially the same effects and functions. It should be understood that there is no logical or temporal dependency between "first", "second", and "nth", nor is there a limitation on quantity and execution order. It should also be understood that although the following description uses the terms first, second, etc. to describe various elements, these elements should not be limited by the terms. These terms are only used to distinguish one element from another. For example, without departing from the scope of various examples, a first image may be referred to as a second image, and similarly, a second image may be referred to as a first image. Both the first image and the second image may be images, and in some cases, may be separate and different images.
[0202] It should also be understood that in the various embodiments of the present application, the size of the serial number of each process does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
[0203] The term "at least one" in this application means one or more, and the term "multiple" in this application means two or more, for example, multiple second messages means two or more second messages. The terms "system" and "network" are often used interchangeably herein.
[0204] It should be understood that the terms used in the description of the various examples herein are only for describing specific examples and are not intended to be limiting. As used in the description of the various examples and the appended claims, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise.
[0205] It should also be understood that the term "and / or" used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. The term "and / or" is a description of the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in this application generally indicates that the associated objects before and after are in an "or" relationship.
[0206] It should also be understood that the term “comprise” (also known as “includes,” “including,” “comprises” and / or “comprising”) when used in this specification specifies the presence of stated features, integers, steps, operations, elements, and / or components, but does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0207] It should also be understood that the terms "if" and "if" may be interpreted to mean "when" or "upon" or "in response to determining" or "in response to detecting." Similarly, the phrases "if it is determined that ..." or "if [a stated condition or event] is detected" may be interpreted to mean "upon determining that ..." or "in response to determining that ..." or "upon detecting [a stated condition or event]" or "in response to detecting [a stated condition or event]," depending on the context.
[0208] It should be understood that determining B based on A does not mean determining B only based on A. B can also be determined based on A and / or other information.
[0209] It should also be understood that the references to "one embodiment", "an embodiment", or "a possible implementation" throughout the specification mean that specific features, structures, or characteristics related to the embodiment or implementation are included in at least one embodiment of the present application. Therefore, the references to "in one embodiment" or "in an embodiment", or "a possible implementation" throughout the specification do not necessarily refer to the same embodiment. In addition, these specific features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
[0210] The above description is only an optional embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent substitutions, improvements, etc. made within the principles of the present application shall be included in the protection scope of the present application.
Claims
1. A data transmission method, characterized in that: The method comprises: The first device sends common data to multiple second devices through a multicast channel, where the common data is the same data; The first device sends respective difference data of the multiple second devices to the multiple second devices through multiple unicast channels, and the respective difference data of the multiple second devices are different.
2. The method according to claim 1, characterized in that The method further comprises: The first device sends corresponding retransmission data to the multiple second devices respectively through the multiple unicast channels, and the retransmission data is at least one of common data or difference data that needs to be retransmitted by different second devices.
3. The method according to claim 2, characterized in that The message containing the difference data carries a first difference identifier, where the first difference identifier is used by the multiple second devices to identify the difference data received through the unicast channel; The message containing the public data carries a first public identifier, and the first public identifier is used by the multiple second devices to identify the public data received through the unicast channel.
4. The method according to claim 2 or 3, characterized in that: The first device stores indication information corresponding to the plurality of second devices respectively and difference data that has been sent but not yet confirmed, the indication information indicating a storage location of the public data that has been sent but not yet confirmed, and the indication information corresponds to an identifier of the public data that has been sent but not yet confirmed; the method further includes: Receiving a packet loss request message through a first unicast channel corresponding to a third device among the multiple unicast channels, where the third device is any second device among the multiple second devices; In a case where the packet loss request message includes a second public identifier and a first identifier of public data that needs to be retransmitted, based on the second public identifier indicating the public data, obtaining first indication information corresponding to the first identifier in the indication information corresponding to the third device, and using the public data stored in the storage location indicated by the first indication information as the retransmission data corresponding to the first unicast channel; In the case that the packet loss request message includes a second difference identifier and a second identifier of difference data that needs to be retransmitted, based on the difference data indicated by the second difference identifier, the difference data corresponding to the second identifier is obtained from the difference data that has been sent but not yet confirmed corresponding to the third device, and the difference data corresponding to the second identifier is used as the retransmission data corresponding to the first unicast channel.
5. The method according to any one of claims 1 to 4, characterized in that: The first device stores indication information corresponding to the plurality of second devices respectively and difference data that has been sent but not yet confirmed, the indication information indicating a storage location of the public data that has been sent but not yet confirmed, and the indication information corresponds to an identifier of the public data that has been sent but not yet confirmed; the method further includes: receiving a response message through a second unicast channel corresponding to a fourth device among the multiple unicast channels, where the fourth device is any second device among the multiple second devices; In a case where the response message includes the third public identifier and the third identifier of the received public data, based on the third public identifier indicating the public data, the second indication information corresponding to the third identifier in the indication information corresponding to the fourth device is deleted; In a case where the response message includes the third difference identifier and the fourth identifier of the received difference data, based on the difference data indicated by the third difference identifier, deleting the difference data corresponding to the fourth identifier in the difference data corresponding to the fourth device that has been sent but not yet confirmed; When multiple response messages are received through the multiple unicast channels respectively, and the multiple response messages all include the third public identifier and the third identifier, the public data stored in the storage location indicated by the second indication information is deleted.
6. A data transmission method, characterized in that: The method comprises: The second device receives the public data sent by the first device through the multicast channel, the second device is one of the multiple devices receiving the public data, and the public data is the same data; The second device receives the difference data sent by the first device through a unicast channel, and the difference data of each of the multiple devices is different.
7. The method according to claim 6, characterized in that The method further comprises: The second device receives the retransmitted data sent by the first device through the unicast channel, and the retransmitted data is at least one of common data or difference data that needs to be retransmitted by different second devices.
8. The method according to claim 6 or 7, characterized in that: The message containing the common data received through the unicast channel carries a first common identifier, and the message containing the difference data received through the unicast channel carries a first difference identifier; the method further includes: storing the public data received through the multicast channel; The message received through the unicast channel is identified based on the first public identifier and the first difference identifier, and the public data and difference data obtained by identification are stored separately.
9. The method according to claim 8, characterized in that The method further comprises: When it is determined that the public data corresponding to the first identifier needs to be retransmitted, a packet loss request message including the second public identifier and the first identifier of the public data that needs to be retransmitted is returned to the first device through the unicast channel; When it is determined that the public data corresponding to the third identifier is received, a response message including the third public identifier and the third identifier of the received public data is returned to the first device through the unicast channel.
10. The method according to claim 8 or 9, characterized in that: The method further comprises: When it is determined that the difference data corresponding to the second identifier needs to be retransmitted, returning a packet loss request message including the second difference identifier and the second identifier of the difference data that needs to be retransmitted to the first device through the unicast channel; When it is determined that the difference data corresponding to the fourth identifier is received, a response message including the third difference identifier and the fourth identifier of the received difference data is returned to the first device through the unicast channel.
11. A data transmission device, characterized in that: The device is applied to a first device, and includes: A transceiver module, used to perform operations related to receiving and / or sending in any of the methods described in claims 1-5; A processing module, used to perform other operations besides the operations related to receiving and / or sending in the method described in any one of claims 1-5.
12. A data transmission device, characterized in that: The device is applied to a second device, and includes: A transceiver module, used to perform the operations related to receiving and / or sending in any of the methods described in claims 6-10; A processing module, used to perform other operations besides the operations related to receiving and / or sending in the method described in any one of claims 6-10.
13. A data transmission device, characterized in that: The data transmission device includes: a processor, the processor is coupled to a memory, the memory stores at least one program instruction or code, and the at least one program instruction or code is loaded and executed by the processor so that the data transmission device implements the data transmission method described in any one of claims 1-5, or so that the data transmission device implements the data transmission method described in any one of claims 6-10.
14. A data transmission system, characterized in that: The data transmission system comprises a first device and a plurality of second devices; The first device is used to execute the data transmission method described in any one of claims 1-5, and any second device among the multiple second devices is used to execute the data transmission method described in any one of claims 6-10.
15. A computer-readable storage medium, characterized in that: The computer storage medium stores at least one instruction, and the at least one instruction is loaded and executed by the processor so that the computer implements the data transmission method according to any one of claims 1 to 10.
16. A computer program product, characterized in that The computer program product comprises: a computer program code, wherein the computer program code is loaded and executed by a computer so as to enable the computer to implement the data transmission method according to any one of claims 1 to 10.
Citation Information
Cited By
Data transmission method and apparatus, device, system, and storage medium
EP4730716A1
Data transmission method and apparatus, device, system, and storage medium
WO2025011527A1