Multipath transmission method and apparatus, computer device and storage medium

By using a congestion control module with forward independent paths and a round-robin approach in data transmission, the problems of reliability and insufficient bandwidth utilization in multi-path transmission are solved, and more efficient and reliable data transmission is achieved.

CN116846816BActive Publication Date: 2026-08-25TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202210288498.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-03-23
Publication Date
2026-08-25
Estimated Expiration
2042-03-23

AI Technical Summary

Technical Problem

Existing multipath transmission schemes cannot guarantee the reliability of data transmission, especially when network paths overlap or links fail, leading to data flow interruptions and insufficient bandwidth utilization.

Method used

By obtaining data transmission requests, multiple forward independent paths are searched in the path mapping table, and the sending paths are bound sequentially. The congestion control module is queried in a round-robin manner, and data is sent to the receiving end based on the available bandwidth, using the forward independent paths for data transmission.

Benefits of technology

It improves the reliability and bandwidth utilization of data transmission, reduces the impact of single-link failures on transmission, and enhances the availability and reliability of transport layer services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116846816B_ABST
    Figure CN116846816B_ABST
Patent Text Reader

Abstract

The application relates to a multi-path transmission method and device, computer equipment, a storage medium and a computer program product. The method comprises the following steps: obtaining a data transmission request, the data transmission request comprising to-be-transmitted data and the identity of a receiving end; searching for a path mapping table according to the identity of the receiving end, the path mapping table comprising a plurality of forward independent paths obtained by detection; sequentially binding a sending path corresponding to the data transmission request to each forward independent path; polling a congestion control module of the sending path to send the to-be-transmitted data to the receiving end based on the available bandwidth corresponding to the sending path. In the scheme, the sending path is bound according to the forward independent paths obtained by detection when data is sent, so that the data is sent to the receiving end through different forward independent paths in a polling mode, and the data is sent according to the available bandwidth through the congestion control module in combination with the load condition of the forward independent paths, thereby effectively improving transmission reliability.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to a multipath transmission method, apparatus, computer equipment, storage medium, and computer program product. Background Technology

[0002] In a data center network, there are multiple paths between any pair of server nodes, and these paths are often of equal length, hence the term Equal Cost Multi-Path (ECMP). Typically, a switch first uses its routing table to obtain candidate outgoing ports based on the destination IP. When multiple candidate outgoing ports are available, the switch hashes the five-tuple in the packet header to select one. Therefore, packets with the same five-tuple will always be sent from the same outgoing port, resulting in packets with the same five-tuple always following the same path. This routing configuration allows different data flows from a single node pair to travel along different paths, achieving load balancing. Traditionally, data packets travel only one path. If this path is congested, the data flow must endure the congestion, sending at a reduced speed and sharing bandwidth with the congested traffic. If a link in the path fails, the flow will be interrupted. Therefore, multi-path transmission schemes are needed to improve the availability and reliability of data transmission.

[0003] Currently, multipath transmission solutions in data centers mainly include MPTCP (MultiPath TCP, Multiplexer Control Protocol) and QUIC (Quick UDP Internet Connection, a low-latency Internet transport layer protocol based on UDP), which are multipath technologies based on changing the five-tuple. However, these solutions simply change the source port number of the sub-stream and rely on the ECMP hash function of the switches in the network to achieve multipath transmission. Therefore, they face the problem that the paths of multiple sub-streams may partially overlap, or even have multiple sub-streams with completely identical paths, thus failing to guarantee the reliability of multipath transmission. Summary of the Invention

[0004] Therefore, it is necessary to provide a multipath transmission method, apparatus, computer equipment, computer-readable storage medium, and computer program product that can guarantee the reliability of multipath transmission in response to the above-mentioned technical problems.

[0005] Firstly, this application provides a multipath transmission method. The method includes:

[0006] Obtain a data transmission request, the data transmission request including the data to be transmitted and the identifier of the receiving end;

[0007] The path mapping table is searched based on the identifier of the receiving end. The path mapping table contains multiple forward independent paths obtained through network telemetry.

[0008] The sending path corresponding to the data transmission request is sequentially bound to each positive independent path;

[0009] The congestion control module of the transmission path is queried in a polling manner to send the data to be transmitted to the receiving end based on the available bandwidth corresponding to the transmission path.

[0010] Secondly, this application also provides a multipath transmission apparatus. The apparatus includes:

[0011] The request acquisition module is used to acquire a data transmission request, which includes the data to be transmitted and the identifier of the receiving end;

[0012] The mapping table lookup module is used to look up the path mapping table according to the identifier of the receiving end. The path mapping table contains multiple forward independent paths obtained through network telemetry.

[0013] The path binding module is used to sequentially bind the sending path corresponding to the data transmission request to each forward independent path;

[0014] The data transmission module is used to query the congestion control module of the transmission path in a polling manner, and to send the data to be transmitted to the receiving end based on the available bandwidth corresponding to the transmission path.

[0015] Thirdly, this application also provides a computer device. The computer device includes a memory and a processor, the memory storing a computer program, and the processor executing the computer program to perform the following steps:

[0016] Obtain a data transmission request, the data transmission request including the data to be transmitted and the identifier of the receiving end;

[0017] The path mapping table is searched based on the identifier of the receiving end. The path mapping table contains multiple forward independent paths obtained through network telemetry.

[0018] The sending path corresponding to the data transmission request is sequentially bound to each positive independent path;

[0019] The congestion control module of the transmission path is queried in a polling manner to send the data to be transmitted to the receiving end based on the available bandwidth corresponding to the transmission path.

[0020] Fourthly, this application also provides a computer-readable storage medium. The computer-readable storage medium stores a computer program thereon, which, when executed by a processor, performs the following steps:

[0021] Obtain a data transmission request, the data transmission request including the data to be transmitted and the identifier of the receiving end;

[0022] The path mapping table is searched based on the identifier of the receiving end. The path mapping table contains multiple forward independent paths obtained through network telemetry.

[0023] The sending path corresponding to the data transmission request is sequentially bound to each positive independent path;

[0024] The congestion control module of the transmission path is queried in a polling manner to send the data to be transmitted to the receiving end based on the available bandwidth corresponding to the transmission path.

[0025] Fifthly, this application also provides a computer program product. The computer program product includes a computer program that, when executed by a processor, performs the following steps:

[0026] Obtain a data transmission request, the data transmission request including the data to be transmitted and the identifier of the receiving end;

[0027] The path mapping table is searched based on the identifier of the receiving end. The path mapping table contains multiple forward independent paths obtained through network telemetry.

[0028] The sending path corresponding to the data transmission request is sequentially bound to each positive independent path;

[0029] The congestion control module of the transmission path is queried in a polling manner to send the data to be transmitted to the receiving end based on the available bandwidth corresponding to the transmission path.

[0030] The aforementioned multipath transmission method, apparatus, computer equipment, storage medium, and computer program product acquire a data transmission request, which includes the data to be transmitted and the identifier of the receiving end; look up a path mapping table based on the identifier of the receiving end, the path mapping table containing multiple forward independent paths detected; sequentially bind the sending path corresponding to the data transmission request to each forward independent path; and query the congestion control module of the sending path in a round-robin manner to send the data to be transmitted to the receiving end based on the available bandwidth corresponding to the sending path. In the scheme of this application, by binding the sending path according to the forward independent paths detected when sending data, the data is sent to the receiving end through different forward independent paths in a round-robin manner. Furthermore, by combining the load conditions of the forward independent paths, the congestion control module sends data according to the available bandwidth, thereby effectively improving transmission reliability. Attached Figure Description

[0031] Figure 1This is a diagram illustrating the application environment of a multipath transmission method in one embodiment;

[0032] Figure 2 This is a flowchart illustrating a multipath transmission method in one embodiment;

[0033] Figure 3 This is a flowchart illustrating the path exploration steps in one embodiment;

[0034] Figure 4 This is a flowchart illustrating the step of updating the forward path mapping table in one embodiment;

[0035] Figure 5 This is a schematic diagram of the data transmission and path selection process in one embodiment;

[0036] Figure 6 This is a schematic diagram of the path detection phase in one embodiment;

[0037] Figure 7 This is a schematic diagram of the data transmission phase in one embodiment;

[0038] Figure 8 This is a structural block diagram of a multipath transmission device in one embodiment;

[0039] Figure 9 This is an internal structural diagram of a computer device in one embodiment. Detailed Implementation

[0040] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.

[0041] Cloud technology is a general term encompassing network technology, information technology, integration technology, management platform technology, and application technology based on cloud computing business models. It can form resource pools, providing flexible and convenient on-demand access. Backend services of cloud computing systems require substantial computing and storage resources, such as those for video websites, image websites, and various portal websites. With the rapid development and application of the internet industry, every item may eventually possess its own identification mark, requiring transmission to backend systems for logical processing. Data at different levels will be processed separately, and various industry data will require robust system support, which can only be achieved through cloud computing. This application's solution involves data transmission using cloud technology.

[0042] The multipath transmission method provided in this application embodiment can be applied to, for example... Figure 1In the application environment shown, the sending terminal 102 communicates with the receiving terminal 104 via a network. Several intermediate devices are involved between terminals 102 and 104, facilitating communication. When a user on the sending terminal 102 needs to send data to the receiving terminal 104, they can submit a corresponding data transmission request to terminal 102. Terminal 102 receives the data transmission request, which includes the data to be transmitted and the identifier of the receiving terminal 104. It then searches a path mapping table based on the receiver's identifier. The path mapping table contains multiple forward independent paths obtained through network telemetry, each containing the identifier of an intermediate device. The sending path corresponding to the data transmission request is sequentially bound to each forward independent path. The congestion control module of the sending path is then queried in a round-robin manner to send the data to be transmitted to the receiving terminal 104 based on the available bandwidth corresponding to the sending path. The sending terminal 102 and the receiving terminal 104 can be, but are not limited to, various desktop computers, laptops, smartphones, tablets, IoT devices, and portable wearable devices. IoT devices can include smart speakers, smart TVs, smart air conditioners, smart vehicle devices, etc. Portable wearable devices can include smartwatches, smart bracelets, and head-mounted devices. Intermediate devices can be implemented through switches or routers.

[0043] In one embodiment, such as Figure 2 As shown, a multipath transmission method is provided, which is applied to... Figure 1 Taking the transmitting terminal 102 as an example, the following steps are included:

[0044] Step 201: Obtain a data transmission request. The data transmission request includes the data to be transmitted and the identifier of the receiving end.

[0045] In this context, a data transmission request refers to a request initiated by personnel at the sending terminal 102, requesting that the sending terminal 102 transmit corresponding data to the receiving terminal 104. The data to be transmitted is the data that needs to be sent during the transmission process. Specifically, the data to be transmitted may include multiple different data packets. The sending terminal 102 can transmit these data packets to the receiving terminal via multipath transmission, using different independent transmission paths. The identifier of the receiving end is used to specify the receiving end of this data.

[0046] Specifically, when staff at the sending terminal 102 need to transmit large amounts of data, different transmission paths can be selected through different intermediate device nodes in the network to improve transmission efficiency, thus ensuring transmission efficiency. At this time, the user can submit a corresponding data transmission request to the sending terminal 102, specifying the data to be transmitted and including the receiver's identifier to indicate who is responsible for receiving the data.

[0047] Step 203: Look up the path mapping table based on the identifier of the receiving end. The path mapping table contains multiple forward independent paths obtained through network telemetry.

[0048] The independent path comprises multiple independent transmission paths, each independent of the others without overlapping links. Independent paths are divided into forward independent paths and reverse independent paths. A forward independent path is the transmission path from the sender to the receiver, while a reverse independent path is the transmission path from the receiver to the sender. Specifically, a forward independent path refers to a data transmission path pre-obtained through path probing. This path is constructed using the link number and source port number as keys, based on the identifiers of several intermediate devices between the sending and receiving terminals. This allows for the identification of the corresponding transmission links based on the intermediate device identifiers, enabling the transmission of data packets to the receiving terminal via the forward independent path. Furthermore, each of these forward independent paths is independent, with no overlapping links. The path mapping table contains these forward independent paths. Therefore, the path mapping table between sending terminal 102 and receiving terminal 104 can be looked up based on the receiver's identifier, and then these forward independent paths can be obtained using the path mapping table, enabling multipath transmission based on these forward independent paths.

[0049] Specifically, in multi-path data transmission, to ensure data transmission efficiency, it is necessary to allocate data packets to different transmission paths based on the load bandwidth of each path. The solution in this application requires constructing a corresponding path mapping table to obtain multiple independent forward paths. Data transmission is then performed based on these independent forward paths, with each path sequentially allocating data packets from the data to be transmitted. The path mapping table can be obtained by reading a pre-constructed table or by using network telemetry technology.

[0050] Step 205: Bind the sending path corresponding to the data transmission request to each forward independent path in sequence.

[0051] Specifically, the transport layer of the sending terminal 102 includes a sending module for sending data. The sending module contains multiple sending paths. When sending data, these sending paths can be sequentially bound to each found forward independent path, so that data sending can be processed based on the identity of the intermediate device in the forward independent path.

[0052] Step 207: The congestion control module of the transmission path is queried in a polling manner, and the data to be transmitted is sent to the receiving end based on the available bandwidth corresponding to the transmission path.

[0053] Each transmission path in the data transmission module has a congestion control module, which can report the load status of the current transmission path to the transmitting terminal 102. Polling refers to the CPU periodically issuing queries, sequentially asking each peripheral device whether it needs its service. If so, it provides service, and after the service is completed, it queries the next peripheral device, and so on, continuously. That is, it sequentially visits each transmission path. When the congestion control module of a transmission path allows transmission, the packet containing the data to be transmitted is sent from the current path, and the current path is switched to the next path p = (p+1)%H. If the congestion control module of the current path does not allow transmission, the current path is directly switched to the next path p = (p+1)%H, and a transmission request is made.

[0054] Specifically, the scheme of this application binds the sending path corresponding to the data transmission request to each forward independent path in sequence. Each sending path then has its own independent path, and there are no overlapping links between them, so they will not interfere with each other. At this time, each sending path can be accessed in a round-robin manner, and the data packet sending processing is performed based on the congestion control module in the sending path. During sending, the number of packets sent on each path is proportional to the available bandwidth of each path, which is controlled by the congestion control module. The total bandwidth of the data stream is equal to the sum of the available bandwidth of the paths.

[0055] The aforementioned multipath transmission method involves: acquiring a data transmission request, which includes the data to be transmitted and the identifier of the receiving end; searching a path mapping table based on the identifier of the receiving end, which contains multiple forward independent paths detected by probes; sequentially binding the sending path corresponding to the data transmission request to each forward independent path; and querying the congestion control module of the sending path in a round-robin manner to send the data to be transmitted to the receiving end based on the available bandwidth corresponding to the sending path. In this application's solution, by binding the sending path according to the forward independent paths detected by probes when sending data, data is sent to the receiving end through different forward independent paths in a round-robin manner. Combined with the load situation of the forward independent paths, the congestion control module sends data according to the available bandwidth, thereby effectively improving transmission reliability. This application's solution, when performing multipath data transmission, can natively utilize the characteristics of equivalent multipath in data center networks, fully utilizing the bandwidth of multiple paths. In a network with two access links, bandwidth can be increased by up to 100%, and in a network with M access links, bandwidth can be increased by up to (M-1)*100%. Simultaneously, it can significantly improve the reliability and availability of transport layer services. For example, in a traditional ECMP multipath scheme, multiple paths may overlap on the same link. If this link fails, all paths will become unavailable and transmission services will be interrupted. In this scheme, however, a single link (non-access link) failure in the network will result in at most one path failure; while a single access link failure will result in at most H / M path failures (where M is the number of access links).

[0056] In one embodiment, the path mapping table includes a forward path mapping table and a reverse path mapping table, such as Figure 3 As shown, the method of this application further includes:

[0057] Step 302: Send a forward path probe packet to the intermediate device according to the data transmission request.

[0058] Step 304: Obtain the reverse path detection packet fed back by the intermediate device, and extract the forward path detection result and the reverse path detection result from the reverse path detection packet.

[0059] Step 306: Construct a forward path mapping table based on the forward path detection results, and construct a reverse path mapping table based on the reverse path detection results.

[0060] The forward path mapping table includes multiple independent forward paths, while the reverse path mapping table includes multiple independent reverse paths. After receiving data from the sending terminal 102, the receiving terminal 104 can process the received data in its response module according to the independent reverse paths. The forward path probe packet includes a network telemetry flag, which is used to obtain the identity of the intermediate device to construct the forward probe path. The forward probe path is used to construct the forward path mapping table. Specifically, the forward path probe packet includes a path probe packet header, which includes an INT (In-Network Telemetry) enable flag, a FINT packet header (with access link ID and INT fields), and Ack info. The Ack info carries the access link ID and source port number of the reverse probe packet (Ack packet) to control the reverse path. The reverse path probe packet refers to the reverse path probe result fed back to the sending terminal 102 by the intermediate device after the reverse path probe is completed. The reverse path probe packet is specifically an Ack packet with an INT header. From this packet, the forward path probe results (located in the payload field) and the reverse path probe results (source port number and intermediate device identifier within the INT header) can be extracted. The intermediate device identifier can specifically be a switch ID sequence. It's important to note that the five-tuple information in the path probe packet is identical to the five-tuple information of subsequent packets using this path, ensuring that the probe packet follows the same path as the data packets. The main difference in subsequent packets sent after the probe packet is the presence of an INT marker. The switch detects this marker and recognizes that INT information needs to be added. This INT marker can be a special string of characters (such as 0x88888888) or a field in the public header (which must not be used by normal data packets). Specifically, regarding the structure and location of the INT header in the path probe packet, generally, this INT header is located after the TCP or UDP header, but it can also be placed deeper. The length and content of the INT marker field in the path probe packet are crucial for accurately identifying the INT requirement of the packet and distinguishing it from ordinary packets. Theoretically, the longer the length, the better, and the more unique the content, the better. In practical applications, the tag field length can be 6-10 bytes, or even longer. Regarding the location of the ack info field in the path probing packet: The ack info mainly carries the access link ID and source port number used for reverse path probing; their order within the ack info field can be reversed. Additionally, the ack info field can be located deeper within the packet.

[0061] Specifically, the scheme in this application includes a path probing step before data transmission. This step is mainly used to construct independent paths by collecting the identity identifiers of intermediate devices along the path. The sending terminal 104 sends a specially formatted probe packet. When an intermediate device, such as a switch, detects this type of packet, it uses the INT function to write its ID into the corresponding position in the packet header. In this way, the probe packet can collect the identity identifiers of all intermediate devices along the path. After receiving the probe packet, the receiving end places the ID sequence in the payload field of the Ack packet and sends it back to the sending end, while simultaneously collecting the switch ID sequence of the Ack packet path. The probe packet uses different source port numbers to achieve different paths in the network. During the data transmission phase, using the path settings obtained in the path probing phase, a path scheduling strategy is used to send data packets to different paths. It is worth noting that the path probing phase and the data transmission phase can be mixed together, without strict separation in time. In particular, when the sending end detects a path failure, it will immediately begin a new path probing. The path probing detects some or all of the independent paths, and subsequent data packets can use these independent paths to send data. During the data transmission phase, probe packets can be sent intermittently to detect more independent paths and enrich the path database. When probing paths, if H represents the number of paths used by the data transmission module, and N represents the number of paths in the path mapping table (i.e., the number of detected independent paths), the goal of path probing is to detect K independent paths, where K is the number of independent paths in the network. The transport layer uses H paths for transmission (H <= K). Before detecting H independent paths, the path probing module will intermittently (e.g., at 100ms intervals) send some path probe packets to detect more independent paths. In this embodiment, path probing is performed by sending path probe packets, and a corresponding path mapping table is constructed. This allows for the efficient construction of independent paths based on the detected path probing results in subsequent processes, enabling ordered multi-path data transmission and ensuring data transmission efficiency.

[0062] During the data probing phase, it is also necessary to configure and process the intermediate devices and the receiving end, which specifically includes:

[0063] The corresponding intermediate device mainly operates at the network layer, and its operation consists of two parts.

[0064] 1) For normal data packets (including Ack packets), i.e. packets without the INT tag, the port is found using the standard 5-tuple-based hash method to determine the next hop route.

[0065] 2) For packets marked with INT, intermediate devices will first update sw_ind = sw_ind + 1, and then insert their own ID number into the corresponding position according to sw_ind. For example, if switch ID = 12 and it detects sw_ind = 3, it will first update sw_ind to 4, and then write 12 into the sw 4 field.

[0066] For the receiving terminal, the work of the receiving terminal component includes two parts: extracting the path probing results of the data packets and sending back the probing results.

[0067] 1) After receiving the forward path probe packet, the receiving end first extracts the INT field information in its packet header, including the identification sequence of the intermediate device and Ack info.

[0068] 2) After extracting the information from the forward path probe packet, the receiving end needs to send the INT information back to the sending end and probe the reverse path information. The reverse path information is obtained by inserting the INT header into the Ack header (same as the forward probe packet), and using the Ack info extracted in 1) to set the source port number of the standard transport layer header (TCP or UDP) and the local access link (if there are multiple links).

[0069] In one embodiment, the reverse path mapping table contains multiple reverse independent paths obtained by detection. Before step 207, the method further includes: sending a path setting message containing the reverse path mapping table to the receiving end. The path setting message is used to notify the receiving end to bind the corresponding response path of the receiving end to each reverse independent path in sequence.

[0070] Specifically, to more effectively obtain the response data from the receiving terminal 104, a path setting message containing a reverse path mapping table can be sent to the receiving terminal 104 before sending data. This informs the receiving terminal 104 to set the response path according to the detected reverse independent path. That is, the receiving terminal needs to replace the random source port number bound to the response path one by one with the source port number of the received reverse independent path and bind it to the corresponding access link ID. This ensures the processing efficiency of the response process. In the embodiments of this application, by sending a path setting message containing a reverse path mapping table to the receiving terminal, message notification can be effectively performed before data transmission, thereby ensuring the processing efficiency of the data response process during multi-path data transmission.

[0071] In one embodiment, after step 207, the method further includes: receiving response data from the receiving end's response module based on the data to be transmitted, wherein the response data is transmitted via a reverse independent path.

[0072] Specifically, during data transmission, after data is sent to the receiving terminal 104, the receiving terminal 104 will send back corresponding response data based on the received data. Since the sending terminal 102 has already sent a path setting message containing a reverse path mapping table to the receiving terminal 104, the response path of the receiving terminal 104 is sequentially bound to each reverse independent path. Thus, this response data can be fed back to the sending terminal 102 through the explored reverse independent paths. The sending terminal 102 then receives the response data fed back by the receiving terminal's response module based on the data to be transmitted, completing the entire data transmission process. In this embodiment, obtaining the response data fed back by the receiving terminal 104 through reverse independent paths can effectively ensure that response data can be received in a timely manner after data transmission, improving the processing efficiency of the multi-path data transmission process.

[0073] In one embodiment, such as Figure 4 As shown, step 306 includes:

[0074] Step 401: Sequentially obtain the forward detection paths from the forward path detection results.

[0075] Step 403: Compare the forward probe path with the paths in the forward path mapping table one by one to obtain the independent comparison results of the forward probe path.

[0076] Step 405: When the independent comparison result indicates that the forward detection path is a forward independent path, add the forward detection path to the forward path mapping table and update the forward path mapping table.

[0077] Among them, the forward exploration path refers to all paths obtained through forward path exploration. These paths may contain overlapping links, so they need to be selected to obtain the forward independent path.

[0078] Specifically, after extracting the detection results, the forward detection paths in the forward path detection results are obtained sequentially. These forward detection paths are then compared with the path detection results already recorded in the forward path mapping table. If the forward detection path is independent of all records in the forward path mapping table, it is added to the table, thus updating the forward path mapping table and proceeding to the processing of the next forward detection path. If the forward path mapping table contains links overlapping with the forward detection path, it indicates that the two are not independent, and the process proceeds to the processing of the next forward detection path. Similarly, the construction of the reverse path mapping table can be performed using the steps described in this embodiment. In this embodiment, by comparing each forward detection path with the paths in the forward path mapping table, paths independent of existing paths in the forward detection path are identified. This effectively finds valid, independent forward paths from multiple detection paths, ensuring the efficiency of the forward path mapping table construction.

[0079] In one embodiment, the method further includes: when the independent comparison result characterizes a forward probe path and there is no overlapping link with the path in the forward path mapping table, the forward probe path is determined to be a forward independent path.

[0080] Specifically, when determining whether the forward probe path and the path in the forward path mapping table are independent, the determination is based on whether there is an overlapping link between them. Specifically, it is necessary to check whether the two paths have at least one overlapping link (the link contains two consecutive identical intermediate device identifiers). If there is, they are not independent; otherwise, they are independent. For example, paths 1 and 2 are [0,1|22,31,45,24,39] and [0,2|22,33,42,24,39] respectively. Because both paths have two consecutive identical intermediate device identifiers (24 and 39), paths 1 and 2 are not independent. However, paths 3 and 2 are [0,3|21,32,44,23,39] and [0,2|22,33,42,24,39] respectively. Because neither path contains two consecutive identical intermediate device identifiers, paths 3 and 2 are independent. Similarly, the identification of reverse independent paths can be performed using the steps in this embodiment. In this embodiment, the identification of independent paths is achieved by using overlapping links, which can effectively ensure the validity of positive independent paths.

[0081] In one embodiment, the forward independent path further includes an access link number and a source port number. Step 106 includes: sequentially replacing the random source port number of the sending path corresponding to the data transmission request with the source port number of each forward independent path, and sequentially binding the sending path to the access link number of each forward independent path.

[0082] Specifically, in addition to containing the identification sequence of intermediate devices, the forward independent path also uses the link number and source port number as keywords. During the binding process of the sending path, after detecting a forward independent path, the random source port number of the sending path corresponding to the data transmission request is sequentially replaced with the source port number of each forward independent path. Simultaneously, the sending path is sequentially bound to the access link number of each forward independent path, thus completing the binding operation between the sending path and the forward independent path. For example... Figure 5As shown, during the initialization phase, both the data transmission module of sending terminal 102 and the response module of receiving terminal 104 randomly select H source port numbers to bind to H paths. The binding of paths to access links uses alternating binding (e.g., paths 1-4 are bound to access links 1, 2, 1, 2 respectively). After an independent path is detected, during path binding, the data transmission module replaces the randomly bound source port numbers on the path one by one with the source port numbers of the independent path, and binds the path to the access link ID of the independent path. This binds the sending path to the forward independent path, allowing data transmission to be performed according to the intermediate device identification sequence of the forward independent path, ensuring the processing efficiency of multi-path data transmission.

[0083] This application also provides an application scenario in which the above-described multipath transmission method is applied. Specifically, the multipath transmission method is applied in this scenario as follows:

[0084] When the sending end needs to transmit a large amount of data, in order to improve the transmission efficiency, the multipath transmission method of this application can be used to transmit data on different independent paths, thereby improving data transmission efficiency while ensuring the reliability of the data transmission process. First, the user needs to specify the receiving end and the data to be sent on the sending end, and then the sending end begins the multipath transmission process. The first step is the path detection process, which can be referred to in detail below. Figure 6 As shown, the sending end probes independent paths by sending multiple forward path probe packets, utilizing the switch's INT function. Upon detecting this type of packet, the switch uses the INT function to write its own ID into the corresponding position in the packet header. In this way, the probe packet can collect the ID sequence of all switches along the path. After receiving the probe packet, the receiving end places this ID sequence in the payload field of the Ack packet and sends it back to the sending end, simultaneously collecting the switch ID sequence of the Ack packet path. Forward path probe packets use different source port numbers to achieve different paths in the network. Specifically, the forward path probe packet contains an INT enable flag, a FINT header (with access link ID and INT fields), and Ack info. The Ack info carries the access link ID and source port number of the reverse probe packet (Ack packet) to control the reverse path; the specific process is described in [reference needed]. Figure 6 Step ①. Simultaneously, the sending end also needs to process the reverse path probe results fed back by the switch. Upon receiving the Ack packet with the INT header, i.e., the reverse path probe packet, the sending end extracts the forward path probe results (located in the payload field) and the reverse path probe results (source port number and the switch ID sequence within the INT header). For details, please refer to... Figure 6Step ⑤ in the above steps. After obtaining the reverse path probe results, the sending end constructs two tables based on the obtained forward and reverse path probe results: a forward path mapping table and a reverse path mapping table. Independent forward and reverse paths are added to these two tables respectively. For the switch, it primarily processes forward path probe packets marked with the INT flag, see... Figure 6 In step ②, the switch first updates sw_ind to sw_ind + 1, and then inserts its own ID number into the corresponding position based on sw_ind. For example, if the switch ID = 12 and it detects sw_ind = 3, it will first update sw_ind to 4, and then write 12 into the sw 4 field. The receiving end, on the other hand, needs to extract the path probing results and feedback probing results from the forward path probing packets during the path probing phase. For details on the packet extraction process, please refer to [link to documentation / reference]. Figure 6 Step ③: After receiving the forward path probe packet, the receiving end first extracts the INT field information from its header, including the switch ID sequence and Ack info. Simultaneously, after extracting the data, it needs to send back the probe results. At this point, the receiving end needs to send the INT information back to the sending end and probe the reverse path information. The reverse path information is obtained by inserting an INT header into the Ack header (similar to the forward probe packet), and using the Ack info extracted in step a) to set the source port number of the standard transport layer header (TCP or UDP) and the local access link (if multiple). This process is repeated multiple times, allowing the sending end to construct a path mapping table containing multiple independent forward paths. When the number of probed paths reaches the required number (i.e., the number of sending paths used by the transport layer), data transmission can begin. It is worth noting that the path probing phase and the data transmission phase can be mixed together, without strict separation in time. Especially when the sending end detects a path failure, it will immediately begin a new path probe. For details on the data transmission process, please refer to [link to relevant documentation]. Figure 7As shown, during the initialization phase, both the data transmission module at the sending end and the response module at the receiving end randomly select H source port numbers and bind them to H paths. The binding of paths to access links uses an alternating binding mechanism. After detecting an independent path, the data transmission module replaces the randomly bound source port numbers on the path with the source port numbers of the independent path, and binds the path to the access link ID of the independent path. After detecting a reverse independent path, the sending end sends a path setting message to notify the receiving end. The receiving end then replaces the randomly bound source port numbers on the path with the received source port numbers of the reverse independent path, and binds them to the corresponding access link ID. This completes the binding of independent paths, and then multi-path data transmission can be performed through these paths. During data transmission, path scheduling is first performed based on the load status of each path (feedback from the congestion control module). The number of packets sent on each path is proportional to the available bandwidth of each path, and the total bandwidth of the data stream is equal to the sum of the available bandwidths of the paths. By using ordered multipath transmission, data can be efficiently transmitted from the sender to the receiver.

[0085] It should be understood that although the steps in the flowcharts of the above embodiments are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the above embodiments may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages of other steps.

[0086] Based on the same inventive concept, this application also provides a multipath transmission apparatus for implementing the multipath transmission method described above. The solution provided by this apparatus is similar to the implementation described in the above method; therefore, the specific limitations in one or more multipath transmission apparatus embodiments provided below can be found in the limitations of the multipath transmission method described above, and will not be repeated here.

[0087] In one embodiment, such as Figure 8 As shown, a multipath transmission device is provided, including: a request acquisition module 801, a mapping table lookup module 803, a path binding module 805, and a data sending module 807, wherein:

[0088] The request acquisition module 801 is used to acquire a data transmission request, which includes the data to be transmitted and the identifier of the receiving end.

[0089] The mapping table lookup module 803 is used to look up the path mapping table based on the identifier of the receiving end. The path mapping table contains multiple forward independent paths obtained through network telemetry.

[0090] The path binding module 805 is used to bind the sending path corresponding to the data transmission request to each forward independent path in sequence.

[0091] The data transmission module 807 is used to query the congestion control module of the transmission path in a polling manner, and to send the data to be transmitted to the receiving end based on the available bandwidth corresponding to the transmission path.

[0092] In one embodiment, the path mapping table includes a forward path mapping table and a reverse path mapping table; the device further includes a path detection module, configured to: send a forward path detection packet to an intermediate device according to a data transmission request; obtain a reverse path detection packet fed back by the intermediate device, and extract the forward path detection results and reverse path detection results from the reverse path detection packet; construct a forward path mapping table based on the forward path detection results, and construct a reverse path mapping table based on the reverse path detection results.

[0093] In one embodiment, the reverse path mapping table contains multiple reverse independent paths obtained through detection, and the device further includes a reverse path feedback module, used to: send a path setting message containing the reverse path mapping table to the receiving end, the path setting message being used to notify the receiving end to sequentially bind the corresponding response path of the receiving end to each reverse independent path.

[0094] In one embodiment, the system further includes a response data receiving module, configured to: receive response data fed back by the response module of the receiving end based on the data to be transmitted, wherein the response data is transmitted via a reverse independent path.

[0095] In one embodiment, the forward path detection packet includes a network telemetry tag, which is used to obtain the identity of intermediate devices to construct a forward detection path, and the forward detection path is used to construct a forward path mapping table.

[0096] In one embodiment, the path detection module is specifically used to: sequentially obtain the forward detection paths in the forward path detection results; compare the forward detection paths with the paths in the forward path mapping table one by one to obtain the independent comparison results of the forward detection paths; when the independent comparison results indicate that the forward detection path is a forward independent path, add the forward detection path to the forward path mapping table and update the forward path mapping table.

[0097] In one embodiment, the path detection module is specifically used to: determine the forward detection path as a forward independent path when the independent comparison result represents a forward detection path and there is no overlapping link with the path in the forward path mapping table.

[0098] In one embodiment, the path binding module 805 is specifically used to: sequentially replace the random source port number of the sending path corresponding to the data transmission request with the source port number of each forward independent path, and sequentially bind the sending path to the access link number of each forward independent path.

[0099] Each module in the aforementioned multipath transmission device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in or independent of the processor in a computer device, or stored in the memory of a computer device as software, so that the processor can call and execute the operations corresponding to each module.

[0100] In one embodiment, a computer device is provided, which may be a terminal, and its internal structure diagram may be as follows: Figure 9 As shown, the computer device includes a processor, memory, input / output interfaces, a communication interface, a display unit, and an input device. The processor, memory, and input / output interfaces are connected via a system bus, and the communication interface, display unit, and input device are also connected to the system bus via the input / output interfaces. The processor provides computing and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The input / output interfaces are used for exchanging information between the processor and external devices. The communication interface is used for wired or wireless communication with external terminals; wireless communication can be achieved through Wi-Fi, mobile cellular networks, NFC (Near Field Communication), or other technologies. When the computer program is executed by the processor, it implements a multipath transmission method. The display unit of the computer device is used to form a visually visible image. It can be a display screen, a projection device, or a virtual reality imaging device. The display screen can be an LCD screen or an e-ink screen. The input device of the computer device can be a touch layer covering the display screen, or buttons, trackballs, or touchpads set on the casing of the computer device, or external keyboards, touchpads, or mice, etc.

[0101] Those skilled in the art will understand that Figure 9 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.

[0102] In one embodiment, a computer device is also provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps in the above method embodiments.

[0103] In one embodiment, a computer-readable storage medium is provided storing a computer program that, when executed by a processor, implements the steps in the above method embodiments.

[0104] In one embodiment, a computer program product or computer program is provided, the computer program product or computer program including computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and executes the computer instructions, causing the computer device to perform the steps in the above method embodiments.

[0105] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of the relevant data shall comply with the relevant laws, regulations and standards of the relevant countries and regions.

[0106] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium. When executed, the computer program can include the processes of the embodiments of the above methods. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, etc., and are not limited to these.

[0107] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0108] The above embodiments are merely illustrative of several implementation methods of this application, and their descriptions are relatively specific and detailed. However, they should not be construed as limiting the scope of this application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.

Claims

1. A multipath transmission method, characterized in that, The method includes: Obtain a data transmission request, wherein the data transmission request includes the data to be transmitted and the identifier of the receiving end; The path mapping table is searched according to the identifier of the receiving end. The path mapping table contains multiple forward independent paths obtained through network telemetry. Each of the forward independent paths is independent of each other, and there are no overlapping links between the forward independent paths. An overlapping link refers to two consecutive paths with the same intermediate device identity identifier. The random source port number of the sending path corresponding to the data transmission request is replaced sequentially with the source port number of each forward independent path, and the sending path is sequentially bound to the access link number of each forward independent path; The congestion control module of the transmission path is queried in a round-robin manner, and the data to be transmitted is sent to the receiving end based on the available bandwidth corresponding to the transmission path. The congestion control module controls the number of packets sent on each transmission path to be proportional to the available bandwidth of each transmission path.

2. The method according to claim 1, characterized in that, The path mapping table includes a forward path mapping table and a reverse path mapping table; the method further includes: A forward path detection packet is sent to the intermediate device according to the data transmission request; Obtain the reverse path detection packet fed back by the intermediate device, and extract the forward path detection result and the reverse path detection result from the reverse path detection packet; A forward path mapping table is constructed based on the forward path detection results, and a reverse path mapping table is constructed based on the reverse path detection results.

3. The method according to claim 2, characterized in that, The reverse path mapping table contains multiple independent reverse paths obtained through detection. Before the congestion control module queries the sending path in a round-robin manner to send the data to be transmitted based on the available bandwidth corresponding to the sending path, the method further includes: A path setting message containing a reverse path mapping table is sent to the receiving end. The path setting message is used to notify the receiving end to bind the corresponding response path of the receiving end to each independent reverse path in sequence.

4. The method according to claim 3, characterized in that, After the congestion control module queries the transmission path in a polling manner to send the data to be transmitted based on the available bandwidth corresponding to the transmission path, the method further includes: The receiving end receives response data from the receiving end based on the data to be transmitted, and the response data is transmitted through the reverse independent path.

5. The method according to claim 2, characterized in that, The forward path detection packet includes a network telemetry tag, which is used to obtain the identity of the intermediate device to construct a forward detection path. The forward detection path is used to construct the forward path mapping table.

6. The method according to claim 5, characterized in that, Constructing a forward path mapping table based on the forward path detection results includes: The forward detection path is sequentially obtained from the forward path detection results; The forward detection path is compared one by one with the paths in the forward path mapping table to obtain the independent comparison results of the forward detection path; When the independent comparison result indicates that the forward detection path is a forward independent path, the forward detection path is added to the forward path mapping table, and the forward path mapping table is updated.

7. The method according to claim 6, characterized in that, The method further includes: When the independent comparison result indicates that the forward detection path has no overlapping links with the paths in the forward path mapping table, the forward detection path is determined to be a forward independent path.

8. A multipath transmission device, characterized in that, The device includes: The request acquisition module is used to acquire a data transmission request, which includes the data to be transmitted and the identifier of the receiving end; The mapping table lookup module is used to look up the path mapping table according to the identifier of the receiving end. The path mapping table contains multiple forward independent paths obtained through network telemetry. Each of the forward independent paths is independent of each other, and there are no overlapping links between the forward independent paths. An overlapping link refers to two consecutive paths with the same intermediate device identity identifier. The path binding module is used to sequentially replace the random source port number of the sending path corresponding to the data transmission request with the source port number of each forward independent path, and sequentially bind the sending path to the access link number of each forward independent path. The data transmission module is used to query the congestion control module of the transmission path in a polling manner, and to send the data to be transmitted to the receiving end based on the available bandwidth corresponding to the transmission path.

9. The apparatus according to claim 8, characterized in that, The path mapping table includes a forward path mapping table and a reverse path mapping table; the device also includes a path detection module, configured to: send a forward path detection packet to an intermediate device according to the data transmission request; obtain a reverse path detection packet fed back by the intermediate device, and extract the forward path detection results and reverse path detection results from the reverse path detection packet; construct a forward path mapping table based on the forward path detection results, and construct a reverse path mapping table based on the reverse path detection results.

10. The apparatus according to claim 9, characterized in that, The reverse path mapping table contains multiple independent reverse paths obtained through detection. The device also includes a reverse path feedback module, which is used to: send a path setting message containing the reverse path mapping table to the receiving end. The path setting message is used to notify the receiving end to bind the corresponding response path of the receiving end to each independent reverse path in sequence.

11. The apparatus according to claim 10, characterized in that, It also includes a response data receiving module, used to: receive response data fed back by the response module of the receiving end based on the data to be transmitted, the response data being transmitted through the reverse independent path.

12. The apparatus according to claim 9, characterized in that, The forward path detection packet includes a network telemetry tag, which is used to obtain the identity of the intermediate device to construct a forward detection path. The forward detection path is used to construct the forward path mapping table.

13. The apparatus according to claim 12, characterized in that, The path detection module is specifically used to: sequentially obtain the forward detection paths from the forward path detection results; compare the forward detection paths with the paths in the forward path mapping table one by one, and obtain the independent comparison results of the forward detection paths; When the independent comparison result indicates that the forward detection path is a forward independent path, the forward detection path is added to the forward path mapping table, and the forward path mapping table is updated.

14. The apparatus according to claim 13, characterized in that, The path detection module is specifically used to: determine the forward detection path as a forward independent path when the independent comparison result characterizes the forward detection path and there is no overlapping link with the path in the forward path mapping table.

15. A computer device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 7.

16. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 7.

17. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Method for reducing influence of data packet disorder on SCTP multipath transmission

    CN101895466A

  • Multi-path transmission method based on software-defined network

    CN105337857A

  • In-band network telemetering method and system and computer readable storage medium

    CN112422498A