Multipath communication method, device and system
By determining the waiting delay of each path for the path source device in the multi-path communication system, and sending messages after the waiting delay is completed, the problem of the sending device being congested due to error identification of the inherent delay is realized, and the sending device is realized. Accurate congestion perception and efficient path utilization.
Patent Information
- Application Number
- CN202010480937.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-05-30
- Publication Date
- 2025-02-25
- Estimated Expiration
- 2040-05-30
AI Technical Summary
In the prior art, the sending device identifies the delay fluctuation caused by the inherent delay between each path as the delay fluctuation caused by network congestion, resulting in the slow startup process being withdrawn in advance, resulting in slow growth of the congestion window and low path utilization.
The path source device determines the waiting delay based on the inherent delay of each path, and sends a message after the waiting delay is completed, ensuring that the difference in the transmission delay between multiple paths is less than or equal to the preset time difference, and avoiding Misrecognized that the inherent delay is network congestion.
Accurate congestion perception is achieved, and the control congestion window grows exponentially during slow startup, which improves path utilization.
Smart Images

Figure CN113746745B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of communication technology, and in particular to a multi-path communication method, device and system. Background Art
[0002] In an existing network, such as a Linux system, a sending device can use a transmission control protocol (TCP) congestion control algorithm to control the number of messages sent each time to avoid network congestion. The TCP congestion control algorithm can control the number of messages sent each time by maintaining a congestion window.
[0003] For example, the TCP congestion control algorithm can use a hybrid slow start algorithm (for example, the Hystart++ algorithm) to control the size of the congestion window. Among them, the sending device can control the exponential growth of the congestion window in the early stage of message sending (also known as the slow start process) according to the hybrid slow start algorithm; when it is determined that there is network congestion based on congestion perception judgment conditions such as the arrival time interval of each confirmation frame and delay fluctuation, it can exit the slow start process and reduce the current congestion window multiplicatively. On the basis of the multiplicatively reduced congestion window, the congestion window is slowly increased according to the growth function pre-set by the hybrid slow start algorithm. Thereby slowing down the growth rate of the congestion window and avoiding network congestion.
[0004] At present, when sending a message, the sending device can send the message to the path source device. The path source device can send the message to the path destination device through multiple paths, and the path destination device sends the message to the receiving device. During the sending process, the path source device can determine which path to send the message through according to the usage of each path, and the sending device cannot perceive which path the message is sent through. Since each path has an inherent delay, the sending device can easily identify the delay fluctuations caused by the differences in inherent delays between the paths as delay fluctuations caused by network congestion based on the hybrid slow start algorithm, causing the sending device to believe that there is network congestion, thereby exiting the slow start process in advance, resulting in a slower growth of the congestion window and low path utilization. Summary of the invention
[0005] In view of this, the embodiments of the present application provide a multi-path communication method, device and system, which can solve the technical problem in the prior art that the sending device identifies the delay fluctuations caused by the inherent delays between the paths as delay fluctuations caused by network congestion, and believes that there is network congestion, exits the slow start process prematurely, resulting in slow growth of the congestion window and low path utilization.
[0006] In order to achieve the above objectives, the embodiments of the present application adopt the following technical solutions:
[0007] In a first aspect, an embodiment of the present application provides a multi-path communication method, which is applied to a communication system, wherein the communication system includes a path source device and a path destination device, and there are at least two paths between the path source device and the path destination device; the at least two paths include a first path and a second path; the method includes: the path source device determines a waiting delay of the first path and a waiting delay of the second path according to an inherent delay of the first path and an inherent delay of the second path; wherein the sum of the inherent delay of the first path and the waiting delay of the first path is the transmission delay of the first path; the sum of the inherent delay of the second path and the waiting delay of the second path is the transmission delay of the second path; the difference between the transmission delay of the first path and the transmission delay of the second path is less than or equal to a preset time difference; the waiting delay of the first path is used for when a message needs to be sent through the first path, the link source device sends the message through the first path after the waiting delay of the first path ends; the waiting delay of the second path is used for when a message needs to be sent through the second path, the link source device sends the message through the second path after the waiting delay of the second path ends.
[0008] Based on the first aspect, in an embodiment of the present application, the path source device determines a waiting delay for each of the multiple paths between the path source device and the path destination device, and sends a message on the path after the waiting delay corresponding to the path ends. This can make the difference in transmission delay between any two of the multiple paths less than or equal to a preset time difference, reduce the delay fluctuations caused by the inherent delays between the paths, and avoid the sending device from exiting the slow start process prematurely due to the delay fluctuations caused by the inherent delays of the paths, believing that there is network congestion. This can achieve accurate congestion perception, thereby controlling the exponential growth of the congestion window during the slow start process, and improving path utilization.
[0009] In one possible design, when the inherent delay is a one-way inherent delay used to indicate the transmission time of a message on a path, the path source device determines the waiting delay of the first path as the first time period, and determines the waiting delay of the second path as the difference between the one-way transmission delay of the first path and the one-way inherent delay of the second path; the one-way transmission delay is the sum of the one-way inherent delay of the path and the waiting delay of the path.
[0010] In one possible design, the first path is the path with the longest one-way inherent delay between the first path and the second path, and the first time period is 0.
[0011] Based on the above two possible designs, when the inherent delay is a one-way inherent delay, the path source device can determine the waiting delay for the path with the longest one-way inherent delay, and set the waiting delay for the remaining paths in the multiple paths according to the one-way transmission delay of the path with the longest one-way inherent delay, so that the difference in the one-way transmission delay of any two paths in the multiple paths is less than or equal to the preset time difference.
[0012] In a possible design, a path source device sends a message including a sending time of the message to a path destination device via a first path and a second path; receives a confirmation frame of the message including a sending time of the message and a receiving time of the message from the path destination device via the first path and the second path; determines a one-way inherent delay of the first path according to the sending time of the message and the receiving time of the message corresponding to the first path; and determines a one-way inherent delay of the second path according to the sending time of the message and the receiving time of the message corresponding to the second path.
[0013] In one possible design, the path source device periodically sends messages to the path destination device through the first path and the second path.
[0014] Based on the above two possible designs, the path source device can determine the one-way inherent delay of the path according to the sending time and receiving time of the message corresponding to each path among multiple paths, which provides a feasible solution for the path source device to determine the one-way inherent delay of the path.
[0015] In a possible design, a path source device sends a first message including a sending time of the first message to a path destination device through a first path; receives a confirmation frame of the first message including a sending time of the first message and a receiving time of the first message from the path destination device through the first path; determines a one-way inherent delay of the first path according to the sending time of the first message and the receiving time of the first message; the path source device sends a second message including a sending time of the second message to the path destination device through a second path; receives a confirmation frame of the second message including a sending time of the second message and a receiving time of the second message from the path destination device through the second path; determines a one-way inherent delay of the second path according to the sending time of the second message and the receiving time of the second message.
[0016] In one possible design, the path source device periodically sends a first message to the path destination device via a first path; and the path source device periodically sends a second message to the path destination device via a second path.
[0017] Based on the above two possible designs, the path source device can determine the one-way inherent delay of the path according to the sending time and receiving time of the message corresponding to each path among multiple paths, which provides a feasible solution for the path source device to determine the one-way inherent delay of the path.
[0018] In a possible design, when the inherent delay is a two-way inherent delay used to indicate the sum of the transmission time of a message on the path and the transmission time of a confirmation frame of the message on the path, the path source device determines the waiting delay of the first path as the first time period, and determines the waiting delay of the second path as the difference between the two-way transmission delay of the first path and the two-way inherent delay of the second path; the two-way transmission delay is the sum of the two-way inherent delay of the path and the waiting delay of the path.
[0019] In one possible design, the first path is the path with the longest bidirectional inherent delay between the first path and the second path, and the first time period is 0.
[0020] Based on the above two possible designs, when the inherent delay is a two-way inherent delay, the path source device can determine the waiting delay for the path with the longest two-way inherent delay, and set the waiting delay for the remaining paths in the multiple paths according to the two-way transmission delay of the path with the longest two-way inherent delay, so that the difference in the two-way transmission delay of any two paths in the multiple paths is less than or equal to the preset time difference.
[0021] In a possible design, a path source device sends a message including a sending time of the message to a path destination device via a first path and a second path; a confirmation frame of the message including a sending time of the message and a sending delay time of a confirmation frame is received from the path destination device via the first path and the second path; the sending delay time is a difference between a sending time of the confirmation frame and a receiving time of the message; a two-way inherent delay of the first path is determined according to the receiving time of the confirmation frame corresponding to the first path, the sending time of the message, and the sending delay time of the confirmation frame; and a two-way inherent delay of the second path is determined according to the receiving time of the confirmation frame corresponding to the second path, the sending time of the message, and the sending delay time of the confirmation frame.
[0022] In one possible design, the path source device periodically receives confirmation frames of messages from the path destination device through the first path and the second path; wherein the message is the latest message received by the path destination device when the confirmation frame sending cycle arrives.
[0023] Based on the above two possible designs, the path source device can determine the two-way inherent delay of the path according to the reception time of the confirmation frame, the sending time of the message and the sending delay time of the confirmation frame corresponding to each path in multiple paths, which provides a feasible solution for the path source device to determine the two-way inherent delay of the path.
[0024] In a possible design, a path source device sends a first message including a sending time of the first message to a path destination device via a first path; receives a confirmation frame of the first message including the sending time of the first message and a sending delay time of a confirmation frame of the first message from the path destination device via the first path; the sending delay time is the difference between the sending time of the confirmation frame of the first message and the receiving time of the first message; the bidirectional inherent delay of the first path is determined according to the receiving time of the confirmation frame of the first message, the sending time of the first message, and the sending delay time of the confirmation frame of the first message; the path source device sends a second message including a sending time of the second message to the path destination device via a second path; receives a confirmation frame of the second message including the sending time of the second message and the sending delay time of the confirmation frame of the second message from the path destination device via the second path; the sending delay time is the difference between the sending time of the confirmation frame of the second message and the receiving time of the second message; the bidirectional inherent delay of the second path is determined according to the receiving time of the confirmation frame of the second message, the sending time of the second message, and the sending delay time of the confirmation frame of the second message.
[0025] In one possible design, the path source device periodically receives a confirmation frame of a first message from the path destination device via a first path; wherein the first message is the first message most recently received by the path destination device when a sending cycle of the confirmation frame arrives; and the path source device periodically receives a confirmation frame of a second message from the path destination device via a second path; wherein the second message is the second message most recently received by the path destination device when a sending cycle of the confirmation frame arrives.
[0026] Based on the above two possible designs, the path source device can determine the two-way inherent delay of the path according to the reception time of the confirmation frame of the message corresponding to each path in multiple paths, the sending time of the message and the sending delay time of the confirmation frame of the message, which provides a feasible solution for the path source device to determine the two-way inherent delay of the path.
[0027] In one possible design, the path source device determines a first timer for the first path based on the waiting delay of the first path; determines a second timer for the second path based on the waiting delay of the second path; after the first timer expires, sends a message on the first path; after the second timer expires, sends a message on the second path.
[0028] Based on this possible design, the path source device determines a timer for each path and sends a message on the path where the timer expires, so that the difference in transmission delay between any two paths among the multiple paths is less than or equal to the preset time difference.
[0029] In one possible design, the path source device determines a first waiting queue for the first path including messages that need to be sent on the first path based on the waiting delay of the first path; determines a second waiting queue for the second path including messages that need to be sent on the second path based on the waiting delay of the second path; after the waiting delay of the first path ends, the messages in the first waiting queue are sent on the first path; after the waiting delay of the second path ends, the messages in the second waiting queue are sent on the second path.
[0030] Based on this possible design, the path source device can determine the waiting queue according to the waiting delay of each path, and send the corresponding waiting queue on the path according to the waiting delay, so that the difference in transmission delay between any two paths among multiple paths can be less than or equal to the preset time difference.
[0031] In one possible design, the path source device determines a first timer and a first waiting queue including messages that need to be sent on the first path for the first path according to the waiting delay of the first path; determines a second timer and a second waiting queue including messages that need to be sent on the second path for the second path according to the waiting delay of the second path; after the first timer expires, the messages in the first waiting queue are sent on the first path; after the second timer expires, the messages in the second waiting queue are sent on the second path.
[0032] Based on this possible design, the path source device determines a timer and a waiting queue for each path, and sends the waiting queue corresponding to the path after the timer of the path expires, so that the difference in transmission delay between any two paths among multiple paths is less than or equal to a preset time difference.
[0033] In a second aspect, an embodiment of the present application provides a communication device, which can implement the functions performed by the path source device in the first aspect or the possible design of the first aspect, and the functions can be implemented by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions. For example, a processing module.
[0034] A processing module, used to determine the waiting delay of the first path and the waiting delay of the second path according to the inherent delay of the first path and the inherent delay of the second path; wherein the sum of the inherent delay of the first path and the waiting delay of the first path is the transmission delay of the first path; the sum of the inherent delay of the second path and the waiting delay of the second path is the transmission delay of the second path; the difference between the transmission delay of the first path and the transmission delay of the second path is less than or equal to a preset time difference; the waiting delay of the first path is used for when a message needs to be sent through the first path, the link source end device sends the message through the first path after the waiting delay of the first path ends; the waiting delay of the second path is used for when a message needs to be sent through the second path, the link source end device sends the message through the second path after the waiting delay of the second path ends.
[0035] Among them, the specific implementation method of the communication device can refer to the behavior function of the path source device in the multi-path communication method provided by the first aspect or any possible design of the first aspect. Based on the communication device described in the second aspect, the path source device determines the waiting delay for each of the multiple paths between the path source device and the path destination device, and sends a message on the path after the waiting delay corresponding to the path ends. It can make the difference in the transmission delay of any two paths among the multiple paths less than or equal to the preset time difference, reduce the delay fluctuation caused by the inherent delay between the paths, and avoid the sending device from exiting the slow start process prematurely due to the delay fluctuation caused by the inherent delay of each path, which believes that there is network congestion. Accurate congestion perception can be achieved, and then the congestion window can be controlled to grow exponentially during the slow start process, thereby improving path utilization.
[0036] In one possible design, when the inherent delay is a one-way inherent delay used to indicate the transmission time of a message on a path, the processing module is also used to determine the waiting delay of the first path as a first time period, and determine the waiting delay of the second path as the difference between the one-way transmission delay of the first path and the one-way inherent delay of the second path; the one-way transmission delay is the sum of the one-way inherent delay of the path and the waiting delay of the path.
[0037] In one possible design, the first path is the path with the longest one-way inherent delay between the first path and the second path, and the first time period is 0.
[0038] Based on the above two possible designs, when the inherent delay is a one-way inherent delay, the path source device can determine the waiting delay for the path with the longest one-way inherent delay, and set the waiting delay for the remaining paths in the multiple paths according to the one-way transmission delay of the path with the longest one-way inherent delay, so that the difference in the one-way transmission delay of any two paths in the multiple paths is less than or equal to the preset time difference.
[0039] In one possible design, the communication device also includes a sending module and a receiving module, wherein the sending module is used to send a message including the sending time of the message to the path destination device through the first path and the second path; the receiving module is used to receive a confirmation frame of the message including the sending time of the message and the receiving time of the message from the path destination device through the first path and the second path; the processing module is also used to determine the one-way inherent delay of the first path according to the sending time of the message and the receiving time of the message corresponding to the first path; the processing module is also used to determine the one-way inherent delay of the second path according to the sending time of the message and the receiving time of the message corresponding to the second path.
[0040] In one possible design, the sending module is also used to periodically send messages to the path destination device through the first path and the second path.
[0041] Based on the above two possible designs, the path source device can determine the one-way inherent delay of the path according to the sending time and receiving time of the message corresponding to each path among multiple paths, which provides a feasible solution for the path source device to determine the one-way inherent delay of the path.
[0042] In one possible design, a sending module is used to send a first message including a sending time of the first message to a path destination device through a first path; a receiving module is used to receive a confirmation frame of the first message including a sending time of the first message and a receiving time of the first message from the path destination device through the first path; the processing module is also used to determine a one-way inherent delay of the first path according to the sending time of the first message and the receiving time of the first message; the sending module is also used to send a second message including a sending time of the second message to the path destination device through a second path; the receiving module is also used to receive a confirmation frame of the second message including a sending time of the second message and a receiving time of the second message from the path destination device through the second path; the processing module is also used to determine the one-way inherent delay of the second path according to the sending time of the second message and the receiving time of the second message.
[0043] In one possible design, the sending module is also used to periodically send a first message to a path destination device through a first path; the sending module is also used to periodically send a second message to a path destination device through a second path.
[0044] Based on the above two possible designs, the path source device can determine the one-way inherent delay of the path according to the sending time and receiving time of the message corresponding to each path among multiple paths, which provides a feasible solution for the path source device to determine the one-way inherent delay of the path.
[0045] In one possible design, when the inherent delay is a two-way inherent delay used to indicate the sum of the transmission time of a message on a path and the transmission time of a confirmation frame of the message on the path, the processing module is also used to determine the waiting delay of the first path as a first time period, and determine the waiting delay of the second path as the difference between the two-way transmission delay of the first path and the two-way inherent delay of the second path; the two-way transmission delay is the sum of the two-way inherent delay of the path and the waiting delay of the path.
[0046] In one possible design, the first path is the path with the longest bidirectional inherent delay between the first path and the second path, and the first time period is 0.
[0047] Based on the above two possible designs, when the inherent delay is a two-way inherent delay, the path source device can determine the waiting delay for the path with the longest two-way inherent delay, and set the waiting delay for the remaining paths in the multiple paths according to the two-way transmission delay of the path with the longest two-way inherent delay, so that the difference in the two-way transmission delay of any two paths in the multiple paths is less than or equal to the preset time difference.
[0048] In one possible design, the sending module is further used to send a message including the sending time of the message to the path destination device through the first path and the second path; the receiving module is further used to receive a confirmation frame of the message including the sending time of the message and the sending delay time of the confirmation frame from the path destination device through the first path and the second path; the sending delay time is the difference between the sending time of the confirmation frame and the receiving time of the message; the processing module is further used to determine the two-way inherent delay of the first path according to the receiving time of the confirmation frame corresponding to the first path, the sending time of the message and the sending delay time of the confirmation frame; the processing module is further used to determine the two-way inherent delay of the second path according to the receiving time of the confirmation frame corresponding to the second path, the sending time of the message and the sending delay time of the confirmation frame.
[0049] In one possible design, the receiving module is also used to periodically receive confirmation frames of messages from the path destination device through the first path and the second path; wherein the message is the latest message received by the path destination device when the sending cycle of the confirmation frame arrives.
[0050] Based on the above two possible designs, the path source device can determine the two-way inherent delay of the path according to the reception time of the confirmation frame, the sending time of the message and the sending delay time of the confirmation frame corresponding to each path in multiple paths, which provides a feasible solution for the path source device to determine the two-way inherent delay of the path.
[0051] In a possible design, the sending module is further used to send a first message including the sending time of the first message to a path destination device through the first path; the receiving module is further used to receive a confirmation frame of the first message including the sending time of the first message and the sending delay time of the confirmation frame of the first message from the path destination device through the first path; the sending delay time is the difference between the sending time of the confirmation frame of the first message and the receiving time of the first message; the processing module is further used to determine the bidirectionality of the first path according to the receiving time of the confirmation frame of the first message, the sending time of the first message, and the sending delay time of the confirmation frame of the first message. The method comprises the following steps: a first step of transmitting the second message to the destination device of the path through the second path, and a second step of transmitting the second message to the destination device of the path through the second path; a second step of transmitting the second message to the destination device of the path through the second path, and a second step of transmitting the second message to the destination device of the path through the second path; the second step of transmitting the second message to the destination device of the path through the second path, and the ...
[0052] In one possible design, the receiving module is also used to periodically receive a confirmation frame of a first message from a path destination device through a first path; wherein the first message is the first message most recently received by the path destination device when a sending cycle of the confirmation frame arrives; the receiving module is also used to periodically receive a confirmation frame of a second message from a path destination device through a second path; wherein the second message is the second message most recently received by the path destination device when a sending cycle of the confirmation frame arrives.
[0053] Based on the above two possible designs, the path source device can determine the two-way inherent delay of the path according to the reception time of the confirmation frame of the message corresponding to each path in multiple paths, the sending time of the message and the sending delay time of the confirmation frame of the message, which provides a feasible solution for the path source device to determine the two-way inherent delay of the path.
[0054] In one possible design, the processing module is also used to determine a first timer for the first path based on the waiting delay of the first path; and to determine a second timer for the second path based on the waiting delay of the second path; the sending module is also used to send a message on the first path after the first timer expires; and to send a message on the second path after the second timer expires.
[0055] Based on this possible design, the path source device determines a timer for each path and sends a message on the path where the timer expires, so that the difference in transmission delay between any two paths among the multiple paths is less than or equal to the preset time difference.
[0056] In one possible design, the processing module is further used to determine a first waiting queue for the first path including messages that need to be sent on the first path based on the waiting delay of the first path; and to determine a second waiting queue for the second path including messages that need to be sent on the second path based on the waiting delay of the second path; the sending module is further used to send messages in the first waiting queue on the first path after the waiting delay of the first path ends; and to send messages in the second waiting queue on the second path after the waiting delay of the second path ends.
[0057] Based on this possible design, the path source device can determine the waiting queue according to the waiting delay of each path, and send the corresponding waiting queue on the path according to the waiting delay, so that the difference in transmission delay between any two paths among multiple paths can be less than or equal to the preset time difference.
[0058] In one possible design, the processing module is also used to determine a first timer and a first waiting queue including messages that need to be sent on the first path for the first path based on the waiting delay of the first path; determine a second timer and a second waiting queue including messages that need to be sent on the second path for the second path based on the waiting delay of the second path; the sending module is also used to send the messages in the first waiting queue on the first path after the first timer expires; and send the messages in the second waiting queue on the second path after the second timer expires.
[0059] Based on this possible design, the path source device determines a timer and a waiting queue for each path, and sends the waiting queue corresponding to the path after the timer of the path expires, so that the difference in transmission delay between any two paths among multiple paths is less than or equal to a preset time difference.
[0060] In a third aspect, a communication device is provided, which may be a path source device or a chip or system on chip in the path source device. The communication device may implement the functions performed by the path source device in the above aspects or possible designs, and the functions may be implemented by hardware. In one possible design, the communication device may include: a processor. The processor may be used to support the communication device to implement the functions involved in the above first aspect or any possible design of the first aspect. For example: the processor can be used to determine the waiting delay of the first path and the waiting delay of the second path according to the inherent delay of the first path and the inherent delay of the second path; wherein the sum of the inherent delay of the first path and the waiting delay of the first path is the transmission delay of the first path; the sum of the inherent delay of the second path and the waiting delay of the second path is the transmission delay of the second path; the difference between the transmission delay of the first path and the transmission delay of the second path is less than or equal to the preset time difference; the waiting delay of the first path is used for when it is necessary to send a message through the first path, the link source end device sends the message through the first path after the waiting delay of the first path ends; the waiting delay of the second path is used for when it is necessary to send a message through the second path, the link source end device sends the message through the second path after the waiting delay of the second path ends. In another possible design, the communication device may also include a memory, the memory is used to store the necessary computer execution instructions and data of the communication device. When the communication device is running, the processor executes the computer execution instructions stored in the memory, so that the communication device performs the multi-path communication method as described in the first aspect or any possible design of the first aspect.
[0061] Among them, the specific implementation method of the communication device can refer to the behavior function of the path source device in the communication method provided by the first aspect or any possible design of the first aspect.
[0062] In a fourth aspect, a communication device is provided, which includes one or more processors and one or more memories; the one or more memories are coupled to the one or more processors, and the one or more memories are used to store computer program codes or computer instructions; when the one or more processors execute the computer instructions, the communication device executes the multipath communication method described in the first aspect or any possible design of the first aspect.
[0063] In a fifth aspect, a computer-readable storage medium is provided, which stores computer instructions or programs. When the computer instructions or programs are executed on a computer, the computer executes the multipath communication method as described in the first aspect or any possible design of the first aspect.
[0064] In a sixth aspect, a computer program product comprising instructions is provided, which, when executed on a computer, enables the computer to execute the multipath communication method as described in the first aspect or any possible design of the first aspect.
[0065] Among them, the technical effects brought about by any design method from the third aspect to the sixth aspect can refer to the technical effects brought about by any possible design from the first aspect to the second aspect mentioned above, and will not be repeated here.
[0066] In a seventh aspect, an embodiment of the present application provides a multi-path communication method, which is applied to a communication system, wherein the communication system includes a path source device and a path destination device, and there are at least two paths between the path source device and the path destination device; the at least two paths include a first path and a second path; the method includes: the path destination device determines the waiting delay of the first path and the waiting delay of the second path according to the one-way inherent delay of the first path and the one-way inherent delay of the second path; wherein the one-way inherent delay is the transmission time of the message on the path, and the sum of the one-way inherent delay of the first path and the waiting delay of the first path is the one-way inherent delay of the first path. One-way transmission delay; the sum of the one-way inherent delay of the second path and the waiting delay of the second path is the one-way transmission delay of the second path; the difference between the one-way transmission delay of the first path and the one-way transmission delay of the second path is less than or equal to the preset time difference; the waiting delay of the first path is used for when a confirmation frame of a message needs to be sent through the first path, the path destination device sends a confirmation frame of the message through the first path after the waiting delay of the first path ends; the waiting delay of the second path is used for when a confirmation frame of a message needs to be sent through the second path, the path destination device sends a confirmation frame of the message through the second path after the waiting delay of the second path ends.
[0067] Based on the seventh aspect, in an embodiment of the present application, the path destination device determines a waiting delay for each of the multiple paths between the path source device and the path destination device, and sends a confirmation frame of the message on the path after the waiting delay of the path ends. This can make the time difference of the confirmation frames of the messages received by the path source device through each path less than or equal to the preset time difference, thereby avoiding the sending device from identifying the delay fluctuations caused by the inherent delays of each path as delay fluctuations caused by network congestion based on the confirmation frames of the messages sent by the path source device and exiting the slow start process in advance, thereby achieving accurate congestion perception, and then controlling the exponential growth of the congestion window during the slow start process, thereby improving path utilization.
[0068] In one possible design, the path destination device determines the waiting delay of the first path as the first time period, and determines the waiting delay of the second path as the difference between the one-way transmission delay of the first path and the one-way inherent delay of the second path.
[0069] In one possible design, the first path is the path with the longest one-way inherent delay between the first path and the second path, and the first time period is 0.
[0070] Based on the above two possible designs, the path destination device can determine the waiting delay for the path with the longest one-way inherent delay, and set the waiting delay for the remaining paths in the multiple paths according to the one-way transmission delay of the path with the longest one-way inherent delay, so that the difference in the one-way transmission delay of any two paths in the multiple paths is less than or equal to the preset time difference.
[0071] In a possible design, a path destination device sends a message including a sending time of the message to a path source device via a first path and a second path; receives a confirmation frame of the message including a sending time of the message and a receiving time of the message from the path source device via the first path and the second path; determines a one-way inherent delay of the first path according to the sending time of the message and the receiving time of the message corresponding to the first path; and determines a one-way inherent delay of the second path according to the sending time of the message and the receiving time of the message corresponding to the second path.
[0072] In one possible design, the path destination device periodically sends messages to the path source device through the first path and the second path.
[0073] Based on the above two possible designs, the path destination device can determine the one-way inherent delay of the path according to the sending time and receiving time of the message corresponding to each path in multiple paths, which provides a feasible solution for the path destination device to determine the one-way inherent delay of the path.
[0074] In a possible design, a path destination device sends a third message including a sending time of the third message to a path source device through a first path; receives a confirmation frame of the third message including a sending time of the third message and a receiving time of the third message from the path source device through the first path; determines a one-way inherent delay of the first path according to the sending time of the third message and the receiving time of the third message; the path destination device sends a fourth message including a sending time of the fourth message to the path source device through a second path; receives a confirmation frame of the fourth message including a sending time of the fourth message and a receiving time of the fourth message from the path source device through the second path; determines a one-way inherent delay of the second path according to the sending time of the fourth message and the receiving time of the fourth message.
[0075] In one possible design, the path destination device periodically sends a third message to the path source device via the first path; the path destination device periodically sends a fourth message to the path source device via the second path.
[0076] Based on the above two possible designs, the path destination device can determine the one-way inherent delay of the path according to the sending time and receiving time of the message corresponding to each path in multiple paths, which provides a feasible solution for the path destination device to determine the one-way inherent delay of the path.
[0077] In one possible design, a path destination device receives a message including a sending time of the message from a path source device via a first path and a second path; and sends a confirmation frame of the message including a sending time of the message and a receiving time of the message to the path source device via the first path and the second path.
[0078] Based on this possible design, the destination device of the path sends a confirmation frame of the message to the source device of the path, so that the source device of the path can determine the one-way inherent delay of the path according to the sending time and receiving time of the message, which provides a feasible solution for the source device of the path to determine the one-way inherent delay of the path.
[0079] In one possible design, a path destination device receives a first message including a sending time of the first message from a path source device via a first path; sends a confirmation frame of the first message including a sending time of the first message and a receiving time of the first message to the path source device via the first path; the path destination device receives a second message including a sending time of the second message from the path source device via a second path; and sends a confirmation frame of the second message including a sending time of the second message and a receiving time of the second message to the path source device via the second path.
[0080] Based on this possible design, the destination device of the path sends a confirmation frame of the message to the source device of the path, so that the source device of the path can determine the one-way inherent delay of the path according to the sending time and receiving time of the message, which provides a feasible solution for the source device of the path to determine the one-way inherent delay of the path.
[0081] In one possible design, a path destination device receives a message including a sending time of the message from a path source device via a first path and a second path; and sends a confirmation frame of the message including a sending time of the message and a sending delay time of the confirmation frame to the path source device via the first path and the second path; the sending delay time is the difference between the sending time of the confirmation frame and the receiving time of the message.
[0082] Based on this possible design, the destination device of the path sends a confirmation frame of the message to the source device of the path, so that the source device of the path can determine the two-way inherent delay of the path according to the reception time of the confirmation frame of the message, the sending time of the message and the sending delay time of the confirmation frame, thereby providing a feasible solution for the source device of the path to determine the two-way inherent delay of the path.
[0083] In one possible design, a path destination device receives a first message including a sending time of the first message from a path source device via a first path; sends a confirmation frame of the first message including the sending time of the first message and a sending delay time of a confirmation frame of the first message to the path source device via the first path; the sending delay time is a difference between the sending time of the confirmation frame of the first message and the receiving time of the first message; the path destination device receives a second message including a sending time of the second message from the path source device via a second path; sends a confirmation frame of the second message including the sending time of the second message and a sending delay time of a confirmation frame of the second message to the path source device via the second path; the sending delay time is a difference between the sending time of the confirmation frame of the second message and the receiving time of the second message.
[0084] Based on this possible design, the destination device of the path sends a confirmation frame of the message to the source device of the path, so that the source device of the path can determine the two-way inherent delay of the path according to the reception time of the confirmation frame of the message, the sending time of the message and the sending delay time of the confirmation frame of the message, thereby providing a feasible solution for the source device of the path to determine the two-way inherent delay of the path.
[0085] In an eighth aspect, an embodiment of the present application provides a communication device, which can implement the function performed by the path destination device in the seventh aspect or the possible design of the seventh aspect, and the function can be implemented by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions. For example, a processing module.
[0086] A processing module, used to determine the waiting delay of the first path and the waiting delay of the second path according to the one-way inherent delay of the first path and the one-way inherent delay of the second path; wherein the one-way inherent delay is the transmission time of the message on the path, and the sum of the one-way inherent delay of the first path and the waiting delay of the first path is the one-way transmission delay of the first path; the sum of the one-way inherent delay of the second path and the waiting delay of the second path is the one-way transmission delay of the second path; the difference between the one-way transmission delay of the first path and the one-way transmission delay of the second path is less than or equal to a preset time difference; the waiting delay of the first path is used for when a confirmation frame of the message needs to be sent through the first path, the path destination device sends the confirmation frame of the message through the first path after the waiting delay of the first path ends; the waiting delay of the second path is used for when a confirmation frame of the message needs to be sent through the second path, the path destination device sends the confirmation frame of the message through the second path after the waiting delay of the second path ends.
[0087] Among them, the specific implementation method of the communication device can refer to the behavior function of the path destination device in the multi-path communication method provided by the seventh aspect or any possible design of the seventh aspect. Based on the communication device described in the ninth aspect, the path destination device determines the waiting delay for each of the multiple paths between the path source device and the path destination device, and after the waiting delay of the path ends, sends a confirmation frame of the message on the path, so that the time difference of the confirmation frame of the message received by the path source device through each path is less than or equal to the preset time difference, avoiding the sending device from identifying the delay fluctuation caused by the inherent delay of each path as the delay fluctuation caused by network congestion according to the confirmation frame of the message sent by the path source device. The delay fluctuation is caused by network congestion and exiting the slow start process in advance, which can achieve accurate congestion perception, and then control the exponential growth of the congestion window during the slow start process, thereby improving path utilization.
[0088] In one possible design, the processing module is also used to determine the waiting delay of the first path as the first time period, and determine the waiting delay of the second path as the difference between the one-way transmission delay of the first path and the one-way inherent delay of the second path.
[0089] In one possible design, the first path is the path with the longest one-way inherent delay between the first path and the second path, and the first time period is 0.
[0090] Based on the above two possible designs, the path destination device can determine the waiting delay for the path with the longest one-way inherent delay, and set the waiting delay for the remaining paths in the multiple paths according to the one-way transmission delay of the path with the longest one-way inherent delay, so that the difference in the one-way transmission delay of any two paths in the multiple paths is less than or equal to the preset time difference.
[0091] In one possible design, the communication device also includes a sending module and a receiving module, the sending module is used to send a message including the sending time of the message to the path source end device through the first path and the second path; the receiving module is used to receive a confirmation frame of the message including the sending time of the message and the receiving time of the message from the path source end device through the first path and the second path; the processing module is also used to determine the one-way inherent delay of the first path according to the sending time of the message and the receiving time of the message corresponding to the first path; the processing module is also used to determine the one-way inherent delay of the second path according to the sending time of the message and the receiving time of the message corresponding to the second path.
[0092] In one possible design, the sending module is also used to periodically send messages to the path source device through the first path and the second path.
[0093] Based on the above two possible designs, the path destination device can determine the one-way inherent delay of the path according to the sending time and receiving time of the message corresponding to each path in multiple paths, which provides a feasible solution for the path destination device to determine the one-way inherent delay of the path.
[0094] In one possible design, a sending module is used to send a third message including a sending time of the third message to a path source end device through a first path; a receiving module is used to receive a confirmation frame of the third message including a sending time of the third message and a receiving time of the third message from the path source end device through the first path; the processing module is also used to determine the one-way inherent delay of the first path according to the sending time of the third message and the receiving time of the third message corresponding to the first path; the sending module is also used to send a fourth message including a sending time of the fourth message to the path source end device through a second path; the receiving module is also used to receive a confirmation frame of the fourth message including a sending time of the fourth message and a receiving time of the fourth message from the path source end device through the second path; the processing module is also used to determine the one-way inherent delay of the second path according to the sending time of the fourth message corresponding to the second path.
[0095] In one possible design, the sending module is also used to periodically send a third message to the path source end device through the first path; the sending module is also used to periodically send a fourth message to the path source end device through the second path.
[0096] Based on the above two possible designs, the path destination device can determine the one-way inherent delay of the path according to the sending time and receiving time of the message corresponding to each path in multiple paths, which provides a feasible solution for the path destination device to determine the one-way inherent delay of the path.
[0097] In one possible design, the receiving module is also used to receive a message including the sending time of the message from the path source end device through the first path and the second path; the sending module is also used to send a confirmation frame of the message including the sending time of the message and the receiving time of the message to the path source end device through the first path and the second path.
[0098] Based on this possible design, the destination device of the path sends a confirmation frame of the message to the source device of the path, so that the source device of the path can determine the one-way inherent delay of the path according to the sending time and receiving time of the message, which provides a feasible solution for the source device of the path to determine the one-way inherent delay of the path.
[0099] In one possible design, the receiving module is further used to receive a first message including the sending time of the first message from a path source end device through a first path; the sending module is further used to send a confirmation frame of the first message including the sending time of the first message and the receiving time of the first message to the path source end device through the first path; the receiving module is further used to receive a second message including the sending time of the second message from the path source end device through a second path; the sending module is further used to send a confirmation frame of the second message including the sending time of the second message and the receiving time of the second message to the path source end device through the second path.
[0100] Based on this possible design, the destination device of the path sends a confirmation frame of the message to the source device of the path, so that the source device of the path can determine the one-way inherent delay of the path according to the sending time and receiving time of the message, which provides a feasible solution for the source device of the path to determine the one-way inherent delay of the path.
[0101] In one possible design, the receiving module is also used to receive a message including the sending time of the message from the path source end device through the first path and the second path; the sending module is also used to send a confirmation frame of the message including the sending time of the message and the sending delay time of the confirmation frame to the path source end device through the first path and the second path; the sending delay time is the difference between the sending time of the confirmation frame and the receiving time of the message.
[0102] Based on this possible design, the destination device of the path sends a confirmation frame of the message to the source device of the path, so that the source device of the path can determine the two-way inherent delay of the path according to the reception time of the confirmation frame of the message, the sending time of the message and the sending delay time of the confirmation frame, thereby providing a feasible solution for the source device of the path to determine the two-way inherent delay of the path.
[0103] In one possible design, the receiving module is also used to receive a first message including the sending time of the first message from a path source end device through a first path; the sending module is also used to send a confirmation frame of the first message including the sending time of the first message and the sending delay time of the confirmation frame of the first message to the path source end device through the first path; the sending delay time is the difference between the sending time of the confirmation frame of the first message and the receiving time of the first message; the receiving module is also used to receive a second message including the sending time of the second message from the path source end device through a second path; the sending module is also used to send a confirmation frame of the second message including the sending time of the second message and the sending delay time of the confirmation frame of the second message to the path source end device through the second path; the sending delay time is the difference between the sending time of the confirmation frame of the second message and the receiving time of the second message.
[0104] Based on this possible design, the destination device of the path sends a confirmation frame of the message to the source device of the path, so that the source device of the path can determine the two-way inherent delay of the path according to the reception time of the confirmation frame of the message, the sending time of the message and the sending delay time of the confirmation frame of the message, thereby providing a feasible solution for the source device of the path to determine the two-way inherent delay of the path.
[0105] In the ninth aspect, a communication device is provided, which may be a path destination device or a chip or system on chip in the path destination device. The communication device may implement the functions performed by the path destination device in the above aspects or possible designs, and the functions may be implemented by hardware. In one possible design, the communication device may include: a processor. The processor may be used to support the communication device to implement the functions involved in the above seventh aspect or any possible design of the seventh aspect. For example: the processor can be used to determine the waiting delay of the first path and the waiting delay of the second path according to the one-way inherent delay of the first path and the one-way inherent delay of the second path; wherein the one-way inherent delay is the transmission time of the message on the path, and the sum of the one-way inherent delay of the first path and the waiting delay of the first path is the one-way transmission delay of the first path; the sum of the one-way inherent delay of the second path and the waiting delay of the second path is the one-way transmission delay of the second path; the difference between the one-way transmission delay of the first path and the one-way transmission delay of the second path is less than or equal to the preset time difference; the waiting delay of the first path is used for when it is necessary to send a confirmation frame of the message through the first path, the path destination device sends the confirmation frame of the message through the first path after the waiting delay of the first path ends; the waiting delay of the second path is used for when it is necessary to send a confirmation frame of the message through the second path, the path destination device sends the confirmation frame of the message through the second path after the waiting delay of the second path ends. In another possible design, the communication device may also include a memory, which is used to store computer execution instructions and data necessary for the communication device. When the communication device is running, the processor executes the computer-executable instructions stored in the memory so that the communication device performs the multi-path communication method as described in the seventh aspect or any possible design of the seventh aspect.
[0106] Among them, the specific implementation method of the communication device can refer to the behavior function of the path destination device in the multi-path communication method provided by the seventh aspect or any possible design of the seventh aspect.
[0107] In the tenth aspect, a communication device is provided, which includes one or more processors and one or more memories; the one or more memories are coupled to the one or more processors, and the one or more memories are used to store computer program codes or computer instructions; when the one or more processors execute the computer instructions, the communication device executes the multipath communication method described in the seventh aspect or any possible design of the seventh aspect.
[0108] In the eleventh aspect, a computer-readable storage medium is provided, which stores computer instructions or programs. When the computer instructions or programs are run on a computer, the computer executes the multipath communication method described in the eighth aspect or any possible design of the eighth aspect, or executes the multipath communication method described in the ninth aspect or any possible design of the ninth aspect.
[0109] In the twelfth aspect, a computer program product comprising instructions is provided, which, when executed on a computer, enables the computer to execute the multipath communication method as described in the eighth aspect or any possible design of the eighth aspect, or to execute the multipath communication method as described in the ninth aspect or any possible design of the ninth aspect.
[0110] Among them, the technical effects brought about by any design method in the ninth to twelfth aspects can refer to the technical effects brought about by the above-mentioned seventh aspect or any possible design of the seventh aspect, and will not be repeated here.
[0111] In a thirteenth aspect, a communication system is provided, comprising a communication device as described in the second aspect or any possible design of the second aspect and a communication device as described in the eighth aspect or any possible design of the eighth aspect. BRIEF DESCRIPTION OF THE DRAWINGS
[0112] Figure 1 A schematic diagram of a communication system provided in an embodiment of the present application;
[0113] Figure 2 A structural diagram of a communication device provided in an embodiment of the present application;
[0114] Figure 3 A flowchart of a multi-path communication method provided in an embodiment of the present application;
[0115] Figure 4 A flowchart of a method for obtaining a one-way intrinsic delay of a first path provided in an embodiment of the present application;
[0116] Figure 5 A flowchart of a method for obtaining a bidirectional intrinsic delay of a first path provided in an embodiment of the present application;
[0117] Figure 6 A flowchart of a multi-path communication method provided in an embodiment of the present application;
[0118] Figure 7 A schematic diagram of the composition of a communication device provided in an embodiment of the present application;
[0119] Figure 8 A schematic diagram of the composition of a communication device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0120] Before describing the embodiments of the present application, the technical terms involved in the embodiments of the present application are described.
[0121] Transmission round: refers to the total time from when the sending device sends the first message of a message group to when the sending device receives the confirmation frame of the last message of the message group; wherein, the message group may include at least one message.
[0122] Transmission Control Protocol (TCP) congestion control algorithm: refers to an algorithm that avoids network congestion by dynamically adjusting the number of messages sent by the sending device each time. The TCP congestion control algorithm can control the number of messages sent each time by maintaining the congestion window. The TCP congestion control algorithm can include a slow start process and a congestion avoidance process. The TCP congestion control algorithm can pre-set a slow start threshold. When the congestion window is less than the slow start threshold, it is considered to be in the slow start process. When the congestion window is equal to or greater than the slow start threshold, it enters the congestion avoidance process from the slow start process.
[0123] Slow start process: During the slow start process, the sending device can control the exponential growth of the congestion window. Exemplarily, the sending device can adjust the congestion window to twice the previous value after each transmission round until the congestion window is equal to or greater than the slow start threshold. For example, when the sending device starts to send a message, it can set the congestion window to 1, send 1 message through the congestion window, and after receiving the confirmation frame of the message, adjust the congestion window to 2, send 2 messages through the congestion window, and after receiving the confirmation frames of the 2 messages, adjust the congestion window to 4, send 4 messages through the congestion window, and after receiving the confirmation frames of the 4 messages, adjust the congestion window to 8, and so on. The sending device can adjust the congestion window to 16, 32, 64... in turn after each transmission round.
[0124] Congestion avoidance process: When the congestion window grows exponentially to a value equal to or greater than the slow start threshold during the slow start process, the congestion avoidance process begins. During the congestion avoidance process, the sending device can control the congestion window to grow linearly until network congestion occurs. When network congestion occurs, the congestion window can be multiplicatively reduced. Based on the multiplicatively reduced congestion window, the congestion window can be controlled to grow linearly until network congestion occurs, and the congestion window can be multiplicatively reduced again. The sending device can consider that network congestion has occurred when it does not receive a confirmation frame for a message within a preset time or receives a confirmation frame for a message multiple times.
[0125] Exemplarily, during the congestion avoidance process, the sending device may increase the congestion window by one after each transmission round until network congestion occurs. For example, taking the slow start threshold of 16 as an example, when the congestion window is 16, the sending device sends 16 messages through the congestion window, and after receiving the confirmation frames of the 16 messages, adjusts the congestion window to 17, sends 17 messages through the congestion window, and after receiving the confirmation frames of the 17 messages, adjusts the congestion window to 18, and so on. The sending device may adjust the congestion window to 19, 20, 21, ... in sequence after each transmission round until network congestion occurs, and the congestion window is multiplicatively reduced. For example, the congestion window may be adjusted to half of the previous value, and then, based on the adjusted congestion window, the congestion window may be controlled to grow linearly.
[0126] Multi-path communication: When there are multiple paths between the source device and the destination device of a path, in some cases, multiple paths can be logically combined into one logical path for communication, effectively improving the path bandwidth and meeting user needs. Different paths belonging to the same logical path correspond to the same path source device and the same path destination device. For example, Figure 1 As shown, the sending device 1 and the receiving device 1 can communicate through the path L1, L2 or L3, and the sending device 1 and the receiving device 2 can communicate through L4, wherein L1, L2 and L3 correspond to the path source device 1 and the path destination device 1, and L4 corresponds to the path source device 1 and the path destination device 2. In a specific implementation, L1, L2 and L3 can be logically combined into a logical path, which can improve the path bandwidth and meet user needs. For example, the L1, L2 and L3 can adopt a multi-path bundling solution implemented by a layer 3 (L3) tunnel, such as a generic routing encapsulation (GRE) protocol, to encapsulate the message and schedule it to multiple paths. It should be noted that the multi-path transmission scenario in the embodiment of the present application does not limit the underlying technology used to implement it.
[0127] In multi-path communication, when sending a message, the sending device can send the message to the path source device, and the path source device determines which path to send the message through based on the usage of the path. The sending device cannot perceive the path, nor the usage of the path, and cannot adjust the slow start threshold according to the usage of the path. Therefore, when the sending device adjusts the slow start threshold according to the above TCP congestion control algorithm, it cannot adjust the slow start threshold according to the usage of the path. In addition, since the congestion window grows exponentially too aggressively during the slow start process, it is easy for the number of messages sent by the sending device to be greater than the actual remaining capacity of the path, resulting in a large number of message losses and a sharp decline in communication quality.
[0128] Based on this, a hybrid slow start algorithm is proposed. The hybrid slow start algorithm introduces a new congestion perception judgment condition to replace the slow start threshold. The hybrid slow start algorithm can determine whether there is network congestion by utilizing congestion perception judgment conditions such as the arrival time interval and delay fluctuation of each confirmation frame. If there is network congestion, the slow start process is exited and the current congestion window is multiplicatively reduced. On the basis of the congestion window after the multiplicative reduction, the congestion window is slowly increased according to the growth function pre-set by the hybrid slow start algorithm, thereby slowing down the growth rate of the congestion window, avoiding network congestion, and achieving accurate congestion perception.
[0129] However, in multi-path communications, since each path has an inherent delay, the sending device can easily identify the delay fluctuations caused by the differences in inherent delays between paths as delay fluctuations caused by network congestion based on the hybrid slow start algorithm, causing the sending device to believe that there is network congestion and thus exit the slow start process early, resulting in a slower growth of the congestion window and low path utilization.
[0130] For example, Figure 1As shown, taking the inherent delay of paths L1 and L2 as 50s, the inherent delay of L3 as 100s, and the maximum delay fluctuation preset by the hybrid slow start algorithm as 20s as an example, assuming that sending device 1 sends a group of messages to receiving device 1 at 1s, sending device 1 can receive the confirmation frames returned on L1 and L2 at the earliest at 51s, but sending device 1 can receive the confirmation frame returned on L3 at the earliest at 101s. The sending device 1 determines that the delay fluctuation is 50s based on the confirmation frames received at 51s and 101s, which is greater than the preset maximum delay fluctuation, and believes that there is network congestion. However, in fact, the delay fluctuation is caused by the inherent delays of L1, L2 and L3, not by network congestion. Therefore, since sending device 1 cannot perceive L1, L2 and L3, it is easy to identify the delay fluctuations caused by the differences in inherent delays between L1, L2 and L3 as delay fluctuations caused by network congestion, causing sending device 1 to believe that there is network congestion, thereby exiting the slow start process early, resulting in a slower growth of the congestion window and low path utilization.
[0131] In order to solve the above technical problems, an embodiment of the present application provides a multi-path communication method, which is applied to a communication system, wherein the communication system includes a path source device and a path destination device, and there are at least two paths between the path source device and the path destination device; the at least two paths include a first path and a second path; the method includes: the path source device determines a waiting delay of the first path and a waiting delay of the second path according to an inherent delay of the first path and an inherent delay of the second path; wherein the sum of the inherent delay of the first path and the waiting delay of the first path is the transmission delay of the first path; the sum of the inherent delay of the second path and the waiting delay of the second path is the transmission delay of the second path; the difference between the transmission delay of the first path and the transmission delay of the second path is less than or equal to a preset time difference; the waiting delay of the first path is used for when a message needs to be sent through the first path, the link source device sends the message through the first path after the waiting delay of the first path ends; the waiting delay of the second path is used for when a message needs to be sent through the second path, the link source device sends the message through the second path after the waiting delay of the second path ends.
[0132] In an embodiment of the present application, the path source device determines a waiting delay for each of the multiple paths between the path source device and the path destination device, and sends a message on the path after the waiting delay corresponding to the path ends. This can make the difference in transmission delay between any two of the multiple paths less than or equal to a preset time difference, reduce the delay fluctuation caused by the inherent delay between the paths, and avoid the sending device from exiting the slow start process prematurely due to the delay fluctuation caused by the inherent delay of each path, believing that there is network congestion. Accurate congestion perception can be achieved, and the congestion window can be controlled to grow exponentially during the slow start process, thereby improving path utilization.
[0133] The implementation of the embodiments of the present application will be described in detail below in conjunction with the accompanying drawings.
[0134] The multipath communication method provided in the embodiments of the present application can be used for any communication system supporting wireless communication, such as second generation (2G) communication system, third generation (3G) communication system and next generation communication system, global system for mobile communications (GSM), code division multiple access (CDMA) system, time division multiple access (TDMA) system, wideband code division multiple access wireless (WCDMA) system, frequency division multiple addressing (FDMA) system, orthogonal frequency-division multiple access (OFDMA) system, single carrier FDMA (SC-FDMA) system, general packet radio service (GPRS) system, long term evolution (LTE) system, and other such communication systems, without limitation. The present application is based on Figure 1 The multipath communication method is introduced by taking the communication system shown as an example.
[0135] Figure 1 A schematic diagram of a communication system provided in an embodiment of the present application is shown in FIG. Figure 1 As shown, the communication system may include at least one sending device, at least one path source device, at least one path destination device, and at least one receiving device.
[0136] in, Figure 1 The sending device in the example can send a message to the path source device based on the above TCP congestion control algorithm, and can also receive a confirmation frame of the message from the path source device. Specifically, the sending device can be a device with a sending and receiving function such as a terminal or a server.
[0137] Figure 1 There may be multiple paths between the path source device and the path destination device. The path source device may receive a message from a sending device, and send the message to the path destination device through multiple paths, and the path destination device may send the message to the receiving device. The path destination device may also receive a confirmation frame of a message from a receiving device, and send the confirmation frame of the message to the path source device through the path corresponding to the message, and the path source device may send the confirmation frame of the message to the sending device. Specifically, the path source device and the path destination device may be switches, routers, and other devices used to indicate routing forwarding. It should be noted that in the embodiments of the present application, for each path, other path devices may be included between the path source device and the path destination device without limitation.
[0138] Figure 1 The receiving device in the path can receive the message from the destination device of the path, and can also send a confirmation frame of the message to the destination device of the path. Specifically, the receiving device can be a device with a sending and receiving function such as a terminal and a server.
[0139] It should be noted that at least one sending device, at least one path source device, at least one path destination device, and at least one receiving device in the embodiments of the present application can be one or more chips, or a system on chip (SOC), etc. Figure 1 This is only an exemplary figure, and the number of devices included is not limited. Figure 1 In addition to the devices shown, the communication system may also include other devices. Figure 1 The names of the devices and paths in the Figure 1 In addition to the names shown, each device and each path can be named with other names without restriction.
[0140] When implementing it specifically, Figure 1 As shown, at least one sending device, at least one path source device, at least one path destination device, and at least one receiving device can all adopt Figure 2 The structure shown, or including Figure 2 Parts shown. Figure 2The present invention provides a schematic diagram of the composition of a communication device 200, which can be a sending device or a chip or system on chip in a sending device; it can also be a path source device or a chip or system on chip in a path source device; it can also be a path destination device or a chip or system on chip in a path destination device; it can also be a receiving device or a chip or system on chip in a receiving device. Figure 2 As shown, the communication device 200 includes a processor 201 , a transceiver 202 and a communication line 203 .
[0141] Furthermore, the communication device 200 may further include a memory 204. The processor 201, the memory 204 and the transceiver 202 may be connected via a communication line 203.
[0142] The processor 201 is a central processing unit (CPU), a general-purpose processor, a network processor (NP), a digital signal processor (DSP), a microprocessor, a microcontroller, a programmable logic device (PLD), or any combination thereof. The processor 201 may also be other devices with processing functions, such as circuits, devices, or software modules, without limitation.
[0143] The transceiver 202 is used to communicate with other devices or other communication networks. The other communication networks may be Ethernet, radio access network (RAN), wireless local area network (WLAN), etc. The transceiver 202 may be a module, a circuit, a transceiver or any device capable of achieving communication.
[0144] The communication line 203 is used to transmit information between the components included in the communication device 200.
[0145] The memory 204 is used to store instructions, where the instructions may be computer programs.
[0146] The memory 204 may be a read-only memory (ROM) or other types of static storage devices that can store static information and / or instructions, or a random access memory (RAM) or other types of dynamic storage devices that can store information and / or instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), magnetic disk storage media or other magnetic storage devices, etc., without limitation.
[0147] It should be noted that the memory 204 can exist independently of the processor 201, or can be integrated with the processor 201. The memory 204 can be used to store instructions or program codes or some data, etc. The memory 204 can be located in the communication device 200, or can be located outside the communication device 200, without limitation. The processor 201 is used to execute the instructions stored in the memory 204 to implement the multipath communication method provided in the following embodiments of the present application.
[0148] In one example, the processor 201 may include one or more CPUs, such as Figure 2 CPU0 and CPU1 in.
[0149] As an optional implementation, the communication device 200 includes multiple processors, for example, Figure 2 In addition to the processor 201, a processor 207 may also be included.
[0150] As an optional implementation, the communication device 200 further includes an output device 205 and an input device 206. Exemplarily, the input device 206 is a device such as a keyboard, a mouse, a microphone or a joystick, and the output device 205 is a device such as a display screen and a speaker.
[0151] It should be noted that the communication device 200 can be a desktop computer, a portable computer, a network server, a mobile phone, a tablet computer, a wireless terminal, an embedded device, a chip system or a Figure 2 In addition, Figure 3 The structure shown in the figure does not constitute a limitation on the communication device, except Figure 2 In addition to the components shown, the communication device may include more or fewer components than shown, or combine certain components, or arrange the components differently.
[0152] In the embodiment of the present application, the chip system may be composed of a chip, or may include a chip and other discrete devices.
[0153] In addition, the actions, terms, etc. involved in the various embodiments of the present application can refer to each other without limitation. The message name or parameter name in the message exchanged between the various devices in the embodiments of the present application is only an example, and other names can also be used in the specific implementation without limitation.
[0154] Combine the following Figure 1 The communication system shown in the figure describes the multipath communication method provided in the embodiment of the present application, wherein the sending device can be any sending device in the communication system, the multipath source device can be any multipath source device in the communication system, the multipath destination device can be any multipath destination device in the communication system, and the receiving device can be any receiving device in the communication system. The sending device, multipath source device, multipath destination device, and receiving device described in the following embodiments can have Figure 2 Parts shown.
[0155] Figure 3 A flowchart of a multi-path communication method provided in an embodiment of the present application is shown in FIG. Figure 3 As shown, the method may include:
[0156] Step 301: A path source device obtains an intrinsic delay of each of a plurality of paths between the path source device and a path destination device.
[0157] Specifically, taking the example that the path between the path source device and the path destination device includes a first path and a second path, the path source device can obtain the inherent delay of the first path and the inherent delay of the second path. When there are other paths between the path source device and the path destination device, the path source device can also obtain the inherent delay of the other paths.
[0158] The inherent delay may include a one-way inherent delay and a two-way inherent delay.
[0159] The one-way inherent delay can be the transmission time of the message on the path, or can be described as the total time from the path source device sending the message through the path to the path destination device receiving the message.
[0160] Exemplarily, taking the path between the path source device and the path destination device as an example, the path source device may adopt the following Figure 4The method shown determines the one-way inherent delay of the first path, such as the path source device can send a first message carrying the sending time of the first message to the path destination device through the first path, and receive a confirmation frame of the first message from the path destination device. Wherein, the confirmation frame may include the sending time of the first message and the receiving time of the first message. Assuming that the clock of the path source device is synchronized with the clock of the path destination device, the one-way inherent delay of the path can be: the receiving time of the first message-the sending time of the first message. Assuming that the clock of the path source device is not synchronized with the clock of the path destination device, the one-way inherent delay of the path can be: the receiving time of the first message-the sending time of the first message-the clock difference, wherein the clock difference is the difference between the clock of the path destination device and the clock of the path source device. It should be noted that in the embodiment of the present application, "-" is a minus sign and "+" is a plus sign.
[0161] For example, taking the first path as Figure 1 Taking L1 as an example, assuming that the path source device 1 sends a first message including t1 to the path destination device 1 through L1 at time t1, and the path destination device 1 receives the first message through L1 at time t2, the path destination device 1 can send a confirmation frame of the first message including t1 and t2 to the path source device 1. If the clocks of the path source device 1 and the path destination device 1 are synchronized, the one-way inherent delay of L1 is determined to be t2-t1. If the clocks of the path source device 1 and the path destination device 1 are not synchronized, the one-way inherent delay of L1 is determined to be t2-t1-clock difference, where the clock difference is the difference between the clock of the path destination device 1 and the clock of the path source device 1.
[0162] Similarly, when the path between the path source device and the path destination device includes a second path, the path source device may also send a second message to the path destination device through the second path, and receive a confirmation frame of the second message from the path destination device through the second path, and determine the one-way inherent delay of the second path according to the sending time of the second message and the receiving time of the second message in the confirmation frame of the second message. When the path between the path source device and the path destination device also includes other paths, the path source device may also send a message corresponding to the path to the path destination device through the path, and determine the one-way inherent delay of the path according to the sending time of the message corresponding to the path and the receiving time of the message.
[0163] The two-way inherent delay can be the sum of the transmission time of the message on the path and the transmission time of the confirmation frame of the message on the path. It can also be described as the total time from the path source device sending the message through the path to the path destination device receiving the message, and the total time from the path destination device sending the confirmation frame of the message through the path to the path source device receiving the confirmation frame of the message.
[0164] Exemplarily, taking the path between the path source end device and the path destination end device including the first path as an example, the path source end device may also adopt the following Figure 5 The method shown determines the bidirectional inherent delay of the first path, such as the path source device can send a first message carrying the sending time of the first message to the path destination device through the path, and receive a confirmation frame of the first message from the path destination device. The confirmation frame of the first message may include the sending time of the first message, the receiving time of the first message, and the sending time of the confirmation frame of the first message. Assuming that the clock of the path source device is synchronized with the clock of the path destination device, the bidirectional inherent delay of the path can be: (receiving time of the first message-sending time of the first message) + (receiving time of the confirmation frame of the first message-sending time of the confirmation frame of the first message). Assuming that the clock of the path source device is not synchronized with the clock of the path destination device, the bidirectional inherent delay of the path can be: (receiving time of the first message-sending time of the first message-clock difference) + (receiving time of the confirmation frame of the first message-sending time of the confirmation frame of the first message + clock difference), wherein the clock difference is the difference between the clock of the path destination device and the clock of the path source device. Since the clock difference between the destination device and the source device of the path remains unchanged, regardless of whether the clock of the source device of the path is synchronized with the clock of the destination device of the path, the two-way delay of the path is: (the reception time of the first message - the transmission time of the first message) + (the reception time of the confirmation frame of the first message - the transmission time of the confirmation frame of the first message).
[0165] For example, taking the first path as Figure 1 Taking L1 as an example, assuming that the path source device 1 sends the first message including t1 to the path destination device 1 through L1 at time t1, and the path destination device 1 receives the message 1 through L1 at time t2, the path destination device 1 can send a confirmation frame of the first message including t1, t2, and t3 to the path source device 1 through L1 at time t3, and the path source device 1 receives the confirmation frame of the first message through L1 at time t4, then the two-way inherent delay of L1 is determined to be t2-t1+t4-t3.
[0166] It should be noted that the difference between the sending time of the confirmation frame of the first message and the receiving time of the first message may also be described as the sending delay time of the confirmation frame of the first message.
[0167] Alternatively, the destination device of the path sends a confirmation frame of the first message to the source device of the path, where the confirmation frame of the first message includes a sending time of the first message and a sending delay time of the confirmation frame of the first message. The source device of the path determines, based on the received confirmation frame of the first message and the receiving time of the confirmation frame of the first message, that the two-way inherent delay of the path is: the receiving time of the confirmation frame of the first message-the sending time of the first message-the sending delay time of the confirmation frame of the first message.
[0168] Similarly, when the path between the path source device and the path destination device includes a second path, the path source device may also send a second message to the path destination device through the second path, and receive a confirmation frame of the second message from the path destination device through the second path, and determine the two-way inherent delay of the second path according to the confirmation frame of the second message and the reception time of the confirmation frame of the second message. When the path between the path source device and the path destination device also includes other paths, the path source device may also send a message corresponding to the path to the path destination device through the path, and determine the two-way inherent delay of the path according to the confirmation frame of the message corresponding to the path and the reception time of the confirmation frame of the message.
[0169] It should be noted that, taking the example that the path between the path source device and the path destination device includes the first path and the second path, the path source device can adopt the method shown in the above embodiment to send the first message and the second message to the path destination device through the first path and the second path respectively in the form of unicast to determine the inherent delay of the first path and the second path; the path source device can also send the message to the path destination device through the first path and the second path in the form of broadcast to determine the inherent delay corresponding to the path according to the confirmation frame of the message corresponding to each path.
[0170] In addition, the above-mentioned first message is a message sent by the path source device to the path destination device on the first path, and the above-mentioned second message is a message sent by the path source device to the path destination device on the second path. The first message and the second message can also be named by other names without limitation.
[0171] Step 302: The path source device determines the waiting delay of each path according to the inherent delay of each path.
[0172] The sum of the inherent delay of the path and the waiting delay of the path may be the transmission delay of the path, and the difference in transmission delay between any two paths among the multiple paths is less than or equal to a preset time difference.
[0173] Specifically, taking the example that the path between the path source end device and the path destination end device includes a first path and a second path, the path source end device can determine the waiting delay of the first path as a first time period, and determine the waiting delay of the second path as a difference between the transmission delay of the first path and the inherent delay of the second path; wherein the first path is the path with the longest inherent delay between the first path and the second path, so that the difference between the transmission delay of the first path and the transmission delay of the second path is less than or equal to a preset time difference.
[0174] It should be noted that when the path between the path source device and the path destination device also includes other paths, the link source device can determine the waiting delay of the path with the longest inherent delay among the first path, the second path and other paths as the first time period, and determine the difference between the transmission delay of the path with the longest inherent delay and the inherent delays of the remaining paths as the waiting delay of the remaining paths, so that the difference in the transmission delays of each path is less than or equal to the preset time difference.
[0175] In order to prevent the sending device from mistaking the delay fluctuation caused by the inherent delay between paths as the delay fluctuation caused by network congestion due to its inability to perceive the path, the preset time difference can be set as small as possible.
[0176] Exemplarily, when the inherent delay is a one-way inherent delay, assuming that the preset time difference is 0, the path source device can determine the waiting delay of the path with the longest one-way inherent delay among multiple paths as the first time period; and determine the absolute value of the difference between the one-way inherent delay of each path except the path with the longest one-way inherent delay among the multiple paths and the sum of the one-way inherent delay of the path with the longest one-way inherent delay and the first time period as the waiting delay of the path corresponding to the difference. At this time, the transmission delay of the path can be described as the one-way transmission delay.
[0177] Specifically, in order to improve the transmission efficiency of the message on the path, the first time period may be set as small as possible.
[0178] For example, Figure 1 For example, the path between the path source end device 1 and the path destination end device 1 includes L1, L2 and L3. Assuming that the one-way inherent delay of L1 is 100s, the one-way inherent delay of L2 is 70s, and the one-way inherent delay of L3 is 50s, the path source end device 1 can determine the waiting delay of L1 to be 0, the waiting delay of L2 to be 30s, and the waiting delay of L3 to be 50s.
[0179] It should be noted that when the clock of the path source device is not synchronized with the clock of the path destination device, for each path, the clock difference between the path source device and the path destination device is equal. The waiting delay of each path is determined according to the one-way inherent delay of each path. Since the waiting delay of each path is the sum of the one-way inherent delay and the waiting delay of the path with the longest one-way inherent delay, and the difference between the one-way inherent delay of the path, the path source device can calculate the waiting delay of the path without knowing the clock difference.
[0180] For example, taking the path with the longest single-item inherent delay as L1, and the single-item inherent delay of L1 as t21-t11-clock difference, and the waiting delay as T, assuming that the single-item inherent delay of L2 is t22-t12-clock difference, then the waiting delay of L2 is (t21-t11-clock difference)+T-(t22-t12-clock difference)=(t21-t11)+T-(t22-t12), where t21 is the reception time of the message on L1, t11 is the sending time of the message on L1, t22 is the reception time of the message on L2, and t12 is the sending time of the message on L2.
[0181] Exemplarily, when the inherent delay is a two-way inherent delay, assuming that the preset time difference is 0, the path source device can determine the waiting delay of the path with the longest two-way inherent delay among multiple paths as the first time period; and determine the absolute value of the difference between the two-way inherent delay of each path except the path with the longest two-way inherent delay among the multiple paths and the sum of the two-way inherent delay of the path with the longest two-way inherent delay and the first time period as the waiting delay of the path corresponding to the difference. At this time, the transmission delay of the path can be described as the two-way transmission delay.
[0182] Specifically, in order to improve the transmission efficiency of the message on the path, the first time period may be set as small as possible.
[0183] For example, Figure 1 For example, the path between the path source end device 1 and the path destination end device 1 includes L1, L2 and L3. Assuming that the two-way inherent delay of L1 is 200s, the two-way inherent delay of L2 is 140s, and the two-way inherent delay of L3 is 100s, the path source end device 1 can determine the waiting delay of L1 to 0, the waiting delay of L2 to 60s, and the waiting delay of L3 to 100s.
[0184] Step 303: After the waiting delay of each path ends, the path source device sends a message on the path.
[0185] Specifically, after receiving the message sent by the sending device, the path source device can determine the path used to transmit the message according to the usage of each path, and send the message to the path destination device on the path after the waiting delay of the path ends.
[0186] Taking the example that the path between the path source end device and the path destination end device includes a first path and a second path, when the path source end device needs to send a message on the first path, the path source end device can send the message on the first path after the waiting delay of the first path ends; when the path source end device needs to send a message on the second path, the path source end device can send the message on the second path after the waiting delay of the second path ends.
[0187] In one example, the path source device may determine a timer for each path according to the waiting delay of each path, wherein the duration of the timer for each path is equal to the waiting delay of the path.
[0188] Specifically, the path source device may start the timer of each path at the same time, and send a message on the path whose timer expires.
[0189] For example, Figure 1 For example, the path between the path source device 1 and the path destination device 1 includes L1, L2 and L3. Assuming that the waiting delay of L1 is 0, the waiting delay of L2 is 60s, and the waiting delay of L3 is 100s, the path source device 1 can set a timer of 60s for L2 and a timer of 100s for L3. Since the waiting delay of L1 is 0, after receiving the message sent by the sending device, the path source device 1 can directly send the message to the path destination device on L1; after the timer of L2 is reduced to 0, the path source device 1 sends the message to the path destination device 1 on L2, and after the timer of L3 is reduced to 0, the path source device 1 sends the message to the path destination device 1 on L3.
[0190] In another example, the path source device determines a waiting queue according to the waiting delay of each path; wherein the waiting queue includes messages corresponding to the path.
[0191] For example, Figure 1For example, the path between the path source device 1 and the path destination device 1 includes L1, L2 and L3. Assume that the waiting delay of L1 is 0, the waiting delay of L2 is 60s, and the waiting delay of L3 is 100s. After receiving the message sent by the sending device 1, the path source device 1 can add the message transmitted on L1 to the waiting queue 1, add the message transmitted on L2 to the waiting queue 2, and add the message transmitted on L3 to the waiting queue 3. Since the waiting delay of L1 is 0, the path source device 1 can directly send the message in the waiting queue 1 to the path destination device 1 on L1; assuming that the path source device 1 sends the message in the waiting queue 1 on L1 at time T1, the path source device 1 sends the message in the waiting queue 2 to the path destination device 1 on L2 at time T1+60s; and after time T1+100s, the path source device 1 sends the message in the waiting queue 3 to the path destination device 1 on L3.
[0192] Specifically, the path source device can add a waiting queue through a software module or a hardware module, such as a path source device can add a waiting queue through an application, and the application has the function of adding a waiting queue. The path source device can also add a waiting queue using a network card, and the network card has the function of adding a waiting queue. No restrictions are imposed.
[0193] It should be noted that the path source end device can also use the above two examples in combination, that is, the path source end device can determine a timer for each path based on the waiting delay of each path, and after receiving the message sent by the sending device, determine the waiting queue corresponding to the path, and send the message in the corresponding waiting queue on the path after the timer expires.
[0194] For example, Figure 1 For example, the path between the path source device 1 and the path destination device 1 includes L1, L2 and L3. Assuming that the waiting delay of L1 is 0, the waiting delay of L2 is 60s, and the waiting delay of L3 is 100s, the path source device 1 can set a timer of 60s for L2 and a timer of 100s for L3. After receiving the message sent by the sending device 1, the path source device 1 can add the message transmitted on L1 to the waiting queue 1, add the message transmitted on L2 to the waiting queue 2, and add the message transmitted on L3 to the waiting queue 3. Since the waiting delay of L1 is 0, the path source device 1 can directly send the message in the waiting queue 1 to the path destination device 1 on L1; and after the timer of L2 expires, send the message in the waiting queue 2 to the path destination device 1 on L2; and after the timer of L3 expires, send the message in the waiting queue 3 to the path destination device 1 on L3.
[0195] Furthermore, after receiving the message sent by the path source device, the path destination device can process the message and send a message confirmation frame to the path source device according to the processing result. The message confirmation frame can be an acknowledgement character (ACK) or a negative acknowledgement character (NACK).
[0196] In one example, when the inherent delay is a one-way inherent delay, the path source device can send a message on the path after the waiting delay of the path ends. The path destination device can also refer to the following Figure 6 The method shown adopts a method similar to that of a path source end device determining a waiting delay for each path and sending a message on the path after the waiting delay ends. A waiting delay is determined for each path, and a confirmation frame of the message is sent on the path after the waiting delay ends. A confirmation frame of the message is sent to the path source end device.
[0197] Based on this example, the path source device can make the time difference of the message received by the path destination device through each path less than or equal to the preset time difference by sending a message on the path after the waiting delay of the path ends. The path destination device can make the time difference of the message received by the path source device through each path less than or equal to the preset time difference by sending a message confirmation frame on the path after the waiting delay of the path ends, thereby avoiding the sending device from identifying the delay fluctuation caused by the inherent delay of each path as the delay fluctuation caused by network congestion based on the confirmation frame of the message sent by the path source device and exiting the slow start process in advance, so as to achieve accurate congestion perception, and then control the exponential growth of the congestion window during the slow start process, thereby improving the path utilization.
[0198] In another example, when the inherent delay is a two-way inherent delay, the path source device can send a message on the path after the waiting delay of the path ends. The path destination device can use the existing technology to send a message confirmation frame to the path source device after receiving the message sent by the path source device.
[0199] Based on this example, the path source device can make the difference in transmission delay between any two paths among multiple paths less than or equal to the preset time difference by sending a message on the path after the waiting delay of the path ends, thereby reducing the delay fluctuation caused by the inherent delay between the paths, and avoiding the sending device from exiting the slow start process prematurely due to the delay fluctuation caused by the inherent delay of each path, thinking that there is network congestion. Accurate congestion perception can be achieved, and then the exponential growth of the congestion window during the slow start process can be controlled, thereby improving path utilization.
[0200] In the above step 301, it is assumed that the path between the path source device and the path destination device includes a first path and a second path. Taking the first path as an example, the path source device can adopt the following Figure 4 The method shown determines the one-way intrinsic delay of the first path. Figure 4 A flowchart of a method for obtaining a one-way intrinsic delay of a first path provided in an embodiment of the present application, the method comprising:
[0201] Step 401: A path source device sends a first message to a path destination device via a first path. Correspondingly, the path destination device receives the first message.
[0202] The first message may include the sending time of the first message.
[0203] In one possible design, the first message is a message sent by a sending device.
[0204] Specifically, after receiving a message sent by a sending device and determining that the message needs to be transmitted on the first path, the path source device can carry the message sending time in the message and send it to the path destination device via the first path, wherein the message sending time is the time when the path source device sends the message to the path destination device via the first path.
[0205] In another possible design, the first message is a detection message generated by a path source device.
[0206] Specifically, the path source device can generate a detection message and send the detection message carrying the sending time of the detection message to the path destination device through the first path, wherein the sending time of the detection message is the time when the path source device sends the detection message to the path destination device through the first path.
[0207] Furthermore, the path source device may periodically send a detection message to the path destination device.
[0208] Step 402: The path destination device sends a confirmation frame of the first message to the path source device via the first path. Correspondingly, the path source device receives the confirmation frame of the first message.
[0209] The confirmation frame may include the sending time of the first message and the receiving time of the first message.
[0210] Specifically, the path destination device may periodically send a confirmation frame of the first message to the path source device through the first path according to a preset period.
[0211] Exemplarily, when the first message is a message sent by a sending device, the destination device of the path can carry the reception time of the latest received message and the sending time of the message in the confirmation frame of the message and send it to the source device of the path when a preset period of sending the confirmation frame of the first message arrives.
[0212] For example, taking a preset period of 10 seconds, and the path destination device receiving message 1 at 5 seconds, receiving message 2 at 7 seconds, and receiving message 3 at 10 seconds as an example, assuming that the path destination device considers that the period for sending a confirmation frame for the first message has arrived at 10 seconds, the path source device can send a confirmation frame for message 3 to the path source device, wherein the confirmation frame for message 3 includes the reception time of message 3 and the sending time of message 3.
[0213] Exemplarily, when the first message is a detection message generated by the path source device, the path destination device can periodically send a detection message confirmation frame to the path source device according to the cycle of the path source device sending the detection message; wherein the detection message confirmation frame includes the detection message receiving time and the detection message sending time. That is, the path destination device can send a detection message confirmation frame to the path source device each time after receiving the detection message periodically sent by the path source device.
[0214] Step 403: The path source device determines the one-way inherent delay of the first path according to the confirmation frame of the first message.
[0215] The confirmation frame of the first message may include the sending time of the first message and the receiving time of the first message.
[0216] Specifically, the path source device may refer to the above step 301, and according to the confirmation frame of the first message, when the clock of the path source device is synchronized with the clock of the path destination device, determine the one-way inherent delay of the path as: the reception time of the first message - the transmission time of the first message. When the clock of the path source device is not synchronized with the clock of the path destination device, determine the one-way inherent delay of the path as: the reception time of the first message - the transmission time of the first message - the clock difference, wherein the clock difference is the difference between the clock of the path destination device and the clock of the path source device.
[0217] It should be noted that the path source device can also refer to the above Figure 4 The method shown in FIG. 1 determines the one-way inherent delay of the second path. When there are other paths between the path source device and the path destination device, the path source device can also refer to the above Figure 4 The method shown determines the one-way intrinsic delay of other paths and will not be described in detail.
[0218] In the above step 301, it is assumed that the path between the path source device and the path destination device includes a first path and a second path. Taking the first path as an example, the path source device can adopt the following Figure 5 The method shown determines the two-way intrinsic delay of the first path. Figure 5 A flowchart of a method for obtaining a bidirectional intrinsic delay of a first path provided in an embodiment of the present application, the method comprising:
[0219] Step 501: A path source device sends a first message to a path destination device via a first path. Correspondingly, the path destination device receives the first message.
[0220] The first message may include the sending time of the first message.
[0221] Specifically, the specific description of step 501 can refer to the above step 401 and will not be repeated here.
[0222] Step 502: The path destination device sends a confirmation frame of the first message to the path source device via the first path. Correspondingly, the path source device receives the confirmation frame of the first message.
[0223] The confirmation frame may include the sending time of the first message and the sending delay time of the confirmation frame; the sending delay time is the difference between the sending time of the confirmation frame and the receiving time of the first message.
[0224] Alternatively, the confirmation frame includes the sending time of the first message, the receiving time of the first message, and the sending time of the confirmation frame.
[0225] Specifically, the specific process of the destination device of the path sending the confirmation frame of the first message to the source device of the path in step 502 can refer to the above step 402 and will not be described in detail.
[0226] Step 503: The path source device determines the two-way inherent delay of the first path according to the confirmation frame of the first message.
[0227] Specifically, the path source device can refer to the above step 301, and determine the bidirectional inherent delay of the path according to the confirmation frame of the first message as follows: the reception time of the confirmation frame - the sending time of the first message - the sending delay time of the confirmation frame
[0228] Alternatively, the path source device may refer to step 301 above and determine the bidirectional intrinsic delay of the path according to the confirmation frame of the first message as: (receiving time of the first message - sending time of the first message) + (receiving time of the confirmation frame - sending time of the confirmation frame).
[0229] It should be noted that the path source device can also refer to the above Figure 5The method shown in the figure determines the bidirectional inherent delay of the second path. When there are other paths between the path source device and the path destination device, the path source device can also refer to the above Figure 5 The method shown determines the two-way intrinsic delay of other paths and will not be described in detail.
[0230] In the above step 303, the path source device can use the above Figure 3 The method shown in the figure determines the waiting delay for each path, and sends the message on the path after the waiting delay ends. Similarly, the destination device of the path can also adopt the following method. Figure 6 The method shown determines a waiting delay for each path, and after the waiting delay ends, sends a confirmation frame of the message on the path.
[0231] Figure 6 A flowchart of a multipath communication method provided in an embodiment of the present application, the method comprising:
[0232] Step 601: A path destination device obtains a one-way intrinsic delay of each of a plurality of paths between a path source device and a path destination device.
[0233] Exemplarily, the destination device of the path may determine the one-way inherent delay of each path by sending a message to the source device of the path and receiving an acknowledgment frame of the message sent by the source device of the path. The acknowledgment frame of the message includes the sending time and the receiving time of the message.
[0234] The specific process of the path destination device sending a message to the path source device and determining the one-way inherent delay of each path according to the confirmation frame of the received message can refer to the above Figure 3 and Figure 4 The description of the source device of the path sending a message to the destination device of the path and determining the one-way inherent delay of each path according to the confirmation frame of the message is omitted here.
[0235] For example, taking the example that the path between the path source device and the path destination device includes a first path and a second path, the path destination device may send a third message including the sending time of the third message to the path source device through the first path, and receive a confirmation frame of the third message from the path source device through the first path, and determine the one-way inherent delay of the first path according to the sending time of the third message and the receiving time of the third message in the confirmation frame of the third message; the path destination device may also send a fourth message including the sending time of the fourth message to the path source device through the second path, and receive a confirmation frame of the fourth message from the path source device through the second path, and determine the one-way inherent delay of the second path according to the sending time of the fourth message and the receiving time of the fourth message in the confirmation frame of the fourth message.
[0236] Similarly, when the path between the path source device and the path destination device also includes other paths, the path destination device may also send a message corresponding to the path to the path source device through the path, and receive a confirmation frame of the message from the path source device through the path, and determine the one-way inherent delay of the path based on the message sending time and the message receiving time in the confirmation frame of the message corresponding to the path.
[0237] It should be noted that, taking the example that the path between the path source device and the path destination device includes the first path and the second path, the path destination device can adopt the method shown in the above embodiment to send the third message and the fourth message to the path destination device through the first path and the second path respectively in the form of unicast to determine the inherent delay of the first path and the second path; the path source device can also send the message to the path destination device through the first path and the second path in the form of broadcast to determine the inherent delay corresponding to the path according to the confirmation frame of the message corresponding to each path.
[0238] In addition, the third message is a message sent by the path destination device to the path source device on the first path, and the fourth message is a message sent by the path destination device to the path source device on the second path. The third message and the fourth message may also be named other names without limitation.
[0239] Specifically, the path destination device can refer to the above step 301, and according to the confirmation frame of the message, when the clock of the path source device is synchronized with the clock of the path destination device, determine the one-way inherent delay of the path as: message reception time - message transmission time. When the clock of the path source device is not synchronized with the clock of the path destination device, determine the one-way inherent delay of the path as: message reception time - message transmission time - clock difference, where the clock difference is the difference between the clock of the path destination device and the clock of the path source device.
[0240] Step 602: The destination device of the path determines the waiting delay of each path according to the one-way inherent delay of each path.
[0241] Specifically, the process in which the path destination device determines the waiting delay of each path according to the one-way inherent delay of each path can refer to the process in which the path source device determines the waiting delay of each path according to the one-way inherent delay of each path in the above step 302, and will not be repeated here.
[0242] Step 603: The path source device sends a message to the path destination device through each path.
[0243] Specifically, the destination device of the path can adopt the above Figure 3In the method shown, after the waiting delay of each path ends, a message is sent to the destination device of the path through the path.
[0244] Step 604: After the waiting delay of the path ends, the destination device of the path sends a confirmation frame of the message on the path.
[0245] Specifically, the destination device of the path may refer to the way in which the source device of the path sends a message on the path after the waiting delay of the path ends in the above step 303, and send a confirmation frame of the message on the path after the waiting delay of the path ends, which will not be described in detail.
[0246] based on Figure 6 In the method shown, the destination device of the path determines the waiting delay for each path, and sends a confirmation frame of the message on the path after the waiting delay ends, so that the time difference of the confirmation frames of the message received by the source device of the path through each path is less than or equal to the preset time difference, thereby avoiding that the sending device identifies the delay fluctuation caused by the inherent delay of each path as the delay fluctuation caused by network congestion according to the confirmation frame of the message sent by the source device of the path, and exits the slow start process in advance, so as to achieve accurate congestion perception, and then control the exponential growth of the congestion window in the slow start process, thereby improving the path utilization.
[0247] The above mainly introduces the solution provided by the embodiment of the present application from the perspective of interaction between devices. It is understandable that, in order to realize the above functions, each device includes a hardware structure and / or software module corresponding to each function. Those skilled in the art should easily realize that, in combination with the algorithm steps of each example described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the present application.
[0248] The embodiment of the present application can divide each network element into functional modules according to the above method example. For example, each functional module can be divided according to each function, or two or more functions can be integrated into one processing module. The above integrated module can be implemented in the form of hardware or in the form of software functional modules. It should be noted that the division of modules in the embodiment of the present application is schematic and is only a logical function division. There may be other division methods in actual implementation.
[0249] In the case of dividing each functional module into corresponding functional modules, Figure 7A communication device is shown, and the communication device 70 may be a path source end device or a chip or a system on chip in the path source end device. The communication device 70 may be used to perform the functions of the path source end device involved in the above embodiments. Figure 7 The communication device 70 shown includes: a processing module 701 .
[0250] Processing module 701 is used to determine the waiting delay of the first path and the waiting delay of the second path according to the inherent delay of the first path and the inherent delay of the second path; wherein, the sum of the inherent delay of the first path and the waiting delay of the first path is the transmission delay of the first path; the sum of the inherent delay of the second path and the waiting delay of the second path is the transmission delay of the second path; the difference between the transmission delay of the first path and the transmission delay of the second path is less than or equal to the preset time difference; the waiting delay of the first path is used for when a message needs to be sent through the first path, the link source end device sends the message through the first path after the waiting delay of the first path ends; the waiting delay of the second path is used for when a message needs to be sent through the second path, the link source end device sends the message through the second path after the waiting delay of the second path ends. For specific implementation, please refer to Figure 3 The detailed description of steps 301 to 303 in the illustrated embodiment is omitted here.
[0251] The specific implementation of the communication device 70 can be referred to Figure 3-Figure 6 The behavior function of the path source device in the multi-path communication method. For specific implementation, please refer to Figure 3 Steps 301 to 303 in the illustrated embodiment, and Figure 4 In the illustrated embodiment, steps 401 and 403, and Figure 5 In the illustrated embodiment, steps 501 and 503, and Figure 6 The detailed description of step 603 in the illustrated embodiment is omitted here.
[0252] In a specific implementation, when the inherent delay is a one-way inherent delay used to indicate the transmission time of a message on a path, the processing module 701 is also used to determine the waiting delay of the first path as a first time period, and determine the waiting delay of the second path as the difference between the one-way transmission delay of the first path and the one-way inherent delay of the second path; the one-way transmission delay is the sum of the one-way inherent delay of the path and the waiting delay of the path.
[0253] In a specific implementation manner, the first path is a path having the longest one-way intrinsic delay between the first path and the second path, and the first time period is 0.
[0254] In a specific implementation, the communication device further includes a sending module 702 and a receiving module 703, wherein the sending module 702 is used to send a message including the sending time of the message to a path destination device through a first path and a second path; the receiving module 703 is used to receive a confirmation frame of a message including the sending time of the message and the receiving time of the message from the path destination device through the first path and the second path; the processing module 701 is further used to determine the one-way inherent delay of the first path according to the sending time of the message and the receiving time of the message corresponding to the first path; the processing module 701 is further used to determine the one-way inherent delay of the second path according to the sending time of the message and the receiving time of the message corresponding to the second path.
[0255] In a specific implementation manner, the sending module 702 is further configured to periodically send messages to the path destination device through the first path and the second path.
[0256] In a specific implementation manner, the sending module 702 is used to send a first message including the sending time of the first message to a path destination device via a first path; the receiving module 703 is used to receive a confirmation frame of the first message including the sending time of the first message and the receiving time of the first message from the path destination device via the first path; the processing module 701 is also used to determine the one-way inherent delay of the first path according to the sending time of the first message and the receiving time of the first message; the sending module 702 is also used to send a second message including the sending time of the second message to the path destination device via a second path; the receiving module 703 is also used to receive a confirmation frame of the second message including the sending time of the second message and the receiving time of the second message from the path destination device via the second path; the processing module 701 is also used to determine the one-way inherent delay of the second path according to the sending time of the second message and the receiving time of the second message.
[0257] In a specific implementation, the sending module 702 is further used to periodically send a first message to a path destination device via a first path; the sending module 702 is further used to periodically send a second message to a path destination device via a second path.
[0258] In a specific implementation, when the inherent delay is a bidirectional inherent delay indicating the sum of the transmission time of a message on a path and the transmission time of a confirmation frame of the message on the path, the processing module 701 is further used to determine the waiting delay of the first path as a first time period, and determine the waiting delay of the second path as the difference between the bidirectional transmission delay of the first path and the bidirectional inherent delay of the second path; the bidirectional transmission delay is the sum of the bidirectional inherent delay of the path and the waiting delay of the path.
[0259] In a specific implementation manner, the first path is a path having the longest bidirectional intrinsic delay between the first path and the second path, and the first time period is 0.
[0260] In a specific implementation manner, the sending module 702 is further used to send a message including the sending time of the message to the path destination device through the first path and the second path; the receiving module 703 is further used to receive a confirmation frame of the message including the sending time of the message and the sending delay time of the confirmation frame from the path destination device through the first path and the second path; the sending delay time is the difference between the sending time of the confirmation frame and the receiving time of the message; the processing module 701 is further used to determine the two-way inherent delay of the first path according to the receiving time of the confirmation frame corresponding to the first path, the sending time of the message and the sending delay time of the confirmation frame; the processing module 701 is further used to determine the two-way inherent delay of the second path according to the receiving time of the confirmation frame corresponding to the second path, the sending time of the message and the sending delay time of the confirmation frame.
[0261] In a specific implementation, the receiving module 703 is further used to periodically receive confirmation frames of messages from the path destination device through the first path and the second path; wherein the message is the latest message received by the path destination device when the confirmation frame sending period arrives.
[0262] In a specific implementation manner, the sending module 702 is further used to send a first message including the sending time of the first message to the path destination device through the first path; the receiving module 703 is further used to receive a confirmation frame of the first message including the sending time of the first message and the sending delay time of the confirmation frame of the first message from the path destination device through the first path; the sending delay time is the difference between the sending time of the confirmation frame of the first message and the receiving time of the first message; the processing module 701 is further used to determine the dual-path of the first path according to the receiving time of the confirmation frame of the first message, the sending time of the first message, and the sending delay time of the confirmation frame of the first message. The sending module 702 is further used to send a second message including the sending time of the second message to the path destination device through the second path; the receiving module 703 is further used to receive a confirmation frame of the second message including the sending time of the second message and the sending delay time of the confirmation frame of the second message from the path destination device through the second path; the sending delay time is the difference between the sending time of the confirmation frame of the second message and the receiving time of the second message; the processing module 701 is further used to determine the two-way inherent delay of the second path according to the receiving time of the confirmation frame of the second message, the sending time of the second message and the sending delay time of the confirmation frame of the second message.
[0263] In a specific implementation, the receiving module 703 is further used to periodically receive a confirmation frame of a first message from a path destination device through a first path; wherein the first message is the first message most recently received by the path destination device when the sending period of the confirmation frame arrives; the receiving module 703 is further used to periodically receive a confirmation frame of a second message from the path destination device through a second path; wherein the second message is the second message most recently received by the path destination device when the sending period of the confirmation frame arrives.
[0264] In a specific implementation, the processing module 701 is also used to determine a first timer for the first path based on the waiting delay of the first path; and to determine a second timer for the second path based on the waiting delay of the second path; the sending module 702 is also used to send a message on the first path after the first timer expires; and to send a message on the second path after the second timer expires.
[0265] In a specific implementation, the processing module 701 is also used to determine a first waiting queue for the first path including messages that need to be sent on the first path based on the waiting delay of the first path; and to determine a second waiting queue for the second path including messages that need to be sent on the second path based on the waiting delay of the second path; the sending module 702 is also used to send messages in the first waiting queue on the first path after the waiting delay of the first path ends; and to send messages in the second waiting queue on the second path after the waiting delay of the second path ends.
[0266] In a specific implementation, the processing module 701 is also used to determine a first timer and a first waiting queue including messages that need to be sent on the first path for the first path based on the waiting delay of the first path; determine a second timer and a second waiting queue including messages that need to be sent on the second path for the second path based on the waiting delay of the second path; the sending module 702 is also used to send the messages in the first waiting queue on the first path after the first timer expires; and send the messages in the second waiting queue on the second path after the second timer expires.
[0267] As another possible way to achieve this, Figure 7 The processing module 701 in the embodiment can be replaced by a processor, and the sending module 702 and the receiving module 703 can be replaced by a transceiver. The processor can integrate the functions of the processing module 701, and the transceiver can integrate the functions of the sending module 702 and the receiving module 703. Further, Figure 7 The communication device 70 shown may also include a memory. When the processing module 701 is replaced by a processor, and the sending module 702 and the receiving module 703 are replaced by a transceiver, the communication device 70 involved in the embodiment of the present application may be Figure 2 The communication device shown.
[0268] In addition, when the processing module 701, the sending module 702, and the receiving module 703 are implemented in software, that is, they are software modules, the processing module 701, the sending module 702, and the receiving module 703 can be stored in Figure 2 In the memory 204 of the embodiment shown, when the processor 201 executes each software module in the memory 204, the communication device 200 is prompted to implement the above Figure 3-Figure 6 The steps described.
[0269] In the case of dividing each functional module into corresponding functional modules, Figure 8 A communication device is shown, and the communication device 80 may be a path destination device or a chip or a system on chip in the path destination device. The communication device 80 may be used to perform the functions of the path destination device involved in the above embodiments. Figure 8 The communication device 80 shown includes: a processing module 801 .
[0270] Processing module 801 is used to determine the waiting delay of the first path and the waiting delay of the second path according to the one-way inherent delay of the first path and the one-way inherent delay of the second path; wherein the one-way inherent delay is the transmission time of the message on the path, and the sum of the one-way inherent delay of the first path and the waiting delay of the first path is the one-way transmission delay of the first path; the sum of the one-way inherent delay of the second path and the waiting delay of the second path is the one-way transmission delay of the second path; the difference between the one-way transmission delay of the first path and the one-way transmission delay of the second path is less than or equal to the preset time difference; the waiting delay of the first path is used for when a confirmation frame of the message needs to be sent through the first path, the destination device of the path sends the confirmation frame of the message through the first path after the waiting delay of the first path ends; the waiting delay of the second path is used for when a confirmation frame of the message needs to be sent through the second path, the destination device of the path sends the confirmation frame of the message through the second path after the waiting delay of the second path ends. For specific implementation, please refer to Figure 6 The detailed description of step 601, step 602 and step 604 in the illustrated embodiment is omitted.
[0271] The specific implementation of the communication device 80 can be referred to Figure 4-Figure 6 The behavior function of the path destination device in the multi-path communication method. For specific implementation, please refer to Figure 4 In the illustrated embodiment, step 402, Figure 5 Step 502 in the illustrated embodiment, and Figure 6 The detailed description of step 601, step 602 and step 604 in the illustrated embodiment is omitted.
[0272] In a specific implementation, the processing module 801 is further configured to determine the waiting delay of the first path as the first time period, and determine the waiting delay of the second path as the difference between the one-way transmission delay of the first path and the one-way inherent delay of the second path.
[0273] In a specific implementation manner, the first path is a path having the longest one-way intrinsic delay between the first path and the second path, and the first time period is 0.
[0274] In a specific implementation, the communication device further includes a sending module 802 and a receiving module 803, wherein the sending module 802 is used to send a message including the sending time of the message to a path source end device via a first path and a second path; the receiving module 803 is used to receive a confirmation frame of a message including the sending time of the message and the receiving time of the message from the path source end device via the first path and the second path; the processing module 801 is further used to determine the one-way inherent delay of the first path according to the sending time of the message and the receiving time of the message corresponding to the first path; the processing module 801 is further used to determine the one-way inherent delay of the second path according to the sending time of the message and the receiving time of the message corresponding to the second path.
[0275] In a specific implementation manner, the sending module 802 is further configured to periodically send messages to the path source device through the first path and the second path.
[0276] In a specific implementation manner, the sending module 802 is used to send a third message including the sending time of the third message to the path source end device through the first path; the receiving module 803 is used to receive a confirmation frame of the third message including the sending time of the third message and the receiving time of the third message from the path source end device through the first path; the processing module 801 is also used to determine the one-way inherent delay of the first path according to the sending time of the third message and the receiving time of the third message corresponding to the first path; the sending module 802 is also used to send a fourth message including the sending time of the fourth message to the path source end device through the second path; the receiving module 803 is also used to receive a confirmation frame of the fourth message including the sending time of the fourth message and the receiving time of the fourth message from the path source end device through the second path; the processing module 801 is also used to determine the one-way inherent delay of the second path according to the sending time of the fourth message corresponding to the second path.
[0277] In a specific implementation, the sending module 802 is further used to periodically send a third message to the path source device through the first path; the sending module 802 is further used to periodically send a fourth message to the path source device through the second path.
[0278] In a specific implementation, the receiving module 803 is also used to receive a message including the sending time of the message from the path source end device through the first path and the second path; the sending module 802 is also used to send a confirmation frame of the message including the sending time of the message and the receiving time of the message to the path source end device through the first path and the second path.
[0279] In a specific implementation manner, the receiving module 803 is further used to receive a first message including the sending time of the first message from a path source end device via a first path; the sending module 802 is further used to send a confirmation frame of the first message including the sending time of the first message and the receiving time of the first message to the path source end device via the first path; the receiving module 803 is further used to receive a second message including the sending time of the second message from the path source end device via a second path; the sending module 802 is further used to send a confirmation frame of the second message including the sending time of the second message and the receiving time of the second message to the path source end device via the second path.
[0280] In a specific implementation, the receiving module 803 is further used to receive a message including the sending time of the message from a path source device through a first path and a second path; the sending module 802 is further used to send a confirmation frame of the message including the sending time of the message and the sending delay time of the confirmation frame to the path source device through the first path and the second path; the sending delay time is the difference between the sending time of the confirmation frame and the receiving time of the message.
[0281] In a specific implementation manner, the receiving module 803 is further used to receive a first message including the sending time of the first message from a path source end device via a first path; the sending module 802 is further used to send a confirmation frame of the first message including the sending time of the first message and the sending delay time of the confirmation frame of the first message to the path source end device via the first path; the sending delay time is the difference between the sending time of the confirmation frame of the first message and the receiving time of the first message; the receiving module 803 is further used to receive a second message including the sending time of the second message from the path source end device via a second path; the sending module 802 is further used to send a confirmation frame of the second message including the sending time of the second message and the sending delay time of the confirmation frame of the second message to the path source end device via the second path; the sending delay time is the difference between the sending time of the confirmation frame of the second message and the receiving time of the second message.
[0282] As another possible way to achieve this, Figure 8 The processing module 801 in the embodiment can be replaced by a processor, and the sending module 802 and the receiving module 803 can be replaced by a transceiver. The processor can integrate the functions of the processing module 801, and the transceiver can integrate the functions of the sending module 802 and the receiving module 803. Further, Figure 8 The communication device 80 shown may also include a memory. When the processing module 801 is replaced by a processor, and the sending module 802 and the receiving module 803 are replaced by a transceiver, the communication device 80 involved in the embodiment of the present application may be Figure 2 The communication device shown.
[0283] In addition, when the processing module 801, the sending module 802, and the receiving module 803 are implemented in software, that is, they are software modules, the processing module 801, the sending module 802, and the receiving module 803 can be stored in Figure 2 In the memory 204 of the embodiment shown, when the processor 201 executes each software module in the memory 204, the communication device 200 is prompted to implement the above Figure 3-Figure 6 The steps described.
[0284] The embodiment of the present application also provides a computer-readable storage medium. All or part of the processes in the above method embodiments can be completed by a computer program to instruct the relevant hardware, and the program can be stored in the above computer-readable storage medium. When the program is executed, it may include the processes of the above method embodiments. The computer-readable storage medium can be an internal storage unit of a terminal (including a data sending end and / or a data receiving end) in any of the above embodiments, such as a hard disk or memory of the terminal. The above computer-readable storage medium can also be an external storage device of the above terminal, such as a plug-in hard disk equipped on the above terminal, a smart memory card (smart media card, SMC), a secure digital (secure digital, SD) card, a flash card (flash card), etc. Further, the above computer-readable storage medium can also include both an internal storage unit of the above terminal and an external storage device. The above computer-readable storage medium is used to store the above computer program and other programs and data required by the above terminal. The above computer-readable storage medium can also be used to temporarily store data that has been output or is to be output.
[0285] It should be noted that the terms "first" and "second" in the specification, claims and drawings of the present application are used to distinguish different objects rather than to describe a specific order. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions. For example, a process, method, system, product or device that includes a series of steps or units is not limited to the listed steps or units, but may optionally include steps or units that are not listed, or may optionally include other steps or units that are inherent to these processes, methods, products or devices.
[0286] It should be understood that in the present application, "at least one (item)" means one or more, "more than one" means two or more, "at least two (items)" means two or three and more than three, and "and / or" is used to describe the association relationship of associated objects, indicating that three relationships may exist. For example, "A and / or B" can mean: only A exists, only B exists, and A and B exist at the same time, where A and B can be singular or plural. The character " / " generally indicates that the previous and next associated objects are in an "or" relationship. "At least one of the following items" or similar expressions refers to any combination of these items, including any combination of single items or plural items. For example, at least one of a, b or c can mean: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, c can be single or multiple.
[0287] Through the description of the above implementation methods, technical personnel in the relevant field can clearly understand that for the convenience and simplicity of description, only the division of the above-mentioned functional modules is used as an example. In actual applications, the above-mentioned functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above.
[0288] In the several embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the modules or units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another device, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0289] The units described as separate components may or may not be physically separated, and the components shown as units may be one physical unit or multiple physical units, that is, they may be located in one place or distributed in multiple different places. Some or all of the units may be selected according to actual needs to achieve the purpose of the present embodiment.
[0290] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.
[0291] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a readable storage medium. Based on this understanding, the technical solution of the embodiment of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, which is stored in a storage medium, including several instructions to enable a device (which can be a single-chip microcomputer, chip, etc.) or a processor (processor) to perform all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as USB flash drives, mobile hard drives, ROM, RAM, magnetic disks or optical disks.
[0292] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any changes or substitutions within the technical scope disclosed in the present application shall be included in the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.
Claims
1. A multi-path communication method, applied to a communication system, wherein the communication system comprises a path source device and a path destination device, wherein there are at least two paths between the path source device and the path destination device; the at least two paths comprise a first path and a second path; characterized in that: include: The path source device determines the waiting delay of the first path and the waiting delay of the second path according to the inherent delay of the first path and the inherent delay of the second path; The sum of the inherent delay of the first path and the waiting delay of the first path is the transmission delay of the first path; the sum of the inherent delay of the second path and the waiting delay of the second path is the transmission delay of the second path; the difference between the transmission delay of the first path and the transmission delay of the second path is less than or equal to the preset time difference; The waiting delay of the first path is used for, when it is necessary to send a message through the first path, the path source end device sends the message through the first path after the waiting delay of the first path ends; the waiting delay of the second path is used for, when it is necessary to send a message through the second path, the path source end device sends the message through the second path after the waiting delay of the second path ends.
2. The method according to claim 1, characterized in that When the inherent delay is a unidirectional inherent delay, the path source device determines the waiting delay of the first path and the waiting delay of the second path according to the inherent delay of the first path and the inherent delay of the second path, including: The path source device determines the waiting delay of the first path as a first time period, and determines the waiting delay of the second path as a difference between the one-way transmission delay of the first path and the one-way inherent delay of the second path; wherein the one-way inherent delay is the transmission time of the message on the path, and the one-way transmission delay is the sum of the one-way inherent delay of the path and the waiting delay of the path.
3. The method according to claim 2, characterized in that The first path is a path having the longest one-way intrinsic delay between the first path and the second path, and the first time period is 0.
4. The method according to claim 2 or 3, characterized in that: The method further comprises: The path source device sends a message to the path destination device through the first path and the second path; wherein the message includes the sending time of the message; The path source device receives a confirmation frame of the message from the path destination device through the first path and the second path; wherein the confirmation frame of the message includes a sending time of the message and a receiving time of the message; The path source device determines a one-way inherent delay of the first path according to a sending time of the message and a receiving time of the message corresponding to the first path; The path source device determines the one-way inherent delay of the second path according to the sending time of the message and the receiving time of the message corresponding to the second path.
5. The method according to claim 4, characterized in that The path source device periodically sends the message to the path destination device through the first path and the second path.
6. The method according to claim 2 or 3, characterized in that: The method further comprises: The path source device sends a first message to the path destination device through the first path; wherein the first message includes the sending time of the first message; The path source device receives a confirmation frame of the first message from the path destination device through the first path; wherein the confirmation frame of the first message includes a sending time of the first message and a receiving time of the first message; The path source device determines a one-way inherent delay of the first path according to a sending time of the first message and a receiving time of the first message; The path source device sends a second message to the path destination device through the second path; wherein the second message includes the sending time of the second message; The path source device receives a confirmation frame of the second message from the path destination device through the second path; wherein the confirmation frame of the second message includes a sending time of the second message and a receiving time of the second message; The path source device determines a one-way intrinsic delay of the second path according to a sending time of the second message and a receiving time of the second message.
7. The method according to claim 6, characterized in that The path source device periodically sends the first message to the path destination device through the first path; and The path source device periodically sends the second message to the path destination device through the second path.
8. The method according to claim 1, characterized in that When the inherent delay is a bidirectional inherent delay, the path source device determines the waiting delay of the first path and the waiting delay of the second path according to the inherent delay of the first path and the inherent delay of the second path, including: The path source device determines the waiting delay of the first path as a first time period, and determines the waiting delay of the second path as a difference between the bidirectional transmission delay of the first path and the bidirectional inherent delay of the second path; wherein the bidirectional inherent delay is the sum of the transmission time of the message on the path and the transmission time of the confirmation frame of the message on the path, and the bidirectional transmission delay is the sum of the bidirectional inherent delay of the path and the waiting delay of the path.
9. The method according to claim 8, characterized in that The first path is a path with the longest bidirectional intrinsic delay between the first path and the second path, and the first time period is 0.
10. The method according to claim 8 or 9, characterized in that: The method further comprises: The path source device sends a message to the path destination device through the first path and the second path; wherein the message includes the sending time of the message; The path source device receives a confirmation frame of the message from the path destination device through the first path and the second path; wherein the confirmation frame includes a sending time of the message and a sending delay time of the confirmation frame; the sending delay time is a difference between a sending time of the confirmation frame and a receiving time of the message; The path source device determines the bidirectional inherent delay of the first path according to the reception time of the confirmation frame corresponding to the first path, the sending time of the message and the sending delay time of the confirmation frame; The path source device determines the bidirectional inherent delay of the second path according to the reception time of the confirmation frame corresponding to the second path, the sending time of the message and the sending delay time of the confirmation frame.
11. The method according to claim 10, characterized in that The path source device receives a confirmation frame of the message from the path destination device through the first path and the second path, including: The path source device periodically receives confirmation frames of the message from the path destination device through the first path and the second path; wherein the message is the latest message received by the path destination device when the confirmation frame sending period arrives.
12. The method according to claim 8 or 9, characterized in that: The method further comprises: The path source device sends a first message to the path destination device through the first path; wherein the first message includes a sending time of the first message; The path source device receives a confirmation frame of the first message from the path destination device through the first path; wherein the confirmation frame of the first message includes a sending time of the first message and a sending delay time of the confirmation frame of the first message; the sending delay time is a difference between a sending time of the confirmation frame of the first message and a receiving time of the first message; The path source device determines the bidirectional inherent delay of the first path according to the reception time of the confirmation frame of the first message, the sending time of the first message and the sending delay time of the confirmation frame of the first message; The path source device sends a second message to the path destination device through the second path; wherein the second message includes the sending time of the second message; The path source device receives a confirmation frame of the second message from the path destination device through the second path; wherein the confirmation frame of the second message includes a sending time of the second message and a sending delay time of the confirmation frame of the second message; the sending delay time is a difference between a sending time of the confirmation frame of the second message and a receiving time of the second message; The path source device determines the bidirectional intrinsic delay of the second path according to the reception time of the confirmation frame of the second message, the sending time of the second message, and the sending delay time of the confirmation frame of the second message.
13. The method according to claim 12, characterized in that The path source device periodically receives a confirmation frame of the first message from the path destination device through the first path; wherein the first message is the first message most recently received by the path destination device when a confirmation frame sending period arrives; and The path source device periodically receives a confirmation frame of the second message from the path destination device through the second path; wherein the second message is the second message most recently received by the path destination device when a confirmation frame sending period arrives.
14. The method according to any one of claims 1-3, 5, 7-9, 11, and 13, characterized in that: The method further comprises: The path source device determines a first timer for the first path according to the waiting delay of the first path; The path source device determines a second timer for the second path according to the waiting delay of the second path; The path source device sends a message on the first path after the first timer expires; The path source device sends a message on the second path after the second timer expires.
15. The method according to any one of claims 1-3, 5, 7-9, 11, and 13, characterized in that: The method further comprises: The path source device determines a first waiting queue for the first path according to the waiting delay of the first path; wherein the first waiting queue includes messages that need to be sent on the first path; The path source device determines a second waiting queue for the second path according to the waiting delay of the second path; wherein the second waiting queue includes messages that need to be sent on the second path; The path source device sends the message in the first waiting queue on the first path after the waiting delay of the first path ends; The path source device sends the message in the second waiting queue on the second path after the waiting delay of the second path ends.
16. The method according to any one of claims 1-3, 5, 7-9, 11, and 13, characterized in that: The method further comprises: The path source device determines a first timer and a first waiting queue for the first path according to the waiting delay of the first path; wherein the first waiting queue includes messages that need to be sent on the first path; The path source device determines a second timer and a second waiting queue for the second path according to the waiting delay of the second path; wherein the second waiting queue includes messages that need to be sent on the second path; The path source device sends the message in the first waiting queue on the first path after the first timer expires; After the second timer expires, the path source device sends the message in the second waiting queue on the second path.
17. A multi-path communication method, applied to a communication system, wherein the communication system comprises a path source device and a path destination device, wherein there are at least two paths between the path source device and the path destination device; the at least two paths comprise a first path and a second path; wherein: include: The path destination device determines the waiting delay of the first path and the waiting delay of the second path according to the one-way inherent delay of the first path and the one-way inherent delay of the second path; The one-way inherent delay is the transmission time of the message on the path, the sum of the one-way inherent delay of the first path and the waiting delay of the first path is the one-way transmission delay of the first path; the sum of the one-way inherent delay of the second path and the waiting delay of the second path is the one-way transmission delay of the second path; the difference between the one-way transmission delay of the first path and the one-way transmission delay of the second path is less than or equal to the preset time difference; The waiting delay of the first path is used for, when it is necessary to send a confirmation frame of the message through the first path, the destination device of the path sends the confirmation frame of the message through the first path after the waiting delay of the first path ends; the waiting delay of the second path is used for, when it is necessary to send a confirmation frame of the message through the second path, the destination device of the path sends the confirmation frame of the message through the second path after the waiting delay of the second path ends.
18. The method according to claim 17, characterized in that The path destination device determines the waiting delay of the first path and the waiting delay of the second path according to the one-way inherent delay of the first path and the one-way inherent delay of the second path, including: The path destination device determines the waiting delay of the first path as a first time period, and determines the waiting delay of the second path as a difference between a one-way transmission delay of the first path and a one-way inherent delay of the second path.
19. The method according to claim 18, characterized in that The first path is a path having the longest one-way intrinsic delay between the first path and the second path, and the first time period is 0.
20. The method according to any one of claims 17 to 19, characterized in that: The method further comprises: The destination device of the path sends a message to the source device of the path through the first path and the second path; wherein the message includes the sending time of the message; The destination device of the path receives a confirmation frame of the message from the source device of the path through the first path and the second path; wherein the confirmation frame includes the sending time of the message and the receiving time of the message; The destination device of the path determines a one-way inherent delay of the first path according to a sending time of the message and a receiving time of the message corresponding to the first path; The path destination device determines the one-way inherent delay of the second path according to the sending time of the message and the receiving time of the message corresponding to the second path.
21. The method according to claim 20, characterized in that The method further comprises: The path destination device periodically sends the message to the path source device through the first path and the second path.
22. The method according to any one of claims 17 to 19, characterized in that: The method further comprises: The destination device of the path sends a third message to the source device of the path through the first path; wherein the third message includes the sending time of the third message; The destination device of the path receives a confirmation frame of the third message from the source device of the path through the first path; wherein the confirmation frame of the third message includes a sending time of the third message and a receiving time of the third message; The path destination device determines the one-way inherent delay of the first path according to the sending time of the third message and the receiving time of the third message; The destination device of the path sends a fourth message to the source device of the path through the second path; wherein the fourth message includes the sending time of the fourth message; The destination device of the path receives a confirmation frame of the fourth message from the source device of the path through the second path; wherein the confirmation frame of the fourth message includes a sending time of the fourth message and a receiving time of the fourth message; The path destination device determines the one-way inherent delay of the second path according to the sending time of the fourth message and the receiving time of the fourth message.
23. The method according to claim 22, characterized in that The method further comprises: The path destination device periodically sends the third message to the path source device through the first path; and The path destination device periodically sends the fourth message to the path source device through the second path.
24. The method according to any one of claims 17 to 19, 21 and 23, characterized in that: The method further comprises: The destination device of the path receives a message from the source device of the path through the first path and the second path; wherein the message includes a sending time of the message; The path destination device sends a confirmation frame of the message to the path source device through the first path and the second path; wherein the confirmation frame includes the sending time of the message and the receiving time of the message.
25. The method according to any one of claims 17 to 19, 21 and 23, characterized in that: The method further comprises: The destination device of the path receives a first message from the source device of the path through the first path; wherein the first message includes a sending time of the first message; The destination device of the path sends a confirmation frame of the first message to the source device of the path through the first path; wherein the confirmation frame of the first message includes the sending time of the first message and the receiving time of the first message; The destination device of the path receives a second message from the source device of the path through the second path; wherein the second message includes a sending time of the second message; The path destination device sends a confirmation frame of the second message to the path source device through the second path; wherein the confirmation frame of the second message includes the sending time of the second message and the receiving time of the second message.
26. The method according to any one of claims 17-19, 21 and 23, characterized in that: The method further comprises: The destination device of the path receives a message from the source device of the path through the first path and the second path; wherein the message includes a sending time of the message; The path destination device sends a confirmation frame of the message to the path source device through the first path and the second path; wherein the confirmation frame of the message includes the sending time of the message and the sending delay time of the confirmation frame of the message; the sending delay time is the difference between the sending time of the confirmation frame of the message and the receiving time of the message.
27. The method according to any one of claims 17 to 19, 21 and 23, characterized in that: The method further comprises: The destination device of the path receives a first message from the source device of the path through the first path; wherein the first message includes a sending time of the first message; The destination device of the path sends a confirmation frame of the first message to the source device of the path through the first path; wherein the confirmation frame of the first message includes the sending time of the first message and the sending delay time of the confirmation frame of the first message; the sending delay time is the difference between the sending time of the confirmation frame of the first message and the receiving time of the first message; The destination device of the path receives a second message from the source device of the path through the second path; wherein the second message includes a sending time of the second message; The path destination device sends a confirmation frame of the second message to the path source device through the second path; wherein the confirmation frame of the second message includes the sending time of the second message and the sending delay time of the confirmation frame of the second message; the sending delay time is the difference between the sending time of the confirmation frame of the second message and the receiving time of the second message.
28. A communication device, characterized in that: The communication device includes one or more processors and a transceiver; the one or more processors and the transceiver support the communication device to execute the multi-path communication method as described in any one of claims 1-16 or the multi-path communication method as described in any one of claims 17-27.
29. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer instructions or programs. When the computer instructions or programs are executed on a computer, the computer executes the multipath communication method as described in any one of claims 1 to 16 or the multipath communication method as described in any one of claims 17 to 27.
30. A communication system, characterized in that: The communication system comprises: a path source end device and a path destination end device; there are at least two paths between the path source end device and the path destination end device; the at least two paths comprise a first path and a second path; The path source device is used to determine the waiting delay of the first path and the waiting delay of the second path according to the inherent delay of the first path and the inherent delay of the second path; wherein the sum of the inherent delay of the first path and the waiting delay of the first path is the transmission delay of the first path; the sum of the inherent delay of the second path and the waiting delay of the second path is the transmission delay of the second path; the difference between the transmission delay of the first path and the transmission delay of the second path is less than or equal to a preset time difference; the waiting delay of the first path is used for the path source device to send a message through the first path after the waiting delay of the first path ends when a message needs to be sent through the first path; the waiting delay of the second path is used for the path source device to send a message through the second path after the waiting delay of the second path ends when a message needs to be sent through the second path; The path destination device is used to receive the message from the path source device through the first path and the second path.
Citation Information
Patent Citations
Data distribution method based on on-path cache in satellite-ground hybrid network
CN109412950A
Redundant channels over a packet network
EP1168714A2