A transmission method and apparatus

By using a dual-redundant data transmission channel at both the sending and receiving ends to perform buffering based on the transmission delay difference, the data jitter problem is solved, improving smoothness and user experience.

CN116074197BActive Publication Date: 2026-03-17HUAWEI DEVICE CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-11-04
Publication Date
2026-03-17

AI Technical Summary

Technical Problem

In scenarios with high real-time requirements, existing technologies struggle to effectively reduce data jitter, leading to playback stuttering and impacting user experience.

Method used

By establishing two different data transmission channels at the sending and receiving ends, data packets are sent in parallel, and buffering is performed based on the transmission delay difference between the two channels to make the transmission delays of the two channels similar, thereby reducing data jitter.

Benefits of technology

It effectively reduces data jitter, improves smoothness and user experience, and balances smoothness and real-time performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116074197B_ABST
    Figure CN116074197B_ABST
Patent Text Reader

Abstract

This application relates to a transmission method and apparatus. The method includes: acquiring the transmission delay difference between a first channel and a second channel; and transmitting a first data packet in parallel through the first channel and the second channel, so that a receiving end enables the data packet that arrives at the receiving end first among the first data packets transmitted in parallel through the first channel and the second channel. The moment when the first data packet is transmitted through the data transmission channel with the smaller data transmission delay between the first channel and the second channel is designated as a first moment, and the moment when the first data packet is transmitted through the data transmission channel with the larger data transmission delay between the first channel and the second channel is designated as a second moment. The first moment is after the second moment, and the difference between the first moment and the second moment is the transmission delay difference. The transmission method and apparatus provided in this application can reduce data jitter and improve smoothness.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a transmission method and apparatus. Background Technology

[0002] There are three main metrics for data packet transmission: transmission delay, packet loss, and jitter. Transmission delay refers to the time required for a data packet to travel from the sender to the receiver. Packet loss occurs when a data packet is sent from the sender but fails to reach the receiver. Data jitter refers to the difference in transmission delay between data packets. The greater the difference in transmission delay between adjacent data packets, the more pronounced the data jitter.

[0003] In scenarios with high real-time requirements, such as video or audio playback, significant data jitter can cause playback stuttering, affecting the smoothness of playback and thus reducing the user experience.

[0004] In related technologies, data jitter can be reduced by adding a fixed buffer or additional data transmission channels at the receiving end, or by adding redundant data transmission channels. However, if the data transmission capacity of the existing data transmission channels is already poor, adding a fixed buffer will still result in significant data jitter. When the data transmission capacity of the added data transmission channels differs greatly from the original channels, only the data transmission channels with lower latency can be enabled. If the enabled data transmission channels experience severe data jitter, the problem of data jitter remains unresolved. Therefore, reducing data jitter has become a pressing issue that needs to be addressed. Summary of the Invention

[0005] In view of this, a transmission method and apparatus are proposed that can reduce data jitter and improve smoothness.

[0006] In a first aspect, embodiments of this application provide a transmission method applied to a transmitting end. The method includes: obtaining a transmission delay difference between a first channel and a second channel, wherein the first channel and the second channel represent two different data transmission channels established between the transmitting end and the receiving end; transmitting a first data packet in parallel through the first channel and the second channel, such that the receiving end enables the first data packet that arrives at the receiving end first among the first data packets transmitted in parallel through the first channel and the second channel; wherein the moment when the first data packet is transmitted through the data transmission channel with a smaller data transmission delay between the first channel and the second channel is a first moment, and the moment when the first data packet is transmitted through the data transmission channel with a larger data transmission delay between the first channel and the second channel is a second moment, wherein the first moment is after the second moment, and the difference between the first moment and the second moment is the transmission delay difference.

[0007] In this embodiment, based on dual-path redundancy, data on the data transmission channel with smaller transmission delay is buffered for a certain period of time, making the transmission delays of the two data transmission channels similar, so that the data transmission capabilities of the two data transmission channels complement each other, thereby reducing data jitter and improving smoothness.

[0008] According to the first aspect, in a first possible implementation of the method, obtaining the transmission delay difference between the first channel and the second channel includes: sending a first signaling and a second signaling through the first channel and the second channel respectively, and recording the first sending time of sending the first signaling and the second sending time of sending the second signaling; receiving a first response corresponding to the first signaling and a second response corresponding to the second signaling through the first channel and the second channel respectively, and recording the first receiving time of receiving the first response and the second receiving time of receiving the second response; and determining the transmission delay difference between the first channel and the second channel based on the first sending time, the first receiving time, the second sending time, and the second receiving time.

[0009] In this way, by sending the first signaling and the second signaling, the transmission delay difference between the first channel and the second channel can be obtained. Therefore, the transmission delay of the two data transmission channels can be made up to a similar level according to the transmission delay difference, so as to reduce data jitter.

[0010] According to the first aspect, or the first possible implementation of the first aspect, in the second possible implementation of the method, obtaining the transmission delay difference between the first channel and the second channel includes: obtaining the transmission delay difference between the first channel and the second channel according to a preset time interval.

[0011] In this way, when the network fluctuates greatly and the communication environment changes significantly, the transmission latency difference can be updated in real time to obtain a more accurate transmission latency difference. This allows for better compensation of the transmission latency of the two data transmission channels to a similar level after subsequent caching, thereby reducing data jitter to a great extent and improving smoothness and user experience.

[0012] According to the first aspect, or the first or second possible implementation of the first aspect, in the third possible implementation of the method, the step of sending the first data packet in parallel through the first channel and the second channel includes: at the second moment, sending the first data packet through the data transmission channel with a larger transmission delay among the first channel and the second channel; buffering the first data packet starting from the second moment, and when the buffering time of the first data packet reaches the transmission delay difference, sending the first data packet through the data transmission channel with a smaller transmission delay difference among the first channel and the second channel.

[0013] In this embodiment, the data packets of the data transmission channel with a smaller transmission delay are buffered at the sending end, so that the transmission delays of the first channel and the second channel are made up to a similar level, reducing data jitter and improving smoothness.

[0014] According to the first aspect, or any possible implementation of the first aspect above, in the fourth possible implementation of the method, the first moment is after the second moment, and the difference between the first moment and the second moment is the transmission delay difference, including: when the transmission delay difference is less than a preset threshold, the first moment is after the second moment, and the difference between the first moment and the second moment is the transmission delay difference.

[0015] This allows for a balance between smoothness and real-time performance.

[0016] Secondly, embodiments of this application provide a transmission method applied to a receiving end. The method includes: obtaining a transmission delay difference between a first channel and a second channel, where the first channel and the second channel represent two different data transmission channels established between a sending end and the receiving end, and the sending end is used to simultaneously send a first data packet to the receiving end through the first channel and the second channel; enabling a first data packet among the first data packets received through the first channel and the second channel that first satisfies an enabling condition; wherein, for a first data packet received through the data transmission channel with a smaller data transmission delay among the first channel and the second channel, satisfying the enabling condition includes: the first data packet arriving at the receiving end, and the buffering time of the first data packet at the receiving end reaching the transmission delay difference; for a first data packet received through the data transmission channel with a larger transmission delay among the first channel and the second channel, satisfying the enabling condition includes: the first data packet arriving at the receiving end.

[0017] In this embodiment, based on dual-path redundancy, data on the data transmission channel with smaller transmission delay is buffered for a certain period of time, making the transmission delays of the two data transmission channels similar, so that the data transmission capabilities of the two data transmission channels complement each other, thereby reducing data jitter and improving smoothness.

[0018] According to the second aspect, in a first possible implementation of the method, obtaining the transmission delay difference between the first channel and the second channel includes: sending a first signaling and a second signaling through the first channel and the second channel respectively, and recording the first sending time of sending the first signaling and the second sending time of sending the second signaling; receiving a first response corresponding to the first signaling and a second response corresponding to the second signaling through the first channel and the second channel respectively, and recording the first receiving time of receiving the first response and the second receiving time of receiving the second response; and determining the transmission delay difference between the first channel and the second channel based on the first sending time, the first receiving time, the second sending time, and the second receiving time.

[0019] In this way, by sending the first signaling and the second signaling, the transmission delay difference between the first channel and the second channel can be obtained. Therefore, the transmission delay of the two data transmission channels can be made up to a similar level according to the transmission delay difference, so as to reduce data jitter.

[0020] According to the second aspect or the first possible implementation of the second aspect, in the second possible implementation of the method, obtaining the transmission delay difference between the first channel and the second channel includes: obtaining the transmission delay difference between the first channel and the second channel according to a preset time interval.

[0021] In this way, when the network fluctuates greatly and the communication environment changes significantly, the transmission latency difference can be updated in real time to obtain a more accurate transmission latency difference. This allows for better compensation of the transmission latency of the two data transmission channels to a similar level after subsequent caching, thereby reducing data jitter to a great extent and improving smoothness and user experience.

[0022] According to the second aspect, or any possible implementation of the second aspect above, in the third possible implementation of the method, enabling the first data packet that first satisfies the enabling condition among the first data packets simultaneously transmitted by the sending end through the first channel and the second channel includes: when the transmission delay difference is less than a preset threshold, enabling the first data packet that first satisfies the enabling condition among the first data packets simultaneously transmitted by the sending end through the first channel and the second channel.

[0023] This allows for a balance between smoothness and real-time performance.

[0024] Thirdly, embodiments of this application provide a transmission apparatus applied to a transmitting end. The apparatus includes: an acquisition module for acquiring the transmission delay difference between a first channel and a second channel, wherein the first channel and the second channel represent two different data transmission channels established between the transmitting end and the receiving end; and a transmission module for transmitting a first data packet in parallel through the first channel and the second channel, so that the receiving end enables the first data packet that arrives at the receiving end first among the first data packets transmitted in parallel through the first channel and the second channel; wherein the moment when the first data packet is transmitted through the data transmission channel with a smaller data transmission delay between the first channel and the second channel is a first moment, and the moment when the first data packet is transmitted through the data transmission channel with a larger data transmission delay between the first channel and the second channel is a second moment, wherein the first moment is after the second moment, and the difference between the first moment and the second moment is the transmission delay difference.

[0025] In this embodiment, based on dual-path redundancy, data on the data transmission channel with smaller transmission delay is buffered for a certain period of time, making the transmission delays of the two data transmission channels similar, so that the data transmission capabilities of the two data transmission channels complement each other, thereby reducing data jitter and improving smoothness.

[0026] According to a third aspect, in a first possible implementation of the device, the acquisition module is further configured to: transmit a first signaling and a second signaling through a first channel and a second channel respectively, and record a first transmission time for transmitting the first signaling and a second transmission time for transmitting the second signaling; receive a first response corresponding to the first signaling and a second response corresponding to the second signaling through the first channel and the second channel respectively, and record a first reception time for receiving the first response and a second reception time for receiving the second response; and determine the transmission delay difference between the first channel and the second channel based on the first transmission time, the first reception time, the second transmission time, and the second reception time.

[0027] According to the third aspect, or the first possible implementation of the third aspect, in the second possible implementation of the device, the acquisition module is further configured to: acquire the transmission delay difference between the first channel and the second channel at a preset time interval.

[0028] According to the third aspect, or the first or second possible implementation of the third aspect, in the third possible implementation of the device, the sending module is further configured to: at the second time, send the first data packet through the data transmission channel with a larger transmission delay between the first channel and the second channel; buffer the first data packet starting from the second time, and when the buffering time of the first data packet reaches the transmission delay difference, send the first data packet through the data transmission channel with a smaller transmission delay difference between the first channel and the second channel.

[0029] According to the third aspect, or any possible implementation of the third aspect above, in a fourth possible implementation of the device, the first moment is after the second moment, and the difference between the first moment and the second moment is the transmission delay difference, including: when the transmission delay difference is less than a preset threshold, the first moment is after the second moment, and the difference between the first moment and the second moment is the transmission delay difference.

[0030] Fourthly, embodiments of this application provide a transmission apparatus applied to a receiving end. The apparatus includes: an acquisition module for acquiring the transmission delay difference between a first channel and a second channel, wherein the first channel and the second channel represent two different data transmission channels established between a sending end and the receiving end, and the sending end is used to simultaneously send a first data packet to the receiving end through the first channel and the second channel; and an enabling module for enabling the first data packet among the first data packets received through the first channel and the second channel that first satisfies an enabling condition. Specifically, for the first data packet received through the data transmission channel with a smaller transmission delay among the first channel and the second channel, satisfying the enabling condition includes: the first data packet arriving at the receiving end, and the buffering time of the first data packet at the receiving end reaching the transmission delay difference; for the first data packet received through the data transmission channel with a larger transmission delay among the first channel and the second channel, satisfying the enabling condition includes: the first data packet arriving at the receiving end.

[0031] In this embodiment, based on dual-path redundancy, data on the data transmission channel with smaller transmission delay is buffered for a certain period of time, making the transmission delays of the two data transmission channels similar, so that the data transmission capabilities of the two data transmission channels complement each other, thereby reducing data jitter and improving smoothness.

[0032] According to the fourth aspect, in a first possible implementation of the device, the acquisition module is further configured to: transmit a first signaling and a second signaling through a first channel and a second channel respectively, and record a first transmission time for transmitting the first signaling and a second transmission time for transmitting the second signaling; receive a first response corresponding to the first signaling and a second response corresponding to the second signaling through the first channel and the second channel respectively, and record a first reception time for receiving the first response and a second reception time for receiving the second response; and determine the transmission delay difference between the first channel and the second channel based on the first transmission time, the first reception time, the second transmission time, and the second reception time.

[0033] According to the fourth aspect, or the first possible implementation of the fourth aspect, in the second possible implementation of the device, the acquisition module is further configured to: acquire the transmission delay difference between the first channel and the second channel at a preset time interval.

[0034] According to the fourth aspect, or any possible implementation of the fourth aspect above, in the third possible implementation of the device, the enabling module is further configured to: enable the first data packet that first satisfies the enabling condition among the first data packets simultaneously transmitted by the sending end through the first channel and the second channel when the transmission delay difference is less than a preset threshold.

[0035] Fifthly, embodiments of this application provide an electronic device that can execute one or more of the transmission methods described in the first aspect or in various possible implementations of the first aspect, or execute one or more of the transmission methods described in the second aspect or in various possible implementations of the second aspect.

[0036] Sixthly, embodiments of this application provide a possible read storage medium having computer program instructions stored thereon. When executed by a processor, the computer program instructions implement one or more of the transmission methods described in the first aspect or multiple possible implementations of the first aspect, or implement one or more of the transmission methods described in the second aspect or multiple possible implementations of the second aspect.

[0037] In a seventh aspect, embodiments of this application provide a computer program product including computer-readable code, or a non-volatile computer-readable storage medium carrying computer-readable code. When the computer-readable code is executed in an electronic device, the processor in the electronic device executes one or more of the transmission methods of the first aspect or multiple possible implementations of the first aspect, or executes one or more of the transmission methods of the second aspect or multiple possible implementations of the second aspect.

[0038] These and other aspects of this application will become more apparent in the description of the following embodiments(s). Attached Figure Description

[0039] The accompanying drawings, which are included in and form part of this specification, illustrate exemplary embodiments, features, and aspects of this application together with the specification and serve to explain the principles of this application.

[0040] Figure 1a A schematic diagram of data packet transmission in related technologies is shown;

[0041] Figure 1b This illustration shows a schematic diagram of data packet transmission in an embodiment of this application;

[0042] Figure 2 This illustration shows a schematic diagram of the architecture of the transmission system provided in an embodiment of this application;

[0043] Figure 3a A flowchart illustrating the transmission method provided in an embodiment of this application is shown;

[0044] Figure 3b A flowchart illustrating the transmission method provided in an embodiment of this application is shown;

[0045] Figure 4 This invention provides a schematic diagram of the structure of an electronic device according to an embodiment of the present application.

[0046] Figure 5 This diagram illustrates the interactive flow of the transmission method provided in an embodiment of this application.

[0047] Figure 6 This diagram illustrates the interactive flow of the transmission method provided in an embodiment of this application.

[0048] Figure 7a This diagram illustrates the structure of the transmission device provided in an embodiment of this application.

[0049] Figure 7b This diagram illustrates the structure of the transmission device provided in an embodiment of this application.

[0050] Figure 8 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation

[0051] Various exemplary embodiments, features, and aspects of this application will now be described in detail with reference to the accompanying drawings. The same reference numerals in the drawings denote elements that have the same or similar functions. Although various aspects of the embodiments are shown in the drawings, they are not necessarily drawn to scale unless specifically indicated otherwise.

[0052] The term “exemplary” as used herein means “serving as an example, embodiment, or illustration.” Any embodiment illustrated herein as “exemplary” is not necessarily to be construed as superior to or better than other embodiments.

[0053] Furthermore, to better illustrate this application, numerous specific details are provided in the following detailed embodiments. Those skilled in the art should understand that this application can be implemented without certain specific details. In some instances, methods, means, components, and circuits well-known to those skilled in the art have not been described in detail in order to highlight the main points of this application.

[0054] Figure 1a This diagram illustrates the transmission of data packets in related technologies. For example... Figure 1a As shown, two different data transmission channels, Channel A and Channel B, are established between the sending and receiving ends. Both Channel A and Channel B suffer from data jitter. The transmission delay of Channel A is much smaller than that of Channel B.

[0055] like Figure 1a As shown, the sending end transmitted data packets 1 through 5 at equal time intervals. Figure 1a In the diagram, box number 1 represents data packet 1, box number 2 represents data packet 2, and so on, with box number 5 representing data packet 5. Due to data jitter in channel A, the time interval between adjacent data packets arriving at the receiving end is different when transmitting data packets through channel A. For example, the time interval between data packets 1 and 2 arriving at the receiving end is different from the time interval between data packets 2 and 3 arriving at the receiving end. Similarly, due to data jitter in channel B, the time interval between vector data packets arriving at the receiving end is also different when transmitting data packets through channel B.

[0056] Because the transmission delay of channel A is much smaller than that of channel B, when the sender transmits a data packet simultaneously through both channels A and B, the data packet arriving at the receiver via channel A will arrive before the data packet arriving via channel B. Therefore, the receiver will always only enable data packets transmitted via channel A, resulting in data jitter. It is clear that the introduction of channel B has not eliminated the original data jitter problem.

[0057] like Figure 1a As shown, the sending end simultaneously transmits data packets 1 through 5 sequentially through channels A and B. Data packet 1 on channel A arrives at the receiving end before data packet 1 on channel B. The receiving end enables data packet 1 transmitted through channel A (e.g., ...). Figure 1a(As shown in the gray box). Similarly, the receiving end also enabled data packets 2 to 5 for transmission on channel A. However, data packets 1 to 5 experience data jitter during transmission on channel A. Therefore, the data packets enabled by the receiving end still exhibit data jitter, causing stuttering and unplayable audio and video playback on the receiving end.

[0058] To address the aforementioned technical problems, this application provides a transmission method that, based on dual-path redundancy, buffers data on data transmission channels with smaller transmission delays for a certain period, thereby making the transmission delays of the two data transmission channels similar and enabling the data transmission capabilities of the two channels to complement each other, thus reducing data jitter and improving smoothness.

[0059] For example, Figure 1b This diagram illustrates the transmission of data packets in an embodiment of this application. Figure 1b The transmitter, receiver, channel A, and channel B shown can be referenced. Figure 1a Assume the transmission delay difference between channel A and channel B is T. For example... Figure 1b As shown, after receiving data packet 1, the sending end transmits data packet 1 through channel A at time t1+T and through channel B at time t1. Thus, the time difference between data packet 1's arrival at the receiving end after transmission through channels A and B is small. Similarly, the time difference between data packets 2 to 5's arrival at the receiving end after transmission through channels A and B is also small. Figure 1b As shown, the receiver enables the first data packet to arrive at the receiver from the data packets transmitted in parallel through channels A and B, namely: data packet 1 transmitted through channel A, data packet 2 transmitted through channel B, data packet 3 transmitted through channel A, data packet 4 transmitted through channel B, and data packet 5 transmitted through channel A. It can be seen that the arrival time difference between adjacent data packets enabled by the receiver is small, reducing data jitter and improving smoothness.

[0060] The transmission method provided in this application can be applied to electronic devices. The electronic device can be either a sender initiating cross-device data packet transmission and sending the data packet, or a receiver receiving the data packet. It should be noted that an electronic device may be a sender in one scenario and a receiver in another; that is, an electronic device may act as both a sender and a receiver for another electronic device.

[0061] The electronic devices involved in this application (including the transmitting and receiving ends mentioned above) can refer to devices with wireless connectivity. Wireless connectivity means that they can connect to other electronic devices via wireless connection methods such as Wi-Fi and Bluetooth. The electronic devices in this application can also have wired communication capabilities. The terminal devices in this application can be touchscreen, non-touchscreen, or screenless. Touchscreen devices can be controlled by clicking or swiping on the display screen using fingers or styluses. Non-touchscreen devices can connect to input devices such as mice, keyboards, and touch panels to control the terminal device. Screenless devices can be, for example, screenless Bluetooth speakers. For instance, the electronic devices in this application can be smartphones, netbooks, tablets, laptops, wearable electronic devices (such as smart bracelets and smartwatches), TVs, virtual reality devices, speakers, e-ink devices, and so on.

[0062] Figure 2 This diagram illustrates the architecture of the transmission system provided in an embodiment of this application. Figure 2 As shown, the transmission system includes a first device 21, a second device 22, a first channel 23, and a second channel 24. The first device 21 is the sender of data packets, the second device 22 is the receiver of data packets, and the first channel 23 and the second channel 24 are two different data transmission channels established between the first device 21 and the second device 22. The transmission protocols used by the first channel 23 and the second channel 24 can be the same or different. For example, the first channel 23 can be a P2P data transmission channel, and the second channel 24 can be a WLAN data transmission channel. Both the first channel 23 and the second channel 24 can be P2P data transmission channels, or both can be WLAN data transmission channels. It is understood that the first channel 23 and the second channel 24 can also be channels using other transmission protocols, and this application does not impose any restrictions on this.

[0063] Figure 3a A flowchart illustrating a transmission method provided in an embodiment of this application is shown. This method can be applied to a sending end, for example... Figure 2 The first device 21 is shown. (As shown) Figure 3a As shown, the method may include:

[0064] Step S301: Obtain the transmission delay difference between the first channel and the second channel.

[0065] In this embodiment, the first channel and the second channel represent two different data transmission channels established between the sending end and the receiving end. In this application embodiment, the sending end can send data packets to the receiving end in parallel through the first channel and the second channel. The transmission delay difference between the first channel and the second channel can represent the difference between the transmission delay of the first data packet when transmitted through the first channel and the transmission delay of the same data packet when transmitted through the second channel. The first data packet can represent any data packet; for example, the first data packet can be video data, audio data, instant messaging data, etc. This application embodiment does not limit the data packet type.

[0066] In one possible implementation, step S301 may include: sending a first signaling and a second signaling through a first channel and a second channel respectively, and recording the first sending time and the second sending time of sending the first signaling and the second sending time of sending the second signaling; receiving a first response corresponding to the first signaling and a second response corresponding to the second signaling through the first channel and the second channel respectively, and recording the first receiving time of receiving the first response and the second receiving time of receiving the second response; and determining the transmission delay difference between the first channel and the second channel based on the first sending time, the first receiving time, the second sending time, and the second receiving time.

[0067] In this embodiment, the first signaling can represent control signaling sent through the first channel, and the second signaling can represent control signaling sent through the second channel. The first transmission time can represent the transmission time of the first signaling, and the second transmission time can represent the transmission time of the second signaling. The electronic device can transmit the first and second signaling simultaneously, or it can transmit the first signaling first and then the second signaling, or vice versa. Therefore, the first transmission time and the second transmission time may be the same or different. In this embodiment, the transmission order of the first and second signaling is not limited.

[0068] A first response can be used to represent a response message returned by an electronic device that received a first signaling. A second response can represent a response message returned by an electronic device that received a second signaling. It is understood that the first response is returned via a first channel, and the second response is returned via a second channel. The first reception time of the first and second responses represents the time when the electronic device sending the first signaling received the first response, and the second reception time represents the time when the electronic device sending the second signaling received the second response.

[0069] It is understandable that the transmission delay of the first channel is (first reception time - first transmission time) / 2, and the transmission delay of the second channel is (second reception time - second transmission time) / 2. The difference between the transmission delays of the first channel and the second channel is the absolute value of the difference between the transmission delays of the first channel and the second channel. Therefore, the difference between the transmission delays of the first channel and the second channel is |(first reception time - first transmission time) - (second reception time - second transmission time)| / 2.

[0070] It should be noted that the terms "first" and "second" mentioned above are used only for distinction and do not constitute any other limitation. For example, "first" and "second" in "first channel" and "second channel" are used only to distinguish different data transmission channels; "first" and "second" in "first signaling" and "second signaling" are used only to distinguish different control information; "first" and "second" in "first transmission time" and "second transmission time" are used only to distinguish different transmission times; "first" and "second" in "first response" and "second response" are used only to distinguish different response messages; and "first" and "second" in "first reception time" and "second reception time" are used only to distinguish different reception times.

[0071] In one possible implementation, the electronic device can acquire the transmission delay difference between the first and second channels at preset time intervals. The preset time interval can be set as needed, for example, to 10 seconds, 1 minute, 1 hour, or 1 day.

[0072] In one example, after acquiring the transmission delay difference between the first and second channels, the electronic device can trigger a timer. When the timer expires at a preset time interval, it can reacquire the transmission delay difference between the first and second channels. In another example, after sending the first and second signaling, the electronic device can trigger a timer. When the timer expires at a preset time interval, it can resend the first information and the second signaling to update the transmission delay difference between the first and second channels.

[0073] In this way, when the network fluctuates greatly and the communication environment changes significantly, the transmission latency difference can be updated in real time to obtain a more accurate transmission latency difference. This allows for better compensation of the transmission latency of the two data transmission channels to a similar level after subsequent caching, thereby reducing data jitter to a great extent and improving smoothness and user experience.

[0074] Understandably, a smaller preset time interval results in higher accuracy of the obtained transmission delay difference, but also consumes more computing and communication resources; conversely, a larger preset time interval consumes fewer computing and communication resources, but results in lower accuracy of the obtained transmission delay difference. Therefore, for scenarios with significant network fluctuations and changes in the communication environment, a smaller preset time interval can be set to improve the accuracy of the transmission delay difference. For scenarios with relatively stable network and communication environments, a larger time interval can be set to save resources.

[0075] In one possible implementation, after acquiring the transmission delay difference between the first and second channels, the electronic device can avoid starting a timer, i.e., it can continuously use the same transmission delay difference for data packet buffering. This allows for a fixed buffer, further saving resources by eliminating the need for repeatedly sending signaling, repeatedly recording time, and repeatedly calculating transmission delay differences. This is particularly effective in scenarios with stable network and communication environments.

[0076] It should be noted that the stability of the network environment and the stability of the communication environment can be detected by methods in related technologies. This application does not impose any limitations on these methods, and will not elaborate further here.

[0077] Step S302: A first data packet is sent in parallel through the first channel and the second channel, so that the receiving end enables the first data packet that arrives at the receiving end first among the first data packets sent in parallel through the first channel and the second channel. The time when the first data packet is sent through the data transmission channel with a smaller data transmission delay in the first channel and the second channel is the first time, and the time when the first data packet is sent through the data transmission channel with a larger data transmission delay in the first channel and the second channel is the second time. The first time is after the second time, and the difference between the first time and the second time is the transmission delay difference.

[0078] For ease of description, in the embodiments of this application, a third channel is used to represent the data transmission channel with a smaller transmission delay among the first channel and the second channel, and a fourth channel is used to represent the data transmission channel with a larger transmission delay among the first channel and the second channel.

[0079] The first data packet is transmitted in parallel through the first and second channels. That is, the first data packet is transmitted through both the first and second channels. It can be understood that the transmission time of the first data packet when transmitted through the data transmission channel with the shorter transmission delay (i.e., the third channel) is less than the transmission time of the first data packet when transmitted through the data transmission channel with the longer transmission delay (i.e., the fourth channel). Therefore, the sending end can buffer the first data packet before sending it through the third channel, and only send it through the third channel when the buffering time reaches the transmission delay difference. However, when sending the first data packet through the fourth channel, the sending end does not need to buffer it. In this way, the time for the first data packet to reach the receiving end after transmission through the two data transmission channels can be brought to a similar level. Since the receiving end enables the first data packet that arrives at the receiving end first among the first data packets sent in parallel through the first and second channels, and the time it takes for the first data packet in the sender's buffer to arrive at the receiving end after being transmitted through the two data transmission channels is brought to a similar level, the first data packet that arrives at the receiving end first may be the first data packet sent through the first channel or the first data packet sent through the second channel. In other words, the first data packet enabled by the receiving end may be either the first data packet sent through the first channel or the data packet sent through the second channel, thus achieving complementary data transmission capabilities of the first and second channels, thereby reducing data jitter and improving smoothness.

[0080] In this embodiment of the application, the time when the sending end sends the first data packet through the third channel is taken as the first time, and the time when the sending end sends the first data packet through the fourth channel is taken as the second time. The first time needs to be after the second time, and the difference between the first time and the second time is the transmission delay difference, thereby bringing the time for the first data packet to reach the receiving end after being transmitted through the two data transmission channels to a similar level.

[0081] In one possible implementation, step S302 may include: sending a first data packet through a fourth channel at a second time; buffering the first data packet starting from the second time, and sending the first data packet through a third channel when the buffering time of the first data packet reaches the transmission delay difference. In this way, the first time the sending end sends the first data packet through the third channel is after the second time the sending end sends the first data packet through the fourth channel, and the difference between the first and second times is the transmission delay, thereby bringing the time for the first data packet to reach the receiving end after being transmitted through the two data transmission channels to a similar level.

[0082] In this embodiment, based on dual-path redundancy, data on the data transmission channel with smaller transmission delay is buffered for a certain period of time, making the transmission delays of the two data transmission channels similar, so that the data transmission capabilities of the two data transmission channels complement each other, thereby reducing data jitter and improving smoothness.

[0083] In one possible implementation, the first time in step S302 being after the second time, and the difference between the first time and the second time being the transmission delay difference, may include: when the transmission delay difference is less than a preset threshold, the first time being after the second time, and the difference between the first time and the second time being the transmission delay difference.

[0084] The preset threshold can be set as needed. For example, the preset threshold can be set to 10 milliseconds, 100 milliseconds, 1 second, etc. This limits the transmission latency difference to a certain range. When the transmission latency difference is small, it will not affect real-time performance. If the transmission latency difference is greater than the preset threshold, it needs to be buffered for a longer time, causing data packets to be unable to be submitted for a long time, thus affecting real-time performance. By setting the preset threshold, a balance can be struck between smoothness and real-time performance.

[0085] In one possible implementation, if the transmission delay difference is greater than or equal to a preset threshold, the sender can transmit the first data packet through the third channel instead of the fourth channel. This saves resources.

[0086] Figure 4 A schematic diagram of the structure of an electronic device provided in an embodiment of this application is shown. Figure 4 As shown, the electronic device includes a service module 41, a channel management module 42, a control signaling management module 43, and an interface module 44.

[0087] Of these, business module 41 is used for processing business logic. Figure 4 In the scenario where the electronic device acts as the transmitter, the service module 41 may include an encoder for encoding service data such as video and audio data to obtain data packets. Then, the channel management module 42 submits the encoded data packets to the receiver.

[0088] like Figure 4As shown, the channel management module 42 can be used to manage data transmission channels. When it is necessary to distribute the first data packet, the channel management module 42 determines which data transmission channel the first data packet should be sent from and sends the first data packet out from the determined data transmission channel. Taking the channel management module 42 managing two channels, the first channel and the second channel, as an example, when it is necessary to distribute the first data packet, the channel management module 42 can send the first data packet from the first channel, or from the second channel, or send the first data packet from both the first channel and the second channel in parallel.

[0089] In this embodiment, the channel management module 42 can first obtain the transmission delay difference between the first channel and the second channel. The service module 41 provides the channel management module 42 with the first data packet encoded by the encoder. After obtaining the first data packet through the encoder, the channel management module 42 sends it to the receiving end through the fourth channel (i.e., the data transmission channel with the larger transmission delay between the first and second channels) at a second time. Simultaneously, the channel management module buffers the first data packet starting from the second time, and when the buffering time of the first data packet reaches the aforementioned transmission delay difference, the third channel (i.e., the data transmission channel with the smaller transmission delay between the first and second channels) sends the first data packet to the receiving end. In this way, by buffering the first data packet that needs to be transmitted through the data transmission channel with the smaller transmission delay for a certain period before sending it, the transmission delays of the two data transmission channels are brought to a similar level, making the data transmission capabilities of the two data transmission channels complementary, thereby reducing data jitter and improving smoothness. In one example, the second time can be the time when the channel management module 42 obtains the first data packet.

[0090] like Figure 4 As shown, the channel management module 42 is connected to the interface module 44. The interface module 44 can be used to connect data transmission channels. The interface module 44 may include multiple transceiver interfaces, each connected to a data transmission channel. For example, the interface module 44 may include a first channel interface 441 and a second channel interface 442. Here, the first channel interface 441 represents the transceiver interface of the first channel, and the second channel interface 442 represents the transceiver interface of the second channel.

[0091] Taking the transmission delay of the first channel as less than that of the second channel, and the difference in transmission delay between the first and second channels as T, as an example of the sending end transmitting data packet 1 to the receiving end (i.e., taking the first channel as the third channel, the second channel as the fourth channel, and data packet 1 as the first data packet), the channel management module 42 obtains data packet 1 through the encoder. At time t1 (i.e., the second time), the channel management module 42 sends data packet 1 out from the second channel interface 44, thus transmitting data packet 1 to the receiving end through the second channel at time t1. Simultaneously, the channel management module 42 buffers data packet 1 starting from time t1, and after the buffering time of data packet 1 reaches T, it sends data packet 1 out through the first channel interface 44, thus transmitting data packet 1 to the receiving end through the first channel at time t1+T (i.e., the first time). In this way, although data packet 1 is transmitted faster in the first channel and slower in the second channel, the sending end delays sending data packet 1 in the first channel, so that the time for data packet 1 to reach the receiving end via the first channel is smaller than the time for data packet 1 to reach the receiving end via the second channel. This makes up for the transmission delay of the first and second channels to a similar level. Data packet 1 transmitted via the first channel and data packet 1 transmitted via the second channel both have the opportunity to be enabled at the receiving end, reducing data jitter and improving smoothness.

[0092] like Figure 4 As shown, the channel management module 42 is connected to the control signaling management module 43. The control signaling management module 43 can be used to generate control signaling. In this embodiment, the control signaling management module 43 can generate a first signaling and a second signaling. The first signaling can represent control signaling transmitted through a first channel, and the second signaling can represent control signaling transmitted through a second channel. In this embodiment, the channel management module 42 can manage the distribution of the control signaling generated by the control signaling management module 43. The channel management module 42 can send the first signaling through the first channel interface 441 to transmit the first signaling to the receiving end through the first channel. Simultaneously, the channel management module 42 can record the first transmission time of the first signaling. When the channel management module 42 receives a first response through the first channel interface 441, it indicates that the receiving end has received the first signaling. At this time, the channel management module 42 can record the first reception time of receiving the first response. Similarly, the channel management module 42 can send a second signaling, receive a second response, and record the second transmission time and the second reception time through the second channel interface 442. Subsequently, the channel management module 42 can determine the transmission delay difference between the first channel and the second channel based on the recorded first transmission time, first reception time, second transmission time, and second reception time.

[0093] The following is combined with Figure 5 right Figure 3aThe interaction process of the transmission method shown is explained when it is applied to the sending end. Figure 5 This diagram illustrates the interactive flow of the transmission method provided in an embodiment of this application. This method can be applied to... Figure 2 The system shown. (As shown in the image) Figure 5 As shown, the method may include:

[0094] Step S500: A first channel and a second channel are established between the first device and the second device.

[0095] In step S501, the first device sends a first signaling message through the first channel and records the first transmission time of sending the first signaling message.

[0096] In step S502, the second device responds to the received first signaling by returning a first response through the first channel.

[0097] In step S503, the first device receives the first response and records the first reception time of receiving the first response.

[0098] In step S504, the first device sends a second signaling message through the second channel and records the second transmission time of the second signaling message.

[0099] In step S505, the second device responds to the received first signaling by returning a second response through the second channel.

[0100] In step S506, the first device receives the second response and records the second reception time of receiving the second response.

[0101] In step S507, the first device determines the transmission delay difference between the first channel and the second channel based on the first transmission time, the first reception time, the second transmission time, and the second reception time.

[0102] In step S508, the first device sends the first data packet at a second time through the data transmission channel with the larger transmission delay between the first channel and the second channel.

[0103] In step S509, the first device buffers the first data packet starting from the second time, and when the buffering time of the first data packet reaches the transmission delay difference, it sends the first data packet through the data transmission channel with the smaller transmission delay difference between the first channel and the second channel.

[0104] Step S510: The second device enables the first data packet that arrives at the second device first among the first data packets sent in parallel through the first channel and the second channel.

[0105] In one example, when the second device receives the first data packet sent through the first channel, if the second device has not received the first data packet sent through the second channel, then the second device enables the transmission of the first data packet through the first channel. Subsequently, when the second device receives the first data packet sent through the second channel, the second device may discard the first data packet sent through the second channel. Conversely, if the second device has already received the first data packet sent through the second channel, then the second device may discard the first data packet sent through the first channel.

[0106] In another example, when the second device receives the first data packet sent through the second channel, if the second device has not received the first data packet sent through the first channel, then the second device enables the transmission of the first data packet through the second channel. Subsequently, when the second device receives the first data packet sent through the first channel, the second device may discard the first data packet sent through the first channel. When the second device receives the first data packet sent through the second channel, if the second device has already received the first data packet sent through the first channel, then the second device may discard the first data packet sent through the second channel.

[0107] Since the first data packet has been buffered before being sent, the transmission delay of the first channel and the second channel has been made up to a similar level. Therefore, when the second device receives the first data packet, the enabled first data packet may be the first data packet sent through the first channel or the first data packet sent through the second channel, which reduces data jitter and improves smoothness.

[0108] Figure 3b A flowchart illustrating a transmission method provided in an embodiment of this application is shown. This method can be applied to a receiving end, for example... Figure 2 The second device 22 shown, as Figure 3b As shown, the method may include:

[0109] Step S303: Obtain the transmission delay difference between the first channel and the second channel.

[0110] In step S301, the sending end obtains the transmission delay difference between the first channel and the second channel by sending a first signaling and a second signaling. The method for obtaining the transmission delay difference between the first channel and the second channel is the same in steps S301 and S303. In step S303, the receiving end obtains the transmission delay difference between the first channel and the second channel by sending a first signaling and a second signaling. The difference between steps S301 and S303 lies in the devices that send the first and second signaling, resulting in different methods for obtaining the transmission delay difference between the first channel and the second channel. Step S303 can be referred to in step S301, and will not be repeated here.

[0111] Step S304: Enable the first data packet that first meets the enable condition among the first data packets received through the first channel and the second channel.

[0112] Specifically, for a first data packet received through a data transmission channel with a smaller data transmission delay between the first channel and the second channel, satisfying the enabling condition includes: the first data packet arriving at the receiving end, and the buffering time of the first data packet at the receiving end reaching the transmission delay difference; for a first data packet received through a data transmission channel with a larger transmission delay between the first channel and the second channel, satisfying the enabling condition includes: the first data packet arriving at the receiving end.

[0113] In this way, when the first data packet is sent simultaneously through the first channel and the second channel, the data received through the data transmission channel with the smaller transmission delay is buffered for a period of time. This allows the transmission delays of the two data transmission channels to be brought to a similar level before determining whether to enable the received first data packet. This makes the data transmission capabilities of the two data transmission channels complementary, thereby reducing data jitter and improving smoothness.

[0114] Because the first data packet is transmitted relatively quickly in the third channel (i.e., the data transmission channel with the smaller transmission delay between the first and second channels) and relatively slowly in the fourth channel (i.e., the data transmission channel with the larger transmission delay in the first channel), when the sending end sends the first data packet to the receiving end simultaneously through the first and second channels, the receiving end cannot receive the first data packet simultaneously through the first and second channels. Moreover, the receiving end is highly likely to receive the first data packet first through the third channel and then through the fourth channel. If the receiving end immediately determines whether it has received the first data packet through the fourth channel (i.e., immediately determines whether the first data packet received through the third channel is enabled) when it receives the first data packet through the third channel, the receiving end is very likely to enable the first data packet received through the third channel. In this case, the probability of the first data packet received by the receiving end through the fourth channel being enabled is extremely low, and the data jitter of the third channel cannot be eliminated.

[0115] In this embodiment, when the receiving end receives the first data packet through the third channel, it buffers the first data packet. If the buffering time of the first data packet reaches the transmission delay difference, it determines that the first data packet received through the third channel meets the enable condition. When the receiving end receives the first data packet through the fourth channel, it determines that the first data packet received through the fourth channel meets the enable condition. Thus, after the transmission delays of the two data transmission channels are brought to a similar level, it is determined whether to enable the received first data packet. This provides an opportunity for the first data packet transmitted through the fourth channel to be enabled, allowing the data transmission capabilities of the two data transmission channels to complement each other, thereby reducing data jitter and improving smoothness.

[0116] In one possible implementation, step S304 may include: if the transmission delay difference is less than a preset threshold, enabling the first data packet that first meets the enabling condition among the first data packets simultaneously transmitted by the sending end through the first channel and the second channel. This balances fluency and real-time performance.

[0117] In one possible implementation, if the transmission delay difference is less than a preset threshold, the receiving end can enable the first data packet that arrives first among the first data packets sent through the first and second channels. This can improve real-time performance.

[0118] exist Figure 4 In the scenario where the electronic device shown is the receiving end, the service module 41 may include a decoder, which is used to decode the data packets submitted by the channel management module 42 to obtain service data such as video data and audio data, so as to play video or audio.

[0119] like Figure 4 As shown, the channel management module 42 can be used to manage data transmission channels. Upon receiving the first data packet, the channel management module 42 can determine which data transmission channel the first data packet originated from. Taking the channel management module 42 managing two channels, a first channel and a second channel, as an example, the channel management module can receive the first data packet from either the first channel or the second channel. Figure 4 As shown, the channel management module 42 is connected to the interface module 44. The channel management module 44 can determine the first data packet received from the first channel interface 441 as the first data packet received through the first channel, and determine the first data packet received from the second channel interface 442 as the first data packet received through the second channel.

[0120] In this embodiment, the channel management module 42 can first obtain the transmission delay difference between the first channel and the second channel. When the channel management module 42 receives the first data packet through the third channel (i.e., the data transmission channel with the smaller transmission delay among the first and second channels), it can buffer the data packet and determine that the first data packet meets the enable condition when the buffering time of the data packet reaches the transmission delay difference. Simultaneously, when the channel management module 42 receives the first data packet through the fourth channel (i.e., the data transmission channel with the larger transmission delay among the first and second channels), it can directly determine that the first data packet meets the enable condition. Based on this, the channel management module 42 can enable the first data packet that meets the enable condition among the first data packets received through the first and second channels, and send the enabled first data packet to the decoder for decoding. In this way, by buffering the first data packet on the data transmission channel with the smaller transmission delay for a certain period before determining whether to enable it, the transmission delays of the two data transmission channels can be brought to a similar level, making the data transmission capabilities of the two data transmission channels complementary, thereby reducing data jitter and improving smoothness.

[0121] Taking the transmission delay of the first channel as less than that of the second channel, and the difference in transmission delay between the first and second channels as T, as an example, the sending end transmits data packet 1 to the receiving end. At time t3, the sending end simultaneously transmits data packet 1 through both the first and second channels. The channel management module 42 receives data packet 1 through the first channel at time t3. The channel management module 42 buffers data packet 1 and determines that data packet 1 meets the enabling condition after the buffering time reaches T. Therefore, it determines that data packet 1 received through the first channel meets the enabling condition at time t3+T. The channel management module 42 receives data packet 1 through the second channel at time t4. The channel management module 42 then determines that data packet 1 received through the second channel meets the enabling condition at time t4. If time t3+T is before time t4, the channel management module 42 enables data packet 1 received through the first channel and discards data packet 1 received through the second channel. If time t3+T is after time t4, the channel management module 42 discards data packet 1 received through the first channel and enables data packet 1 received through the second channel. In this way, although data packet 1 is transmitted faster in the first channel and slower in the second channel (i.e., time t3 is before time t4), the receiving end buffers data packet 1 received from the first channel for time T, thus making up for the transmission delays of the first and second channels to a similar level. This allows data packet 1 transmitted via the first channel and data packet 1 transmitted via the second channel to both have the opportunity to be enabled, even if time t3+T is before or after time t4, reducing data jitter and improving smoothness.

[0122] exist Figure 4In the scenario where the electronic device shown is used at the receiving end, the process by which the channel management module 42 obtains the transmission delay difference can be referred to... Figure 4 The process by which the channel management module 42 obtains the transmission delay difference in the scenario where the electronic device shown is used at the transmitting end will not be described in detail here.

[0123] The following is combined with Figure 6 right Figure 3b The interaction process of the transmission method shown is explained when it is applied to the receiving end. Figure 6 This diagram illustrates the interactive flow of the transmission method provided in an embodiment of this application. This method can be applied to... Figure 2 The system shown. (As shown in the image) Figure 6 As shown, the method may include:

[0124] Step S600: Establish a first channel and a second channel between the first device and the second device.

[0125] In step S601, the second device sends a first signaling message through the first channel and records the first transmission time of the first signaling message.

[0126] In step S602, the first device responds to the received first signaling by returning a first response through the first channel.

[0127] In step S603, the second device receives the first response and records the first reception time of receiving the first response.

[0128] In step S604, the second device sends a second signaling message through the second channel and records the second transmission time of the second signaling message.

[0129] In step S605, the first device responds to the received second signaling by returning a second response through the second channel.

[0130] In step S606, the second device receives the second response and records the second reception time of receiving the second response.

[0131] In step S607, the second device determines the transmission delay difference between the first channel and the second channel based on the first transmission time, the first reception time, the second transmission time, and the second reception time.

[0132] In step S608, the first device simultaneously sends the first data packet to the second device through the first channel and the second channel.

[0133] In step S609, when the second device receives the first data packet through the data transmission channel with the smaller transmission delay between the first channel and the second channel, it buffers the first data packet and determines that the first data packet meets the enable condition when the buffering time of the first data packet reaches the transmission delay difference.

[0134] In step S610, when the second device receives the first data packet through the data transmission channel with a larger transmission delay in the first and second channels, it determines that the first data packet meets the enable condition.

[0135] Step S611: The second device enables the first data packet that meets the enable condition among the first data packets received through the first channel and the second channel.

[0136] In this embodiment, the data packets of the data transmission channel with a smaller transmission delay are buffered at the receiving end, so that the transmission delays of the first channel and the second channel are made up to a similar level, reducing data jitter and improving smoothness.

[0137] Figure 7a This diagram illustrates the structure of a transmission apparatus provided in an embodiment of this application. This apparatus can be applied to a transmitting end, for example... Figure 2 The first device 21 is shown. (As shown) Figure 7a As shown, the device 70 may include:

[0138] The acquisition module 71 is used to acquire the transmission delay difference between the first channel and the second channel, where the first channel and the second channel represent two different data transmission channels established between the sending end and the receiving end.

[0139] The sending module 72 is configured to send a first data packet in parallel through the first channel and the second channel, so that the receiving end enables the first data packet that arrives at the receiving end first among the first data packets sent in parallel through the first channel and the second channel;

[0140] The moment when the first data packet is sent through the data transmission channel with the smaller data transmission delay between the first channel and the second channel is the first moment, and the moment when the first data packet is sent through the data transmission channel with the larger data transmission delay between the first channel and the second channel is the second moment. The first moment is after the second moment, and the difference between the first moment and the second moment is the transmission delay difference.

[0141] In one possible implementation, the acquisition module is further configured to:

[0142] The first signaling and the second signaling are transmitted through the first channel and the second channel respectively, and the first transmission time of transmitting the first signaling and the second transmission time of transmitting the second signaling are recorded.

[0143] The first response corresponding to the first signaling and the second response corresponding to the second signaling are received through the first channel and the second channel, respectively, and the first reception time of receiving the first response and the second reception time of receiving the second response are recorded.

[0144] The transmission delay difference between the first channel and the second channel is determined based on the first transmission time, the first reception time, the second transmission time, and the second reception time.

[0145] In one possible implementation, the acquisition module is further configured to:

[0146] The transmission delay difference between the first channel and the second channel is obtained according to a preset time interval.

[0147] In one possible implementation, the sending module is further configured to:

[0148] At the second moment, the first data packet is sent through the data transmission channel with a larger transmission delay between the first channel and the second channel;

[0149] The first data packet is buffered starting from the second time point, and when the buffering time of the first data packet reaches the transmission delay difference, the first data packet is sent through the data transmission channel with the smaller transmission delay difference between the first channel and the second channel.

[0150] In one possible implementation, the first time point is after the second time point, and the difference between the first time point and the second time point is the transmission delay difference, including:

[0151] When the transmission delay difference is less than a preset threshold, the first time point is after the second time point, and the difference between the first time point and the second time point is the transmission delay difference.

[0152] In this embodiment, based on dual-path redundancy, data on the data transmission channel with smaller transmission delay is buffered for a certain period of time, making the transmission delays of the two data transmission channels similar, so that the data transmission capabilities of the two data transmission channels complement each other, thereby reducing data jitter and improving smoothness.

[0153] Embodiments of this application provide an electronic device, including: a processor, a buffer for caching data packets, and a memory for storing processor-executable instructions; wherein the processor is configured to implement the above-described method when executing the instructions.

[0154] Figure 7b This diagram illustrates the structure of a transmission apparatus provided in an embodiment of this application. This apparatus can be applied to a receiving end, for example... Figure 2 The second device 22 is shown. (As shown) Figure 7a As shown, the device 90 may include:

[0155] The acquisition module 91 is used to acquire the transmission delay difference between the first channel and the second channel, where the first channel and the second channel represent two different data transmission channels established between the sending end and the receiving end, and the sending end is used to send a first data packet to the receiving end simultaneously through the first channel and the second channel;

[0156] Enable module 92 is used to enable the first data packet that first meets the enable condition among the first data packets received through the first channel and the second channel;

[0157] Wherein, for the first data packet received through the data transmission channel with a smaller data transmission delay between the first channel and the second channel, the enabling condition is satisfied as follows: the first data packet arrives at the receiving end, and the buffering time of the first data packet at the receiving end reaches the transmission delay difference;

[0158] For a first data packet received through a data transmission channel with a larger transmission delay in the first channel and the second channel, the enabling condition includes: the first data packet arriving at the receiving end.

[0159] In one possible implementation, the acquisition module is further configured to:

[0160] The first signaling and the second signaling are transmitted through the first channel and the second channel respectively, and the first transmission time of transmitting the first signaling and the second transmission time of transmitting the second signaling are recorded.

[0161] The first response corresponding to the first signaling and the second response corresponding to the second signaling are received through the first channel and the second channel, respectively, and the first reception time of receiving the first response and the second reception time of receiving the second response are recorded.

[0162] The transmission delay difference between the first channel and the second channel is determined based on the first transmission time, the first reception time, the second transmission time, and the second reception time.

[0163] In one possible implementation, the acquisition module is further configured to:

[0164] The transmission delay difference between the first channel and the second channel is obtained according to a preset time interval.

[0165] In one possible implementation, the enabling module is further configured to:

[0166] When the transmission delay difference is less than a preset threshold, the first data packet that meets the enable condition among the first data packets sent simultaneously by the sending end through the first channel and the second channel is enabled.

[0167] In this embodiment, based on dual-path redundancy, data on the data transmission channel with smaller transmission delay is buffered for a certain period of time, making the transmission delays of the two data transmission channels similar, so that the data transmission capabilities of the two data transmission channels complement each other, thereby reducing data jitter and improving smoothness.

[0168] Figure 8 This diagram illustrates the structure of an electronic device provided in an embodiment of this application. This electronic device can be used as… Figure 2 The first device 21 shown can also be used as Figure 2 The second device 22 shown.

[0169] like Figure 8 As shown, the electronic device may include at least one processor 801, a memory 802, an input / output device 803, and a bus 804. The following is in conjunction with... Figure 8 A detailed introduction to each component of the electronic device:

[0170] Processor 801 is the control center of an electronic device. It can be a single processor or a collective term for multiple processing elements. For example, processor 801 can be a CPU, an Application Specific Integrated Circuit (ASIC), or one or more integrated circuits configured to implement embodiments of this disclosure, such as one or more Digital Signal Processors (DSPs), or one or more Field Programmable Gate Arrays (FPGAs).

[0171] The processor 801 can perform various functions of the electronic device by running or executing software programs stored in the memory 802 and calling data stored in the memory 802.

[0172] In a specific implementation, as one example, processor 801 may include one or more CPUs, such as CPU 0 and CPU 1 shown in the figure.

[0173] In a specific implementation, as one example, an electronic device may include multiple processors, for example... Figure 8 The processors 801 and 805 are shown. Each of these processors can be a single-core processor or a multi-core processor. Here, "processor" can refer to one or more devices, circuits, and / or processing cores used to process data (e.g., computer program instructions).

[0174] The memory 802 may be a read-only memory (ROM) or other type of static storage device capable of storing static information and instructions, random access memory (RAM) or other type of dynamic storage device capable of storing information and instructions, or it may be 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 discs, laser discs, optical discs, digital universal optical discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but is not limited thereto. The memory 802 may exist independently and be connected to the processor 801 via bus 804. The memory 802 may also be integrated with the processor 801. In this embodiment of the disclosure, the memory can be used to store data packets, first signaling, second signaling, first response, second response, first transmission time, first reception time, second transmission time, second reception time, transmission delay difference, etc.

[0175] In this embodiment of the application, the memory 802 may include a buffer that can be used to buffer data packets according to the transmission delay difference.

[0176] Input / output device 803 is used to communicate with other devices or communication networks, such as Ethernet, Radio Access Network (RAN), and Wireless Local Area Networks (WLAN). Input / output device 803 may include all or part of a baseband processor, and may optionally include a Radio Frequency (RF) processor. The RF processor is used to transmit and receive RF signals, while the baseband processor is used to process baseband signals converted from RF signals or baseband signals that are about to be converted to RF signals.

[0177] In a specific implementation, as one embodiment, the input / output device 803 may include a transmitter and a receiver. The transmitter is used to send signals to other devices or communication networks, and the receiver is used to receive signals sent by other devices or communication networks. The transmitter and receiver may exist independently or be integrated together. In this embodiment, the input / output device can be used to send and receive: first signaling, second signaling, first response, second response, and data packets, etc.

[0178] The 804 bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus. This bus can be divided into address bus, data bus, control bus, etc. For ease of representation, Figure 8 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.

[0179] Figure 8 The device structure shown does not constitute a limitation on the electronic device and may include more or fewer components than shown, or combine certain components, or have different component arrangements.

[0180] Embodiments of this application provide a computer-readable storage medium having computer program instructions stored thereon, which, when executed by a processor, implement the above-described method.

[0181] Embodiments of this application provide a computer program product including computer-readable code, or a non-volatile computer-readable storage medium carrying computer-readable code, wherein when the computer-readable code is run in a processor of an electronic device, the processor in the electronic device performs the above-described method.

[0182] Computer-readable storage media can be tangible devices capable of holding and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example, (but not limited to) electrical storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of computer-readable storage media include: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), electrically programmable read-only memory (EPROM or flash memory), static random-access memory (SRAM), compact disc read-only memory (CD-ROM), digital video disc (DVD), memory sticks, floppy disks, mechanical encoding devices, such as punch cards or recessed protrusions storing instructions thereon, and any suitable combination of the foregoing.

[0183] The computer-readable program instructions or code described herein can be downloaded from computer-readable storage media to various computing / processing devices, or downloaded via a network, such as the Internet, local area network, wide area network, and / or wireless network, to an external computer or external storage device. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to the computer-readable storage media in the respective computing / processing device.

[0184] The computer program instructions used to perform the operations of this application may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++, etc., and conventional procedural programming languages ​​such as "C" or similar languages. The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer may be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuits, such as programmable logic circuits, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), are personalized by utilizing state information from computer-readable program instructions. These electronic circuits can execute computer-readable program instructions to implement various aspects of this application.

[0185] Various aspects of this application are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.

[0186] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when executed by the processor of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner; thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.

[0187] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.

[0188] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of apparatus, systems, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction containing one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than those shown in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved.

[0189] It should also be noted that each block in the block diagram and / or flowchart, as well as combinations of blocks in the block diagram and / or flowchart, can be implemented using hardware (such as circuits or ASICs (Application Specific Integrated Circuits)) that performs the corresponding function or action, or using a combination of hardware and software, such as firmware.

[0190] Although the invention has been described herein in conjunction with various embodiments, those skilled in the art will understand and implement other variations of the disclosed embodiments by reviewing the accompanying drawings, disclosure, and appended claims in carrying out the claimed invention. In the claims, the word "comprising" does not exclude other components or steps, and "a" or "an" does not exclude a plurality. A single processor or other unit can implement several functions listed in the claims. While different dependent claims may recite certain measures, this does not mean that these measures cannot be combined to produce good results.

[0191] The various embodiments of this application have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terminology used herein is chosen to best explain the principles, practical application, or improvement of the technology in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.

Claims

1. A transmission method, characterized by, The method is applied to a sending end, and the method comprises: obtaining a transmission delay difference of a first channel and a second channel, the first channel and the second channel representing two different data transmission channels established between the sending end and a receiving end; sending a first data packet through the first channel and the second channel in parallel, so that the receiving end enables a first data packet that first arrives at the receiving end among the first data packets sent through the first channel and the second channel in parallel; wherein a time point of sending the first data packet through a data transmission channel with a smaller data transmission delay between the first channel and the second channel is a first time point, a time point of sending the first data packet through a data transmission channel with a larger data transmission delay between the first channel and the second channel is a second time point, in a case where the transmission delay difference is less than a preset threshold, the first time point is after the second time point, and a difference between the first time point and the second time point is the transmission delay difference.

2. The method of claim 1, wherein, The obtaining of the transmission delay difference of the first channel and the second channel comprises: sending a first signaling and a second signaling through the first channel and the second channel respectively, and recording a first sending time of sending the first signaling and a second sending time of sending the second signaling; receiving a first response corresponding to the first signaling and a second response corresponding to the second signaling through the first channel and the second channel respectively, and recording a first receiving time of receiving the first response and a second receiving time of receiving the second response; determining the transmission delay difference of the first channel and the second channel according to the first sending time, the first receiving time, the second sending time and the second receiving time.

3. The method according to claim 1 or 2, characterized in that, The obtaining of the transmission delay difference of the first channel and the second channel comprises: obtaining the transmission delay difference of the first channel and the second channel according to a preset time interval.

4. The method of claim 1, wherein, The sending of the first data packet through the first channel and the second channel in parallel comprises: sending the first data packet through the data transmission channel with the larger transmission delay between the first channel and the second channel at the second time point; caching the first data packet from the second time point as a starting time point, and sending the first data packet through the data transmission channel with the smaller transmission delay difference between the first channel and the second channel when a caching time of the first data packet reaches the transmission delay difference.

5. A transmission method characterized by, The method is applied to a receiving end, and the method comprises: obtaining a transmission delay difference of a first channel and a second channel, the first channel and the second channel representing two different data transmission channels established between a sending end and the receiving end, the sending end being configured to send a first data packet to the receiving end through the first channel and the second channel simultaneously; in a case where the transmission delay difference is less than a preset threshold, enabling a first data packet that first satisfies an enabling condition among the first data packets received through the first channel and the second channel; The enabling condition is satisfied for a first data packet received through a data transmission channel with a smaller data transmission delay between the first channel and the second channel, including that the first data packet arrives at the receiving end, and a cache time of the first data packet at the receiving end reaches the transmission delay difference. The enabling condition is satisfied for a first data packet received through a data transmission channel with a larger transmission delay between the first channel and the second channel, including that the first data packet arrives at the receiving end.

6. The method of claim 5, wherein, The transmission delay difference between the first channel and the second channel is obtained by: sending a first signaling and a second signaling through the first channel and the second channel respectively, and recording a first sending time of sending the first signaling and a second sending time of sending the second signaling; receiving a first response corresponding to the first signaling and a second response corresponding to the second signaling through the first channel and the second channel respectively, and recording a first receiving time of receiving the first response and a second receiving time of receiving the second response; determining the transmission delay difference between the first channel and the second channel according to the first sending time, the first receiving time, the second sending time and the second receiving time.

7. The method according to claim 5 or 6, characterized in that, The transmission delay difference between the first channel and the second channel is obtained by: obtaining the transmission delay difference between the first channel and the second channel at a preset time interval.

8. A transmitting device, characterized by The device is applied to a sending end, and the device includes: an obtaining module, configured to obtain a transmission delay difference between a first channel and a second channel, the first channel and the second channel representing two different data transmission channels established between the sending end and a receiving end; a sending module, configured to send a first data packet through the first channel and the second channel in parallel, so that the receiving end enables a first data packet of the first data packet sent through the first channel and the second channel in parallel and arriving at the receiving end first; wherein a time of sending the first data packet through a data transmission channel with a smaller data transmission delay between the first channel and the second channel is a first time, a time of sending the first data packet through a data transmission channel with a larger data transmission delay between the first channel and the second channel is a second time, in a case where the transmission delay difference is smaller than a preset threshold, the first time is after the second time, and a difference between the first time and the second time is the transmission delay difference.

9. The apparatus of claim 8, wherein, The obtaining module is further configured to: send a first signaling and a second signaling through the first channel and the second channel respectively, and record a first sending time of sending the first signaling and a second sending time of sending the second signaling; receive a first response corresponding to the first signaling and a second response corresponding to the second signaling through the first channel and the second channel respectively, and record a first receiving time of receiving the first response and a second receiving time of receiving the second response; determine the transmission delay difference between the first channel and the second channel according to the first sending time, the first receiving time, the second sending time and the second receiving time.

10. The apparatus of claim 8 or 9, wherein, The acquisition module is further configured to: acquire a transmission delay difference between the first channel and the second channel according to a preset time interval.

11. The apparatus of claim 8, wherein, The sending module is further configured to: send the first data packet through a data transmission channel with a longer transmission delay between the first channel and the second channel at the second time point; cache the first data packet from the second time point, and send the first data packet through a data transmission channel with a shorter transmission delay between the first channel and the second channel when a cache time of the first data packet reaches the transmission delay difference.

12. A transmitting device, comprising: The apparatus is applied to a receiving end, and the apparatus comprises: an acquisition module configured to acquire a transmission delay difference between a first channel and a second channel, the first channel and the second channel representing two different data transmission channels established between a sending end and the receiving end, and the sending end configured to send a first data packet to the receiving end through the first channel and the second channel simultaneously; an enabling module configured to enable a first data packet that first satisfies an enabling condition among the first data packets received through the first channel and the second channel when the transmission delay difference is less than a preset threshold value; wherein, for a first data packet received through a data transmission channel with a shorter data transmission delay between the first channel and the second channel, the enabling condition is satisfied when the first data packet arrives at the receiving end and a cache time of the first data packet at the receiving end reaches the transmission delay difference; for a first data packet received through a data transmission channel with a longer transmission delay between the first channel and the second channel, the enabling condition is satisfied when the first data packet arrives at the receiving end.

13. The apparatus of claim 12, wherein, The acquisition module is further configured to: send a first signaling and a second signaling through the first channel and the second channel respectively, and record a first sending time of sending the first signaling and a second sending time of sending the second signaling; receive a first response corresponding to the first signaling and a second response corresponding to the second signaling through the first channel and the second channel respectively, and record a first receiving time of receiving the first response and a second receiving time of receiving the second response; determine a transmission delay difference between the first channel and the second channel according to the first sending time, the first receiving time, the second sending time, and the second receiving time.

14. The apparatus of claim 12 or 13, wherein, The acquisition module is further configured to: acquire a transmission delay difference between the first channel and the second channel according to a preset time interval.

15. An electronic device, comprising: comprise: a processor; a memory for storing processor-executable instructions; wherein the processor is configured to implement the method in any one of claims 1 to 4, or implement the method in any one of claims 5 to 7 when executing the instructions.

16. A computer-readable storage medium having stored thereon computer program instructions, wherein, The computer program instructions are executed by the processor to implement the method in any one of claims 1 to 4, or implement the method in any one of claims 5 to 7.

17. A computer program product comprising computer readable code, or a non-transitory computer readable storage medium carrying computer readable code, which when run in an electronic device causes a processor in the electronic device to perform the method of any one of claims 1 to 4, or to perform the method of any one of claims 5 to 7.

Citation Information

Patent Citations

  • Data transmission method, device and system

    CN107371071A