[go: up one dir, main page]

CN116846816A - Multipath transmission method, multipath transmission device, computer equipment and storage medium - Google Patents

Multipath transmission method, multipath transmission device, computer equipment and storage medium Download PDF

Info

Publication number
CN116846816A
CN116846816A CN202210288498.0A CN202210288498A CN116846816A CN 116846816 A CN116846816 A CN 116846816A CN 202210288498 A CN202210288498 A CN 202210288498A CN 116846816 A CN116846816 A CN 116846816A
Authority
CN
China
Prior art keywords
path
data
independent
mapping table
paths
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210288498.0A
Other languages
Chinese (zh)
Inventor
叶君宏
王发强
罗新冬
金峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210288498.0A priority Critical patent/CN116846816A/en
Publication of CN116846816A publication Critical patent/CN116846816A/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present application relates to a multipath transmission method, apparatus, computer device, storage medium and computer program product. The method comprises the steps of obtaining a data transmission request, wherein the data transmission request comprises data to be transmitted and an identifier of a receiving end; searching a path mapping table according to the identification of the receiving end, wherein the path mapping table comprises 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; and inquiring a congestion control module of the sending path in a polling mode to send data to be transmitted to the receiving end based on the available bandwidth corresponding to the sending path. In the scheme of the application, when data is transmitted, the transmitting paths are bound according to the forward independent paths acquired by detection, so that the data is transmitted to the receiving end through different forward independent paths in a polling mode, and the data is transmitted according to the available bandwidth through the congestion control module by combining the load condition of the forward independent paths, thereby effectively improving the transmission reliability.

Description

Multipath transmission method, multipath transmission device, computer equipment and storage medium
Technical Field
The present application relates to the field of computer technology, and in particular, to a multipath transmission method, apparatus, computer device, storage medium and computer program product.
Background
There are multiple paths between any pair of server nodes in the data center network, and often these paths are all Equal length, so that Equal Cost Multi-Path (ECMP). In general, the switch first obtains the candidate port according to the destination IP using the routing table. Under the condition that a plurality of candidate ports exist, the switch can perform hash calculation on the five-tuple of the packet header to select one output port, so that the packets with the same five-tuple can be sent out from the same output port, and the final effect is that paths of the packets with the same five-tuple are consistent. The routing arrangement can lead different data flows of one node pair to take different paths to a certain extent, and load balancing is carried out. The packets of a conventional data stream take only one path. If the path is relatively congested, it also has to tolerate congestion, send at a slow rate, and share bandwidth with the congested traffic. If one of the paths it follows fails, the flow will be interrupted. Therefore, there is a need to improve the availability and reliability of data transmission by means of a multipath transmission scheme.
Currently, the MultiPath transmission scheme of the data center mainly includes MultiPath techniques based on changing quintuples, such as MPTCP (MultiPath TCP), QUIC (Quick UDP Internet Connection, UDP-based low-latency internet transport layer protocol). However, in these schemes, multipath transmission is realized by simply changing the source port number of the sub-streams and relying on the ECMP hash function of the switch in the network, so that the paths of multiple sub-streams are partially overlapped, and even the paths of multiple sub-streams are completely consistent, so that the reliability of multipath transmission cannot be ensured.
Disclosure of Invention
In view of the foregoing, it is desirable to provide a multipath transmission method, apparatus, computer device, computer readable storage medium and computer program product capable of ensuring the reliability of multipath transmission.
In a first aspect, the present application provides a multipath transmission method. The method comprises the following steps:
acquiring a data transmission request, wherein the data transmission request comprises data to be transmitted and an identifier of a receiving end;
searching a path mapping table according to the identification of the receiving end, wherein the path mapping table comprises a plurality of forward independent paths obtained through network telemetry;
Binding the sending paths corresponding to the data transmission requests to each forward independent path in sequence;
and inquiring a congestion control module of the sending path in a polling mode, so as to send the data to be transmitted to the receiving end based on the available bandwidth corresponding to the sending path.
In a second aspect, the present application further provides a multipath transmission device. The device comprises:
the request acquisition module is used for acquiring a data transmission request, wherein the data transmission request comprises data to be transmitted and an identifier of a receiving end;
the mapping table searching module is used for searching a path mapping table according to the identification of the receiving end, wherein the path mapping table comprises a plurality of forward independent paths obtained through network telemetry;
the path binding module is used for sequentially binding the sending paths corresponding to the data transmission requests to each forward independent path;
and the data sending module is used for inquiring the congestion control module of the sending path in a polling mode so as to send the data to be transmitted to the receiving end based on the available bandwidth corresponding to the sending path.
In a third aspect, the present application also provides a computer device. The computer device comprises a memory storing a computer program and a processor which when executing the computer program performs the steps of:
Acquiring a data transmission request, wherein the data transmission request comprises data to be transmitted and an identifier of a receiving end;
searching a path mapping table according to the identification of the receiving end, wherein the path mapping table comprises a plurality of forward independent paths obtained through network telemetry;
binding the sending paths corresponding to the data transmission requests to each forward independent path in sequence;
and inquiring a congestion control module of the sending path in a polling mode, so as to send the data to be transmitted to the receiving end based on the available bandwidth corresponding to the sending path.
In a fourth aspect, the present application also provides a computer-readable storage medium. The computer readable storage medium having stored thereon a computer program which when executed by a processor performs the steps of:
acquiring a data transmission request, wherein the data transmission request comprises data to be transmitted and an identifier of a receiving end;
searching a path mapping table according to the identification of the receiving end, wherein the path mapping table comprises a plurality of forward independent paths obtained through network telemetry;
binding the sending paths corresponding to the data transmission requests to each forward independent path in sequence;
And inquiring a congestion control module of the sending path in a polling mode, so as to send the data to be transmitted to the receiving end based on the available bandwidth corresponding to the sending path.
In a fifth aspect, the present application also provides a computer program product. The computer program product comprises a computer program which, when executed by a processor, implements the steps of:
acquiring a data transmission request, wherein the data transmission request comprises data to be transmitted and an identifier of a receiving end;
searching a path mapping table according to the identification of the receiving end, wherein the path mapping table comprises a plurality of forward independent paths obtained through network telemetry;
binding the sending paths corresponding to the data transmission requests to each forward independent path in sequence;
and inquiring a congestion control module of the sending path in a polling mode, so as to send the data to be transmitted to the receiving end based on the available bandwidth corresponding to the sending path.
The multipath transmission method, the multipath transmission device, the computer equipment, the storage medium and the computer program product are characterized in that a data transmission request is obtained, wherein the data transmission request comprises data to be transmitted and the identification of a receiving end; searching a path mapping table according to the identification of the receiving end, wherein the path mapping table comprises 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; and inquiring a congestion control module of the sending path in a polling mode to send data to be transmitted to the receiving end based on the available bandwidth corresponding to the sending path. In the scheme of the application, when data is transmitted, the transmitting paths are bound according to the forward independent paths acquired by detection, so that the data is transmitted to the receiving end through different forward independent paths in a polling mode, and the data is transmitted according to the available bandwidth through the congestion control module by combining the load condition of the forward independent paths, thereby effectively improving the transmission reliability.
Drawings
FIG. 1 is a diagram of an application environment of a multi-path transmission method in one embodiment;
FIG. 2 is a flow chart of a multi-path transmission method according to an embodiment;
FIG. 3 is a flow chart of a path exploration step in one embodiment;
FIG. 4 is a flow diagram of a step of updating a forward path map in one embodiment;
FIG. 5 is a schematic diagram of a data transmission and path selection process in one embodiment;
FIG. 6 is a schematic diagram of a path detection stage in one embodiment;
FIG. 7 is a schematic diagram of a data transmission phase in one embodiment;
fig. 8 is a block diagram of a multipath transmission device according to an embodiment;
fig. 9 is an internal structural diagram of a computer device in one embodiment.
Detailed Description
The present application will be described in further detail with reference to the drawings and examples, in order to make the objects, technical solutions and advantages of the present application more apparent. It should be understood that the specific embodiments described herein are for purposes of illustration only and are not intended to limit the scope of the application.
Cloud technology (Cloud technology) is a generic term of network technology, information technology, integration technology, management platform technology, application technology and the like based on Cloud computing business model application, and can form a resource pool, so that the Cloud computing business model application system is flexible and convenient as required. Background services of technical networking systems require a large amount of computing, storage resources, such as video websites, picture-like websites, and more portals. Along with the high development and application of the internet industry, each article possibly has an own identification mark in the future, the identification mark needs to be transmitted to a background system for logic processing, data with different levels can be processed separately, and various industry data needs strong system rear shield support and can be realized only through cloud computing. The scheme of the application relates to data transmission through cloud technology.
The multipath transmission method provided by the embodiment of the application can be applied to an application environment shown in fig. 1. The sending terminal 102 communicates with the receiving terminal 104 through a network, and a plurality of intermediate devices are included between the terminal 102 and the terminal 104, and the communication needs to be performed by means of the intermediate devices. When a user on the side of the transmitting terminal 102 needs to transmit data to the receiving terminal 104, a corresponding data transmission request may be submitted to the terminal 102. The terminal 102 obtains a data transmission request, wherein the data transmission request comprises data to be transmitted and an identifier of the receiving terminal 104; searching a path mapping table according to the identification of the receiving end, wherein the path mapping table comprises a plurality of forward independent paths obtained through network telemetry, and the forward independent paths comprise the identification of the intermediate equipment; sequentially binding a sending path corresponding to the data transmission request to each forward independent path; the congestion control module of the transmission path is queried in a polling manner to transmit data to be transmitted to the receiving terminal 104 based on the available bandwidth corresponding to the transmission path. The sending terminal 102 and the receiving terminal 104 may be, but not limited to, various desktop computers, notebook computers, smart phones, tablet computers, internet of things devices and portable wearable devices, and the internet of things devices may be smart speakers, smart televisions, smart air conditioners, smart vehicle devices, and the like. The portable wearable device may be a smart watch, smart bracelet, headset, or the like. The intermediate device may be implemented by a switch or a router or the like.
In one embodiment, as shown in fig. 2, a multi-path transmission method is provided, and the method is applied to the transmitting terminal 102 in fig. 1, for example, and includes the following steps:
step 201, a data transmission request is acquired, where the data transmission request includes data to be transmitted and an identifier of a receiving end.
The data transmission request refers to a request made by a worker on the side of the transmitting terminal 102, for requesting the transmitting terminal 102 to transmit corresponding data to the receiving terminal 104. The data to be transmitted is the data to be transmitted in the transmission process, and the data to be transmitted may specifically include a plurality of different data packets, and the sending terminal 102 may transmit the data packets to the receiving terminal through different independent transmission paths by using a multi-path transmission manner. And the identity of the receiving end is used to specify the receiving end of the data.
Specifically, when a worker on the side of the transmitting terminal 102 needs to transmit a large amount of data, in order to improve the data transmission efficiency, different transmission paths may be selected for transmission through different intermediate device nodes in the network, so as to ensure the transmission efficiency. At this time, the user may submit a corresponding data transmission request to the transmitting terminal 102, and specify data to be transmitted in the data transmission request, and at the same time, specify who the receiving end is responsible for receiving the data on the attachment.
Step 203, a path mapping table is searched according to the identifier of the receiving end, wherein the path mapping table comprises a plurality of forward independent paths obtained through network telemetry.
The independent paths comprise a plurality of mutually independent transmission paths, the independent paths are mutually independent, and no overlapped link exists. The independent paths are divided into a forward independent path, which is a transmission path from a transmitting end to a receiving end, and a reverse independent path, which is a transmission path from the receiving end to the transmitting end. The forward independent paths specifically refer to data transmission paths obtained in advance through path detection, the forward independent paths are constructed by the identities of a plurality of intermediate devices between a sending terminal and a receiving terminal by taking a link number and a source port number as keywords, so that corresponding transmission links can be identified based on the identities of the intermediate devices, data packets of data to be transmitted are sent to the receiving terminal by means of the forward independent paths, meanwhile, each path in the forward independent paths is independent of each other, and each forward independent path has no overlapped link. The path mapping table includes the forward independent paths, so that the path mapping table between the transmitting terminal 102 and the receiving terminal 104 can be searched according to the identifier of the receiving terminal, and then the forward independent paths are acquired by means of the path mapping table, so as to perform multipath transmission based on the forward independent paths.
Specifically, in order to ensure the efficiency of data transmission in multipath data transmission, it is necessary to distribute data packets to different transmission paths as much as possible according to the load bandwidth of the paths, and transmit the data packets. The scheme of the application needs to construct a corresponding path mapping table so as to acquire a plurality of independent forward independent paths, and then, data transmission is carried out based on the independent forward paths, wherein each independent forward path can be sequentially allocated with data packets in data to be transmitted for transmission. When the path mapping table is obtained, the path mapping table which is built in advance can be read, or the detection is carried out through the network telemetry technology, so that the path mapping table is obtained.
Step 205, binding the sending paths corresponding to the data transmission request to each forward independent path in turn.
Specifically, the transport layer of the sending terminal 102 includes a sending module to send data, and the sending module includes a plurality of sending paths, and during data sending, the sending paths can be sequentially bound to each searched forward independent path, so that data sending processing can be performed on the sending paths based on the intermediate equipment identity in the forward independent path.
Step 207, query the congestion control module of the sending path in a polling manner, so as to send the data to be transmitted to the receiving end based on the available bandwidth corresponding to the sending path.
Each of the data transmission modules has a congestion control module, and the congestion control module may feed back the load status of the current transmission path to the transmitting terminal 102. The polling refers to that the CPU sends out inquiry at regular time, and inquires whether each peripheral device needs its service or not in sequence, if so, the service is given, and after the service is finished, the next peripheral is inquired, and then the process is repeated. I.e. each transmission path is accessed in turn, when the congestion control module of the transmission path allows transmission, the message of the data to be transmitted is sent out 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 a next path p= (p+1)%H, and transmission is requested.
Specifically, after the transmission paths corresponding to the data transmission requests are sequentially bound to each forward independent path, each transmission path corresponds to each independent path, and no overlapped link exists between the transmission paths, so that interference cannot be generated. At this time, each transmission path can be accessed in turn in a polling mode, the transmission processing of the data message is performed based on the congestion control module in the transmission path, and when in transmission, the available bandwidth of the paths is combined, namely, the number of packets transmitted on each path is controlled to be proportional to the available bandwidth of each path through the congestion control module, and the total bandwidth of the data flow is equal to the sum of the available bandwidths of the paths.
According to the multi-path transmission method, the data transmission request is obtained, and the data transmission request comprises the data to be transmitted and the identification of the receiving end; searching a path mapping table according to the identification of the receiving end, wherein the path mapping table comprises 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; and inquiring a congestion control module of the sending path in a polling mode to send data to be transmitted to the receiving end based on the available bandwidth corresponding to the sending path. In the scheme of the application, when data is transmitted, the transmitting paths are bound according to the forward independent paths acquired by detection, so that the data is transmitted to the receiving end through different forward independent paths in a polling mode, and the data is transmitted according to the available bandwidth through the congestion control module by combining the load condition of the forward independent paths, thereby effectively improving the transmission reliability. According to the scheme, when multi-path data transmission is carried out, the characteristics of equal-cost multi-path of a data center network can be utilized in the original place, the bandwidth of the multi-path is fully utilized, the bandwidth of the network of two access links can be increased by 100%, and the bandwidth of the network of M access links can be increased by 100%. Meanwhile, the reliability and usability of the transport layer service can be greatly improved. For example, in a conventional ECMP multipath scheme, multiple paths may overlap on the same link, and if the link fails, all paths are not available and the transmission service is interrupted. In the scheme, the failure of a single link (non-access link) in the network leads to failure of 1 path at most; and one access link failure results in at most an H/M path failure (M is the number of access links).
In one embodiment, the path mapping table includes a forward path mapping table and a reverse path mapping table, as shown in fig. 3, the method of the present application further includes:
step 302, sending a forward path detection packet to the intermediate device according to the data transmission request.
Step 304, a reverse path detection packet fed back by the intermediate device is obtained, and a positive path detection result and a reverse path detection result in the reverse path detection packet are extracted.
Step 306, constructing a forward path mapping table according to the forward path detection result, and constructing a reverse path mapping table according to the reverse path detection result.
The forward path mapping table includes a plurality of forward independent paths, and the reverse path mapping table correspondingly includes a plurality of reverse independent paths, and after receiving the data sent by the sending terminal 102, the receiving terminal 104 may perform response processing on the received data according to the reverse independent paths on a response module of the receiving terminal 104. The forward path detection packet comprises a network telemetry mark, wherein the network telemetry mark is used for acquiring an identity of the intermediate equipment to construct a forward detection path, and the forward detection path is used for constructing a forward path mapping table. Specifically, the forward path probing packet includes a path probing packet header including an INT (In-Network Telemetry, network telemetry) enable flag, a fin packet header (with an access link ID and an INT field), and an Ack info. The Ack info carries an access link ID (link ID) and a source port number of a reverse probe packet (Ack packet) to control a reverse path. The reverse path probe packet refers to a reverse path probe result fed back to the transmitting terminal 102 via the intermediate device after the reverse path probe is completed. The reverse path probe packet is specifically an Ack packet with an INT packet header, from which a forward path probe result (located in the payload field) and a reverse path probe result (source port number and an intermediate device id in the INT packet header) can be extracted. The intermediate device identity may specifically be a switch ID sequence. It should be noted that the five-tuple information in the path detection packet is identical to the five-tuple information of the data packet that uses the path later, so that the path taken by the detection packet is identical to the path taken by the data packet. The difference of the data packet sent by the probe packet is mainly that the probe packet contains an INT mark, and the switch detects the mark and recognizes that INT information needs to be marked. The INT tag may be a special string of characters (e.g., 0x 8888888) or a field of a common header (not used by normal packets). In particular, the structure and location of the INT packet header for the path probing packet. Typically, this INT header is located after the TCP or UDP header, but can be placed at a deeper location. The length and content of the INT label field for the path probe packet. This field is mainly used to accurately identify the INT requirements of the message and is different from the ordinary message. The longer the theoretical length, the better, the more unique the content thereof. In practical application, the length of the tag field may be 6-10 bytes or longer. The location of the ack info field for the path probe packet. ack info mainly carries the access link ID and source port number for reverse path probing, whose positional arrangement of fields in ack info can be reversed. In addition, the location of the ack info field may also be deeper.
Specifically, before sending data, the scheme of the application further comprises a path detection step, wherein the path detection step is mainly used for constructing an independent path from the collected identity of the intermediate equipment on the path. The transmitting terminal 104 transmits a probe packet of a special format, and after the intermediate device such as a switch detects the packet of this type, it uses the INT function to write its ID into the corresponding position of the packet header. Thus, the probe packet can collect the identities of all the intermediate devices on the path. After receiving the probe packet, the receiving end will send the ID sequence back to the transmitting end in the payload field of the Ack packet, and collect the switch ID sequence of the Ack packet path. Probe packets use different source port numbers to enable different paths to be taken in the network. And in the data transmission stage, transmitting the data packets on different paths by using a path scheduling strategy by using the path setting obtained in the path detection stage. It is noted that the path detection phase and the data transmission phase may be mixed together, without strict separation in time, and especially when the transmitting end detects a path failure, new path detection is started immediately. The path detection detects a part or all of the independent paths, and the data packet transmitted subsequently can use the independent paths to transmit data. In the data transmission stage, some detection packets can be transmitted at intervals to detect more independent paths and enrich the path library. In detecting paths, if H represents the number of paths used by the data transmission module, N represents the number of paths of the path mapping table (i.e., the number of detected independent paths). The goal of path detection is to detect K independent paths, K being the number of independent paths in the network, the transport layer uses H paths for transmission (H < = K). The path detection module may intermittently (e.g., 100ms apart) send some path detection packets to detect more independent paths before H independent paths are detected. In this embodiment, path detection is performed by sending a path detection packet, and a corresponding path mapping table is constructed, so that an independent path can be effectively constructed according to the detected path detection result in the subsequent process, and orderly multi-path data transmission is performed, thereby ensuring the efficiency of data transmission.
In the data detection stage, setting processing is required to be performed on the intermediate device and the receiving end, and the method specifically comprises the following steps:
the corresponding intermediate device, which mainly operates at the network layer, comprises two parts,
1) For normal data packets (including Ack packets), i.e. packets without an INT tag, the port is found for next hop routing using standard five-tuple based hashing methods.
2) For packets with an INT flag, the intermediate device will update sw_ind=sw_ind+1 first and then insert its ID number into the corresponding location according to sw_ind. For example, switch id=12, which detects sw_ind=3, then sw_ind is updated to 4, and then 12 is written into the field of sw 4.
For a receiving terminal, the operation of the receiving terminal assembly includes two parts: extracting path detection result and loopback detection result of data packet.
1) After receiving the forward path detection packet, the receiving end firstly takes out INT field information in the packet header, including the identity identification sequence and Ack info of the intermediate equipment.
2) After the information of the forward path detection packet is extracted, the receiving end needs to send the INT information back to the transmitting end, and detects the reverse path information. Reverse path information is obtained by inserting an INT packet header (like a forward probe packet) in an Ack packet header and setting the source port number of a standard transport layer packet header (TCP or UDP) and the native access link (if there are multiple) with the Ack info extracted in 1).
In one embodiment, the reverse path mapping table includes a plurality of reverse independent paths acquired by probing, and before step 207, the method further includes: and sending a path setting message containing the reverse path mapping table to the receiving end, wherein the path setting message is used for notifying the receiving end and binding the response paths corresponding to the receiving end to each reverse independent path in sequence.
Specifically, in order to obtain the response data fed back by the receiving terminal 104 more effectively, before sending the data, a path setting message including a reverse path mapping table may be sent to the receiving terminal 104, so as to inform the receiving terminal 104 to set the response path according to the detected reverse independent path, that is, the receiving terminal needs to use the source port number of the received reverse independent path to replace the random source port number bound on the response path one by one, and bind to the corresponding access link ID. Thereby ensuring the processing efficiency of the response process. In the embodiment of the application, the message notification can be effectively carried out before the data transmission by sending the path setting message containing the reverse path mapping table to the receiving end, thereby ensuring the processing efficiency of the data response processing process in the multipath data transmission process.
In one embodiment, after step 207, further comprises: and the response module of the receiving end transmits the response data through a reverse independent path according to the response data fed back by the data to be transmitted.
Specifically, in the data transmission process, after the data is sent to the receiving terminal 104, the receiving terminal 104 feeds back corresponding response data according to the received data, and since the sending terminal 102 has sent a path setting message including a reverse path mapping table to the receiving terminal 104, the response paths of the receiving terminal 104 are sequentially bound to each reverse independent path, so that the response data can be fed back to the sending terminal 102 through the reverse independent paths obtained by searching, and the sending terminal 102 then receives the response data fed back by the response module of the receiving terminal according to the data to be transmitted, so as to complete the complete flow of the data transmission process. In this embodiment, the response data fed back by the receiving terminal 104 is obtained through the reverse independent path, so that the response data can be effectively guaranteed to be received in time after the data is sent, and the processing efficiency of the multipath data sending process is improved.
In one embodiment, as shown in FIG. 4, step 306 includes:
step 401, sequentially acquiring forward detection paths in the forward path detection results.
Step 403, comparing the forward detection paths with paths in the forward path mapping table one by one, and obtaining independent comparison results of the forward detection paths.
And step 405, when the independent comparison result represents that the forward detection path is a forward independent path, adding the forward detection path into a forward path mapping table, and updating the forward path mapping table.
The forward exploration path refers to all paths obtained through forward path exploration, and the paths may include links overlapped with each other, so that selection is needed to obtain a forward independent path.
Specifically, after the detection result is extracted, the forward detection paths in the forward path detection result are sequentially obtained, so that the forward detection paths of the detection result are compared with the path detection results recorded in the forward path mapping table, if all records in the forward detection paths and the forward path mapping table are mutually independent, the forward detection paths and the forward path mapping table are added into the table, so that the forward path mapping table is updated, and the processing procedure of the next forward detection path is skipped. If the forward path mapping table contains a link overlapped with the forward detection path, the link and the forward detection path are not independent, and the processing procedure of the next forward detection path can be skipped. Similarly, for the construction of the reverse path mapping table, reference may be made to the steps in this embodiment. In this embodiment, paths independent of the existing paths in the forward detection paths are identified by comparing the forward detection paths with paths in the forward path mapping table one by one, so that effective forward independent paths can be effectively found out from a plurality of detection paths, and the construction efficiency of the forward path mapping table is ensured.
In one embodiment, the method further comprises: and when the independent comparison result represents the forward detection path and the path in the forward path mapping table does not have an overlapped link, determining the forward detection path as a forward independent path.
Specifically, when judging whether the paths in the forward detection path and the forward path mapping table are independent of each other, specifically, judging based on whether an overlapped link exists between the paths, specifically, whether at least one overlapped link exists between the two paths (the link contains two continuous identical intermediate equipment identities) needs to be checked, and if the paths are not independent, the paths are not independent. Such as 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 2 consecutive middleware identities identical (24 and 39), paths 1 and 2 are not independent of each other. And, for example, paths 3 and 2 are [0,3|21,32, 44,23,39] and [0,2|22,33,42,24,39], respectively. Since both paths do not contain 2 consecutive intermediate device identities, paths 3 and 2 are independent of each other. Similarly, for the identification of the reverse independent path, reference may be made to the steps in this embodiment. In this embodiment, the identification of the independent paths is performed by overlapping the links, so that the validity of the forward independent paths can be effectively ensured.
In one embodiment, the forward independent path further includes an access link number and a source port number, and step 106 includes: and 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.
Specifically, in addition to the identification sequence of the intermediate device, the forward independent path uses the link number and the source port number as keywords, and when the binding processing of the transmission path is performed, after the forward independent path is detected, the random source port number of the transmission path corresponding to the data transmission request can be replaced by the source port number of each forward independent path in turn, and meanwhile, the transmission path is sequentially bound to the access link number of each forward independent path, so that the binding processing operation between the transmission path and the forward independent path is completed. As shown in fig. 5, in the initialization stage, the data sending module of the sending terminal 102 and the response module of the receiving terminal 104 randomly select H source port numbers to bind to H paths, and the paths and the access links are bound alternately (e.g. paths 1-4 are bound to access links 1,2, respectively). After detecting the independent path, when the path binding is performed, the data sending module uses the source port numbers of the independent path to replace the random source port numbers bound on the path one by one, and binds the path to the access link ID of the independent path. Therefore, the sending path and the forward independent path are bound, data transmission can be carried out according to the intermediate equipment identity identification sequence of the forward independent path, and the processing efficiency of the multipath data transmission process is ensured.
The application also provides an application scene, which applies the multi-path transmission method. Specifically, the application of the multi-path transmission method in the application scene is as follows:
when a transmitting end needs to transmit a large amount of data, the multi-path transmission method can be used for transmitting the data on different independent paths for the transmission efficiency of the data transmission process, so that the reliability of the data transmission process is ensured while the data transmission efficiency is improved. First, a user needs to designate a receiving end of data and the data to be transmitted on a transmitting end, and the transmitting end starts a process of multipath transmission. First, a path detection process, specifically, as shown in fig. 6, may refer to a path detection process, where a transmitting end detects mutually independent paths by using an INT function of a switch by transmitting a plurality of forward path detection packets. After the switch detects this type of packet, it uses the INT function to write its ID into the corresponding position of the packet header. In this way, probe packets can collect the ID sequences of all switches on the path. After receiving the probe packet, the receiving end will send the ID sequence back to the transmitting end in the payload field of the Ack packet, and collect the switch ID sequence of the Ack packet path. The forward path probing packets use different source port numbers to effect different paths to be taken in the network. Specifically, the forward path probe packet includes an INT enable flag, a fin header (with an access link ID and an INT field), and an Ack info. The Ack info carries the access link ID (link ID) and the source port number of the reverse probe packet (Ack packet) to control the reverse path, and the specific procedure refers to step (1) in fig. 6. Meanwhile, the transmitting end also needs to process the reverse path detection result fed back by the switch, and after receiving the Ack packet with the INT packet header, that is, the reverse path detection packet, the transmitting end extracts the forward path detection result (located in the payload load field) and the reverse path detection result (the source port number and the switch ID sequence in the INT packet header), which can refer to step (5) in fig. 6 specifically. And after the reverse path detection result is obtained, the transmitting end constructs two tables, namely a forward path mapping table and a reverse path mapping table, based on the obtained forward path detection result and reverse path detection result, and the independent forward path and the independent reverse path are respectively added into the two mapping tables. Whereas for the switch, which processes mainly the forward path probe packet with the INT flag, see step (2) of fig. 6, the switch will update sw_ind=sw_ind+1 first and then insert its own ID number to the corresponding location according to sw_ind. For example, switch id=12, which detects sw_ind=3, then sw_ind is updated to 4, and then 12 is written into the field of sw 4. The receiving end needs to extract the path detection result and send back the detection result of the forward path detection packet in the path detection stage. Firstly, for the data packet extraction process, see step (3) of fig. 6, after receiving the forward path detection packet, the receiving end firstly takes out the INT field information in the packet header, including the switch ID sequence and the Ack info. Meanwhile, after the data is extracted, a detection result needs to be sent, and at the moment, the receiving end needs to send INT information back to the transmitting end and detect reverse path information. Reverse path information is obtained by inserting an INT packet header (like a forward probe packet) in an Ack packet header and setting the source port number of a standard transport layer packet header (TCP or UDP) and the native access link (if multiple) with the Ack info extracted in a). The method is repeated for a plurality of times, and the transmitting end can construct a path mapping table containing a plurality of forward independent paths. When the detected paths reach the number requirement (i.e. the number of transmission paths used by the transport layer), the data transmission process can be performed, and it is noted that the path detection stage and the data transmission stage can be mixed together, and are not strictly separated in time, and especially when the transmitting end detects that there is a path fault, new path detection can be started immediately. In the process of data transmission, as shown in fig. 7, in the initialization stage, the data transmission module of the transmitting end and the response module of the receiving end both randomly select H source port numbers to bind to H paths, the paths are alternately bound with the access links, and then after detecting the independent paths, the data transmission module uses the source port numbers of the independent paths to replace the random source port numbers bound on the paths one by one, and binds the paths to the access link IDs of the independent paths. After detecting the reverse independent path, the transmitting end sends a path setting message to inform the receiving end, and the receiving end uses the received source port numbers of the reverse independent path to replace the random source port numbers bound on the paths one by one and binds to the corresponding access link ID. Therefore, the binding work of independent paths is completed, then multipath data transmission processing can be carried out through the paths, and when data transmission is carried out, path scheduling is carried out according to the load state of each path (fed back by 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 orderly multi-path transmission, data to be transmitted can be efficiently transmitted from a transmitting end to a receiving end.
It should be understood that, although the steps in the flowcharts related to the above embodiments are sequentially shown as indicated by arrows, these steps are not necessarily sequentially performed in the order indicated by the arrows. The steps are not strictly limited to the order of execution unless explicitly recited herein, and the steps may be executed in other orders. Moreover, at least some of the steps in the flowcharts described in the above embodiments may include a plurality of steps or a plurality of stages, which are not necessarily performed at the same time, but may be performed at different times, and the order of the steps or stages is not necessarily performed sequentially, but may be performed alternately or alternately with at least some of the other steps or stages.
Based on the same inventive concept, the embodiment of the application also provides a multipath transmission device for realizing the multipath transmission method. The implementation of the solution provided by the apparatus is similar to the implementation described in the above method, so the specific limitation in the embodiments of one or more multipath transmission apparatuses provided below may be referred to the limitation of the multipath transmission method hereinabove, and will not be repeated here.
In one embodiment, as shown in fig. 8, there is provided a multi-path transmission apparatus including: a request acquisition module 801, a mapping table lookup module 803, a path binding module 805, and a data transmission module 807, wherein:
the request obtaining module 801 is configured to obtain a data transmission request, where the data transmission request includes data to be transmitted and an identifier of a receiving end.
The mapping table searching module 803 is configured to search a path mapping table according to the identifier of the receiving end, where the path mapping table includes a plurality of forward independent paths obtained through network telemetry.
And a path binding module 805, configured to bind the sending paths corresponding to the data transmission requests to each forward independent path in sequence.
A data sending module 807, configured to query, in a polling manner, the congestion control module of the sending path, so as to send data to be transmitted to the receiving end based on the available bandwidth corresponding to the sending path.
In one embodiment, the path mapping table includes a forward path mapping table and a reverse path mapping table; the apparatus further comprises a path detection module for: transmitting a forward path detection packet to the intermediate device according to the data transmission request; acquiring a reverse path detection packet fed back by the intermediate equipment, and extracting a positive path detection result and a reverse path detection result in the reverse path detection packet; and constructing a forward path mapping table according to the forward path detection result, and constructing a reverse path mapping table according to the reverse path detection result.
In one embodiment, the reverse path mapping table includes a plurality of reverse independent paths acquired by probing, and the apparatus further includes a reverse path feedback module configured to: and sending a path setting message containing the reverse path mapping table to the receiving end, wherein the path setting message is used for notifying the receiving end and binding the response paths corresponding to the receiving end to each reverse independent path in sequence.
In one embodiment, the device further comprises a response data receiving module for: and the response module of the receiving end transmits the response data through a reverse independent path according to the response data fed back by the data to be transmitted.
In one embodiment, the forward path probe packet includes a network telemetry tag for obtaining an identity of the intermediate device to construct a forward probe path, the forward probe path for constructing a forward path mapping table.
In one embodiment, the path detection module is specifically configured to: sequentially acquiring a forward detection path in the forward path detection result; comparing the forward detection paths with paths in a forward path mapping table one by one to obtain independent comparison results of the forward detection paths; and when the independent comparison result represents that the forward detection path is a forward independent path, adding the forward detection path into a forward path mapping table, and updating the forward path mapping table.
In one embodiment, the path detection module is specifically configured to: and when the independent comparison result represents the forward detection path and the path in the forward path mapping table does not have an overlapped link, determining the forward detection path as a forward independent path.
In one embodiment, the path binding module 805 is specifically configured to: and 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.
Each of the modules in the above-described multipath transmission apparatus may be implemented in whole or in part by software, hardware, and combinations thereof. The above modules may be embedded in hardware or may be independent of a processor in the computer device, or may be stored in software in a memory in the computer device, so that the processor may call and execute operations corresponding to the above modules.
In one embodiment, a computer device is provided, which may be a terminal, and the internal structure thereof may be as shown in fig. 9. The computer device includes a processor, a memory, an input/output interface, a communication interface, a display unit, and an input means. The processor, the memory and the input/output interface are connected through a system bus, and the communication interface, the display unit and the input device are connected to the system bus through the input/output interface. Wherein the processor of the computer device is configured to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of the operating system and computer programs in the non-volatile storage media. The input/output interface of the computer device is used to exchange information between the processor and the external device. The communication interface of the computer device is used for carrying out wired or wireless communication with an external terminal, and the wireless mode can be realized through WIFI, a mobile cellular network, NFC (near field communication) or other technologies. The computer program is executed by a processor to implement a multipath transmission method. The display unit of the computer equipment is used for forming a visual picture, and can be a display screen, a projection device or a virtual reality imaging device, wherein the display screen can be a liquid crystal display screen or an electronic ink display screen, the input device of the computer equipment can be a touch layer covered on the display screen, can also be a key, a track ball or a touch pad arranged on a shell of the computer equipment, and can also be an external keyboard, a touch pad or a mouse and the like.
It will be appreciated by persons skilled in the art that the architecture shown in fig. 9 is merely a block diagram of some of the architecture relevant to the present inventive arrangements and is not limiting as to the computer device to which the present inventive arrangements are applicable, and that a particular computer device may include more or fewer components than shown, or may combine some of the components, or have a different arrangement of components.
In an embodiment, there is also provided a computer device comprising a memory and a processor, the memory having stored therein a computer program, the processor implementing the steps of the method embodiments described above when the computer program is executed.
In one embodiment, a computer-readable storage medium is provided, storing a computer program which, when executed by a processor, implements the steps of the method embodiments described above.
In one embodiment, a computer program product or computer program is provided that includes computer instructions stored in a computer readable storage medium. The processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device performs the steps in the above-described method embodiments.
It should be noted that, the user information (including but not limited to user equipment information, user personal information, etc.) and the data (including but not limited to data for analysis, stored data, presented data, etc.) related to the present application are information and data authorized by the user or sufficiently authorized by each party, and the collection, use and processing of the related data need to comply with the related laws and regulations and standards of the related country and region.
Those skilled in the art will appreciate that implementing all or part of the above-described methods in accordance with the embodiments may be accomplished by way of a computer program stored on a non-transitory computer readable storage medium, which when executed may comprise the steps of the embodiments of the methods described above. Any reference to memory, database, or other medium used in embodiments provided herein may include at least one of non-volatile and volatile memory. The nonvolatile Memory may include Read-Only Memory (ROM), magnetic tape, floppy disk, flash Memory, optical Memory, high density embedded nonvolatile Memory, resistive random access Memory (ReRAM), magnetic random access Memory (Magnetoresistive Random Access Memory, MRAM), ferroelectric Memory (Ferroelectric Random Access Memory, FRAM), phase change Memory (Phase Change Memory, PCM), graphene Memory, and the like. Volatile memory can include random access memory (Random Access Memory, RAM) or external cache memory, and the like. By way of illustration, and not limitation, RAM can be in the form of a variety of forms, such as static random access memory (Static Random Access Memory, SRAM) or dynamic random access memory (Dynamic Random Access Memory, DRAM), and the like. The databases referred to in the embodiments provided herein may include at least one of a relational database and a non-relational database. The non-relational database may include, but is not limited to, a blockchain-based distributed database, and the like. The processor referred to in the embodiments provided in the present application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic unit, a data processing logic unit based on quantum computing, or the like, but is not limited thereto.
The technical features of the above embodiments may be arbitrarily combined, and all possible combinations of the technical features in the above embodiments are not described for brevity of description, however, as long as there is no contradiction between the combinations of the technical features, they should be considered as the scope of the description.
The foregoing examples illustrate only a few embodiments of the application, which are described in detail and are not to be construed as limiting the scope of the application. It should be noted that it will be apparent to those skilled in the art that several variations and modifications can be made without departing from the spirit of the application, which are all within the scope of the application. Accordingly, the scope of the application should be assessed as that of the appended claims.

Claims (12)

1. A method of multipath transmission, the method comprising:
acquiring a data transmission request, wherein the data transmission request comprises data to be transmitted and an identifier of a receiving end;
searching a path mapping table according to the identification of the receiving end, wherein the path mapping table comprises a plurality of forward independent paths obtained through network telemetry;
binding the sending paths corresponding to the data transmission requests to each forward independent path in sequence;
And inquiring a congestion control module of the sending path in a polling mode, so as to send the data to be transmitted to the receiving end based on the available bandwidth corresponding to the sending path.
2. The method of claim 1, wherein the path mapping table comprises a forward path mapping table and a reverse path mapping table; the method further comprises the steps of:
sending a forward path detection packet to the intermediate equipment according to the data transmission request;
acquiring a reverse path detection packet fed back by the intermediate equipment, and extracting a positive path detection result and a reverse path detection result in the reverse path detection packet;
and constructing a forward path mapping table according to the forward path detection result, and constructing a reverse path mapping table according to the reverse path detection result.
3. The method of claim 2, wherein the reverse path mapping table includes a plurality of reverse independent paths acquired by probing, and the polling-type querying the congestion control module of the transmission path is further included before transmitting the data to be transmitted based on the available bandwidth corresponding to the transmission path:
and sending a path setting message containing a reverse path mapping table to the receiving end, wherein the path setting message is used for notifying the receiving end and binding the response paths corresponding to the receiving end to each reverse independent path in sequence.
4. The method of claim 3, wherein after the polling the congestion control module of the transmission path to transmit the data to be transmitted based on the available bandwidth corresponding to the transmission path, further comprising:
and receiving response data fed back by the response module of the receiving end according to the data to be transmitted, wherein the response data is transmitted through the reverse independent path.
5. The method of claim 2, wherein the forward path probe packet includes a network telemetry tag, the network telemetry tag configured to obtain an identity of the intermediate device to construct a forward probe path, the forward probe path configured to construct the forward path mapping table.
6. The method of claim 5, wherein constructing a forward path map from the forward path probe result comprises:
sequentially acquiring a forward detection path in the forward path detection result;
comparing the forward detection paths with paths in the forward path mapping table one by one to obtain independent comparison results of the forward detection paths;
and when the independent comparison result represents that the forward detection path is a forward independent path, adding the forward detection path into the forward path mapping table, and updating the forward path mapping table.
7. The method of claim 6, wherein the method further comprises:
and when the independent comparison result represents the forward detection path and the path in the forward path mapping table does not have an overlapped link, determining the forward detection path as a forward independent path.
8. The method of claim 1, wherein the forward independent path further comprises an access link number and a source port number, and wherein sequentially binding the transmit path corresponding to the data transmission request to each forward independent path comprises:
and 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.
9. A multipath transmission device, the device comprising:
the request acquisition module is used for acquiring a data transmission request, wherein the data transmission request comprises data to be transmitted and an identifier of a receiving end;
the mapping table searching module is used for searching a path mapping table according to the identification of the receiving end, wherein the path mapping table comprises a plurality of forward independent paths obtained through network telemetry;
The path binding module is used for sequentially binding the sending paths corresponding to the data transmission requests to each forward independent path;
and the data sending module is used for inquiring the congestion control module of the sending path in a polling mode so as to send the data to be transmitted to the receiving end based on the available bandwidth corresponding to the sending path.
10. A computer device comprising a memory and a processor, the memory storing a computer program, characterized in that the processor implements the steps of the method of any one of claims 1 to 8 when the computer program is executed.
11. A computer readable storage medium, on which a computer program is stored, characterized in that the computer program, when being executed by a processor, implements the steps of the method of any of claims 1 to 8.
12. A computer program product comprising a computer program, characterized in that the computer program, when executed by a processor, implements the steps of the method of any one of claims 1 to 8.
CN202210288498.0A 2022-03-23 2022-03-23 Multipath transmission method, multipath transmission device, computer equipment and storage medium Pending CN116846816A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210288498.0A CN116846816A (en) 2022-03-23 2022-03-23 Multipath transmission method, multipath transmission device, computer equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210288498.0A CN116846816A (en) 2022-03-23 2022-03-23 Multipath transmission method, multipath transmission device, computer equipment and storage medium

Publications (1)

Publication Number Publication Date
CN116846816A true CN116846816A (en) 2023-10-03

Family

ID=88167542

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210288498.0A Pending CN116846816A (en) 2022-03-23 2022-03-23 Multipath transmission method, multipath transmission device, computer equipment and storage medium

Country Status (1)

Country Link
CN (1) CN116846816A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118869591A (en) * 2024-03-08 2024-10-29 腾讯云计算(北京)有限责任公司 Data transmission method, device, computer readable medium and electronic device
CN119484417A (en) * 2025-01-13 2025-02-18 腾讯科技(深圳)有限公司 A network congestion processing method, device, equipment, medium, and product

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118869591A (en) * 2024-03-08 2024-10-29 腾讯云计算(北京)有限责任公司 Data transmission method, device, computer readable medium and electronic device
CN118869591B (en) * 2024-03-08 2025-06-06 腾讯云计算(北京)有限责任公司 Data transmission method, data transmission device, computer readable medium and electronic equipment
WO2025185453A1 (en) * 2024-03-08 2025-09-12 腾讯科技(深圳)有限公司 Data transmission method and apparatus, and computer-readable medium and electronic device
CN119484417A (en) * 2025-01-13 2025-02-18 腾讯科技(深圳)有限公司 A network congestion processing method, device, equipment, medium, and product

Similar Documents

Publication Publication Date Title
US9648005B2 (en) Method and system for extending network resources campus-wide based on user role and location
CN105409248B (en) System and method for enhanced discovery
US8903972B2 (en) Method and apparatus for sharing contents using information of group change in content oriented network environment
US10938776B2 (en) Apparatus and method for correlating addresses of different internet protocol versions
US20110161961A1 (en) Method and apparatus for optimized information transmission using dedicated threads
US10462052B2 (en) Method and apparatus for incremental deployment of information centric network
CN106341298A (en) Message transmission method and device
CN116846816A (en) Multipath transmission method, multipath transmission device, computer equipment and storage medium
CN116566897B (en) Addressing routing method, device, equipment and medium
CN116974906A (en) Code verification method, device, computer equipment and storage medium
US10009265B2 (en) Communication control apparatus, communication control method, communication system, and recording medium
CN114265869B (en) Data message forwarding method and device, storage medium and electronic device
US20140181307A1 (en) Routing apparatus and method
CN117692379A (en) Polymorphic routing table partitioning method, device and program product for high-performance computing
WO2018233579A1 (en) INFORMATION CENTERED NETWORKING ON MULTIPLE ACCESS NETWORK INTERFACES
Qin et al. Lehigh explorer: A real time video streaming application with mobility support for content centric networks
CN119652862B (en) Address translation information synchronization method, apparatus, computer device, readable storage medium, and program product
CN116708532B (en) Local area network connection method, device, computer equipment and readable storage medium
CN119484355B (en) Testing methods, apparatus, computer equipment, and storage media for network elements
CN119402413B (en) Business processing method, device, computer equipment and storage medium
CN119484466B (en) Cloud communication method, cloud communication device, computer device, readable storage medium, and program product
CN119341985B (en) Two-dimensional FIB hash storage method and related device on white box router
CN119646076B (en) Database access method, apparatus, device, storage medium, and program product
EP4576714A1 (en) Multi-region packet routing using path symmetry
CN119211187A (en) A communication method, communication system, device, server and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination