Communication method and apparatus
By detecting the performance of the transmission path and dynamically adjusting the transmission method, the problem of multi-path transmission increasing traffic cost and power consumption is solved, and more efficient data transmission is achieved.
Patent Information
- Application Number
- PCT/CN2024/125525
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-11-15
- Filing Date
- 2024-10-17
- Publication Date
- 2025-05-22
AI Technical Summary
When using multipath transmission technology for data transmission, additional traffic costs and power consumption overhead are added, especially when the transmission path performance is poor.
By detecting the transmission path performance between hosts, if the preset conditions are met, multi-path transmission is adopted; otherwise, single-path transmission is adopted to dynamically adjust the transmission method.
The method of selecting multi-path transmission or single-path transmission according to actual needs is realized, reducing the traffic cost and power consumption overhead caused by blindly adopting multi-path transmission.
Smart Images

Figure CN2024125525_22052025_PF_FP_ABST
Abstract
Description
Communication method and device
[0001] This application claims priority to the Chinese patent application filed with the China Patent Office on November 15, 2023, with application number 202311526138.0 and application name “A Communication Method and Device”, the entire contents of which are incorporated by reference into this application. Technical Field
[0002] The present application relates to the field of communications, and in particular to a communication method and device. Background Art
[0003] With the development of wireless communication technology, more and more electronic devices are beginning to use multipath transmission technology for data transmission to improve the data transmission performance of electronic devices. Among them, mainstream multipath transmission technologies include Multipath Transmission Control Protocol (MPTCP).
[0004] In multi-path transmission technology, the host can transmit data through the transmission paths of multiple networks of different standards. For example, when transmitting business data between a terminal device and a business server, the electronic device can send business data to the business server through the transmission path of the cellular network and the transmission path of the wireless fidelity (WIFI) network. Alternatively, when the business server sends business data to the electronic device, it can also send business data to the electronic device through the transmission path of the cellular network and the transmission path of the WIFI network. In this way, the data transmission efficiency can be improved.
[0005] However, compared with using a single-path transmission method for data transmission, using multi-path transmission technology for data transmission will increase additional traffic costs and power consumption overhead.
[0006] Summary of the Invention
[0007] The present application provides a communication method and apparatus for reducing the traffic cost and power consumption of hosts when transmitting business data between hosts.
[0008] In a first aspect, a communication method is provided, comprising: a first host detecting the transmission performance of a first transmission path between the first host and a second host. If the transmission performance of the first transmission path meets a preset condition, the first host sends service data via the first transmission path and a second transmission path, the first transmission path and the second transmission path being transmission paths between the first host and the second host in networks of different standards. Otherwise, the first host sends the service data via the first transmission path.
[0009] In the above method of the present application, when the transmission performance of the first transmission path meets the preset conditions, the service data is sent through the first transmission path and the second transmission path by means of multipath transmission. When the transmission performance of the first transmission path does not meet the preset conditions, a single path transmission method can be adopted to send the service data through the first transmission path, that is, the multipath transmission method is not adopted at this time. In this way, through the above method of the embodiment of the present application, the effect of selecting multipath transmission or single path transmission for data transmission can be achieved according to actual needs. This avoids the problem of high traffic cost and power consumption overhead caused by blindly adopting multipath transmission for data transmission.
[0010] In one implementation, the transmission performance of the first transmission path includes one or more of a transmission delay, a packet loss rate, and a received signal strength RSSI of the first transmission path.
[0011] Through the above implementation method, when one or more of the transmission delay, packet loss rate and RSSI of the first transmission path do not meet the preset conditions, the business data is sent by a single path transmission method; when one or more of the transmission delay, packet loss rate and RSSI of the first transmission path meet the preset conditions, the business data is sent by a multi-path transmission method, thereby avoiding the problems of high traffic costs and power consumption overhead caused by blindly adopting a multi-path transmission method for data transmission.
[0012] In one implementation, the preset conditions include: one or more of the following: the transmission delay of the first transmission path is greater than a first delay threshold; the difference between the transmission delay of the first transmission path and the minimum transmission delay of the first transmission path within a preset time period is greater than a second delay threshold; or the transmission delay of the first transmission path shows a deterioration trend.
[0013] In the above implementation, by setting one or more of the following as preset conditions: the transmission delay of the first transmission path is greater than the first delay threshold, the difference between the transmission delay of the first transmission path and the minimum transmission delay of the first transmission path within the preset time period is greater than the second delay threshold, or the transmission delay of the first transmission path has a degradation trend, the first transmission path and the second transmission path can be used to send business data when the transmission delay of the first transmission path is large or has a degradation trend, so as to ensure the smooth transmission of business data.
[0014] In one implementation, the transmission delay of the first transmission path has a degradation trend, including: the change gradient of the transmission delay of the first transmission path in n consecutive detection cycles is a positive gradient, where n is a positive integer; and / or the transmission delay of the first transmission path has a degradation trend, including: the change gradient of the transmission delay of the first transmission path in n consecutive detection cycles is a positive gradient, and the change gradient of the transmission delay of the first transmission path in n consecutive detection cycles is greater than a gradient threshold.
[0015] Through the above implementation, it is possible to accurately determine whether the transmission delay of the first transmission path has a deterioration trend. Then, when the transmission delay has a deterioration trend, the first transmission path and the second transmission path are promptly used to send service data to ensure smooth transmission of the service data.
[0016] In one implementation, the above-mentioned preset conditions include: the RSSI of the first transmission path is greater than a first signal strength threshold, the difference between the RSSI of the first transmission path and the minimum RSSI of the first transmission path within a preset time period is greater than a second signal strength threshold, or the RSSI of the first transmission path shows a degradation trend, one or more of the following.
[0017] In the above implementation, by setting one or more of the following as preset conditions: the RSSI of the first transmission path is greater than the first signal strength threshold, the difference between the RSSI of the first transmission path and the minimum RSSI of the first transmission path within the preset time period is greater than the second signal strength threshold, or the RSSI of the first transmission path has a degradation trend, the first transmission path and the second transmission path can be used to send business data when the RSSI of the first transmission path is low or has a degradation trend, so as to ensure smooth transmission of business data.
[0018] In one implementation, the RSSI of the first transmission path has a degradation trend, including: the change gradient of the RSSI of the first transmission path is a positive gradient within k consecutive detection cycles, where k is a positive integer; and / or the RSSI of the first transmission path has a degradation trend, including: the change gradient of the RSSI of the first transmission path is a positive gradient within k consecutive detection cycles, and the change gradient of the RSSI of the first transmission path within k consecutive detection cycles is greater than a gradient threshold.
[0019] Through the above implementation, it is possible to accurately determine whether the RSSI of the first transmission path has a degradation trend, and then when the RSSI has a degradation trend, promptly use the first transmission path and the second transmission path to send service data to ensure smooth transmission of service data.
[0020] In one implementation, the preset condition includes: a packet loss rate of the first transmission path is greater than a packet loss rate threshold.
[0021] In the above implementation, by setting the packet loss rate of the first transmission path greater than the packet loss rate threshold as a preset condition, when the packet loss rate of the first transmission path is high, the first transmission path and the second transmission path can be used to send business data to ensure smooth transmission of business data.
[0022] In one implementation, a first host sends service data via a first transmission path and a second transmission path, including: the first host sends the data packets in the service data via the first transmission path in the order of the data packets in the service data; and the first host determines the data packets to send via the second transmission path based on a transmission delay difference between the first transmission path and the second transmission path.
[0023] In the above implementation, on the one hand, the first host can send data packets in the service data through the first transmission path according to the order of the data packets in the service data. On the other hand, when sending service data through the second transmission path, the first host can determine the data packet to be sent through the second transmission path based on the transmission delay difference between the first and second transmission paths. Then, the data packet is sent through the second transmission path. This can reduce the possibility of redundant data being ineffectively transmitted due to the transmission delay difference between the two transmission paths.
[0024] In one implementation, a first host determines, based on a transmission delay difference between the first transmission path and the second transmission path, a data packet to be sent via the second transmission path. The method includes: when the first host determines, based on the transmission delay difference between the first transmission path and the second transmission path, that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path, calculating the number m of data packets sent via the first transmission path within a time period corresponding to the transmission delay difference. The first host determines, based on the number m of data packets and a first data packet currently being sent via the first transmission path, a second data packet to be sent via the second transmission path, where the second data packet is a data packet that is m data packets subsequent to the first data packet.
[0025] Through the above implementation, the time when the second host receives the second data packet through the first transmission path and the second transmission path can be close, thereby reducing the possibility of invalid transmission of redundant data due to the transmission delay difference between the two transmission paths.
[0026] In one implementation, the first host determines, based on a transmission delay difference between the first transmission path and the second transmission path, a data packet to be sent through the second transmission path. This includes: when the first host determines, based on the transmission delay difference between the first transmission path and the second transmission path, that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path, calculating the number m of data packets sent through the first transmission path within a time period corresponding to the transmission delay difference. If the number m of data packets does not exceed a first threshold, the first host determines that the second data packet sent through the second transmission path is identical to the first data packet currently being sent through the first transmission path.
[0027] In the above implementation, if the transmission delay difference between the two transmission paths is small, even if there is a gap between the time it takes for the same data packet to reach the second host via the two transmission paths, this will not trigger the congestion control scheme to reduce transmission speed. In this case, the first host can send the same data packet via the first and second transmission paths simultaneously. This reduces the computational load on the first host and improves transmission efficiency.
[0028] In one implementation, the first host determines, based on a transmission delay difference between the first transmission path and the second transmission path, a data packet to be sent through the second transmission path. The method includes: when the first host determines, based on the transmission delay difference between the first transmission path and the second transmission path, that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path, calculating the number m of data packets sent through the first transmission path within a time period corresponding to the transmission delay difference. When the number m of data packets is greater than a second threshold, the first host determines that the data packet sent through the second transmission path is the last data packet in the first host's cache.
[0029] In the above implementation, considering that the number of data packets cached in the first host is limited and the transmission delay of the second transmission path is significantly different from that of the first transmission path, the possibility of invalid transmission of redundant data can be avoided as much as possible by sending the last data packet in the cache in the second transmission path.
[0030] In one implementation, the method further includes: the first host determining, based on a first preset policy, a first network corresponding to the first transmission path from multiple networks accessed by the first host. The first preset policy includes determining the first network corresponding to the first transmission path based on network quality and / or network type of the multiple networks accessed by the first host.
[0031] Through the above implementation, a main path (ie, the first transmission path) that is more suitable for transmitting service data can be determined, thereby improving the transmission efficiency of service data.
[0032] In one implementation, the first preset strategy specifically includes: when it is determined based on the network types of the multiple networks accessed by the first host that the multiple networks accessed by the first host include a Wireless Fidelity (WIFI) network and a cellular network, determining the WIFI network as the first network corresponding to the first transmission path.
[0033] In the above implementation method, considering that compared with cellular networks, WIFI networks often have more stable signals and lower user charges, the transmission path in the WIFI network is prioritized as the main path (i.e., the first transmission path) for business data transmission, thereby improving data transmission performance and saving user costs.
[0034] In one implementation, the method further includes: the first host determines, according to a second preset strategy, a second network corresponding to the second transmission path from a plurality of networks to which the first host has access; the second preset strategy includes determining, according to the network quality and / or network type of the plurality of networks to which the first host has access, a second network corresponding to the second transmission path from networks other than the first network.
[0035] Through the above implementation, an auxiliary path (ie, the second transmission path) that is more suitable for transmitting service data can be determined, thereby improving the transmission efficiency of service data.
[0036] In a second aspect, a communication method is provided, comprising: a first host transmitting data packets in service data via a first transmission path in the order of the data packets in the service data. The first host determines, based on a transmission delay difference between the first transmission path and the second transmission path, which data packets to transmit via the second transmission path. The first transmission path and the second transmission path are transmission paths between the first host and the second host in networks of different standards.
[0037] In the above method, on the one hand, the first host can send data packets in the service data through the first transmission path according to the order of the data packets in the service data. On the other hand, when sending service data through the second transmission path, the first host can determine the data packet to be sent through the second transmission path based on the transmission delay difference between the first transmission path and the second transmission path. Then, the data packet is sent through the second transmission path. This can reduce the possibility of redundant data being ineffectively transmitted due to the transmission delay difference between the two transmission paths.
[0038] In one implementation, a first host determines, based on a transmission delay difference between the first transmission path and the second transmission path, a data packet to be sent via the second transmission path. The method includes: when the first host determines, based on the transmission delay difference between the first transmission path and the second transmission path, that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path, calculating the number m of data packets sent via the first transmission path within a time period corresponding to the transmission delay difference. The first host determines, based on the number m of data packets and a first data packet currently being sent via the first transmission path, a second data packet to be sent via the second transmission path, where the second data packet is a data packet that is m data packets subsequent to the first data packet.
[0039] Through the above implementation, the time when the second host receives the second data packet through the first transmission path and the second transmission path can be close, thereby reducing the possibility of invalid transmission of redundant data due to the transmission delay difference between the two transmission paths.
[0040] In one implementation, the first host determines, based on a transmission delay difference between the first transmission path and the second transmission path, a data packet to be sent through the second transmission path. This includes: when the first host determines, based on the transmission delay difference between the first transmission path and the second transmission path, that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path, calculating the number m of data packets sent through the first transmission path within a time period corresponding to the transmission delay difference. If the number m of data packets does not exceed a first threshold, the first host determines that the second data packet sent through the second transmission path is identical to the first data packet currently being sent through the first transmission path.
[0041] In the above implementation, if the transmission delay difference between the two transmission paths is small, even if there is a gap between the time it takes for the same data packet to reach the second host via the two transmission paths, this will not trigger the congestion control scheme to reduce transmission speed. In this case, the first host can send the same data packet via the first and second transmission paths simultaneously. This reduces the computational load on the first host and improves transmission efficiency.
[0042] In one implementation, the first host determines, based on a transmission delay difference between the first transmission path and the second transmission path, a data packet to be sent through the second transmission path. The method includes: when the first host determines, based on the transmission delay difference between the first transmission path and the second transmission path, that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path, calculating the number m of data packets sent through the first transmission path within a time period corresponding to the transmission delay difference. When the number m of data packets is greater than a second threshold, the first host determines that the data packet sent through the second transmission path is the last data packet in the first host's cache.
[0043] In the above implementation, considering that the number of data packets cached in the first host is limited and the transmission delay of the second transmission path is significantly different from that of the first transmission path, the possibility of invalid transmission of redundant data can be avoided as much as possible by sending the last data packet in the cache in the second transmission path.
[0044] According to a third aspect, a communication device is provided. The communication device is applied to a first host and includes a detection unit and a communication unit. The detection unit is configured to detect the transmission performance of a first transmission path between the first host and a second host. If the transmission performance of the first transmission path meets a preset condition, the communication unit is configured to send service data via the first transmission path and the second transmission path, where the first transmission path and the second transmission path are transmission paths between the first host and the second host in networks of different standards. Otherwise, the communication unit is configured to send the service data via the first transmission path.
[0045] In one implementation, the transmission performance of the first transmission path includes one or more of a transmission delay, a packet loss rate, and a received signal strength RSSI of the first transmission path.
[0046] In one implementation, the preset conditions include: one or more of the following: the transmission delay of the first transmission path is greater than a first delay threshold, the difference between the transmission delay of the first transmission path and the minimum transmission delay of the first transmission path within a preset time period is greater than a second delay threshold, or the transmission delay of the first transmission path shows a degradation trend.
[0047] In one implementation, the transmission delay of the first transmission path exhibits a deteriorating trend, including: the transmission delay of the first transmission path exhibits a positive gradient over n consecutive detection cycles, where n is a positive integer. And / or the transmission delay of the first transmission path exhibits a deteriorating trend, including: the transmission delay of the first transmission path exhibits a positive gradient over n consecutive detection cycles, and the transmission delay of the first transmission path exhibits a gradient greater than a gradient threshold over n consecutive detection cycles.
[0048] In one implementation, the transmission performance of the first transmission path meets preset conditions, including: the RSSI of the first transmission path is greater than a first signal strength threshold, the difference between the RSSI of the first transmission path and the minimum RSSI of the first transmission path within a preset time period is greater than a second signal strength threshold, or the RSSI of the first transmission path shows a degradation trend, one or more of the following.
[0049] In one implementation, the RSSI of the first transmission path exhibits a deterioration trend, including: the RSSI of the first transmission path exhibits a positive gradient over k consecutive detection cycles, where k is a positive integer. And / or the RSSI of the first transmission path exhibits a deterioration trend, including: the RSSI of the first transmission path exhibits a positive gradient over k consecutive detection cycles, and the RSSI of the first transmission path exhibits a gradient greater than a gradient threshold over each of the k consecutive detection cycles.
[0050] In one implementation, the transmission performance of the first transmission path meets a preset condition, including: a packet loss rate of the first transmission path is greater than a packet loss rate threshold.
[0051] In one implementation, a communication unit is used to send business data through a first transmission path and a second transmission path, including: a communication unit, specifically used to send data packets in the business data through the first transmission path according to the order of the data packets in the business data; a communication unit, specifically used by the first host to determine the data packets to be sent through the second transmission path based on the transmission delay difference between the first transmission path and the second transmission path.
[0052] In one implementation, a communication unit is specifically used to determine a data packet sent through the second transmission path based on a transmission delay difference between the first transmission path and the second transmission path, including: a communication unit is specifically used to calculate the number m of data packets sent through the first transmission path in a time period corresponding to the transmission delay difference when, based on the transmission delay difference between the first transmission path and the second transmission path, it is determined that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path; a communication unit is specifically used to determine a second data packet sent through the second transmission path based on the number m of data packets and a first data packet currently sent through the first transmission path, the second data packet being a data packet that comes m data packets after the first data packet.
[0053] In one implementation, a communication unit, specifically configured to determine a data packet sent through a second transmission path based on a transmission delay difference between the first transmission path and the second transmission path, includes: a communication unit, specifically configured to calculate, when determining, based on the transmission delay difference between the first transmission path and the second transmission path, that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path, the number m of data packets sent through the first transmission path within a time period corresponding to the transmission delay difference; and a communication unit, specifically configured to determine, when the number m of data packets does not exceed a first threshold, that a second data packet sent through the second transmission path is identical to a first data packet currently being sent through the first transmission path.
[0054] In one implementation, a communication unit is specifically used to determine a data packet sent through the second transmission path based on a transmission delay difference between the first transmission path and the second transmission path, including: a communication unit is specifically used to calculate the number m of data packets sent through the first transmission path in a time period corresponding to the transmission delay difference when it is determined that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path based on the transmission delay difference between the first transmission path and the second transmission path; and a communication unit is specifically used to determine that the data packet sent through the second transmission path is the last data packet in the cache of the first host when the number m of data packets is greater than a second threshold.
[0055] In one implementation, the communication device also includes: a determination unit, used to determine the first network corresponding to the first transmission path from multiple networks accessed by the first host according to a first preset strategy; the first preset strategy includes determining the first network corresponding to the first transmission path based on the network quality and / or network type of the multiple networks accessed by the first host.
[0056] In one implementation, the first preset strategy specifically includes: when it is determined based on the network types of the multiple networks accessed by the first host that the multiple networks accessed by the first host include a Wireless Fidelity (WIFI) network and a cellular network, determining the WIFI network as the first network corresponding to the first transmission path.
[0057] In one implementation, the determination unit is further used to determine, according to a second preset strategy, a second network corresponding to the second transmission path from multiple networks accessed by the first host; the second preset strategy includes determining, according to the network quality and / or network type of the multiple networks accessed by the first host, the second network corresponding to the second transmission path from networks other than the first network.
[0058] In a fourth aspect, a communication device is provided, the communication device being applied to a first host, the communication device comprising: a first sending unit and a second sending unit. The first sending unit is configured to send data packets in the service data via a first transmission path in the order of the data packets in the service data. The second sending unit is configured to determine, based on a transmission delay difference between the first transmission path and the second transmission path, which data packets to send via the second transmission path; the first transmission path and the second transmission path are transmission paths between the first host and the second host in networks of different standards.
[0059] In one implementation, a second sending unit is used to determine the data packets sent through the second transmission path based on the transmission delay difference between the first transmission path and the second transmission path, including: the second sending unit is specifically used to calculate the number m of data packets sent through the first transmission path in a time period corresponding to the transmission delay difference when it is determined that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path based on the transmission delay difference between the first transmission path and the second transmission path; the second sending unit is specifically used to determine the second data packet sent through the second transmission path based on the number m of data packets and the first data packet currently sent through the first transmission path, the second data packet being the data packet that comes m data packets after the first data packet.
[0060] In one implementation, a second sending unit is used to determine the data packets sent through the second transmission path based on the transmission delay difference between the first transmission path and the second transmission path, including: the second sending unit is specifically used to calculate the number m of data packets sent through the first transmission path in a time period corresponding to the transmission delay difference when it is determined that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path based on the transmission delay difference between the first transmission path and the second transmission path; the second sending unit is specifically used to determine that the second data packet sent through the second transmission path is the same as the first data packet currently being sent through the first transmission path when the number m of data packets does not exceed a first threshold.
[0061] In one implementation, a second sending unit is used to determine the data packets sent through the second transmission path based on the transmission delay difference between the first transmission path and the second transmission path, including: the second sending unit is specifically used to calculate the number m of data packets sent through the first transmission path in a time period corresponding to the transmission delay difference when it is determined that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path based on the transmission delay difference between the first transmission path and the second transmission path; the second sending unit is specifically used to determine that the data packet sent through the second transmission path is the last data packet in the cache of the first host when the number m of data packets is greater than a second threshold.
[0062] In a fifth aspect, a communication device is provided, comprising a memory and a processor, wherein the memory is used to store computer instructions, and the processor is used to call and execute computer instructions from the memory to implement a method as in the first aspect or any one of the implementations of the first aspect, or to implement a method as in the second aspect or any one of the implementations of the second aspect.
[0063] In a sixth aspect, a computer-readable storage medium is provided, in which instructions are stored. When the instructions are executed on a processor, the method as in the first aspect or any one of the implementation methods of the first aspect is implemented, or the method as in the second aspect or any one of the implementation methods of the second aspect is implemented.
[0064] In the seventh aspect, a computer program product includes instructions, which, when executed on a processor, implement the method according to the first aspect or any one of the implementations of the first aspect, or implement the method according to the second aspect or any one of the implementations of the second aspect.
[0065] The technical effects produced by any implementation method in the above-mentioned third to seventh aspects and each aspect can refer to the above-mentioned first aspect and the corresponding implementation method in the first aspect or the second aspect and the corresponding implementation method in the second aspect, and the repetitions will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0066] FIG1 is a schematic diagram of a structure of a transmission system according to an embodiment of the present application;
[0067] FIG2 is a second structural diagram of a transmission system provided in an embodiment of the present application;
[0068] FIG3 is a third structural diagram of a transmission system provided in an embodiment of the present application;
[0069] FIG4 is a fourth structural diagram of a transmission system provided in an embodiment of the present application;
[0070] FIG5 is a schematic diagram of a process flow of message encapsulation and decapsulation in a transmission system provided in an embodiment of the present application;
[0071] FIG6 is a second schematic diagram of a process of message encapsulation and decapsulation in a transmission system provided in an embodiment of the present application;
[0072] FIG7 is a fifth structural diagram of a transmission system provided in an embodiment of the present application;
[0073] FIG8 is a flow chart of a communication method according to an embodiment of the present application;
[0074] FIG9 is a second flow chart of a communication method provided in an embodiment of the present application;
[0075] FIG10 is a third flow chart of a communication method provided in an embodiment of the present application;
[0076] FIG11 is a fourth flow chart of a communication method provided in an embodiment of the present application;
[0077] FIG12 is a fifth flow chart of a communication method provided in an embodiment of the present application;
[0078] FIG13 is a sixth flow chart of a communication method provided in an embodiment of the present application;
[0079] FIG14 is a seventh flow chart of a communication method provided in an embodiment of the present application;
[0080] FIG15 is a flow chart of a communication method according to an embodiment of the present application;
[0081] FIG16 is a ninth flowchart of a communication method according to an embodiment of the present application;
[0082] FIG17 is a sixth structural diagram of a transmission system provided in an embodiment of the present application;
[0083] FIG18 is a tenth flowchart of a communication method provided in an embodiment of the present application;
[0084] FIG19 is a flow chart of a communication method according to an embodiment of the present application;
[0085] FIG20 is a seventh structural diagram of a transmission system provided in an embodiment of the present application;
[0086] FIG21 is a twelfth flow diagram of a communication method provided in an embodiment of the present application;
[0087] FIG22 is a schematic diagram of a structure of a communication device according to an embodiment of the present application;
[0088] FIG23 is a second structural diagram of a communication device provided in an embodiment of the present application;
[0089] FIG24 is a third structural diagram of a communication device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0090] The technical solutions in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application. In order to facilitate the clear description of the technical solutions in the embodiments of the present application, in the embodiments of the present application, words such as "first" and "second" are used to distinguish between identical or similar items with substantially the same functions and effects. Those skilled in the art will understand that words such as "first" and "second" do not limit the quantity and execution order, and words such as "first" and "second" do not necessarily limit differences. At the same time, in the embodiments of the present application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or explanations. Any embodiment or design described as "exemplary" or "for example" in the embodiments of the present application should not be interpreted as being more preferred or more advantageous than other embodiments or design solutions. Specifically, the use of words such as "exemplary" or "for example" is intended to present related concepts in a concrete way for easy understanding.
[0091] First, the relevant technologies involved in the embodiments of this application are introduced:
[0092] Multipath transmission is a technology that uses multiple transmission paths to transmit data. In multipath transmission, the host can transmit data through the transmission paths of multiple networks of different standards. For example, when transmitting business data between a terminal device and a business server, the electronic device can send business data to the business server through the transmission path of the cellular network and the transmission path of the wireless fidelity (WIFI) network, or when the business server sends business data to the electronic device, it can also send business data to the electronic device through the transmission path of the cellular network and the transmission path of the WIFI network. In this way, the data transmission efficiency can be improved.
[0093] Especially in weak network environments, multipath transmission allows electronic devices to integrate the transmission capabilities of different networks (for example, integrating the transmission capabilities of Wi-Fi and cellular networks), thereby transmitting data over multiple transmission paths. In this way, when either Wi-Fi or cellular network experiences a weak network, the other network can serve as a secondary path to supplement performance (for example, redundantly transmitted data packets on the cellular network can compensate for data packets discarded on the Wi-Fi network, or redundantly transmitted data packets on the cellular network can be data packets with high latency).
[0094] Currently, mainstream multipath transmission includes the Multipath Transmission Control Protocol (MPTCP). From the perspective of network layer architecture, MPTCP resides in the transport layer. Based on the Transmission Control Protocol (TCP) of the transport layer, MPTCP uses a new TCP option to exchange multi-interface address information between the sender and receiver, thereby establishing multiple TCP connections for concurrent multipath data transmission.
[0095] Below, in order to facilitate understanding of the technical solutions provided by the embodiments of the present application, the application scenarios involved in the embodiments of the present application are introduced with examples:
[0096] FIG1 is a schematic diagram of the structure of a transmission system provided in an embodiment of the present application. Transmission system 10 includes host 101 and host 102. Hosts 101 and 102 can transmit data using either multi-path transmission or single-path transmission, according to the technical solutions provided in the embodiments of the present application.
[0097] For example, host 101 uses IP address 1 to establish a connection with host 102 via transmission path a of a cellular network. Host 101 uses IP address 2 to establish a connection with host 102 via transmission path b of a Wi-Fi network. In this way, host 101 can utilize multi-path transmission to send data to host 102 via both transmission path a and transmission path b. Alternatively, host 101 can utilize single-path transmission to send data to host 102 via either transmission path a or transmission path b.
[0098] When transmitting data using multi-path transmission, in a redundant transmission mode, host 101 may duplicate the data to be transmitted and send the two copies of data to host 102 via transmission path a and transmission path b, respectively. With the redundant transmission mode, if data in one transmission path is lost, the lost data can be retrieved from the other transmission path, thereby improving data transmission efficiency.
[0099] Furthermore, when using multi-path transmission, in aggregate transmission mode, host 101 can divide the data to be transmitted into two parts and send them to host 102 via transmission path a and transmission path b respectively. Host 102 then aggregates the data from the two transmission paths to obtain the complete data. Aggregate transmission mode can compensate for the insufficient transmission rate of a single transmission path, thereby improving data transmission efficiency.
[0100] In actual applications, host 101 and host 102 can be any electronic device such as a personal computer (including desktop computers, laptop computers, handheld computers, and notebook computers), an ultra-mobile personal computer (UMPC), a smartphone, or a server. Alternatively, host 101 and host 102 can be part of the hardware / software devices in the above electronic devices.
[0101] It is understood that FIG1 exemplifies the transmission path a corresponding to the WIFI network and the transmission path b corresponding to the cellular network as examples to briefly introduce the multipath transmission method between the host 101 and the host 102. In actual application, when the host 101 can access networks of more standards (for example, the host 101 can access multiple networks in a cellular network such as a wideband code division multiple access (WCDMA) network, a long term evolution (LTE) network, and a fifth-generation mobile communicating technology (5G) network, and the host 101 can also access a 2.4 GHz band WIFI network and a 5 GHz band WIFI network), it is also possible to select the transmission paths of any two networks in the multiple networks and use these two transmission paths for multipath transmission.
[0102] That is to say, there is no restriction on the network types corresponding to the multiple transmission paths between host 101 and host 102 in the embodiments of the present application.
[0103] In one implementation, when the technical solution provided in the embodiment of the present application is applied to a scenario in which business data is transmitted between a terminal device and a business server, as shown in Figure 2, the above-mentioned host 101 can be a terminal device 201 (specifically, the terminal device 201 can include a personal computer, a smart phone or a wearable smart device, etc.) or a part of the hardware / software device in the terminal device 201, and the host 102 can be a business server 202 or a part of the hardware / software device in the business server 202.
[0104] At this time, the terminal device 201 can use a multi-path transmission method or a single-path transmission method to transmit business data between the business server 202 through one or more transmission paths among multiple transmission paths (for example, through the transmission path a corresponding to the cellular network and the transmission path b corresponding to the WIFI network).
[0105] In another implementation, it is considered that when business data is transmitted between a terminal device and a business server using multipath transmission, when business data is transmitted in the manner shown in FIG2 , both the terminal device 201 and the business server 202 need to support relevant protocols for multipath transmission (e.g., MPTCP). For example, in the process of sending business data from the terminal device 201 to the business server 202: on the one hand, the terminal device 201 needs to send business data to the business server 202 through the corresponding protocol interface in accordance with the relevant protocol for multipath transmission. On the other hand, in the process of receiving business data, the business server 202 also needs to receive business data from multiple paths through the relevant protocol interface for multipath transmission.
[0106] Taking MPTCP as an example, when sending service data from terminal device 201 to service server 202, terminal device 201 needs to change the service data transmission interface from the original classic TCP socket interface to the MPTCP protocol-specific application program interface (API). This allows service data to be sent to service server 202 via the MPTCP protocol-specific API over multiple transmission paths. Similarly, when receiving service data, service server 202 also needs to receive service data via the MPTCP protocol-specific API over multiple transmission paths.
[0107] Therefore, in order to reduce the application difficulty of multi-path transmission, in another implementation method, the "end + cloud agent transit" architecture can be used to realize multi-path transmission between the terminal device and the business server.
[0108] Exemplarily, in the "end + cloud proxy transit" architecture, as shown in FIG3 , when the terminal device 301 sends business data to the business server 302 via multi-path transmission, the terminal device 301 can use the relevant protocols of multi-path transmission (for example, the MPTCP protocol or other private protocols for multi-path transmission) to send the business data to the proxy server 303 through multiple transmission paths (the transmission path of the cellular network and the transmission path of the WIFI network are taken as examples in FIG3 ) (at this time, the terminal device 301 is equivalent to the host 101 in FIG1 , and the proxy server 303 is equivalent to the host 102 in FIG1 ). After receiving the business data through multiple transmission paths, the proxy server 303 performs protocol conversion on the received business data, thereby using the relevant protocols of single-path transmission (for example, the TCP / UDP protocol originally used between the terminal device 301 and the business server 302) to send the business data to the business server 302.
[0109] Specifically, when the terminal device 301 sends service data to the service server 302, the terminal device 301 can use a virtual private network service (VPN service) to intercept the TCP / UDP packets carrying the service data in user mode, or use tools such as an extended Berkeley packet filter (eBPF) to intercept the TCP / UDP packets carrying the service data in the operating system kernel mode. The terminal device 301 then re-encapsulates the intercepted TCP / UDP packets and sends them to the proxy node via multiple transmission paths. After receiving the packets, the proxy node deduplicates the redundant data packets by performing a double-transmission selective reception, sorts the deduplicated packets, and then sends them to the service server 302 according to the original TCP / UDP protocol. (It should be understood that the redundant transmission mode is mainly used for the description here. When the aggregated transmission mode is used, deduplication by the double-transmission selective reception method is not required. Instead, the received packets are sorted and sent to the service server 302 according to the original TCP / UDP protocol.)
[0110] For example, as shown in FIG4 , a VPN tunnel network card 3013 for intercepting TCP / UDP packets runs in the kernel state of terminal device 301, and a multipath transmission program 3012 for repackaging TCP / UDP packets runs in the user state of terminal device 301. For ease of understanding, FIG4 exemplarily uses sequence numbers (1) to (16) to represent the direction of service data.
[0111] After the terminal device 301 obtains the business data that the application 3011 (i.e., the application that needs to send business data to the business server 302) needs to send, it will first encapsulate the business data into a TCP / UDP message and send the TCP / UDP message to the first network card 3014 corresponding to the first transmission path (i.e., one of the multiple transmission paths) in the kernel state (for example, the first network card 3014 can be a WiFi network card or an LTE network card, etc.). Then, the VPN tunnel network card 3013 intercepts the TCP / UDP message from the first network card 3014 and sends the TCP / UDP message to the multi-path transmission program 3012 in the user state.
[0112] The multi-path transmission program 3012 includes: a message interception module 30121 , a scheduling module 30121 and an encapsulation module 30123 .
[0113] Among them, the message interception module 30121 is used to receive TCP / UDP messages from the VPN tunnel network card 3013.
[0114] The scheduling module 30121 is used to allocate TCP / UDP packets to two transmission paths. Specifically, the scheduling module 30121 can select whether to transmit the service data through a single path transmission method or through a multi-path transmission method according to the methods S401-S403 or S501-S503 of the embodiments of the present application below. Furthermore, in the case of transmission through a multi-path transmission method, the scheduling module 30121 can also determine the data packets to be transmitted respectively on the two transmission paths according to the methods S5021-S5022 of the embodiments of the present application below.
[0115] The encapsulation module 30123 is used to encapsulate the business data that needs to be transmitted by the two transmission paths respectively (for example, encapsulating the original TCP / UDP message into a UDP message in the VPN tunnel, such as UDP#1 and UDP#2 in the figure), and sending it through the corresponding network card (for example, in the figure, sending it through the first network card 3014 and the second network card 3015).
[0116] In addition, a multipath transmission service 3031 corresponding to the multipath transmission program 3012 runs in the user mode of the proxy server 303. When the server network card 3032 in the proxy server 303 receives encapsulated packets from the two transmission paths (i.e., UDP#1 and UDP#2), it sends the encapsulated packets to the multipath transmission service 3031.
[0117] The multi-path transmission service 3031 includes: a decapsulation module 30311 , a message aggregation module 30312 and a forwarding module 30313 .
[0118] The decapsulation module 30311 is used to decapsulate the encapsulated messages (ie, UDP#1 and UDP#2) received by the server network card 3032 to obtain the original TCP / UDP messages.
[0119] The message aggregation module 30312 is used to deduplicate TCP / UDP messages.
[0120] The forwarding module 30313 is used to forward the deduplicated TCP / UDP packets to the business server 302 through the server network card 3032 .
[0121] Afterwards, after receiving the TCP / UDP message, the service server 302 can obtain the service data in the TCP / UDP message according to the corresponding port of the TCP / UDP protocol between the original terminal device 301 and the service server 302.
[0122] For example, FIG5 is a schematic diagram showing the changes in the message carrying the business data at each stage during the process of the terminal device 301 sending the business data to the business server 302 .
[0123] After acquiring the TCP / UDP message carrying the service data, the terminal device 301 encapsulates the TCP / UDP message into data messages UDP#1 and UDP#2 for transmission in the first transmission path and the second transmission path.
[0124] In a TCP / UDP message carrying service data, the payload portion is used to carry the service data. The "TCP / UDP Port" field in the message header contains the actual service port number. The source address is the primary path address IP-1 of terminal device 301 (for example, the address of the first network card in Figure 4 is the primary path address), and the destination address is the address of service server 302.
[0125] In the process of encapsulating the TCP / UDP message into the data messages UDP#1 and UDP#2, as shown in FIG5 , the TCP / UDP message can be used as the payload part of the data messages UDP#1 and UDP#2, and a new message header can be encapsulated in the data messages UDP#1 and UDP#2.
[0126] Among them, the message header of the data message UDP#1 includes: a "message sequence number" field, which is used to record the message sequence number so that the receiving end (proxy server 303) can sort, deduplicate and perform other operations on the message; a "UDP port" field, which is used to record the application port number so that the receiving end (proxy server 303) can determine the application port corresponding to the message; a "source address" field and a "destination address" field, which are respectively used to record the address IP-1 of the terminal device 301 on the first transmission path and the address IP-3 of the proxy server 303, so as to send UDP#1 to the proxy server 303 through the first transmission path.
[0127] The content of the datagram UDP#2 header is similar to that of the datagram UDP#1. The difference is that the source address of the datagram UDP#2 is the address IP-2 of the terminal device 301 on the second transmission path, so that UDP#2 is sent to the proxy server 303 through the second transmission path.
[0128] After receiving data packets UDP#1 and UDP#2, proxy server 303 decapsulates, sorts, and removes duplicates, obtaining a TCP / UDP packet carrying the service data. After replacing the source address in the TCP / UDP packet with proxy server 303's IP address, proxy server 303 forwards the TCP / UDP packet to service server 302. After receiving the TCP / UDP packet, service server 302 can retrieve the service data in the TCP / UDP packet using the corresponding port in the original TCP / UDP protocol between terminal device 301 and service server 302.
[0129] In addition, the process of the service server 302 sending service data to the terminal device 301 is equivalent to the reverse process of the process of the terminal device 301 sending service data to the service server 302 .
[0130] For example, as shown in Figure 6, service server 302 sends a TCP / UDP packet carrying service data to proxy server 303. The payload portion of the TCP / UDP packet carries the service data. The "TCP / UDP Port" field in the packet header contains the actual service port number. The source address is the primary path IP address of service server 302 (IP-4), and the destination address is the address of proxy server 303.
[0131] After receiving the TCP / UDP message, the proxy server 303 replaces the destination address in the TCP / UDP message with the primary path address of the terminal device 301 (for example, the address of the first network card in FIG4 is the primary path address), encapsulates the TCP / UDP message into data messages UDP#1 and UDP#2, and sends the data messages UDP#1 and UDP#2 to the terminal device 301 via the first transmission path and the second transmission path, respectively. The contents of the message headers of the data messages UDP#1 and UDP#2 can be seen in FIG5 .
[0132] After receiving the data packets UDP#1 and UDP#2, the terminal device 301 performs operations such as decapsulation, sorting, and deduplication to obtain TCP / UDP packets carrying business data.
[0133] In addition, in the "end + cloud proxy transit" architecture, to avoid the problem of large transmission delays caused by the physical distance between the proxy server 303 and the application server 302, network acceleration can be further achieved through technologies such as real-time network (RTN). When using an RTN network for accelerated forwarding, as shown in Figure 7, the proxy server 303 in the embodiment of the present application can be deployed at the edge access node of the RTN network. After receiving multi-path transmitted messages, the proxy server 303 sorts and deduplicates the messages, and repackages the messages according to the overlay protocol in the RTN network. Then, based on the pre-calculated overlay route, the data messages are transmitted through one or more hops of RTN intermediate nodes to the RTN network tail node close to the actual application server. The protocol proxy module of the RTN network tail node ultimately completes the conversion between the RTNP protocol and the TCP / UDP protocol, and communicates with the application server using the TCP / UDP protocol.
[0134] The technical solutions provided in the embodiments of the present application are introduced below with reference to examples.
[0135] In the embodiment of the present application, it is taken into consideration that, compared with a single-path transmission method, the use of multi-path transmission for business data transmission will increase additional traffic costs and power consumption overhead.
[0136] Taking Figure 1 as an example, when redundant transmission mode is used, host 101 copies the service data to be transmitted twice and sends the two copies of the service data to host 102 via two transmission paths. On the one hand, since the service data is transmitted twice between host 101 and host 102, it is equivalent to incurring double the traffic cost. On the other hand, host 101 needs to use the software / hardware resources corresponding to the two transmission paths (for example, the network cards corresponding to the two transmission paths) for data transmission, which increases the power consumption of host 101.
[0137] For another example, when the aggregate transmission mode is adopted, the host 101 divides the data to be transmitted into two parts and sends the two parts to the host 102 through two transmission paths. In this case, the host 101 also needs to occupy the software / hardware resources corresponding to the two transmission paths (for example, the network cards corresponding to the two transmission paths, etc.) for data transmission, thereby increasing the power consumption of the host 101.
[0138] In response to the above technical problems, a communication method is provided in an embodiment of the present application. In this method, when the host 101 sends business data to the host 102, as shown in Figure 8, the host 101 can detect the transmission performance of the transmission path (hereinafter referred to as the "first transmission path") of a network accessed by a plurality of standard networks (i.e., S401). Then, the host 101 determines whether to use the multi-path transmission method to send business data through the first transmission path and other transmission paths (hereinafter referred to as the "second transmission path"), or to use the single path transmission method to send business data through the first transmission path. In other words, the host 101 can send business data through the first transmission path and the second transmission path (i.e., S402) according to the transmission performance of the detected first transmission path, if the transmission performance of the first transmission path meets the preset conditions (for example, the preset conditions may include various conditions reflecting the poor transmission performance of the transmission path. The specific content of the preset conditions will be described in detail below); if the transmission performance of the first transmission path does not meet the preset conditions, the business data is sent through the first transmission path (i.e., S403).
[0139] It can be seen that in the above method of the embodiment of the present application, when the transmission performance of the first transmission path meets the preset conditions, the business data is sent through the first transmission path and the second transmission path by means of multi-path transmission. When the transmission performance of the first transmission path does not meet the preset conditions, a single path transmission method can be adopted to send the business data through the first transmission path, that is, the multi-path transmission method is not adopted at this time. In this way, through the above method of the embodiment of the present application, the effect of selecting multi-path transmission or single path transmission for data transmission can be achieved according to actual needs. This avoids the problem of high traffic cost and power consumption overhead caused by blindly adopting multi-path transmission for data transmission.
[0140] Below, the detailed process of the communication method provided by the embodiment of the present application is introduced by taking the process of the terminal device 301 sending service data to the service server 302 in Figure 3 as an example. As shown in Figure 9, the method includes:
[0141] S501 : The terminal device 301 detects the transmission performance of a first transmission path between the terminal device 301 and the proxy server 303 .
[0142] For example, when the terminal device 301 detects that an application (e.g., a mobile game, a video conferencing application, etc.) running in the terminal device 301 is preparing to send business data, the terminal device 301 can detect the transmission performance of the first transmission path by executing S501, so as to then determine whether to use multi-path transmission or single-path transmission to send the business data based on the detection result (i.e., S502 below).
[0143] As another example, during the process of the terminal device 301 sending business data, the terminal device 301 may also detect the transmission performance of the first transmission path by executing S501, so as to determine whether to adopt multi-path transmission or single-path transmission according to the detection result, and send the subsequent business data that needs to be sent (i.e., S502 and S503 below). That is to say, in this case, before the terminal device 301 executes S501, the terminal device 301 may first send a portion of the business data in a single-path transmission manner (or in a multi-path transmission manner). After the terminal device 301 executes S501 and determines whether to adopt multi-path transmission or single-path transmission according to the detection result to send the subsequent business data that needs to be sent (i.e., S502 and S503 below), it sends the subsequent business data in a corresponding manner.
[0144] In addition, in the embodiment of the present application, the first transmission path may be a transmission path in one of a plurality of networks of different standards to which the terminal device 301 accesses.
[0145] For example, when the network accessed by the terminal device 301 includes a cellular network and a WIFI network, the first transmission path may be a transmission path corresponding to the cellular network or a transmission path corresponding to the WIFI network.
[0146] Further, when the terminal device 301 accesses multiple cellular networks and multiple WIFI networks, the first transmission path may be a transmission path in one of the multiple cellular networks and the multiple WIFI networks.
[0147] Exemplarily, when the terminal device 301 supports both 2.4 GHz and 5 GHz WIFI networks, and the terminal device 301 has two cellular network cards (for example, one is a long term evolution (LTE) network card and the other is a fifth-generation mobile communicating technology (5G) network card) and has the capability of dual-cellular concurrent data transmission, then the first transmission path can be a 2.4 GHz band WIFI network, a 5 GHz band WIFI network, an LTE network, and a 5G network, the transmission path corresponding to one of the four networks.
[0148] The following will describe in detail how to determine the network corresponding to the first transmission path from the multiple networks accessed by the terminal device 301 through the content of S701, which will not be described in detail here.
[0149] In one implementation, the transmission performance of the first transmission path may specifically include: one or more of the transmission delay, packet loss rate, and received signal strength indicator (RSSI) of the first transmission path. That is, S501 may specifically include: the terminal device 301 detecting one or more of the transmission delay, packet loss rate, and RSSI of the first transmission path.
[0150] In a possible design, when the transmission performance of the first transmission path includes the transmission delay and packet loss rate of the first transmission path, the above S501 may specifically include the following contents of S5011 to S5013:
[0151] S5011. The terminal device 301 periodically sends a detection message using the address of the network card corresponding to the first transmission path as the source address and the address of the proxy server 303 as the destination address.
[0152] For example, when the first transmission path is the transmission path of the WIFI network, the terminal device 301 uses the IP address of the WIFI network card in the terminal device 301 as the source address and the IP address of the proxy server 303 as the destination address, and periodically sends detection messages through the WIFI network card.
[0153] The probe message may include an identification field (Seq). The identification field in each probe message sent sequentially is assigned a value in ascending order. For example, the identification field Seq of the first probe message is 1, the identification field Seq of the second probe message is 2, and so on. The identification field Seq of the nth probe message is n.
[0154] In addition, the detection message may also include a system timestamp of sending the detection message. For example, before the detection message is sent, the terminal device 301 may add the current system timestamp to the detection message.
[0155] The detection message sending period can be determined according to actual needs. For example, the detection message sending period can be 100ms, 500ms, etc.
[0156] S5012 : The terminal device 301 receives a return detection message from the proxy server 303 .
[0157] Specifically, after receiving the probe message from the terminal device 301, the proxy server 303 may swap the source address and destination address in the probe message to obtain a return probe message, and send the return probe message to the terminal device 301 so that the terminal device 301 receives the return probe message.
[0158] S5013: The terminal device 301 determines the transmission delay and packet loss rate of the first transmission path according to the returned detection message.
[0159] For example, after receiving the return probe message, the terminal device 301 can calculate the round trip time (RTT) of the message transmitted on the first transmission path based on the time when the return probe message was received and the system timestamp carried in the return probe message (used to indicate the time when the terminal device 301 sent the probe message). The round trip time of the message transmitted on the first transmission path can be used to reflect the transmission delay of the first transmission path.
[0160] On the other hand, after receiving the return probe message, terminal device 301 can determine which probe messages experienced packet loss during the probe message transmission process based on the value of the identification field in the return probe message. Furthermore, the packet loss rate of the first transmission path can be determined by counting the number of probe messages with packet loss among a certain number of probe messages. For example, taking 20 probe messages as a group, based on the number n of probe messages with packet loss among the 20 probe messages, the packet loss rate of the first transmission path can be determined to be (n×5)%.
[0161] In another possible design, when the transmission performance of the first transmission path includes the RSSI corresponding to the first transmission path, the above S501 may specifically include the following content of S5014:
[0162] S5014. The terminal device 301 reads the RSSI value corresponding to the first transmission path fed back by the physical layer module according to a preset period.
[0163] For example, when the first transmission path is a transmission path in a WIFI network, the terminal device 301 may read the RSSI value fed back by the WIFI network card (ie, the RSSI value corresponding to the first transmission path) according to a preset period.
[0164] The preset period for the terminal device 301 to read the RSSI may be determined according to actual application requirements. For example, the terminal device 301 may read the RSSI at a preset period of 100 ms or 500 ms.
[0165] After the terminal device 301 detects the transmission performance of the first transmission path, the method further includes:
[0166] S502 : When determining that the transmission performance of the first transmission path meets a preset condition, the terminal device 301 sends service data through the first transmission path and the second transmission path.
[0167] The second transmission path and the first transmission path are transmission paths in networks of different standards.
[0168] For example, when the first transmission path is a transmission path between the terminal device 301 and the proxy server 303 in a WIFI network, the second transmission path may be a transmission path between the terminal device 301 and the proxy server 303 in a cellular network. Alternatively, when the first transmission path is a transmission path between the terminal device 301 and the proxy server 303 in a cellular network, the second transmission path may be a transmission path between the terminal device 301 and the proxy server 303 in the WIFI network.
[0169] For another example, the first transmission path and the second transmission path may both be transmission paths between the terminal device 301 and the proxy server 303 in the WIFI network. For example, the first transmission path may be a transmission path in a 2.4 GHz band WIFI network, and the second transmission path may be a transmission path in a 5 GHz band WIFI network. Alternatively, the first transmission path may be a transmission path in a 5 GHz band WIFI network, and the second transmission path may be a transmission path in a 2.4 GHz band WIFI network.
[0170] For another example, the first transmission path and the second transmission path may both be transmission paths between the terminal device 301 and the proxy server 303 in the cellular network. Exemplarily, the first transmission path may be a transmission path in an LTE network, and the second transmission path may be a transmission path in a 5G network. Alternatively, the first transmission path may be a transmission path in a 5G network, and the second transmission path may be a transmission path in an LTE network. Alternatively, the first transmission path may be a transmission path in a wideband code division multiple access (WCDMA) mobile communication system network, and the second transmission path may be a transmission path in a 5G network. Alternatively, the first transmission path may be a transmission path in a 5G network, and the second transmission path may be a transmission path in a WCDMA network.
[0171] The following will describe in detail how to determine the network corresponding to the first transmission path from the multiple networks accessed by the terminal device 301 in the embodiment of the present application through the content of S702, which will not be described in detail here.
[0172] In addition, the following will describe in detail the specific process of the terminal device 301 sending business data to the proxy server 303 through the first transmission path and the second transmission path in the embodiment of the present application through the corresponding contents of Figures 12-19, which will not be described in detail here.
[0173] Additionally, the method may further include:
[0174] S503 : When determining that the transmission performance of the first transmission path does not meet a preset condition, the terminal device 301 sends service data through the first transmission path.
[0175] That is, in the method provided in the embodiment of the present application, when the transmission performance of the first transmission path meets the preset conditions, the service data is sent through the first transmission path and the second transmission path using multi-path transmission. When the transmission performance of the first transmission path does not meet the preset conditions, the service data can be sent through the first transmission path using a single-path transmission method.
[0176] Exemplarily, during the process of transmitting service data between terminal device 301 and proxy server 303 in the manner shown in FIG4 , when terminal device 301 determines that service data needs to be sent via the first transmission path, it uses VPN service network card 3013 to intercept the TCP / UDP message carrying the service data into user mode. Then, after determining to send the service data via the first transmission path, scheduling module 30122 calls encapsulation module 30123 in the manner shown in FIG5 , encapsulates the TCP / UDP message into data message UDP#1, and sends it to proxy server 303. After receiving data message UDP#1, proxy server 303 decapsulates data message UDP#1, modifies the source address in the TCP / UDP message, and sends the modified TCP / UDP message to service server 302, thereby completing the transmission.
[0177] It is understandable that, in actual application, the terminal device 301 may periodically execute the above S501-S503 so as to select S502 or S503 to send service data according to the transmission performance change of the first transmission path in each cycle.
[0178] The following describes the contents of the preset conditions in S502 and S503. Specifically, the preset conditions may include one or more of the following implementations 1-7:
[0179] In implementation manner 1, the preset condition may include: the transmission delay of the first transmission path is greater than a delay threshold (hereinafter referred to as the “first delay threshold” for ease of distinction).
[0180] For example, the round-trip delay RTT(t) of the message transmitted on the first transmission path detected in the current detection period t can be used to represent the transmission delay of the first transmission path. Furthermore, the transmission delay of the first transmission path is greater than the first delay threshold, which can specifically include: RTT(t)>RTT thres (Formula 1)
[0181] Among them, RTT thres The first delay threshold is set according to the actual application scenario.
[0182] Furthermore, S502 may include: when the terminal device 301 determines that the transmission delay of the first transmission path satisfies the above formula (1), sending the service data through the first transmission path and the second transmission path.
[0183] In one possible design, it is considered that when switching from sending service data via multi-path transmission to sending service data via a single path transmission, the service quality of the service may be reduced, thereby affecting the user experience. Therefore, in the embodiment of the present application, a relatively conservative approach can be adopted to switch the terminal device 3011 from multi-path transmission to single path transmission.
[0184] Based on the above considerations, in this design, the method may further include:
[0185] The terminal device 301 determines the value of the first delay threshold according to the current mode of transmitting service data.
[0186] Among them, the value of the first delay threshold when the terminal device 301 currently transmits service data in multi-path transmission is smaller than the value of the first delay threshold when the terminal device 301 currently transmits service data in single-path transmission.
[0187] In this way, the difficulty of the terminal device 3011 switching from multi-path transmission to single-path transmission can be increased, thereby avoiding the situation where the service quality of the business is reduced.
[0188] For example, if the terminal device 301 is using multipath transmission to send service data when detecting the transmission performance of the first transmission path (i.e., S501), then unless the transmission delay of the first transmission path is extremely small (i.e., it needs to be less than a first delay threshold with a smaller value), it can be determined according to the content of implementation method 1 that the first transmission path does not meet the preset conditions, and the terminal device 301 then switches from multipath transmission to single-path transmission to transmit service data (i.e., send service data through the first transmission path). Otherwise, the terminal device 301 continues to use multipath transmission to send service data (i.e., send service data through the first transmission path and the second transmission path).
[0189] As another example, if the terminal device 301 is using a single-path transmission method to send service data when detecting the transmission performance of the first transmission path (i.e., S501), then at this time, by determining whether the transmission delay of the first transmission path is greater than a first delay threshold with a larger value (for example, the first delay threshold can be determined based on actual service needs), it can be determined whether the first transmission path meets the conditions in implementation method 1. If so, it is further determined whether the first transmission path meets other conditions in the preset conditions. Finally, after determining that the first transmission path meets all the conditions in the preset conditions, it switches to a multi-path transmission method to send service data (i.e., sending service data through the first transmission path and the second transmission path).
[0190] In implementation manner 2, the preset condition may include: a difference between the transmission delay of the first transmission path and the minimum transmission delay of the first transmission path within a preset time period is greater than a second delay threshold.
[0191] For example, when the round-trip delay RTT(t) of the message detected in the current detection period t on the first transmission path is used to represent the transmission delay of the first transmission path, the difference between the transmission delay of the first transmission path and the minimum transmission delay of the first transmission path in the preset time period is greater than the second delay threshold, which may specifically include: RTT(t)-RTT min >ΔRTT thres (Formula 2)
[0192] Among them, RTT min Indicates the minimum transmission delay of the first transmission path within the preset time period. For example, the terminal device 301 can record the transmission delays detected by the above S5011-S5013 in multiple detection cycles within a recent period of time (i.e., within the preset time period), and select the minimum value of the transmission delays detected in multiple detection cycles as the RTT min ΔRTT thres The second delay threshold is set according to the actual application scenario.
[0193] Furthermore, S502 may include: when the terminal device 301 determines that the transmission delay of the first transmission path satisfies the above formula (2), sending the service data through the first transmission path and the second transmission path.
[0194] In implementation manner 3, the above-mentioned preset condition may include: the transmission delay of the first transmission path has a deterioration trend.
[0195] In one possible design, the transmission delay of the first transmission path has a deterioration trend, which may specifically include: the transmission delay of the first transmission path has a positive gradient in n consecutive detection cycles, where n is a positive integer.
[0196] Specifically, the change gradient of the transmission delay of the first transmission path in n consecutive detection cycles is a positive gradient, which can be expressed as:
[0197] Wherein, RTT(i) represents the transmission delay of the first transmission path in the i-th detection cycle, wherein when i=t, RTT(t) represents the transmission delay of the first transmission path in the current detection cycle, and when i=t-(n-1), RTT(t-(n-1)) represents the transmission delay of the first transmission path in the (n-1)th detection cycle before the current detection cycle; represents the gradient of the transmission delay of the first transmission path during the detection period corresponding to time i. sgn is a compliance function, for example: hour, is 1; when hour, is -1; when hour, is 0.
[0198] Furthermore, S502 may include: when the terminal device 301 determines that the transmission delay of the first transmission path satisfies the above formula (3), sending the service data through the first transmission path and the second transmission path.
[0199] In another possible design, the transmission delay of the first transmission path has a degradation trend, which may specifically include: the change gradient of the transmission delay of the first transmission path in n consecutive detection cycles is a positive gradient, and the change gradient of the transmission delay of the first transmission path in n consecutive detection cycles is greater than the gradient threshold.
[0200] Specifically, the change gradient of the transmission delay of the first transmission path in n consecutive detection cycles is a positive gradient, and the change gradient of the transmission delay of the first transmission path in n consecutive detection cycles is greater than the gradient threshold, which can be expressed as:
[0201] Among them, RTT(i) represents the transmission delay of the first transmission path in the i-th detection cycle, wherein when i=t, RTT(t) represents the transmission delay of the first transmission path in the current detection cycle, and when i=t-(n-1), RTT(t-(n-1)) represents the transmission delay of the first transmission path in the (n-1)th detection cycle before the current detection cycle. is the gradient threshold set according to the actual application scenario.
[0202] Furthermore, S502 may include: when the terminal device 301 determines that the transmission delay of the first transmission path satisfies the above formula (4), sending the service data through the first transmission path and the second transmission path.
[0203] The above implementations 1-3 are examples of the content of the preset conditions in S502 and S503, using the transmission delay of the first transmission path as the judgment basis. In addition, the above preset conditions can also include the content of using the RSSI corresponding to the first transmission path as the judgment basis. Specifically:
[0204] In implementation manner 4, the above-mentioned preset condition may include: the RSSI of the first transmission path is less than a signal strength threshold (hereinafter referred to as the “first signal strength threshold” for ease of distinction).
[0205] For example, the RSSI of the first transmission path is less than the first signal strength threshold, which may specifically include: RSSI(t)<RSSI thres (Formula 5)
[0206] RSSI(t) represents the RSSI of the first transmission path detected in the current detection period t, RSSI thres It is the first signal strength threshold set according to the actual application scenario.
[0207] Furthermore, S502 may include: when the terminal device 301 determines that the RSSI of the first transmission path satisfies the above formula (5), sending the service data through the first transmission path and the second transmission path.
[0208] In one possible design, similar to the above content of determining the value of the first delay threshold, the method may further include:
[0209] The terminal device 301 determines the value of the first signal strength threshold according to the current mode of transmitting service data.
[0210] Among them, the value of the first signal strength threshold when the terminal device 301 currently transmits service data in multi-path transmission is greater than the value of the first signal strength threshold when the terminal device 301 currently transmits service data in single-path transmission.
[0211] In this way, the difficulty of the terminal device 3011 switching from multi-path transmission to single-path transmission can be increased, thereby avoiding the situation where the service quality of the business is reduced.
[0212] In implementation manner 5, the preset condition may include: a difference between the RSSI of the first transmission path and the minimum RSSI of the first transmission path within a preset time period is greater than a second signal strength threshold.
[0213] For example, the difference between the RSSI of the first transmission path and the minimum RSSI of the first transmission path within a preset time period is greater than the second signal strength threshold, which may specifically include: RSSI(t)-RSSI min >ΔRSSI thres (Formula 6)
[0214] Among them, RSSI min Indicates the minimum RSSI of the first transmission path within the preset time period. For example, the terminal device 301 can record the RSSI detected by the above S5014 in multiple detection cycles within a recent period of time (i.e., within the preset time period), and select the minimum value of the RSSI detected in multiple detection cycles as the RSSI min ΔRSSIthres is a second signal strength threshold set according to an actual application scenario.
[0215] Furthermore, S502 may include: when the terminal device 301 determines that the RSSI of the first transmission path satisfies the above formula (6), sending the service data through the first transmission path and the second transmission path.
[0216] In implementation manner 6, the preset condition may include: the RSSI of the first transmission path has a deterioration trend.
[0217] In one possible design, the RSSI of the first transmission path has a degradation trend, which may specifically include: the RSSI of the first transmission path has a positive gradient in k consecutive detection cycles, where k is a positive integer.
[0218] Specifically, the RSSI of the first transmission path has a positive gradient in k consecutive detection cycles, which can be expressed as:
[0219] Wherein, RSSI(i) represents the RSSI of the first transmission path in the i-th detection cycle, wherein when i=t, RSSI(t) represents the RSSI of the first transmission path in the current detection cycle, and when i=t-(k-1), RSSI(t-(k-1)) represents the RSSI of the first transmission path in the (k-1)th detection cycle before the current detection cycle; represents the RSSI variation gradient of the first transmission path during the detection period corresponding to time i. sgn is a coincidence function.
[0220] Furthermore, S502 may include: when the terminal device 301 determines that the RSSI of the first transmission path satisfies the above formula (7), sending the service data through the first transmission path and the second transmission path.
[0221] In another possible design, the RSSI of the first transmission path has a degradation trend, which may specifically include: the change gradient of the RSSI of the first transmission path in k consecutive detection cycles is a positive gradient, and the change gradient of the RSSI of the first transmission path in k consecutive detection cycles is greater than the gradient threshold.
[0222] Specifically, the change gradient of the RSSI of the first transmission path in k consecutive detection cycles is a positive gradient, and the change gradient of the RSSI of the first transmission path in k consecutive detection cycles is greater than the gradient threshold, which can be expressed as:
[0223] Among them, RSSI(i) represents the RSSI of the first transmission path in the i-th detection cycle, wherein when i=t, RSSI(t) represents the RSSI of the first transmission path in the current detection cycle, and when i=t-(k-1), RSSI(t-(k-1)) represents the RSSI of the first transmission path in the (k-1)th detection cycle before the current detection cycle. is the gradient threshold set according to the actual application scenario.
[0224] Furthermore, S502 may include: when the terminal device 301 determines that the RSSI of the first transmission path satisfies the above formula (8), sending the service data through the first transmission path and the second transmission path.
[0225] The above implementation 4-6 uses the RSSI of the first transmission path as the basis for judgment to introduce the content of the preset conditions in S502 and S503. In addition, the above preset conditions may also include the content of using the packet loss rate corresponding to the first transmission path as the basis for judgment. Specifically:
[0226] In implementation manner 7, the above-mentioned preset condition may include: a packet loss rate of the first transmission path is greater than a packet loss rate threshold.
[0227] Furthermore, S502 may include: when the terminal device 301 determines that the packet loss rate of the first transmission path is greater than the packet loss rate threshold, sending the service data through the first transmission path and the second transmission path.
[0228] For example, after detecting the packet loss rate of the first transmission path through S5011-S5013, terminal device 301 may compare the packet loss rate with a packet loss rate threshold to determine whether the packet loss rate of the first transmission path is greater than the packet loss rate threshold. If so, it is determined that the transmission performance of the first transmission path meets the preset condition, and then S502 is executed.
[0229] In implementation 7, considering that packet loss during data transmission indicates a loss of user experience, when using the packet loss rate of the first transmission path as a basis for judgment, the gradient change can be disregarded. Instead, the decision to use multi-path transmission or single-path transmission (i.e., whether to execute S502 or S503) can be made based directly on whether the packet loss rate exceeds the packet loss rate threshold. This ensures a good user experience.
[0230] In one possible design, similar to the above contents of determining the value of the first delay threshold and determining the value of the first signal strength threshold, the method may further include:
[0231] The terminal device 301 determines the value of the packet loss rate threshold according to the current mode of transmitting service data.
[0232] Among them, the value of the first signal strength threshold when the terminal device 301 currently transmits service data in multi-path transmission is smaller than the value of the first signal strength threshold when the terminal device 301 currently transmits service data in single-path transmission.
[0233] In this way, the difficulty of the terminal device 3011 switching from multi-path transmission to single-path transmission can be increased, thereby avoiding the situation where the service quality of the business is reduced.
[0234] It is understandable that the above implementations 1 to 7 respectively introduce seven conditions that may be included in the preset conditions. In actual application, all or part of the above seven conditions can be selected as the content of the preset conditions.
[0235] In one implementation, in the method provided in the embodiment of the present application, the above-mentioned preset conditions may simultaneously include the seven conditions in implementations 1 to 7. In this case, when the terminal device 301 determines that the transmission performance of the first transmission path meets any of the seven conditions in the preset conditions, multi-path transmission is used for transmission (i.e., S502); when the terminal device 301 determines that the transmission performance of the first transmission path does not meet any of the seven conditions in the preset conditions, single-path transmission is used for transmission (i.e., S503).
[0236] Furthermore, the process of the terminal device 301 determining whether the transmission performance of the first transmission path meets the preset condition, as shown in FIG10( a ), includes the following steps S601 to S603:
[0237] S601. The terminal device 301 determines whether the transmission delay of the first transmission path satisfies the above formula (1) to formula (4) based on the transmission delay of the first transmission path.
[0238] When the terminal device 301 determines that the transmission delay of the first transmission path satisfies any one of formulas (1) to (4), it determines that the transmission performance of the first transmission path satisfies the preset condition. Then, S502 is executed to send service data through the first transmission path and the second transmission path.
[0239] When the terminal device 301 determines that the transmission delay of the first transmission path does not satisfy any of formulas (1) to (4), that is, determines that the transmission performance of the first transmission path does not meet the preset conditions, S602 is executed.
[0240] S602: The terminal device 301 determines whether the RSSI of the first transmission path satisfies the above formula (5) to formula (8) based on the RSSI of the first transmission path.
[0241] When the terminal device 301 determines that the RSSI of the first transmission path satisfies any one of formulas (5) to (8), it determines that the transmission performance of the first transmission path satisfies the preset condition. Then, S502 is executed to send service data through the first transmission path and the second transmission path.
[0242] When the terminal device 301 determines that the RSSI of the first transmission path does not satisfy any of the equations (5) to (8), that is, it determines that the transmission performance of the first transmission path does not meet the preset conditions, S603 is executed.
[0243] S603: The terminal device 301 determines whether the packet loss rate of the first transmission path is greater than a packet loss rate threshold according to the packet loss rate of the first transmission path.
[0244] When the terminal device 301 determines that the packet loss rate of the first transmission path is greater than the packet loss rate threshold, it determines that the transmission performance of the first transmission path meets the preset condition, and then executes S502 to send service data through the first transmission path and the second transmission path.
[0245] When the terminal device 301 determines that the packet loss rate of the first transmission path is not greater than (ie, less than or equal to) the packet loss rate threshold, it determines that the transmission performance of the first transmission path does not meet the preset condition, and then executes S503 to send service data through the first transmission path.
[0246] Furthermore, as shown in FIG11 , the above S502 may include:
[0247] When the terminal device 301 determines that the transmission performance of the first transmission path meets the preset conditions by using the above S601-S603, it sends the service data through the first transmission path and the second transmission path (ie S502a in FIG11 ).
[0248] S503 may include:
[0249] When the terminal device 301 determines that the transmission performance of the first transmission path does not meet the preset condition by using the above-mentioned S601-S603, it sends the service data through the first transmission path (ie, S503a in FIG11 ).
[0250] In one possible design, on the one hand, when the terminal device 301 currently uses the first transmission path to send services, by executing the process (a) in Figure 10 above, it can be determined whether to send service data through the first transmission path and the second transmission path, or to send service data through the first transmission path.
[0251] On the other hand, when the terminal device 301 currently uses the first transmission path and the second transmission path to send a service, the process of FIG10(b) can be executed to determine whether to send the service data through the first transmission path and the second transmission path or through the first transmission path. Specifically, as shown in FIG10(b), the method may further include:
[0252] S604: The terminal device 301 determines whether the transmission delay of the first transmission path is greater than a first delay threshold according to the transmission delay of the first transmission path.
[0253] If the transmission delay of the first transmission path is greater than the first delay threshold, it is determined that the transmission performance of the first transmission path meets the preset condition and then S502 is executed to use the first transmission path and the second transmission path to send the service. Otherwise, S605 is executed.
[0254] S605 : The terminal device 301 determines whether the RSSI of the first transmission path is less than a first signal strength threshold according to the RSSI of the first transmission path.
[0255] If the RSSI of the first transmission path is less than the first signal strength threshold, it is determined that the transmission performance of the first transmission path meets the preset condition and then S502 is executed to use the first transmission path and the second transmission path to send the service. Otherwise, S606 is executed.
[0256] S606: The terminal device 301 determines whether the packet loss rate of the first transmission path is greater than a packet loss rate threshold according to the packet loss rate of the first transmission path.
[0257] If the packet loss rate of the first transmission path is greater than the second packet loss rate threshold, it is determined that the transmission performance of the first transmission path meets the preset conditions, and then S502 is executed to transmit the service data using the first transmission path and the second transmission path. Otherwise, it is determined that the transmission performance of the first transmission path does not meet the preset conditions, and then S503 is executed to transmit the service data via the first transmission path.
[0258] Below, the process of the terminal device 301 sending service data through the first transmission path and the second transmission path in the embodiment of the present application is described in detail.
[0259] In the process of sending business data through the first transmission path and the second transmission path, the embodiments of the present application take into account: when adopting the redundant transmission mode in the relevant technology (that is, copying the data packet in the business data into two copies and sending them through the first transmission path and the second transmission path respectively), if the transmission delay difference between the two transmission paths is large, the redundant data may be transmitted invalidly.
[0260] For example, FIG12 is a schematic diagram of multi-path transmission using a redundant transmission mode of related technology under normal conditions. In particular, the terminal device 301 sequentially copies two data packets of the business data and sends them through the first transmission path and the second transmission path respectively (for ease of understanding, in the figure, between the terminal device 301 and the proxy server 303, the process of transmitting the data packet through the first transmission path is exemplarily represented by a thick arrow, and the process of transmitting the data packet through the second transmission path is represented by a thin arrow). After receiving the data packet from the terminal device 301, the proxy server 303 can deduplicate the repeatedly received data packets and only send one data packet to the business server 302, so that the business server 302 will not receive duplicate data packets.
[0261] Among them, when packet loss occurs between the terminal device 301 and the proxy server 303 (taking packet loss of data packet 2 on the first transmission path as an example in Figure 12), the proxy server 303 can still receive data packet 2 through another transmission path, thereby ensuring that the business server 302 can receive data normally.
[0262] However, when the transmission delay difference between the two transmission paths is significant, if redundant transmission mode is used for multipath transmission as described in related art, the situation is as shown in Figure 13. In Figure 13, the transmission delay of the first transmission path is less than that of the second transmission path, and packet 2 is lost on the first transmission path. At this point, proxy server 303 receives packets 1, 3, 4, and 5 from the first transmission path and sends them to service server 302.
[0263] After receiving each data packet, the business server 302 will feedback an acknowledgment (ACK) message to the terminal device 301, wherein the ACK message carries the sequence number of the data packet that the business server 302 expects to receive. Specifically, after receiving data packet 1, the business server 302 feeds back an ACK message (abbreviated as ACK2) carrying the sequence number of data packet 2 to the terminal device 301. In addition, since the business server 302 has not received data packet 2, the business server 302 will still feed back ACK2 after receiving subsequent data packets (such as data packet 3 and data packet 4). (It should be noted that in Figure 12, in order to simplify the content of the solution, the process of the business server 302 sending the ACK message to the terminal device 301 is not described. It is understandable that in Figure 12, the business server 302 can also send an ACK message to the terminal device 301 in the above manner.)
[0264] Afterwards, as shown in FIG13 , after receiving three ACK2s, the terminal device 301 will trigger a reduced-speed transmission according to the congestion control scheme in the relevant transmission protocol (e.g., the TCP protocol). In this way, even if the proxy server 303 receives data packet 2 from the second transmission path and sends data packet 2 to the business server 302 in the subsequent process, the terminal device 301 has already started to perform reduced-speed transmission, thereby reducing the efficiency of data transmission. (In addition, when the proxy server 303 receives data packet 1, data packet 3, data packet 4, and data packet 5 from the second transmission path, it can discard these data packets through deduplication processing without sending these data packets to the proxy server 302).
[0265] In response to the above problems, in the method provided in the embodiment of the present application, in the process of sending business data through the first transmission path and the second transmission path, as shown in Figure 14, on the one hand, the terminal device 301 can send the data packets in the business data through the first transmission path in the order of the data packets in the business data (i.e., S5021); on the other hand, when the terminal device 301 sends business data through the second transmission path, it can determine the data packet to be sent through the second transmission path based on the transmission delay difference between the first transmission path and the second transmission path (i.e., S5022). The data packet is then sent through the second transmission path. In this way, the possibility of invalid transmission of redundant data due to the transmission delay difference between the two transmission paths can be reduced.
[0266] Exemplarily, as shown in FIG15 , on the one hand, the terminal device 301 sends the data packets in the business data through the first transmission path in the order of the data packets in the business data (i.e., data packet 1, data packet 2…). On the other hand, the terminal device 301 determines that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path based on the transmission delay difference between the first transmission path and the second transmission path. Then, the terminal device 301 can accurately send the data packet after data packet 1 (for example, data packet 6) through the second transmission path based on the above-mentioned transmission delay difference. Afterwards, when data packet 6 reaches the proxy server 303 through the second transmission path after a longer transmission delay, if data packet 6 on the first transmission path is lost at this time, the business server 303 can send data packet 6 from the second transmission path to the business server 302. In this way, the possibility of invalid transmission of redundant data due to the transmission delay difference between the two transmission paths is reduced.
[0267] The following is a detailed description of the implementation process of the terminal device 301 sending service data through the first transmission path and the second transmission path in the embodiment of the present application, with reference to an example. As shown in Figure 16, the method provided in the embodiment of the present application may also include:
[0268] S5021. The terminal device 301 sends the data packets in the service data through the first transmission path according to the order of the data packets in the service data.
[0269] For example, when the data packets in the business data are encapsulated using TCP / UDP messages, as shown in Figures 4 and 5, after the message interception module 30121 in the terminal device 301 sends the intercepted data packets to the scheduling module 30122, the scheduling module 30122 can encapsulate the data packets into data message UDP#1 in the order of the data packets in the business data and send it to the proxy server 303.
[0270] S5022: The terminal device 301 determines a second data packet to be sent via the second transmission path according to the transmission delay difference between the first transmission path and the second transmission path (hereinafter referred to as the transmission delay difference ΔRTT(t)).
[0271] Exemplarily, the content of S5022 may be executed by the scheduling module 30122 in the terminal device 301. Specifically, as shown in FIG17 , in actual application, after receiving the data packets from the message interception module 30121, the scheduling module 30122 may store the data packets in sequence (e.g., in a logical cache "send buffer"). For example, in FIG17 , the send buffer sequentially stores data packets Seq 1 to Seq 10.
[0272] Among them, on the one hand, the scheduling module 30122 can encapsulate the data packets in the send buffer into the data message UDP#1 and send it to the proxy server 303 according to the order of the data packets in the business data; on the other hand, the scheduling module 30122 determines the second data packet to be sent through the second transmission path based on the transmission delay difference ΔRTT(t).
[0273] In one implementation, S5022 specifically includes the following S50221-S50222:
[0274] S50221. When the terminal device 301 determines that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path based on the transmission delay difference ΔRTT(t) between the first transmission path and the second transmission path, the terminal device 301 calculates the number m of data packets sent through the first transmission path in the time period corresponding to the transmission path difference ΔRTT(t).
[0275] For example, on one hand, the scheduling module 30122 can determine the transmission delay RTT of the first transmission path according to the contents of S5011-S5013 above. main (t) and the transmission delay RTT of the second transmission path red(t). Then, the transmission delay difference ΔRTT(t) between the first transmission path and the second transmission path can be determined according to the following formula (9). ΔRTT(t)=RTT red (t)-RTT main (t) (Formula 9)
[0276] On the other hand, the scheduling module 30122 can be configured to send data packets at a rate r according to the current rate r of sending data packets through the first transmission path. main (t) and the transmission delay difference ΔRTT(t), the number of data packets m sent through the first legend path in the time period corresponding to the transmission delay difference ΔRTT(t) is determined according to the following formula (10): m = r main (t) × ΔRTT(t) (Formula 9)
[0277] S50222: The terminal device 301 determines a second data packet to be sent through the second transmission path according to the number m of data packets and the first data packet currently being sent through the first transmission path.
[0278] The second data packet is a data packet that comes m data packets after the first data packet.
[0279] For example, the scheduling module 30122 calculates the number of data packets m and the first data packet Seq currently sent through the first transmission path. main (t), determine the second data packet Seq sent through the second transmission path according to the following formula (10): red (t). Seq red (t) = Seq main (t)+m (Formula 10)
[0280] Afterwards, the scheduling module 30122 can call the encapsulation module 30123 so that the encapsulation module 30123 sends the first data packet Seq main At (t), the second data packet Seq is sent through the second transmission path red (t). In this way, the proxy server 303 receives the second data packet Seq through the second transmission path. red (t) time, and the second data packet Seq is received through the first transmission path red (t) is close. At this time, if the second data packet Seq in one of the two transmission paths red (t) If packet loss occurs, the second data packet Seq can be received through another transmission path. red (t). This reduces the possibility of invalid transmission of redundant data due to the transmission delay difference between the two transmission paths.
[0281] In another implementation, considering that when the transmission delay difference between the two transmission paths is small, even if there is a gap between the time the same data packet arrives at the proxy server 303 via the two transmission paths, the congestion control scheme will not trigger a transmission speed reduction. For example, when the transmission delay difference between the two transmission paths is less than the transmission interval corresponding to three data packets, the TCP congestion control scheme will not trigger a transmission speed reduction. In this case, the scheduling module 30122 in the terminal device 301 can call the encapsulation module 30123 to simultaneously send the same data packet via the first and second transmission paths. This can reduce the computational complexity of the scheduling module 30122 and improve transmission efficiency.
[0282] Specifically, as shown in FIG18 , S5022 specifically includes the following S50223-S50225:
[0283] S50223. When the terminal device 301 determines that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path based on the transmission delay difference ΔRTT(t) between the first transmission path and the second transmission path, the terminal device 301 calculates the number m of data packets sent through the first transmission path in the time period corresponding to the transmission path difference ΔRTT(t).
[0284] Among them, the specific implementation process of S50223 can refer to the content of S50221 above, and will not be repeated here.
[0285] S50224: When the number of data packets m does not exceed the first threshold M, the terminal device 301 determines that the second data packet Seq is sent through the second transmission path. red (t) and the first data packet Seq currently sent through the first transmission path main (t)Same.
[0286] The value of the first threshold M can be set according to actual needs.
[0287] At this time, the first data packet Seq currently sent through the first transmission path main (t), and the second data packet Seq currently sent through the second transmission path red (t), satisfying:
[0288] Seq red (t) = Seq main (t)(Formula 11)
[0289] Exemplarily, at this time, the scheduling module 30122 may call the encapsulation module 30123, so that the encapsulation module 30123 sends the same data packet through the first transmission path and the second transmission path.
[0290] S50225: When the number m of data packets is greater than the first threshold M, the terminal device 301 determines the second data packet Seq to be sent through the second transmission path according to the number m of data packets and the first data packet currently sent through the first transmission path. red (t) is the first data packet Seq main The data packet after m data packets of (t).
[0291] That is, when the number m of data packets is greater than the first threshold M, the above S50222 method can be used to determine the data packets to be sent via the second transmission path. The specific implementation process of S50225 can refer to the content of S50222 above and will not be repeated here.
[0292] In another implementation, it is taken into consideration that: when the number of data packets cached in the terminal device 301 is limited (for example, only 10 data packets can be cached in the send buffer in Figure 17) and the transmission delay of the second transmission path is significantly different from the transmission delay of the first transmission path, the possibility of invalid transmission of redundant data can be avoided as much as possible by sending the last data packet in the cache in the second transmission path.
[0293] Specifically, as shown in FIG19 , S5022 specifically includes the following S50226-S50229:
[0294] S50226. When the terminal device 301 determines that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path based on the transmission delay difference ΔRTT(t) between the first transmission path and the second transmission path, the terminal device 301 calculates the number m of data packets sent through the first transmission path in the time period corresponding to the transmission path difference ΔRTT(t).
[0295] Among them, the specific implementation process of S50226 can refer to the content of S50221 above, and will not be repeated here.
[0296] S50227: When the number m of data packets is greater than the second threshold M', the terminal device 301 determines the data packet Seq sent via the second transmission path. red (t) is the last data packet in the cache of the terminal device 301.
[0297] For example, the second data packet Seq sent via the second transmission path is red (t), satisfying: Seq red (t) = Seq thred (t) (Formula 12)
[0298] Among them, Seq thred(t) is the last data packet in the cache of the terminal device 301, for example, Seq thred (t) may be the last data packet in the send buffer of the scheduling module 30122 .
[0299] The value of the second threshold M' can be set according to actual needs.
[0300] In addition, when the number of data packets m ≤ the second threshold M', the data packets to be sent via the second transmission path may be determined by referring to the contents of S50224 and S50225 above. Specifically:
[0301] S50228: When the number of data packets m satisfies the following conditions: first threshold M<m≤second threshold M', the terminal device 301 sends the first data packet Seq main (t), determine the second data packet Seq sent via the second transmission path red (t) is the first data packet Seq main The data packet after m packets of (t).
[0302] The first threshold M is smaller than the second threshold M'.
[0303] S50229: When the number of data packets m satisfies: m≤first threshold M, the terminal device 301 determines that the second data packet Seq is sent via the second transmission path. red (t) and the first data packet Seq currently sent through the first transmission path main (t)Same.
[0304] Among them, the specific implementation process of S50228 and S50229 can refer to the contents of S50224 and S50225 above, and will not be repeated here.
[0305] The following is a detailed description of the implementation process (i.e., S503 above) of the terminal device 301 sending service data through a transmission path (i.e., the first transmission path) in the embodiment of the present application, with reference to an example. As shown in FIG20 , the method provided in the embodiment of the present application may further include:
[0306] S5031. The terminal device 301 sends a data packet in the service data through a first transmission path.
[0307] For example, when the data packets in the business data are encapsulated using TCP / UDP messages, as shown in Figures 4 and 5, after the message interception module 30121 in the terminal device 301 sends the intercepted data packets to the scheduling module 30122, the scheduling module 30122 can encapsulate the data packets into data message UDP#1 in the order of the data packets in the business data and send it to the proxy server 303.
[0308] S5022: The terminal device 301 determines a second data packet to be sent via the second transmission path according to the transmission delay difference between the first transmission path and the second transmission path (hereinafter referred to as the transmission delay difference ΔRTT(t)).
[0309] Exemplarily, the content of S5022 may be executed by the scheduling module 30122 in the terminal device 301. Specifically, as shown in FIG17 , in actual application, after receiving the data packets from the message interception module 30121, the scheduling module 30122 may store the data packets in sequence (e.g., in a logical cache "send buffer"). For example, in FIG17 , the send buffer sequentially stores data packets Seq 1 to Seq 10.
[0310] Among them, on the one hand, the scheduling module 30122 can encapsulate the data packets in the send buffer into the data message UDP#1 and send it to the proxy server 303 according to the order of the data packets in the business data; on the other hand, the scheduling module 30122 determines the second data packet to be sent through the second transmission path based on the transmission delay difference ΔRTT(t).
[0311] The following describes an implementation process of determining a network corresponding to the first transmission path and a network corresponding to the second transmission path from multiple networks accessed by the terminal device 301 in an embodiment of the present application with reference to an example.
[0312] In actual application, the terminal device 301 can access networks of various standards. For example, when the terminal device 301 supports both 2.4GHz and 5GHz WiFi networks, and the terminal device 301 has two cellular network cards (for example, one is an LTE network card and the other is a 5G network card) and has the ability to transmit data concurrently with dual cellular networks, as shown in Figure 20, the terminal device 301 can access 2.4GHz WiFi networks, 5GHz WiFi networks, LTE networks, and 5G networks. Therefore, before performing service data transmission according to the method above in the embodiment of the present application, the network corresponding to the first transmission path and the network corresponding to the second transmission path can be determined according to the following S701-S702.
[0313] Specifically, as shown in FIG21 , the method provided in the embodiment of the present application may further include:
[0314] S701 : The terminal device 301 determines, according to a first preset strategy, a first network corresponding to a first transmission path from a plurality of networks accessed by the terminal device 301 .
[0315] The first preset strategy includes determining the first network corresponding to the first transmission path according to network quality and / or network type of multiple networks accessed by the first host.
[0316] In one implementation, the first preset strategy specifically includes: when it is determined that the multiple networks accessed by the terminal device 301 include a WIFI network and a cellular network based on the network types of the multiple networks accessed by the terminal device 301, the WIFI network is determined to be the first network corresponding to the first transmission path.
[0317] In the above implementation method, considering that compared with cellular networks, WIFI networks often have more stable signals and lower user charges, the transmission path in the WIFI network is prioritized as the main path (i.e., the first transmission path) for business data transmission, thereby improving data transmission performance and saving user costs.
[0318] In one possible design, when the terminal device 301 is connected to multiple Wi-Fi networks, the network with better performance can be selected as the network corresponding to the primary path based on the transmission performance of the multiple Wi-Fi networks. The process of the terminal device 301 detecting the transmission performance of the multiple Wi-Fi networks can refer to the contents of S5011-S5014 above.
[0319] In another implementation, the first preset strategy also includes: when it is determined based on the network types of the multiple networks accessed by the terminal device 301 that the multiple networks accessed by the terminal device 301 include a cellular network but do not include a WIFI network, then the cellular network with the best transmission performance among the multiple cellular networks is determined as the first network corresponding to the first transmission path.
[0320] For example, the terminal device 301 may detect the transmission performance of multiple cellular networks with reference to the contents of S5011-S5014 above, and then determine the cellular network with the best transmission performance among the multiple cellular networks as the first network corresponding to the first transmission path according to the detection results.
[0321] S702: The terminal device 301 determines, according to a second preset policy, a second network corresponding to the second transmission path from a plurality of networks accessed by the terminal device 301.
[0322] The second preset strategy includes determining a second network corresponding to the second transmission path from networks other than the first network according to network quality and / or network type of multiple networks accessed by the terminal device 301 .
[0323] In one implementation, the second preset strategy specifically includes: when it is determined that the terminal device 301 accesses multiple WIFI networks based on the network types of the multiple networks accessed by the terminal device 301, determining a WIFI network other than the first network among the multiple WIFI networks as the second network.
[0324] For example, when the terminal device 301 accesses multiple WIFI networks:
[0325] If the network quality of one WIFI network among the multiple WIFI networks accessed by the terminal device 301 meets the preset standard, the WIFI network is selected as the first network, and another WIFI network is selected as the second network.
[0326] If the network quality of multiple WIFI networks among the multiple WIFI networks accessed by the terminal device 301 meets the preset standard, the WIFI network with the best network quality is selected as the first network (or a WIFI network with network quality that meets the preset standard can be randomly selected as the first network), and another WIFI network with network quality that meets the preset standard is selected as the second network (it can be the WIFI network with the second best network quality, or one can be randomly selected).
[0327] In addition, in one implementation, when the network quality of the WIFI network accessed by the terminal device 301 does not meet the preset standard, the second preset strategy may further include:
[0328] When it is determined based on the network types of multiple networks accessed by the terminal device 301 that the networks accessed by the terminal device 301 include a WIFI network and a cellular network, and the network quality of the WIFI network accessed by the terminal device 301 does not meet the preset standard, the cellular network is determined as the second network.
[0329] In one aspect, when the network quality of a cellular network accessed by the terminal device 301 reaches a preset standard, the cellular network is determined to be the second network;
[0330] On the other hand, when the network quality of the cellular network accessed by the terminal device 301 includes multiple cellular networks and meets the preset standard, the cellular network with the best network quality is selected as the second network (or a cellular network with network quality that meets the preset standard can be randomly selected as the second network);
[0331] On the other hand, when the network quality of the cellular network accessed by the terminal device 301, including multiple cellular networks, does not meet the preset standard, a network with a network quality complementary to the first network among the multiple cellular networks is selected as the second network.
[0332] It can be understood that after determining the network corresponding to the first transmission path and the network corresponding to the second transmission path from the multiple networks accessed by the terminal device 301 through the contents of the above S701 and S702, the process of the terminal device 301 sending business data can refer to the contents of Figures 8-19 above, and will not be repeated here.
[0333] In addition, it should be noted that, in the above-mentioned method of the embodiment of the present application, the method is mainly introduced by taking the terminal device 301, through the contents of the above-mentioned S501-S503, as an example to select whether to send service data to the proxy server 303 through one transmission path or through two transmission paths. In the specific implementation process, the terminal device 301 can also refer to the contents of the above-mentioned S501-S503 to select whether to send service data to the proxy server 303 through one transmission path or through multiple transmission paths (for example, three transmission paths, four transmission paths, etc.). In this case, the "second transmission path" mentioned above can specifically include multiple transmission paths. In other words, in the above-mentioned method of the embodiment of the present application, there is no restriction on the number of transmission paths included in the "second transmission path".
[0334] In addition, in the above-mentioned method of the embodiment of the present application, the business data transmission process between the terminal device 301 and the proxy server 303 in the architecture shown in Figure 3 is mainly introduced as an example. It is understandable that, in actual application, the above-mentioned method of the embodiment of the present application can also be applied to the business data transmission process between the terminal device and the business server. For example, when the above-mentioned method of the embodiment of the present application is applied to the business data transmission process between the terminal device 201 and the business server 202 as shown in Figure 2, the terminal device 201 can choose to send business data to the business data 202 via a single path transmission method or via a multi-path transmission method according to the content of S501-S503 above. Further, when the terminal device 201 sends business data to the business data 202 via multi-path transmission, the business data can also be sent according to the content of S5021-S5022 above. In addition, the terminal device 201 can also determine the network corresponding to the adopted transmission path from multiple networks according to the content of S701-S702 above. In other words, the application scenario of the above-mentioned method of the embodiment of the present application is not limited to the architecture shown in Figure 3.
[0335] The communication method provided according to this embodiment is described in detail above in conjunction with Figures 8 to 21. The various devices corresponding to the communication method provided by this embodiment will be described below.
[0336] FIG22 is a schematic diagram of the structure of a communication device provided in this embodiment. The communication device 80 is applied to a first host. The first host may be a software / hardware device that supports multipath transmission. Specifically, the first host may include a cellular phone, a personal digital assistant (PDA), an augmented reality (AR) or virtual reality (VR) device, a tablet computer, or a laptop computer, etc., which supports multipath transmission.
[0337] The communication device 80 may be the first host itself, or a software / hardware module running on the first host.
[0338] When the first host is the host 101 in FIG. 8 or the terminal device 301 in FIG. 9 to FIG. 21 , the communication device 80 may be configured to execute all or part of the steps executed by the host 101 in FIG. 8 or the terminal device 301 in FIG. 9 to FIG. 21 . Specifically, the communication device 80 may include:
[0339] A detection unit 801 is configured to detect transmission performance of a first transmission path between a first host and a second host;
[0340] When the transmission performance of the first transmission path meets a preset condition, the communication unit 802 is configured to send service data through the first transmission path and the second transmission path, where the first transmission path and the second transmission path are transmission paths between the first host and the second host in networks of different standards;
[0341] Otherwise, the communication unit 802 is configured to send the service data through the first transmission path.
[0342] In one implementation, the transmission performance of the first transmission path includes one or more of a transmission delay, a packet loss rate, and a received signal strength RSSI of the first transmission path.
[0343] In one implementation, the preset conditions include: one or more of the following: the transmission delay of the first transmission path is greater than a first delay threshold; the difference between the transmission delay of the first transmission path and the minimum transmission delay of the first transmission path within a preset time period is greater than a second delay threshold; or the transmission delay of the first transmission path shows a deterioration trend.
[0344] In one implementation, the transmission delay of the first transmission path has a degradation trend, including: the change gradient of the transmission delay of the first transmission path in n consecutive detection cycles is a positive gradient, where n is a positive integer; and / or the transmission delay of the first transmission path has a degradation trend, including: the change gradient of the transmission delay of the first transmission path in n consecutive detection cycles is a positive gradient, and the change gradient of the transmission delay of the first transmission path in n consecutive detection cycles is greater than a gradient threshold.
[0345] In one implementation, the above-mentioned preset conditions include: the RSSI of the first transmission path is less than a first signal strength threshold, the difference between the RSSI of the first transmission path and the minimum RSSI of the first transmission path within a preset time period is greater than a second signal strength threshold, or the RSSI of the first transmission path shows a degradation trend, one or more of the following.
[0346] In one implementation, the RSSI of the first transmission path has a degradation trend, including: the change gradient of the RSSI of the first transmission path is a positive gradient within k consecutive detection cycles, where k is a positive integer; and / or the RSSI of the first transmission path has a degradation trend, including: the change gradient of the RSSI of the first transmission path is a positive gradient within k consecutive detection cycles, and the change gradient of the RSSI of the first transmission path within k consecutive detection cycles is greater than the gradient threshold.
[0347] In one implementation, the preset condition includes: a packet loss rate of the first transmission path is greater than a packet loss rate threshold.
[0348] In one implementation, the communication unit 802 is configured to send the service data through the first transmission path and the second transmission path, including: the communication unit 802 is specifically configured to send the data packets in the service data through the first transmission path in the order of the data packets in the service data;
[0349] The communication unit 802 is specifically configured for the first host to determine the data packet to be sent via the second transmission path according to the transmission delay difference between the first transmission path and the second transmission path.
[0350] In one implementation, the communication unit 802 is specifically configured to determine, based on a transmission delay difference between the first transmission path and the second transmission path, a data packet to be sent through the second transmission path, including:
[0351] The communication unit 802 is specifically configured to calculate, when it is determined based on the transmission delay difference between the first transmission path and the second transmission path that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path, the number m of data packets sent through the first transmission path within a time period corresponding to the transmission delay difference;
[0352] The communication unit 802 is specifically configured to determine a second data packet to be sent via the second transmission path according to the number m of data packets and the first data packet currently sent via the first transmission path, where the second data packet is the data packet that is m data packets after the first data packet.
[0353] In one implementation, the communication unit 802 is specifically configured to determine, based on a transmission delay difference between the first transmission path and the second transmission path, a data packet to be sent through the second transmission path, including:
[0354] The communication unit 802 is specifically configured to calculate, when it is determined based on the transmission delay difference between the first transmission path and the second transmission path that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path, the number m of data packets sent through the first transmission path within a time period corresponding to the transmission delay difference;
[0355] The communication unit 802 is specifically configured to determine, when the number m of data packets does not exceed a first threshold, that a second data packet sent via the second transmission path is identical to a first data packet currently being sent via the first transmission path.
[0356] In one implementation, the communication unit 802 is specifically configured to determine, based on a transmission delay difference between the first transmission path and the second transmission path, a data packet to be sent through the second transmission path, including:
[0357] The communication unit 802 is specifically configured to calculate, when it is determined based on the transmission delay difference between the first transmission path and the second transmission path that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path, the number m of data packets sent through the first transmission path within a time period corresponding to the transmission delay difference;
[0358] The communication unit 802 is specifically configured to determine, when the number m of data packets is greater than a second threshold, that the data packet sent through the second transmission path is the last data packet in the cache of the first host.
[0359] In one implementation, the communication device 80 further includes:
[0360] The determination unit 803 is used to determine the first network corresponding to the first transmission path from the multiple networks accessed by the first host according to the first preset strategy; the first preset strategy includes determining the first network corresponding to the first transmission path according to the network quality and / or network type of the multiple networks accessed by the first host.
[0361] In one implementation, the above-mentioned first preset strategy specifically includes: when it is determined based on the network types of the multiple networks accessed by the first host that the multiple networks accessed by the first host include a Wireless Fidelity WIFI network and a cellular network, determining the WIFI network as the first network corresponding to the first transmission path.
[0362] In one implementation, the above-mentioned determination unit 803 is also used to determine the second network corresponding to the second transmission path from multiple networks accessed by the first host according to a second preset strategy; the second preset strategy includes determining the second network corresponding to the second transmission path from networks other than the first network based on the network quality and / or network type of the multiple networks accessed by the first host.
[0363] FIG23 is a schematic diagram of the structure of another communication device provided in this embodiment. The communication device 90 is applied to a first host. The first host may be a software / hardware device that supports multipath transmission. Specifically, the first host may include a cellular phone, a personal digital assistant (PDA), an augmented reality (AR) or virtual reality (VR) device, a tablet computer, or a laptop computer, etc., which supports multipath transmission.
[0364] The communication device 90 may be the first host itself, or a software / hardware module running on the first host.
[0365] When the first host is the terminal device 301 in Figures 14 to 19 of Figure 8 above, the communication device 90 can be used to execute all or part of the steps executed by the terminal device 301 in Figures 14 to 19 above. Specifically, the communication device 90 may include:
[0366] The first sending unit 901 is configured to send data packets in the service data through a first transmission path in the order of the data packets in the service data;
[0367] The second sending unit 902 is used to determine the data packet to be sent through the second transmission path based on the transmission delay difference between the first transmission path and the second transmission path; the first transmission path and the second transmission path are transmission paths between the first host and the second host in networks of different standards.
[0368] In one implementation, the second sending unit 902 is configured to determine, based on the transmission delay difference between the first transmission path and the second transmission path, a data packet to be sent through the second transmission path, including:
[0369] The second sending unit 902 is specifically configured to calculate the number m of data packets sent through the first transmission path in a time period corresponding to the transmission delay difference, when it is determined based on the transmission delay difference between the first transmission path and the second transmission path that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path;
[0370] The second sending unit 902 is specifically configured to determine a second data packet to be sent via the second transmission path according to the number m of data packets and the first data packet currently being sent via the first transmission path, where the second data packet is the data packet that is m data packets after the first data packet.
[0371] In one implementation, the second sending unit 902 is configured to determine, based on the transmission delay difference between the first transmission path and the second transmission path, a data packet to be sent through the second transmission path, including:
[0372] The second sending unit 902 is specifically configured to calculate the number m of data packets sent through the first transmission path in a time period corresponding to the transmission delay difference, when it is determined based on the transmission delay difference between the first transmission path and the second transmission path that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path;
[0373] The second sending unit 902 is specifically configured to determine, when the number m of data packets does not exceed a first threshold, that a second data packet sent through the second transmission path is identical to a first data packet currently being sent through the first transmission path.
[0374] In one implementation, the second sending unit 902 is configured to determine, based on the transmission delay difference between the first transmission path and the second transmission path, a data packet to be sent through the second transmission path, including:
[0375] The second sending unit 902 is specifically configured to calculate the number m of data packets sent through the first transmission path in a time period corresponding to the transmission delay difference, when it is determined based on the transmission delay difference between the first transmission path and the second transmission path that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path;
[0376] The second sending unit 902 is specifically configured to determine, when the number m of data packets is greater than a second threshold, that the data packet sent through the second transmission path is the last data packet in the cache of the first host.
[0377] FIG24 is a schematic diagram of the structure of another communication device provided in this embodiment. The communication device 100 may be a chip or a system-on-chip. Specifically, the communication device 100 may include all or part of the hardware of a device that supports multipath transmission, such as a cellular phone, a personal digital assistant (PDA), an augmented reality (AR) or virtual reality (VR) device, a tablet computer, or a laptop computer.
[0378] The communication device 100 may include: a processor 1001 , a communication line 1002 , a memory 1003 , and part or all of at least one communication interface 1004 .
[0379] The processor 1001 is used to execute all or part of the steps executed by the host 101 in FIG. 8 or the terminal device 301 in FIG. 9 to FIG. 21 of this embodiment.
[0380] Specifically, the processor 1001 may include a general-purpose central processing unit (CPU), and the processor 1001 may also include a microprocessor, a field programmable gate array (FPGA), a digital signal processor (DSP) or an application-specific integrated circuit (ASIC), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
[0381] In a specific implementation, as an embodiment, the processor 1001 may include one or more CPUs, such as CPU0 and CPU1 in Figure 24.
[0382] In a specific implementation, as an embodiment, the communication device 100 may include multiple processors, such as the processor 1001 and the processor 1008 in FIG24 . Each of these processors may be a single-core (single-CPU) processor or a multi-core (multi-CPU) processor. The processor herein may refer to one or more devices, circuits, and / or processing cores for processing, for example, computer data (computer program instructions).
[0383] In addition, the memory 1003 may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), double data rate synchronous DRAM (DDR SDRAM), enhanced synchronous DRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct RAM bus RAM (DR RAM). Memory 1003 may be independent and connected to processor 1001 via communication line 1002. Memory 1003 may also be integrated with processor 1001.
[0384] Memory 1003 stores computer instructions. Processor 1001 can execute all or part of the steps in the communication method provided in this embodiment by executing the computer instructions stored in memory 1003. As shown in FIG24 , computer instructions stored in memory 1003. Processor 1001 can execute the communication method provided in this embodiment by executing the computer instructions stored in memory 1003.
[0385] Optionally, the computer-executable instructions in this embodiment may also be referred to as application code, which is not specifically limited in this embodiment.
[0386] In addition, the communication interface 1004 uses any transceiver or other device for communicating with other devices or communication networks, such as Ethernet, radio access network (RAN), wireless local area network (WLAN), etc.
[0387] In addition, the communication line 1002 is used to connect the various components in the communication device 100. Specifically, the communication line 1002 may include a data bus, a power bus, a control bus, and a status signal bus. However, for the sake of clarity, various buses are labeled as communication lines 1002 in the figure.
[0388] In a specific implementation, as an embodiment, the data processing device 100 may further include an output device 1007 and an input device 1006. The output device 1007 may communicate with the processor 1001 and may display information in a variety of ways. For example, the output device 1007 may be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector. The input device 1006 may communicate with the processor 1001 and may receive user input in a variety of ways. For example, the input device 1006 may be a mouse, a keyboard, a touch screen device, or a sensor device.
[0389] In addition, the communication device 100 may further include a storage medium 1005. The storage medium 1005 is used to store computer instructions and various data for implementing the technical solution of this embodiment. When the communication device 100 executes the above-mentioned communication method of this embodiment, the computer instructions and various data stored in the storage medium 1005 are loaded into the memory 1003, so that the processor 1001 can execute the computer instructions stored in the memory 1003 to execute the communication method provided by this embodiment.
[0390] The method steps in this embodiment can be implemented by hardware or by a processor executing software instructions. The software instructions can be composed of corresponding software modules, which can be stored in RAM, flash memory, ROM, PROM, EPROM, EEPROM, registers, hard disk, mobile hard disk, CD-ROM or any other form of storage medium well known in the art. An exemplary storage medium is coupled to the processor so that the processor can read information from the storage medium and write information to the storage medium. Of course, the storage medium can also be an integral part of the processor. The processor and storage medium can be located in an ASIC. In addition, the ASIC can be located in a communication device. Of course, the processor and storage medium can also exist in the communication device as discrete components.
[0391] In the above embodiments, all or part of the embodiments may be implemented using software, hardware, firmware, or any combination thereof. When implemented using software, all or part of the embodiments may be implemented in the form of a computer program product. A computer program product includes one or more computer programs or instructions. When the computer program or instructions are loaded and executed on a computer, the processes or functions described in this embodiment are performed in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, a communication device, a user device, or other programmable device. The computer program or instructions may be stored in a computer-readable storage medium or transferred from one computer-readable storage medium to another. For example, the computer program or instructions may be transferred from one website, computer, server, or data center to another website, computer, server, or data center via wired or wireless means. The computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or data center that integrates one or more available media. The available medium may be a magnetic medium, such as a floppy disk, hard disk, or magnetic tape; an optical medium, such as a digital video disc (DVD); or a semiconductor medium, such as an SSD.
[0392] In this embodiment, unless otherwise specified or there is a logical conflict, the terms and / or descriptions between different implementations are consistent and can be referenced by each other. The technical features in different embodiments can be combined to form a new embodiment based on their internal logical relationships.
[0393] In this embodiment, "at least one" means one or more, "more than one" means two or more, and other quantifiers are similar. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. In addition, for elements (element) in the singular form "a", "an" and "the", unless the context clearly stipulates otherwise, it does not mean "one or only one", but means "one or more than one". For example, "a device" means one or more such devices. Furthermore, at least one (at least one of)..." means one or any combination of the subsequent associated objects, for example, "at least one of A, B and C" includes A, B, C, AB, AC, BC, or ABC. In the text description of this embodiment, the character " / " generally indicates that the previous and next associated objects are in an "or" relationship; in the formula of this embodiment, the character " / " indicates that the previous and next associated objects are in a "division" relationship.
Claims
1. A communication method, characterized in that: The method comprises: The first host detects the transmission performance of the first transmission path between the first host and the second host; In a case where the transmission performance of the first transmission path meets a preset condition, the first host sends service data through the first transmission path and the second transmission path, and the first transmission path and the second transmission path are transmission paths between the first host and the second host in networks of different standards; Otherwise, the first host sends the service data through the first transmission path.
2. The method according to claim 1, characterized in that The transmission performance of the first transmission path includes: one or more of the transmission delay, packet loss rate and received signal strength RSSI of the first transmission path.
3. The method according to claim 2, characterized in that The preset conditions include: One or more of the following: the transmission delay of the first transmission path is greater than a first delay threshold, the difference between the transmission delay of the first transmission path and the minimum transmission delay of the first transmission path within a preset time period is greater than a second delay threshold, or the transmission delay of the first transmission path has a degradation trend.
4. The method according to claim 3, wherein the transmission delay of the first transmission path has a deterioration trend, comprising: The change gradient of the transmission delay of the first transmission path in n consecutive detection cycles is a positive gradient, where n is a positive integer; And / or, the transmission delay of the first transmission path has a degradation trend, including: the change gradient of the transmission delay of the first transmission path in n consecutive detection cycles is a positive gradient, and the change gradient of the transmission delay of the first transmission path in the n consecutive detection cycles is greater than the gradient threshold.
5. The method according to any one of claims 2 to 4, characterized in that: The preset conditions include: One or more of the following: the RSSI of the first transmission path is less than a first signal strength threshold, the difference between the RSSI of the first transmission path and the minimum RSSI of the first transmission path within a preset time period is greater than a second signal strength threshold, or the RSSI of the first transmission path has a degradation trend.
6. The method according to claim 5, wherein the RSSI of the first transmission path has a deterioration trend, comprising: The change gradient of the RSSI of the first transmission path in k consecutive detection cycles is a positive gradient, where k is a positive integer; And / or, the RSSI of the first transmission path has a degradation trend, including: the change gradient of the RSSI of the first transmission path in k consecutive detection cycles is a positive gradient, and the change gradient of the RSSI of the first transmission path in the k consecutive detection cycles is greater than the gradient threshold.
7. The method according to any one of claims 2 to 6, characterized in that: The preset condition includes: a packet loss rate of the first transmission path is greater than a packet loss rate threshold.
8. The method according to any one of claims 1 to 7, characterized in that: The first host sends service data through the first transmission path and the second transmission path, including: The first host sends the data packets in the service data through the first transmission path according to the order of the data packets in the service data; The first host determines the data packet to be sent through the second transmission path according to the transmission delay difference between the first transmission path and the second transmission path.
9. The method according to claim 8, characterized in that The first host determines, according to a transmission delay difference between the first transmission path and the second transmission path, a data packet to be sent through the second transmission path, including: When the first host determines, based on the transmission delay difference between the first transmission path and the second transmission path, that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path, calculating the number m of data packets sent through the first transmission path within a time period corresponding to the transmission delay difference; The first host determines a second data packet to be sent through the second transmission path based on the number m of data packets and a first data packet currently sent through the first transmission path, where the second data packet is a data packet that is m data packets after the first data packet.
10. The method according to claim 8 or 9, characterized in that: The first host determines, according to a transmission delay difference between the first transmission path and the second transmission path, a data packet to be sent through the second transmission path, including: When the first host determines, based on the transmission delay difference between the first transmission path and the second transmission path, that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path, calculating the number m of data packets sent through the first transmission path within a time period corresponding to the transmission delay difference; When the number m of data packets does not exceed a first threshold, the first host determines that a second data packet sent through the second transmission path is the same as a first data packet currently sent through the first transmission path.
11. The method according to any one of claims 8 to 10, characterized in that: The first host determines, according to a transmission delay difference between the first transmission path and the second transmission path, a data packet to be sent through the second transmission path, including: When the first host determines, based on the transmission delay difference between the first transmission path and the second transmission path, that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path, calculating the number m of data packets sent through the first transmission path within a time period corresponding to the transmission delay difference; When the number m of data packets is greater than a second threshold, the first host determines that the data packet sent through the second transmission path is the last data packet in the cache of the first host.
12. The method according to any one of claims 1 to 11, characterized in that: The method further comprises: The first host determines the first network corresponding to the first transmission path from the multiple networks accessed by the first host according to a first preset strategy; the first preset strategy includes determining the first network corresponding to the first transmission path according to the network quality and / or network type of the multiple networks accessed by the first host.
13. The method according to claim 12, wherein the first preset strategy specifically comprises: When it is determined based on the network types of the multiple networks accessed by the first host that the multiple networks accessed by the first host include a Wireless Fidelity WIFI network and a cellular network, the WIFI network is determined to be the first network corresponding to the first transmission path.
14. The method according to claim 12 or 13, characterized in that The method also includes: the first host determines the second network corresponding to the second transmission path from multiple networks accessed by the first host according to a second preset strategy; the second preset strategy includes determining the second network corresponding to the second transmission path from networks other than the first network according to network quality and / or network type of the multiple networks accessed by the first host.
15. A communication method, characterized in that: The method comprises: The first host sends the data packets in the service data through the first transmission path according to the order of the data packets in the service data; The first host determines the data packet to be sent through the second transmission path based on the transmission delay difference between the first transmission path and the second transmission path; the first transmission path and the second transmission path are transmission paths between the first host and the second host in networks of different standards.
16. The method according to claim 15, characterized in that The first host determines, according to a transmission delay difference between the first transmission path and the second transmission path, a data packet to be sent through the second transmission path, including: When the first host determines, based on the transmission delay difference between the first transmission path and the second transmission path, that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path, calculating the number m of data packets sent through the first transmission path within a time period corresponding to the transmission delay difference; The first host determines a second data packet to be sent through the second transmission path based on the number m of data packets and a first data packet currently sent through the first transmission path, where the second data packet is a data packet that is m data packets after the first data packet.
17. The method according to claim 15 or 16, characterized in that The first host determines, according to a transmission delay difference between the first transmission path and the second transmission path, a data packet to be sent through the second transmission path, including: When the first host determines, based on the transmission delay difference between the first transmission path and the second transmission path, that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path, calculating the number m of data packets sent through the first transmission path within a time period corresponding to the transmission delay difference; When the number m of data packets does not exceed a first threshold, the first host determines that a second data packet sent through the second transmission path is the same as a first data packet currently sent through the first transmission path.
18. The method according to any one of claims 15 to 17, characterized in that: The first host determines, according to a transmission delay difference between the first transmission path and the second transmission path, a data packet to be sent through the second transmission path, including: When the first host determines, based on the transmission delay difference between the first transmission path and the second transmission path, that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path, calculating the number m of data packets sent through the first transmission path within a time period corresponding to the transmission delay difference; When the number m of data packets is greater than a second threshold, the first host determines that the data packet sent through the second transmission path is the last data packet in the cache of the first host.
19. A communication device, characterized in that: The communication device is applied to a first host, and the communication device comprises: a detection unit and a communication unit; The detection unit is used to detect the transmission performance of the first transmission path between the first host and the second host; In a case where the transmission performance of the first transmission path meets a preset condition, the communication unit is used to send service data through the first transmission path and the second transmission path, where the first transmission path and the second transmission path are transmission paths between the first host and the second host in networks of different standards; Otherwise, the communication unit is used to send the service data through the first transmission path.
20. The communication device according to claim 19, characterized in that The transmission performance of the first transmission path includes: one or more of the transmission delay, packet loss rate and received signal strength RSSI of the first transmission path.
21. The communication device according to claim 20, characterized in that: The preset conditions include: One or more of the following: the transmission delay of the first transmission path is greater than a first delay threshold, the difference between the transmission delay of the first transmission path and the minimum transmission delay of the first transmission path within a preset time period is greater than a second delay threshold, or the transmission delay of the first transmission path has a degradation trend.
22. The communication device according to claim 21, wherein the transmission delay of the first transmission path has a deterioration trend, comprising: The change gradient of the transmission delay of the first transmission path in n consecutive detection cycles is a positive gradient, where n is a positive integer; And / or, the transmission delay of the first transmission path has a degradation trend, including: the change gradient of the transmission delay of the first transmission path in n consecutive detection cycles is a positive gradient, and the change gradient of the transmission delay of the first transmission path in the n consecutive detection cycles is greater than the gradient threshold.
23. The communication device according to any one of claims 20 to 22, characterized in that: The preset conditions include: One or more of the following: the RSSI of the first transmission path is less than a first signal strength threshold, the difference between the RSSI of the first transmission path and the minimum RSSI of the first transmission path within a preset time period is greater than a second signal strength threshold, or the RSSI of the first transmission path has a degradation trend.
24. The communication device according to claim 23, wherein the RSSI of the first transmission path has a deterioration trend, comprising: The change gradient of the RSSI of the first transmission path in k consecutive detection cycles is a positive gradient, where k is a positive integer; And / or, the RSSI of the first transmission path has a degradation trend, including: the change gradient of the RSSI of the first transmission path in k consecutive detection cycles is a positive gradient, and the change gradient of the RSSI of the first transmission path in the k consecutive detection cycles is greater than the gradient threshold.
25. The communication device according to any one of claims 20 to 24, characterized in that: The preset condition includes: a packet loss rate of the first transmission path is greater than a packet loss rate threshold.
26. The communication device according to any one of claims 19 to 25, characterized in that: The communication unit, configured to send service data through the first transmission path and the second transmission path, comprises: The communication unit is specifically configured to send the data packets in the service data through the first transmission path according to the order of the data packets in the service data; The communication unit is specifically used by the first host to determine the data packet to be sent through the second transmission path according to the transmission delay difference between the first transmission path and the second transmission path.
27. The communication device according to claim 26, characterized in that The communication unit is specifically configured to determine a data packet sent through the second transmission path according to a transmission delay difference between the first transmission path and the second transmission path, including: The communication unit is specifically configured to calculate the number m of data packets sent through the first transmission path in a time period corresponding to the transmission delay difference between the first transmission path and the second transmission path, when it is determined that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path; The communication unit is specifically used to determine a second data packet to be sent through the second transmission path according to the number m of data packets and a first data packet currently sent through the first transmission path, wherein the second data packet is a data packet that is m data packets after the first data packet.
28. The communication device according to claim 26 or 27, characterized in that: The communication unit is specifically configured to determine a data packet sent through the second transmission path according to a transmission delay difference between the first transmission path and the second transmission path, including: The communication unit is specifically configured to calculate the number m of data packets sent through the first transmission path in a time period corresponding to the transmission delay difference between the first transmission path and the second transmission path, when it is determined that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path; The communication unit is specifically configured to determine, when the number m of data packets does not exceed a first threshold, that a second data packet sent via the second transmission path is identical to a first data packet currently sent via the first transmission path.
29. The communication device according to any one of claims 26 to 28, characterized in that: The communication unit is specifically configured to determine a data packet sent through the second transmission path according to a transmission delay difference between the first transmission path and the second transmission path, including: The communication unit is specifically configured to calculate the number m of data packets sent through the first transmission path in a time period corresponding to the transmission delay difference between the first transmission path and the second transmission path, when it is determined that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path; The communication unit is specifically configured to determine, when the number m of data packets is greater than a second threshold, that the data packet sent via the second transmission path is the last data packet in the cache of the first host.
30. The communication device according to any one of claims 19 to 29, characterized in that: The communication device further comprises: A determination unit is used to determine, according to a first preset strategy, a first network corresponding to a first transmission path from a plurality of networks accessed by the first host; the first preset strategy includes determining the first network corresponding to the first transmission path according to network quality and / or network type of the plurality of networks accessed by the first host.
31. The communication device according to claim 30, wherein the first preset strategy specifically comprises: When it is determined based on the network types of the multiple networks accessed by the first host that the multiple networks accessed by the first host include a Wireless Fidelity WIFI network and a cellular network, the WIFI network is determined to be the first network corresponding to the first transmission path.
32. The communication device according to claim 30 or 31, characterized in that: The determination unit is also used to determine, according to a second preset strategy, a second network corresponding to the second transmission path from multiple networks accessed by the first host; the second preset strategy includes determining, according to the network quality and / or network type of the multiple networks accessed by the first host, the second network corresponding to the second transmission path from networks other than the first network.
33. A communication device, characterized in that: The communication device is applied to a first host, and the communication device comprises: a first sending unit and a second sending unit; The first sending unit is used to send the data packets in the service data through the first transmission path according to the order of the data packets in the service data; The second sending unit is used to determine the data packet sent through the second transmission path according to the transmission delay difference between the first transmission path and the second transmission path; the first transmission path and the second transmission path are transmission paths between the first host and the second host in networks of different standards.
34. The communication device according to claim 33, characterized in that The second sending unit, configured to determine a data packet to be sent through the second transmission path according to a transmission delay difference between the first transmission path and the second transmission path, includes: The second sending unit is specifically configured to calculate the number m of data packets sent through the first transmission path in a time period corresponding to the transmission delay difference between the first transmission path and the second transmission path, when it is determined that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path; The second sending unit is specifically used to determine a second data packet to be sent through the second transmission path according to the number m of data packets and a first data packet currently sent through the first transmission path, wherein the second data packet is a data packet that is m data packets after the first data packet.
35. The communication device according to claim 33 or 34, characterized in that: The second sending unit, configured to determine a data packet to be sent through the second transmission path according to a transmission delay difference between the first transmission path and the second transmission path, includes: The second sending unit is specifically configured to calculate the number m of data packets sent through the first transmission path in a time period corresponding to the transmission delay difference between the first transmission path and the second transmission path, when it is determined that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path; The second sending unit is specifically configured to determine, when the number m of data packets does not exceed a first threshold, that a second data packet sent via the second transmission path is the same as a first data packet currently being sent via the first transmission path.
36. The communication device according to any one of claims 33 to 35, characterized in that: The second sending unit, configured to determine a data packet to be sent through the second transmission path according to a transmission delay difference between the first transmission path and the second transmission path, includes: The second sending unit is specifically configured to calculate the number m of data packets sent through the first transmission path in a time period corresponding to the transmission delay difference between the first transmission path and the second transmission path, when it is determined that the transmission delay of the first transmission path is less than the transmission delay of the second transmission path; The second sending unit is specifically configured to determine, when the number m of data packets is greater than a second threshold, that the data packet sent via the second transmission path is the last data packet in the cache of the first host.
37. A communication device, characterized in that: It comprises a memory and a processor, wherein the memory is used to store computer instructions, and the processor is used to call and execute the computer instructions from the memory to implement the method as claimed in any one of claims 1 to 14, or to implement the method as claimed in any one of claims 15 to 18.
38. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores instructions, and when the instructions are executed on a processor, the method according to any one of claims 1 to 14 is implemented, or the method according to any one of claims 15 to 18 is implemented.
39. A computer program product, characterized in that The computer program product comprises instructions, which, when executed on a processor, implement the method according to any one of claims 1 to 14, or implement the method according to any one of claims 15 to 18.
Citation Information
Patent Citations
Communication method and device
CN120017576A
Path selection method and device and storage area network
CN103023776A
Data transmission method and apparatus
CN105591772A
Method for adjusting communication processing capability and user equipment
CN110461048A
Data transmission link maintenance method, maintenance triggering method and device
US20220061120A1