WO2025252239A1 - 数据传输方法、装置、相关设备、存储介质及计算器程序产品 - Google Patents

数据传输方法、装置、相关设备、存储介质及计算器程序产品

Info

Publication number
WO2025252239A1
WO2025252239A1 PCT/CN2025/099767 CN2025099767W WO2025252239A1 WO 2025252239 A1 WO2025252239 A1 WO 2025252239A1 CN 2025099767 W CN2025099767 W CN 2025099767W WO 2025252239 A1 WO2025252239 A1 WO 2025252239A1
Authority
WO
WIPO (PCT)
Prior art keywords
data stream
information
network node
divided
sub
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
PCT/CN2025/099767
Other languages
English (en)
French (fr)
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.)
China Mobile Communications Group Co Ltd
Research Institute of China Mobile Communication Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
Research Institute of China Mobile Communication 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 China Mobile Communications Group Co Ltd, Research Institute of China Mobile Communication Co Ltd filed Critical China Mobile Communications Group Co Ltd
Publication of WO2025252239A1 publication Critical patent/WO2025252239A1/zh
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

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/12Shortest path evaluation
    • H04L45/121Shortest path evaluation by minimising delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/123Evaluation of link metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/124Shortest path evaluation using a combination of metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows

Definitions

  • This disclosure relates to the field of network transmission technology, and in particular to a data transmission method, apparatus, related equipment, storage medium, and computer program product.
  • Throughput-sensitive services such as East-to-West data processing, data express delivery, or data center (DC) interconnection services
  • DC data center
  • this disclosure provides a data transmission method, apparatus, related devices, storage medium, and computer program product.
  • This disclosure provides a data transmission method applied to a first network node, comprising: receiving a data stream of a first service; dividing the data stream and selecting multiple paths for the divided data stream using first information, wherein the first information includes link status information of one or more candidate paths associated with a third network node; and transmitting the divided data stream using the selected multiple paths.
  • the first information includes at least one of the following: bandwidth information of the one or more candidate paths; latency information of the one or more candidate paths.
  • the step of dividing the data stream and selecting multiple paths for the divided data stream using the first information includes: selecting multiple paths for the divided data stream using at least one of the bandwidth information and latency information of the one or more candidate paths.
  • selecting multiple paths for the partitioned data stream using at least one of the bandwidth information and latency information of the one or more candidate paths includes at least one of the following: for the first partitioned data stream, selecting a first path for the first data stream using at least one of the bandwidth information and latency information of the one or more candidate paths; for the Nth partitioned data stream, selecting a second path for the Nth data stream using at least one of the latency-related information of the (N-1)th data stream, the bandwidth information and latency information of the one or more candidate paths, where N is an integer greater than or equal to 2.
  • the method further includes: if a second path cannot be selected for the Nth data stream, re-dividing the data stream to obtain a re-divided Nth data stream; and using at least one of the latency-related information of the N-1th data stream and the bandwidth and latency information of one or more candidate paths to select a second path for the re-divided Nth data stream.
  • the step of transmitting the divided data stream using the selected multiple paths includes: generating a message based on the divided data stream, and transmitting the generated message using the selected multiple paths.
  • the generated message contains at least one of the divided data stream and second information, wherein the second information is used to identify the first service.
  • the generated message also contains third information, which is used to indicate whether the second network node supports load balancing processing.
  • the generated message also includes at least one of a fourth information and a fifth information.
  • the fourth information is used to indicate whether the third network node supports the verification process, and the fifth information represents the sequence number of the divided data stream.
  • the method further includes: sending fifth information to the management node, the fifth information being used to request the link status information of the one or more candidate paths, the management node being used to manage one or more network nodes in the network; and receiving first information sent by the management node.
  • This disclosure also provides a data transmission method applied to a second network node, comprising: receiving a partitioned data stream, wherein the partitioned data stream is obtained by partitioning a data stream of a first service, and the partitioned data stream is transmitted using multiple paths; and sending the partitioned data stream.
  • receiving the divided data stream includes: receiving a message, wherein the received message contains at least one of the divided data stream and second information, and the second information is used to identify the first service.
  • the received message also includes third information, which is used to indicate whether the second network node supports load balancing processing; the method further includes: if the second network node supports load balancing processing, dividing the divided data stream to obtain the divided sub-data stream; using sixth information, selecting multiple paths for the divided sub-data stream, the sixth information including link status information of one or more candidate paths associated with the third network node; updating the received message based on the divided sub-data stream, and transmitting the updated message using the selected multiple paths, the updated message including at least one of the divided sub-data stream and the second information.
  • third information which is used to indicate whether the second network node supports load balancing processing
  • the method further includes: if the second network node supports load balancing processing, dividing the divided data stream to obtain the divided sub-data stream; using sixth information, selecting multiple paths for the divided sub-data stream, the sixth information including link status information of one or more candidate paths associated with the third network node; updating the received message based on the divided sub-data stream, and transmitting the updated message
  • the sixth information includes at least one of the following: bandwidth information of the one or more candidate paths; latency information of the one or more candidate paths.
  • the step of using the sixth information to select multiple paths for the divided sub-data streams includes at least one of the following: for the first divided sub-data stream, a third path is selected for the first sub-data stream using at least one of the bandwidth information and latency information of the one or more candidate paths; for the Mth divided sub-data stream, a fourth path is selected for the Mth sub-data stream using the latency-related information of the (M-1)th sub-data stream and at least one of the bandwidth information and latency information of the one or more candidate paths, where M is an integer greater than or equal to 2.
  • the method further includes: if a fourth path cannot be selected for the Mth sub-data stream, re-dividing the divided data stream to obtain the re-divided Mth sub-data stream; and using the latency-related information of the (M-1)th sub-data stream, and at least one of the bandwidth information and latency information of the one or more candidate paths, selecting a fourth path for the re-divided Mth sub-data stream.
  • the updated message also includes at least one of the fourth information and the seventh information.
  • the fourth information is used to indicate whether the third network node supports the verification process, and the seventh information represents the sequence number of the divided sub-data stream.
  • the method further includes: sending an eighth message to the management node, the eighth message being used to request link status information of one or more candidate paths associated with the third network node, the management node being used to manage one or more network nodes in the network; and receiving a sixth message sent by the management node.
  • This disclosure also provides a data transmission method applied to a third network node, comprising: receiving a divided data stream, wherein the divided data stream is obtained by dividing a data stream of a first service, and the divided data stream is transmitted using multiple paths; and integrating the divided data stream to obtain the data stream of the first service.
  • receiving the divided data stream includes: receiving an updated message, the updated message containing at least one of the divided sub-data stream and second information, the divided sub-data stream being obtained based on the divided data stream, and the second information being used to identify the first service; the method further includes: integrating the divided sub-data stream to obtain the data stream of the first service.
  • the updated message also includes at least one of fourth information and seventh information.
  • the fourth information is used to indicate whether the third network node supports verification processing, and the seventh information represents the sequence number of the divided sub-data streams.
  • the method further includes: if the third network node supports verification processing, performing sequential verification on the divided sub-data streams using the seventh information to obtain a verification result; if the verification result indicates that the verification failed, sorting the divided sub-data streams based on the seventh information; and integrating the sorted sub-data streams to obtain the data stream of the first service.
  • This disclosure also provides a data transmission apparatus, comprising: a first receiving unit for receiving a data stream of a first service; a partitioning unit for partitioning the data stream using first information and selecting multiple paths for the partitioned data stream, wherein the first information includes link status information of one or more candidate paths associated with a third network node; and a transmission unit for transmitting the partitioned data stream using the selected multiple paths.
  • This disclosure also provides a data transmission apparatus, including: a second receiving unit for receiving a divided data stream, the divided data stream being obtained by dividing a data stream of a first service, and the divided data stream being transmitted using multiple paths; and a sending unit for sending the divided data stream.
  • This disclosure also provides a data transmission apparatus, comprising: a third receiving unit for receiving a divided data stream, wherein the divided data stream is obtained by dividing a data stream of a first service, and the divided data stream is transmitted using multiple paths; and an integration unit for integrating the divided data stream to obtain the data stream of the first service.
  • This disclosure also provides a first network node, including: a first processor and a first communication interface; wherein, the first communication interface is used to receive a data stream of a first service; the first processor is used to divide the data stream, and select multiple paths for the divided data stream using first information, the first information including link status information of one or more candidate paths associated with a third network node; and to transmit the divided data stream using the selected multiple paths.
  • a first network node including: a first processor and a first communication interface; wherein, the first communication interface is used to receive a data stream of a first service; the first processor is used to divide the data stream, and select multiple paths for the divided data stream using first information, the first information including link status information of one or more candidate paths associated with a third network node; and to transmit the divided data stream using the selected multiple paths.
  • This disclosure also provides a second network node, including: a second processor and a second communication interface; wherein the second communication interface is used to receive a partitioned data stream, the partitioned data stream being obtained by partitioning the data stream of the first service, the partitioned data stream being transmitted using multiple paths; and to send the partitioned data stream.
  • This disclosure also provides a third network node, including: a third processor and a third communication interface; wherein, the third communication interface is used to receive a divided data stream, the divided data stream being obtained by dividing the data stream of a first service, and the divided data stream being transmitted using multiple paths; the third processor is used to integrate the divided data stream to obtain the data stream of the first service.
  • This disclosure also provides a first network node, including: a first processor and a first memory for storing a computer program capable of running on the processor.
  • the first processor when used to run the computer program, it executes the steps of any of the methods described above for the first network node side.
  • This disclosure also provides a second network node, including: a second processor and a second memory for storing a computer program capable of running on the processor.
  • the second processor when used to run the computer program, it executes the steps of any of the methods described above for the second network node side.
  • This disclosure also provides a third network node, including: a third processor and a third memory for storing a computer program capable of running on the processor.
  • the third processor runs the computer program, it executes any of the steps of the third network node side method described above.
  • This disclosure also provides a storage medium storing a computer program thereon, which, when executed by a processor, implements the steps of any of the methods described above for the first network node side, or implements the steps of any of the methods described above for the second network node side, or implements the steps of any of the methods described above for the third network node side.
  • This disclosure also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of any of the methods described above for the first network node side, or implements the steps of any of the methods described above for the second network node side, or implements the steps of any of the methods described above for the third network node side.
  • the data transmission method, apparatus, related devices, storage media, and computer program products provided in this disclosure include: a first network node receiving a data stream of a first service; dividing the data stream and selecting multiple paths for the divided data stream using first information, which includes link status information of one or more candidate paths associated with a third network node; transmitting the divided data stream using the selected multiple paths; a second network node receiving the divided data stream and sending it out; and a third network node receiving the divided data stream and integrating it to obtain the data stream of the first service.
  • the technical solution provided in this disclosure divides the data stream based on the link status of the destination node (i.e., the third network node) associated with the service (e.g., a throughput-sensitive service), and selects multiple transmission paths for the divided data stream. This allows for parallel transmission of the data stream through the cooperation of intermediate nodes (i.e., the second network node) and the destination node, effectively improving data transmission throughput and thus meeting the high-throughput transmission requirements of the service.
  • the destination node i.e., the third network node
  • the service e.g., a throughput-sensitive service
  • Figure 1 is a schematic flowchart of a first data transmission method according to an embodiment of this disclosure
  • Figure 2 is a schematic diagram of the structure of a network according to an embodiment of the present disclosure
  • Figure 3 is a schematic diagram of the structure of a divided data stream according to an embodiment of this disclosure.
  • Figure 4 is a schematic diagram of the structure of a first type of message header according to an embodiment of this disclosure
  • Figure 5 is a schematic diagram of the structure of the second type of message header according to an embodiment of this disclosure.
  • Figure 6 is a schematic flowchart of a second data transmission method according to an embodiment of this disclosure.
  • Figure 7 is a schematic flowchart of a third data transmission method according to an embodiment of this disclosure.
  • Figure 8 is a schematic diagram of a method for multi-path parallel transmission, which is an application example of this disclosure.
  • Figure 9 is a schematic diagram of the structure of a first data transmission device according to an embodiment of this disclosure.
  • Figure 10 is a schematic diagram of the structure of a second data transmission device according to an embodiment of this disclosure.
  • Figure 11 is a schematic diagram of the structure of a third data transmission device according to an embodiment of this disclosure.
  • Figure 12 is a schematic diagram of the first network node structure in an embodiment of this disclosure.
  • Figure 13 is a schematic diagram of the second network node structure according to an embodiment of this disclosure.
  • Figure 14 is a schematic diagram of the third network node structure in an embodiment of this disclosure.
  • Figure 15 is a schematic diagram of the data transmission system structure according to an embodiment of this disclosure.
  • ECMP Equal Cost Multi-path
  • RPS Receive Packet Steering
  • Flowlet Flowlet
  • the ECMP transmission scheme described above transmits data in units of data streams. Specifically, after the first data packet corresponding to each data stream arrives at the first switch from the host, the first switch determines whether it is the first data packet in the stream based on the packet's five-tuple. If it is, it selects a sending port based on a hash algorithm for transmission; otherwise, it transmits based on the sending port of the previous data packet.
  • TCP Transmission Control Protocol
  • the disadvantage is that it cannot fully utilize link bandwidth.
  • the hash algorithm selection may lead to hash collisions, preventing load balancing of sending ports (essentially repeatedly selecting a sending port for transmission), thus increasing queuing latency. Even if load balancing of sending ports is achieved based on the hash algorithm, there is still a possibility of assigning an inappropriate sending port to a data stream (e.g., assigning a shorter data stream to the sending port corresponding to a longer data stream), further increasing queuing latency.
  • the RPS scheme described above transmits data packets. Specifically, after each data packet arrives at the first switch from the host, the first switch randomly selects a sending port to transmit the packet.
  • the advantage of this scheme is that it can achieve load balancing of sending ports when there are many data packets, avoiding queuing delays.
  • the disadvantage is that it is prone to packet ordering errors, leading to packet loss and triggering retransmissions.
  • load balancing of sending ports is not achieved when there are few data packets, packet ordering errors will be a significant problem.
  • the receiving end faces significant overhead in terms of CPU (Central Processing Unit) resources and memory when processing incorrectly ordered data packets to ensure their order.
  • CPU Central Processing Unit
  • the above-described packet fragmentation scheme transmits packets in units of fragments (which can be understood as all data packets sent at once).
  • the specific principle is as follows: based on the characteristic of TCP transmission to send a large number of packets at once (which can be expressed as a bast), when the time interval between two large-scale packet transmissions is greater than or equal to the transmission time difference between the previous sending port and any other sending port, a sending port is randomly selected to send that fragment; when the time interval between two large-scale packet transmissions is less than the transmission time difference between the previous sending port and any other sending port, the sending port corresponding to the previous fragment is used to send that fragment.
  • the advantage of this scheme is that it can balance the load of sending ports, resulting in low queuing latency and avoiding packet ordering errors.
  • the disadvantage is that the transmission time difference cannot be calculated and can only be set manually with a threshold. However, if the threshold is set too high, it will fail to balance the load of sending ports; if the threshold is set too low, it will cause packet ordering errors.
  • parallel transmission of the data stream is achieved through the cooperation of multiple network nodes in the network, thereby improving the throughput during data transmission to meet the high-throughput transmission requirements of the service.
  • This disclosure provides a data transmission method, as shown in FIG1, applied to a first network node, the method including steps 101-103.
  • Step 101 Receive the data stream of the first service.
  • Step 102 Divide the data stream and select multiple paths for the divided data stream using first information, wherein the first information includes link status information of one or more (or at least one) candidate paths associated with the third network node.
  • Step 103 Transmit the divided data stream using the selected multiple paths.
  • the first network node may include an ingress node in the network.
  • the first network node can be called an ingress node, ingress network node, or edge ingress node, etc.
  • the first network node is associated with the transmitting device. This embodiment of the disclosure does not limit the name of the first network node, as long as its function is implemented.
  • the third network node may include an egress node in the network.
  • the third network node can be called an egress node, egress network node, or edge egress node, etc.
  • the third network node is associated with the receiving device. This embodiment of the disclosure does not limit the name of the third network node, as long as its function is implemented.
  • the first network node can receive a data stream sent by the sending device.
  • This data stream can consist of multiple data packets, and its length is related to the number of data packets.
  • the first network node can obtain service information, which indicates the type of a first service, such as a service with high throughput requirements.
  • the first network node can obtain service information from the sending device.
  • the first network node can also obtain service information through Deep Packet Inspection (DPI).
  • DPI Deep Packet Inspection
  • step 102 the first network node needs to obtain the first information.
  • the method may further include: sending fifth information to a management node, the fifth information being used to request link status information of the one or more candidate paths, the management node being used to manage one or more network nodes in the network; and receiving first information sent by the management node.
  • the management node can be referred to as a control node or controller, etc. It manages one or more network nodes in the network and the link status information of all paths associated with those network nodes.
  • the network may include a first network node, one or more second network nodes (or at least one second network node), and a third network node.
  • the link status information may include one or more of the following (or at least one) information: path topology, latency information, bandwidth information, etc.
  • the second network node may include intermediate nodes in the network.
  • the second network node can be referred to as an intermediate node or intermediate network node, etc. This embodiment does not limit the name of the second network node.
  • the network contains 10 network nodes, one management node C1, and two devices (the first device DC1 and the second device DC2).
  • R1 represents the first network node
  • R2, R3, R4, R5, R6, R7, R8, and R9 represent eight second network nodes
  • R10 represents the third network node
  • R2 is the transmitting device and the first device is the receiving device
  • R10 represents the first network node
  • R2, R3, R4, R5, R6, R7, R8, and R9 represent eight second network nodes
  • R1 represents the third network node.
  • each network node can periodically report its corresponding network quality information (such as latency, bandwidth, packet loss, or jitter) to the management node C1, enabling the management node to obtain the link status information of all paths in the network based on the reported network quality information.
  • network quality information such as latency, bandwidth, packet loss, or jitter
  • the first network node can determine the destination node that the data stream needs to reach; if the destination node is determined to be the third network node, the first network node can send the fifth information to the management node to request the link status information of one or more candidate paths.
  • the one or more candidate paths can be understood as all available transmission paths for the data stream from the first network node to the third network node.
  • the management node after receiving the fifth information, can search for link status information that matches one or more candidate paths from the link status information of all paths in the network, thereby obtaining the first information; then, the management node can feed back the first information to the first network node.
  • the first network node can also obtain the first information through distributed flow detection.
  • the specific processing procedure for obtaining the first information through distributed flow detection can be understood by referring to relevant technologies, and will not be elaborated here.
  • the first information may include one or more of the following (or at least one of them):
  • the latency information of one or more candidate paths is the latency information of one or more candidate paths.
  • the first network node can select a path based on the latency and/or bandwidth information of the candidate paths. This improves the network load balancing while ensuring the order in which data flows arrive at the third network node (also known as order preservation), thereby effectively increasing the throughput of data transmission.
  • “A and/or B” means "at least one of A and B,” such as A, B, or A and B.
  • step 102 may include selecting multiple paths for the partitioned data stream using the bandwidth information and/or latency information of the one or more candidate paths.
  • the bandwidth information may include the bandwidth utilization rate corresponding to the candidate path, and the latency information may include the latency corresponding to the candidate path, that is, the latency of data transmission using the candidate path.
  • the first network node can select a corresponding path for the divided data stream after each division.
  • the data stream can be divided according to relevant configuration information; that is, the length of the divided data stream can be pre-configured. This embodiment does not limit the method of data stream division. Specifically, after the first division of the data stream, the first network node obtains the first divided data stream and then selects a corresponding path for it.
  • selecting multiple paths for the partitioned data stream using the bandwidth information and/or latency information of the one or more candidate paths includes:
  • a first path is selected for the first data stream using the bandwidth information and/or latency information of one or more candidate paths.
  • the first data stream can be referred to as the first data stream, and the first path is associated with one or more second network nodes and a third network node.
  • the first network node when the first information contains bandwidth information of one or more candidate paths, the first network node can use the bandwidth information of one or more candidate paths to select the first path for the first data stream; when the first information contains latency information of one or more candidate paths, the first network node can use the latency information of one or more candidate paths to select the first path for the first data stream; when the first information contains both bandwidth information and latency information of one or more candidate paths, the first network node can use both bandwidth information and latency information of one or more candidate paths to select the first path for the first data stream.
  • the first network node can obtain Flowlet1 (i.e., the first data flow), which contains 6 packets. Then, the first network node can select a path with low bandwidth utilization and low latency from one or more candidate paths based on the bandwidth utilization and latency corresponding to one or more candidate paths, and use the selected path as the first path.
  • Flowlet1 i.e., the first data flow
  • the first network node can use the first path to transmit the first data stream. Simultaneously, the first network node can further divide the data stream and select corresponding paths for subsequent data streams, transmitting them accordingly. This embodiment does not limit the number of divided data streams. In this way, parallel transmission of data streams can be achieved, improving load balancing and effectively increasing data transmission throughput.
  • selecting multiple paths for the partitioned data stream using the bandwidth information and/or latency information of the one or more candidate paths includes:
  • a second path is selected for the Nth data stream by using the latency-related information of the (N-1)th data stream, the bandwidth information and/or latency information of the one or more candidate paths, where N is an integer greater than or equal to 2.
  • the latency-related information for the (N-1)th data stream may include the latency corresponding to the (N-1)th data stream, specifically a first latency and a second latency.
  • the first latency can be understood as the latency of sending the data packets contained in the (N-1)th data stream
  • the second latency can be understood as the latency of transmitting the (N-1)th data stream using the corresponding path.
  • the second path is associated with one or more second network nodes and a third network node.
  • the first network node can determine the corresponding first latency based on the length of the (N-1)th data stream, and at the same time, it can determine the corresponding second latency based on the latency information of the selected path corresponding to the (N-1)th data stream. Using the first latency and the second latency, the first network node can obtain the latency-related information of the (N-1)th data stream.
  • the first network node determines the corresponding first delay based on the length of Flowlet1 (i.e., the 6 packets it contains); at the same time, it determines the second delay based on the delay information of the first path corresponding to Flowlet1; by summing the first delay and the second delay, the delay corresponding to Flowlet1 is obtained.
  • the initial latency of the partitioned data streams may also be different. For example, if the Nth data stream contains 5 data packets and the (N-1)th data stream contains 10 data packets, the initial latency of the (N-1)th data stream will be greater than that of the Nth data stream; conversely, if the Nth data stream contains 5 data packets and the (N-1)th data stream contains 3 data packets, the initial latency of the (N-1)th data stream will be less than that of the Nth data stream.
  • the first network node can make the delay of the Nth data stream (which can also be understood as the current data stream) greater than the delay of the (N-1)th data stream (which can also be understood as the previous data stream). In this way, it can be ensured that the (N-1)th data stream arrives at the third network node earlier than the Nth data stream during data transmission, thereby ensuring the arrival order of the data streams.
  • the first network node can use the latency-related information of the (N-1)th data stream, the bandwidth information and/or latency information of one or more candidate paths to select a second path for the Nth data stream.
  • the first network node can use the bandwidth information, latency information, and latency-related information of one or more candidate paths, and the latency-related information of the (N-1)th data stream, to select a path from the one or more paths with low bandwidth utilization (e.g., below a preset threshold or the smallest bandwidth utilization value) and a corresponding latency greater than that of the (N-1)th data stream, and use the selected path as the second path.
  • low bandwidth utilization e.g., below a preset threshold or the smallest bandwidth utilization value
  • the first network node can adjust the length of the Nth data stream to facilitate the selection of the second path for the adjusted Nth data stream.
  • the method may further include: if a second path cannot be selected for the Nth data stream, re-dividing the data stream to obtain a re-divided Nth data stream; and using the latency-related information of the (N-1)th data stream, the bandwidth information and/or latency information of the one or more candidate paths, to select a second path for the re-divided Nth data stream.
  • the first network node can re-divide the data stream. That is, the first network node can adjust the length of the Nth data stream so that a second path can be selected for the adjusted Nth data stream by using the latency-related information of the (N-1)th data stream, the bandwidth information and/or latency information of one or more candidate paths.
  • the first network node can obtain Flowlet2, which has a length of 5 packets. If a second path cannot be selected for Flowlet2, the first network node can re-divide the data stream a second time so that the adjusted Flowlet2 has a length of 7 packets. Then, using the latency corresponding to Flowlet1, the bandwidth information and latency information of one or more candidate paths, the first network node selects a path with low bandwidth utilization and a latency corresponding to Flowlet2 that is greater than the latency corresponding to Flowlet1 from one or more candidate paths, and uses the selected path as the second path.
  • the first network node can transmit the divided data stream in the form of messages.
  • transmitting the partitioned data stream using selected multiple paths includes: generating a message based on the partitioned data stream, and transmitting the generated message using the selected multiple paths.
  • the generated message contains the partitioned data stream and/or second information, the second information being used to identify the first service.
  • the generated message can include a message header and a data portion.
  • the second information can be set in the message header, and the divided data streams can be set in the data.
  • the second information can include a first field, the length of which can be set as needed, such as 32 bits, which can indicate the transmission requirements of the first service, such as whether high-throughput transmission is required and/or whether the arrival order of the data stream is guaranteed.
  • the first network node can generate a first message and transmit the first message using the first path, the first message containing the first data stream and second information; for the Nth data stream, the first network node can generate a second message and transmit the second message using the second path, the second message containing the Nth data stream and second information.
  • the first network node can generate third information, which is used to indicate whether the second network node supports load balancing. That is, in one embodiment, the generated message may also include the third information.
  • the third information can be set in the message header.
  • the third information can include a second field, the length of which can be set as needed, such as 1 bit. It can identify whether the second network node needs to perform hierarchical load balancing (also known as recursive load balancing).
  • Hierarchical load balancing can be understood as the second network node referring to the first network node to further divide the divided data stream and select the corresponding path, thereby using the selected path to transmit the divided data stream.
  • the first network node may generate fourth and/or fifth information.
  • the fourth information indicates whether the third network node supports verification processing (also known as strict order preservation), and the fifth information represents the sequence number of the partitioned data stream, indicating the order of the partitioned data stream within the data stream.
  • the generated message may also contain the fourth and/or fifth information.
  • the fourth and fifth information can be set in the message header.
  • the fourth information can include a third field, and its length can be set as needed, such as 1 bit.
  • the fifth information can include a fourth field, and its length can be set as needed, such as 32 bits.
  • the first network node can also generate a fifth field, which can be understood as a reserved field for the first network node to use as needed.
  • the length can be set as needed, for example, 30 bits.
  • the fifth field can be set in the message header.
  • the message header can include the following fields: GSN ID (i.e., the first field), ST (i.e., the second field), R (i.e., the third field), SEQ (i.e., the fourth field), and RESERVE (i.e., the fifth field).
  • R is used to identify whether the second network node supports recursive load balancing.
  • SEQ is used to identify the hierarchical load balancing of the second network node and the verification processing of the third network node.
  • RESERVE can be set as needed, with a default value of 0.
  • the generated message can be carried on multiple protocol data planes. Taking the IPv6 extension header as an example, as shown in Figure 5, the next header field can be defined as 100. If the message header contains the first, second, third, fourth and fifth fields, the length of the message header can be set according to the sum of the lengths of the first, second, third, fourth and fifth fields, such as 96 bits, or 12 bytes.
  • this disclosure also provides a data transmission method, as shown in FIG6, applied to a second network node, the method including steps 601-602.
  • Step 601 Receive the divided data stream, wherein the divided data stream is obtained by dividing the data stream of the first service, and the divided data stream is transmitted using multiple paths.
  • Step 602 Send out the partitioned data stream.
  • the second network node can receive the segmented data stream in the form of messages.
  • step 601 may include receiving a message, wherein the received message contains a segmented data stream and/or second information, the second information being used to identify the first service.
  • the received message may also contain third information, which is used to indicate whether the second network node supports load balancing processing.
  • the second network node can send the received packets based on multiple paths selected by the first network node, that is, the second network node transparently transmits the received packets.
  • the received message may also contain fourth and/or seventh information.
  • the fourth information indicates whether the third network node supports verification processing
  • the seventh information represents the sequence number of the divided sub-data streams. Thus, if the third network node supports verification processing, it can verify the order of the divided data streams to avoid data stream order issues after transmission.
  • the second network node can further divide the divided data stream to further improve the load balancing of the network and thus increase the data transmission throughput.
  • the method may further include: dividing the partitioned data stream into sub-data streams when the second network node supports load balancing; selecting multiple paths for the sub-data streams using sixth information, wherein the sixth information includes link state information of one or more candidate paths associated with the third network node; and updating the received packets based on the sub-data streams, and transmitting the updated packets using the selected multiple paths, wherein the updated packets include the sub-data streams and/or the second information.
  • the second network node can divide the first data stream into sub-data streams (e.g., two sub-data streams), and then select a corresponding path for each sub-data stream.
  • the second network node can divide the Nth data stream into sub-data streams (e.g., three sub-data streams), and then select a corresponding path for each sub-data stream.
  • This embodiment of the disclosure does not limit the number of sub-data streams.
  • the second network node Before selecting a path for the divided sub-data streams, the second network node needs to obtain the sixth information.
  • the method may further include: sending an eighth message to a management node, wherein the eighth message is used to request link status information of one or more candidate paths associated with a third network node, the management node being used to manage one or more network nodes in the network; and receiving a sixth message sent by the management node.
  • the sixth information includes one or more of the following (or at least one):
  • the latency information of one or more candidate paths is the latency information of one or more candidate paths.
  • the second network node can select the corresponding path for the divided sub-data streams based on the method of the first network node. Specifically, after the first division of the divided data streams, the second network node can obtain the first sub-data stream and select the corresponding path for the first sub-data stream.
  • selecting multiple paths for the divided sub-data streams using the sixth information includes: for the first divided sub-data stream, selecting a third path for the first sub-data stream using the bandwidth information and/or latency information of the one or more candidate paths.
  • the first sub-data stream may be referred to as the first sub-data stream, and this embodiment of the disclosure does not limit this terminology.
  • the third path is associated with a third network node and/or one or more second network nodes.
  • the second network node when the sixth information includes bandwidth information of one or more candidate paths, the second network node can use the bandwidth information of one or more candidate paths to select the third path for the first sub-data stream; when the sixth information includes latency information of one or more candidate paths, the second network node can use the latency information of one or more candidate paths to select the third path for the first sub-data stream; when the sixth information includes both bandwidth and latency information of one or more candidate paths, the second network node can use both bandwidth and latency information of one or more candidate paths to select the third path for the first sub-data stream.
  • the second network node when Flowlet1 contains 6 packets, the second network node performs the first partitioning of Flowlet1 to obtain subflow1 (i.e., the first sub-data flow), which contains 2 packets. Then, the second network node can select a path with low bandwidth utilization and low latency from one or more candidate paths based on the bandwidth utilization and latency corresponding to one or more candidate paths, and use the selected path as the third path.
  • subflow1 i.e., the first sub-data flow
  • the second network node can update the received packets based on the first sub-data stream and transmit the updated packets using the third path.
  • the updated packets may contain the first sub-data stream and/or the second information.
  • the second network node can further divide the partitioned data stream, select corresponding paths for subsequent sub-data streams, and transmit them. This enables parallel transmission of sub-data streams, further improving network load balancing and thus increasing data transmission throughput.
  • the step of using the sixth information to select multiple paths for the divided sub-data streams includes: for the Mth sub-data stream after division, using the latency-related information of the (M-1)th sub-data stream, the bandwidth information and/or latency information of the one or more candidate paths, to select a fourth path for the Mth sub-data stream, where M is an integer greater than or equal to 2.
  • the latency-related information of the (M-1)th sub-data stream may include the latency corresponding to the (M-1)th sub-data stream, specifically a third latency and a fourth latency.
  • the third latency can be understood as the latency of sending the data packets contained in the (M-1)th sub-data stream
  • the fourth latency can be understood as the latency of transmitting the (M-1)th sub-data stream using the corresponding path.
  • the fourth path is associated with a third network node and/or one or more second network nodes.
  • the second network node can partition Flowlet1 a second time to obtain subflow2 (i.e., the second sub-data flow), which contains 2 packets.
  • the second network node can select a path from one or more candidate paths for subflow2 that has low bandwidth utilization and a corresponding latency (i.e., the sum of the latency of sending the 3 packets contained in subflow2 and the latency of transmitting subflow2) that is greater than the latency of subflow1 (i.e., the sum of the latency of sending the 2 packets contained in subflow1 and the latency of transmitting subflow1 using the third path), and use the selected path as the fourth path.
  • a corresponding latency i.e., the sum of the latency of sending the 3 packets contained in subflow2 and the latency of transmitting subflow2
  • the latency of subflow1 i.e., the sum of the latency of sending the 2 packets contained in subflow1 and the latency of transmitting subflow1 using the third path
  • the second network node can adjust the length of the Mth sub-data stream to facilitate the selection of the fourth path for the adjusted Mth data stream.
  • the method may further include: if a fourth path cannot be selected for the Mth sub-data stream, re-dividing the divided data stream to obtain the re-divided Mth sub-data stream; and using the latency-related information of the (M-1)th sub-data stream, the bandwidth information and/or latency information of the one or more candidate paths, to select a fourth path for the re-divided Mth sub-data stream.
  • the second network node can re-divide Flowlet1 to obtain a re-divised subflow2 containing 3 packets, thus adjusting the length of subflow2. Then, based on the bandwidth utilization and latency of one or more candidate paths, the second network node can select a path with low bandwidth utilization and a latency greater than that of subflow1 from one or more candidate paths for subflow2, and use the selected path as the fourth path.
  • the second network node can update the received message based on the Mth sub-data stream and use the fourth path to transmit the updated message.
  • the updated message may contain the Mth sub-data stream and/or the second information.
  • the updated message may also include the fourth and/or seventh information.
  • the fourth information indicates whether the third network node supports verification processing
  • the seventh information represents the sequence number of the divided sub-data streams, that is, the seventh information can indicate the order of the divided sub-data streams within the divided data stream.
  • the third network node supports verification processing, it can verify the order of the divided sub-data streams based on the seventh information to avoid the problem of disordered order of the transmitted sub-data streams.
  • this disclosure also provides a data transmission method, as shown in FIG7, applied to a third network node, the method including steps 701-702.
  • Step 701 Receive the divided data stream, wherein the divided data stream is obtained by dividing the data stream of the first service, and the divided data stream is transmitted using multiple paths.
  • Step 702 Integrate the divided data streams to obtain the data stream of the first service.
  • the third network node can receive the partitioned data stream sent by the second network node; wherein, the partitioned data stream can be received in the form of a message.
  • the third network node can receive messages, which may contain the divided data streams and/or the second information. According to the arrival order of the divided data streams, the third network node can integrate the divided data streams to obtain the data stream and send the data stream to the receiving device.
  • the received message may also include the fourth information and/or the seventh information. If it is determined that the third network node supports verification processing, the third network node can use the seventh information to perform sequential verification on the divided sub-data streams to obtain a verification result. If the verification result indicates that the verification failed (e.g., the second sub-data stream with a larger sequence number arrives at the third network node first, and the first sub-data stream with a smaller sequence number arrives later), the divided sub-data streams are reordered based on the seventh information, and the ordered sub-data streams are integrated to obtain the data stream. This ensures the order of the data streams.
  • the verification result indicates that the verification failed (e.g., the second sub-data stream with a larger sequence number arrives at the third network node first, and the first sub-data stream with a smaller sequence number arrives later)
  • the divided sub-data streams are reordered based on the seventh information, and the ordered sub-data streams are integrated to obtain the data stream. This ensures the order of the data streams.
  • the third network node can receive the updated message.
  • receiving the partitioned data stream includes:
  • the updated message contains a divided sub-data stream and/or second information, the divided sub-data stream being obtained based on the divided data stream, and the second information being used to identify the first service.
  • the third network node after receiving the updated message, the third network node can integrate the divided sub-data streams according to their arrival order to obtain the data stream; then, the data stream is sent to the receiving device.
  • the updated message may also include the fourth information and/or the seventh information; if it is determined that the third network node supports verification processing, the third network node may perform verification processing on the divided sub-data streams to ensure the order of the data streams.
  • the method may further include: when the third network node supports verification processing, performing sequential verification on the divided sub-data streams using the seventh information to obtain a verification result; when the verification result indicates that the verification failed, sorting the divided sub-data streams based on the seventh information; and integrating the sorted sub-data streams to obtain the data stream of the first service.
  • the third network node can use the seventh information to perform sequential verification on the divided sub-data streams; obtain the verification result; if the verification result indicates that the verification failed (for example, the third sub-data stream with a larger sequence number arrives at the third network node first, and the second sub-data stream with a smaller sequence number arrives at the third network node later), the divided data streams are reordered based on the seventh information, and the reordered data streams are integrated to obtain the final data stream. This ensures the order of the data streams.
  • the data transmission method provided in this disclosure includes: a first network node receiving a data stream of a first service; dividing the data stream and selecting multiple paths for the divided data stream using first information, which includes link status information of one or more candidate paths associated with a third network node; transmitting the divided data stream using the selected multiple paths; a second network node receiving the divided data stream and sending it out; and a third network node receiving the divided data stream and integrating it to obtain the data stream of the first service.
  • the entry node i.e., the first network node
  • the entry node divides the data stream and selects multiple transmission paths for the divided data stream based on the link status of the destination node (i.e., the third network node) associated with the service (e.g., a throughput-sensitive service).
  • the service e.g., a throughput-sensitive service.
  • This public application example proposes a scheme for achieving multi-path parallel transmission by utilizing network node cooperation.
  • the process of using network node cooperation to achieve multi-path parallel transmission includes the following steps.
  • Step 801 Each network node in the network periodically reports network quality information related to each network node, such as latency, bandwidth, packet loss, jitter, etc., to the controller (i.e., the management node mentioned above).
  • the controller i.e., the management node mentioned above.
  • Step 802 The network node obtains relevant network quality information from the controller.
  • Step 803 DC1 (i.e., the sending device) sends a service message to R1 (i.e., the first network node mentioned above).
  • the service message carries a message header and the data stream of the high-throughput service (i.e., the first service mentioned above).
  • Step 804 For the data flow, R1 selects the length of the corresponding flowlet and then selects the corresponding forwarding path using the relevant network quality information (i.e., the first information mentioned above).
  • R1 selects the path with the lowest bandwidth utilization and the lowest latency (i.e., the first path mentioned above) from all available paths for the message to reach the destination (i.e., one or more candidate paths mentioned above); for subsequent flowlets (i.e., the Nth data stream mentioned above), R1 selects the path with the lowest bandwidth utilization and the path that does not lose its order after transmission delay (i.e., the second path mentioned above) from all available paths for the message to reach the destination.
  • Step 805 Based on the selected path, R1 sends a service message to R2 (i.e., the second network node mentioned above).
  • the sent service message includes a flowlet and a message header.
  • Step 806 R2 determines whether recursive load balancing is needed based on the packet header carried by the service packet; if recursive load balancing is needed, it selects the subflow length and forwarding path.
  • R2 determines whether recursive load balancing is needed based on the R field in the packet header. If recursive load balancing is needed, R2 selects the subflow length corresponding to the flowlet in a similar manner to R1, and selects the corresponding forwarding path using the relevant network quality information (i.e., the sixth information mentioned above).
  • Step 807 Based on the selected path, R2 sends a service message to R10 (i.e., the third network node mentioned above).
  • the sent service message includes a subflow and a message header.
  • Step 808 R10 determines whether strict ordering is required based on the packet header carried by the service message. If strict ordering is required, the subflow is cached and reordered to ensure that the data stream sent to DC2 is not out of order. In other words, R10 can adopt differentiated processing methods for services requiring strict ordering and those requiring non-strict ordering.
  • Step 809 R10 sends a data stream to DC2 (i.e., the receiving device).
  • a distributed collaboration of network nodes is used to achieve parallel transmission of data streams.
  • This approach can fully utilize multi-path transmission to improve effective throughput without increasing the sorting burden, thereby simultaneously meeting the order preservation and load balancing requirements of high-throughput services.
  • network nodes can dynamically select the subflow size for multi-path transmission between packet-by-packet and flow-by-flow approaches, effectively reducing algorithm complexity. Furthermore, the above solution can be extended based on relevant protocols, allowing for smooth evolution and low implementation difficulty. In other words, it requires only minor modifications to fully utilize available network bandwidth, significantly improve network transmission efficiency, and facilitate the expansion of new business scenarios such as data express delivery.
  • this disclosure embodiment also provides a data transmission device disposed on a first network node, as shown in FIG9, the device comprising:
  • the first receiving unit 901 is used to receive the data stream of the first service
  • the partitioning unit 902 is used to partition the data stream using first information and select multiple paths for the partitioned data stream.
  • the first information includes link status information of one or more candidate paths associated with the third network node.
  • the transmission unit 903 is used to transmit the divided data stream using selected multiple paths.
  • the partitioning unit 902 is used to select multiple paths for the partitioned data stream using at least one of the bandwidth information and latency information of the one or more candidate paths.
  • the partitioning unit 902 is configured to perform at least one of the following:
  • a first path is selected for the first data stream using at least one of the bandwidth information and latency information of the one or more candidate paths;
  • a second path is selected for the Nth data stream by using at least one of the latency-related information of the (N-1)th data stream, the bandwidth information and latency information of the one or more candidate paths, where N is an integer greater than or equal to 2.
  • the partitioning unit 902 is further configured to: repartition the data stream to obtain a repartitioned Nth data stream when a second path cannot be selected for the Nth data stream; and select a second path for the repartitioned Nth data stream using at least one of the latency-related information of the (N-1)th data stream, the bandwidth information of one or more candidate paths, and the latency information.
  • the transmission unit 903 is configured to generate a message based on the divided data stream and transmit the generated message using selected multiple paths, wherein the generated message includes at least one of the divided data stream and second information, the second information being used to identify the first service.
  • the partitioning unit 902 is further configured to: send fifth information to a management node, wherein the fifth information is used to request link status information of one or more candidate paths, and the management node is used to manage one or more network nodes in the network; and receive first information sent by the management node.
  • the first receiving unit 901 can be implemented using a communication interface in a data transmission device.
  • the partitioning unit 902 and the transmission unit 903 can be implemented using a communication interface in a data transmission device combined with a processor.
  • this disclosure embodiment also provides a data transmission device disposed on a second network node, as shown in FIG10, the device comprising:
  • the second receiving unit 1001 is used to receive the divided data stream, which is obtained by dividing the data stream of the first service.
  • the divided data stream is transmitted using multiple paths.
  • the sending unit 1002 is used to send out the divided data stream.
  • the second receiving unit 1001 is configured to receive a message, wherein the received message includes at least one of a divided data stream and second information, the second information being used to identify the first service.
  • the received message further includes third information, wherein the third information is used to indicate whether the second network node supports load balancing processing.
  • the apparatus may further include a processing unit; wherein the processing unit is configured to: divide the partitioned data stream to obtain partitioned sub-data streams if the second network node supports load balancing processing; and select multiple paths for the partitioned sub-data streams using sixth information, wherein the sixth information includes link state information of one or more candidate paths associated with the third network node; the sending unit 1002 is configured to update the received message based on the partitioned sub-data streams and transmit the updated message using the selected multiple paths, wherein the updated message includes at least one of the partitioned sub-data streams and the second information.
  • the processing unit is configured to perform at least one of the following:
  • a third path is selected for the first sub-data stream using at least one of the bandwidth information and latency information of the one or more candidate paths;
  • a fourth path is selected for the Mth sub-data stream by using the latency-related information of the (M-1)th sub-data stream and at least one of the bandwidth and latency information of the one or more candidate paths, where M is an integer greater than or equal to 2.
  • the processing unit is further configured to: if a fourth path cannot be selected for the Mth sub-data stream, re-divide the divided data stream to obtain a re-divided Mth sub-data stream; and select a fourth path for the re-divided Mth sub-data stream using at least one of the latency-related information of the (M-1)th sub-data stream, the bandwidth information and latency information of one or more candidate paths.
  • the sending unit 1002 is further configured to send eighth information to the management node, wherein the eighth information is used to request link status information of one or more candidate paths associated with the third network node, and the management node is used to manage one or more network nodes in the network; the second receiving unit 1001 is further configured to receive sixth information sent by the management node.
  • the second receiving unit 1001 and the sending unit 1002 can be implemented by a communication interface in the data transmission device.
  • the processing unit can be implemented by a processor in the data transmission device.
  • this disclosure embodiment also provides a data transmission device, disposed on a third network node, as shown in FIG11, the device comprising:
  • the third receiving unit 1101 is used to receive the divided data stream, which is obtained by dividing the data stream of the first service.
  • the divided data stream is transmitted using multiple paths.
  • Integration unit 1102 is used to integrate the divided data streams to obtain the data stream of the first service.
  • the third receiving unit 1101 is used to receive an updated message, wherein the updated message includes at least one of a divided sub-data stream and second information, the divided sub-data stream is obtained based on the divided data stream, and the second information is used to identify the first service; the integration unit 1102 is used to integrate the divided sub-data stream to obtain the data stream of the first service.
  • the updated message further includes at least one of fourth information and seventh information, wherein the fourth information is used to indicate whether the third network node supports verification processing, and the seventh information represents the sequence number of the divided sub-data streams; the integration unit 1102 is further configured to: perform sequential verification on the divided sub-data streams using the seventh information when the third network node supports verification processing, to obtain a verification result; sort the divided sub-data streams based on the seventh information when the verification result indicates that the verification failed; and integrate the sorted sub-data streams to obtain the data stream of the first service.
  • fourth information is used to indicate whether the third network node supports verification processing
  • the seventh information represents the sequence number of the divided sub-data streams
  • the integration unit 1102 is further configured to: perform sequential verification on the divided sub-data streams using the seventh information when the third network node supports verification processing, to obtain a verification result; sort the divided sub-data streams based on the seventh information when the verification result indicates that the verification failed; and integrate the sorted sub-data streams to obtain the data stream of the first service.
  • the third receiving unit 1101 can be implemented by a communication interface in the data transmission device.
  • the integration unit 1102 can be implemented by a processor in the data transmission device.
  • the data transmission device provided in the above embodiments is only illustrated by the division of the above program modules. In practical applications, the above processing can be assigned to different program modules as needed, that is, the internal structure of the device can be divided into different program modules to complete all or part of the processing described above.
  • the data transmission device and the data transmission method embodiments provided in the above embodiments belong to the same concept, and their specific implementation process can be found in the method embodiments, which will not be repeated here.
  • this disclosure embodiment also provides a first network node, as shown in FIG12, the first network node 1200 including:
  • the first communication interface 1201 is capable of exchanging information with the second network node
  • the first processor 1202 is connected to the first communication interface 1201 to enable information interaction with the second network node, and is used to execute the methods provided by one or more technical solutions on the first network node side when running a computer program;
  • the computer program is stored in the first memory 1203.
  • the first communication interface 1201 is used to receive the data stream of the first service; the first processor 1202 is used to divide the data stream and select multiple paths for the divided data stream using first information, wherein the first information includes link status information of one or more candidate paths associated with the third network node; the first communication interface 1201 is used to transmit the divided data stream using the selected multiple paths.
  • the first processor 1202 is configured to select multiple paths for the partitioned data stream using at least one of the bandwidth information and latency information of the one or more candidate paths.
  • the first processor 1202 is configured to perform at least one of the following:
  • a first path is selected for the first data stream using at least one of the bandwidth information and latency information of the one or more candidate paths;
  • a second path is selected for the Nth data stream by using at least one of the latency-related information of the (N-1)th data stream, the bandwidth information and latency information of the one or more candidate paths, where N is an integer greater than or equal to 2.
  • the first processor 1202 is further configured to: re-divide the data stream to obtain a re-dividated Nth data stream when a second path cannot be selected for the Nth data stream; and select a second path for the re-dividated Nth data stream using at least one of the latency-related information of the (N-1)th data stream and the bandwidth and latency information of one or more candidate paths.
  • the first processor 1202 is configured to: generate a message based on the partitioned data stream, and transmit the generated message using selected multiple paths, wherein the generated message includes at least one of the partitioned data stream and second information, the second information being used to identify the first service.
  • the first communication interface 1201 is configured to: send fifth information to a management node, wherein the fifth information is used to request link status information of one or more candidate paths, and the management node is used to manage one or more network nodes in the network; and receive first information sent by the management node.
  • bus system 1204. the various components in the first network node 1200 are coupled together via a bus system 1204. It is understood that the bus system 1204 is used to enable communication between these components. In addition to a data bus, the bus system 1204 also includes a power bus, a control bus, and a status signal bus. However, for clarity, all buses are labeled as bus system 1204 in Figure 12.
  • the first memory 1203 in this embodiment is used to store various types of data to support the operation of the first network node 1200. Examples of such data include any computer program used to operate on the first network node 1200.
  • the methods disclosed in the above embodiments of this disclosure can be applied to, or implemented by, the first processor 1202.
  • the first processor 1202 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by the integrated logic circuitry of the hardware or by instructions in the form of software within the first processor 1202.
  • the first processor 1202 may be a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
  • DSP digital signal processor
  • the first processor 1202 can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this disclosure.
  • a general-purpose processor may be a microprocessor or any conventional processor, etc.
  • the steps of the methods disclosed in the embodiments of this disclosure can be directly manifested as execution by a hardware decoding processor, or execution by a combination of hardware and software modules in the decoding processor.
  • the software modules may be located in a storage medium, specifically in the first memory 1203.
  • the first processor 1202 reads information from the first memory 1203 and, in conjunction with its hardware, completes the steps of the aforementioned method.
  • the first network node 1200 may be implemented by one or more application-specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers (MCUs), microprocessors, or other electronic components to perform the aforementioned method.
  • ASICs application-specific integrated circuits
  • DSPs programmable logic devices
  • CPLDs complex programmable logic devices
  • FPGAs field-programmable gate arrays
  • general-purpose processors controllers, microcontrollers (MCUs), microprocessors, or other electronic components to perform the aforementioned method.
  • this disclosure embodiment also provides a second network node, as shown in FIG13, the second network node 1300 including:
  • the second communication interface 1301 is capable of exchanging information with the first network node and the third network node;
  • the second processor 1302 is connected to the second communication interface 1301 to enable information interaction with the first network node and the third network node, and to execute the methods provided by one or more technical solutions on the second network node side when running a computer program.
  • the computer program is stored in the second memory 1303.
  • the second communication interface 1301 is used to receive the divided data stream, wherein the divided data stream is obtained by dividing the data stream of the first service, and the divided data stream is transmitted using multiple paths; and to send the divided data stream.
  • the second communication interface 1301 is used to receive a message, wherein the received message contains at least one of a segmented data stream and second information, the second information being used to identify the first service.
  • the received message further includes third information, wherein the third information is used to indicate whether the second network node supports load balancing processing; the second processor 1302 is configured to: divide the partitioned data stream to obtain partitioned sub-data streams if the second network node supports load balancing processing; select multiple paths for the partitioned sub-data streams using sixth information, wherein the sixth information includes link state information of one or more candidate paths associated with the third network node; and update the received message based on the partitioned sub-data streams, and transmit the updated message using the selected multiple paths, wherein the updated message includes at least one of the partitioned sub-data streams and the second information.
  • the third information is used to indicate whether the second network node supports load balancing processing
  • the second processor 1302 is configured to: divide the partitioned data stream to obtain partitioned sub-data streams if the second network node supports load balancing processing; select multiple paths for the partitioned sub-data streams using sixth information, wherein the sixth information includes link state information of one or more candidate paths associated with
  • the second processor 1302 is configured to perform at least one of the following:
  • a third path is selected for the first sub-data stream using at least one of the bandwidth information and latency information of the one or more candidate paths;
  • a fourth path is selected for the Mth sub-data stream by using the latency-related information of the (M-1)th sub-data stream and at least one of the bandwidth and latency information of the one or more candidate paths, where M is an integer greater than or equal to 2.
  • the second processor 1302 is further configured to: if a fourth path cannot be selected for the Mth sub-data stream, re-divide the divided data stream to obtain a re-divided Mth sub-data stream; and select a fourth path for the re-divided Mth sub-data stream using at least one of the latency-related information of the (M-1)th sub-data stream and the bandwidth and latency information of one or more candidate paths.
  • the second communication interface 1301 is further configured to: send eighth information to a management node, wherein the eighth information is used to request link status information of one or more candidate paths associated with a third network node, the management node being used to manage one or more network nodes in the network; and receive sixth information sent by the management node.
  • bus system 1304 is used to enable communication between these components.
  • bus system 1304 also includes a power bus, a control bus, and a status signal bus.
  • power bus In addition to a data bus, bus system 1304 also includes a power bus, a control bus, and a status signal bus.
  • control bus In addition to a data bus, bus system 1304 also includes a power bus, a control bus, and a status signal bus. However, for clarity, all buses are labeled as bus system 1304 in Figure 13.
  • the second memory 1303 in this embodiment of the disclosure is used to store various types of data to support the operation of the second network node 1300. Examples of such data include any computer program used to operate on the second network node 1300.
  • the methods disclosed in the above embodiments of this disclosure can be applied to, or implemented by, the second processor 1302.
  • the second processor 1302 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by the integrated logic circuitry of the hardware or by instructions in the form of software within the second processor 1302.
  • the second processor 1302 may be a general-purpose processor, a DSP, or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
  • the second processor 1302 can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this disclosure.
  • the general-purpose processor may be a microprocessor or any conventional processor, etc.
  • the steps of the methods disclosed in the embodiments of this disclosure can be directly manifested as execution by a hardware decoding processor, or execution by a combination of hardware and software modules in the decoding processor.
  • the software modules may be located in a storage medium, specifically a second memory 1303.
  • the second processor 1302 reads information from the second memory 1303 and, in conjunction with its hardware, completes the steps of the aforementioned method.
  • the second network node 1300 may be implemented by one or more ASICs, DSPs, PLDs, CPLDs, FPGAs, general-purpose processors, controllers, MCUs, microprocessors, or other electronic components to perform the aforementioned method.
  • this disclosure embodiment also provides a third network node, as shown in FIG14, the third network node 1400 including:
  • the third communication interface 1401 is capable of exchanging information with the second network node
  • the third processor 1402 is connected to the third communication interface 1401 to enable information interaction with the second network node and to execute the methods provided by one or more technical solutions on the third network node side when running a computer program.
  • the computer program is stored in the third memory 1403.
  • the third communication interface 1401 is used to receive the divided data stream, wherein the divided data stream is obtained by dividing the data stream of the first service, and the divided data stream is transmitted using multiple paths; the third processor 1402 is used to integrate the divided data stream to obtain the data stream of the first service.
  • the third communication interface 1401 is used to receive an updated message, the updated message containing at least one of a divided sub-data stream and second information, the divided sub-data stream being obtained based on the divided data stream, and the second information being used to identify the first service; correspondingly, the third processor 1402 is used to integrate the divided sub-data streams to obtain the data stream of the first service.
  • the updated message further includes at least one of fourth information and seventh information, wherein the fourth information is used to indicate whether the third network node supports verification processing, and the seventh information represents the sequence number of the divided sub-data streams; the third processor 1402 is further configured to: if the third network node supports verification processing, perform sequential verification on the divided sub-data streams using the seventh information to obtain a verification result; if the verification result indicates that the verification failed, sort the divided sub-data streams based on the seventh information; and integrate the sorted sub-data streams to obtain the data stream of the first service.
  • fourth information is used to indicate whether the third network node supports verification processing
  • the seventh information represents the sequence number of the divided sub-data streams
  • the third processor 1402 is further configured to: if the third network node supports verification processing, perform sequential verification on the divided sub-data streams using the seventh information to obtain a verification result; if the verification result indicates that the verification failed, sort the divided sub-data streams based on the seventh information; and integrate the sorted sub-data streams to obtain the data stream of the
  • bus system 1404 is used to enable communication between these components.
  • bus system 1404 also includes a power bus, a control bus, and a status signal bus. However, for clarity, all buses are labeled as bus system 1404 in Figure 14.
  • the third memory 1403 in this embodiment is used to store various types of data to support the operation of the third network node 1400. Examples of such data include any computer program used to operate on the third network node 1400.
  • the third processor 1402 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by the integrated logic circuitry of the hardware or by instructions in the form of software within the third processor 1402.
  • the third processor 1402 may be a general-purpose processor, a DSP, or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
  • the third processor 1402 can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this disclosure.
  • the general-purpose processor may be a microprocessor or any conventional processor, etc.
  • the steps of the methods disclosed in the embodiments of this disclosure can be directly manifested as execution by a hardware decoding processor, or execution by a combination of hardware and software modules in the decoding processor.
  • the software modules may be located in a storage medium, specifically a third memory 1403.
  • the third processor 1402 reads information from the third memory 1403 and, in conjunction with its hardware, completes the steps of the aforementioned method.
  • the third network node 1400 may be implemented by one or more ASICs, DSPs, PLDs, CPLDs, FPGAs, general-purpose processors, controllers, MCUs, microprocessors, or other electronic components to perform the aforementioned method.
  • non-volatile memories can be read-only memories (ROM), programmable read-only memories (PROM), erasable programmable read-only memories (EPROM), electrically erasable programmable read-only memories (EEPROM), magnetic random access memories (FRAM), flash memories, magnetic surface memories, optical discs, or compact disc read-only memories (CD-ROM); magnetic surface memories can be disk storage or magnetic tape storage.
  • Volatile memory can be random access memory (RAM), which is used as an external cache.
  • RAM Random Access Memory
  • SRAM Static Random Access Memory
  • SSRAM Synchronous Static Random Access Memory
  • DRAM Dynamic Random Access Memory
  • SDRAM Synchronous Dynamic Random Access Memory
  • DDRSDRAM Double Data Rate Synchronous Dynamic Random Access Memory
  • ESDRAM Enhanced Synchronous Dynamic Random Access Memory
  • SLDRAM SyncLink Dynamic Random Access Memory
  • DRRAM Direct Rambus Random Access Memory
  • this disclosure also provides a data transmission system, as shown in FIG15, which includes: a first network node 1501, a second network node 1502, and a third network node 1503.
  • this disclosure also provides a storage medium, namely a computer storage medium, specifically a computer-readable storage medium.
  • a storage medium may include a first memory 1203 storing a computer program, which can be executed by a first processor 1202 of a first network node 1200 to complete the steps described in the first network node-side method.
  • a second memory 1303 storing a computer program, which can be executed by a second processor 1302 of a second network node 1300 to complete the steps described in the second network node-side method.
  • a third memory 1403 storing a computer program, which can be executed by a third processor 1402 of a third network node 1400 to complete the steps described in the third network node-side method.
  • the computer-readable storage medium may be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface memory, optical disc, or CD-ROM.
  • this disclosure also provides a computer program product, including a computer program that can be executed by a first processor 1202 of a first network node 1200 to complete the steps of the aforementioned first network node-side method; or, the computer program can be executed by a second processor 1302 of a second network node 1300 to complete the steps of the aforementioned second network node-side method; or, the computer program can be executed by a second processor 1402 of a third network node 1400 to complete the steps of the aforementioned third network node-side method.

Landscapes

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

Abstract

本公开公开了一种数据传输方法、装置、第一网络节点、第二网络节点、第三网络节点、存储介质及计算机程序产品。所述方法包括:第一网络节点接收第一业务的数据流;对所述数据流进行划分,并利用第一信息为划分后的数据流选择多条路径,所述第一信息包含与第三网络节点关联的一条或多条候选路径的链路状态信息;利用选择的多条路径传输划分后的数据流。如此,能够有效提高数据传输的吞吐量,进而满足了业务的高吞吐量的传输需求。

Description

数据传输方法、装置、相关设备、存储介质及计算器程序产品
相关申请的交叉引用
本申请基于公开号为202410733354.0、公开日为2024年06月06日的中国专利公开提出,并要求该中国专利公开的优先权,该中国专利公开的全部内容在此引入本公开作为参考。
技术领域
本公开涉及网络传输技术领域,尤其涉及一种数据传输方法、装置、相关设备、存储介质及计算器程序产品。
背景技术
吞吐敏感业务(比如东数西算、数据快递或数据中心(DC,Data Center)互连等业务)通常为大象流(可以理解为持续时间长),并存在高吞吐传输需求。
然而,面对日益凸显的高吞吐传输需求,目前缺乏高吞吐传输方案。
发明内容
为解决相关技术问题,本公开实施例提供一种数据传输方法、装置、相关设备、存储介质及计算机程序产品。
本公开实施例的技术方案是这样实现的:
本公开实施例提供一种数据传输方法,应用于第一网络节点,包括:接收第一业务的数据流;对所述数据流进行划分,并利用第一信息为划分后的数据流选择多条路径,所述第一信息包含与第三网络节点关联的一条或多条候选路径的链路状态信息;利用选择的多条路径传输划分后的数据流。
上述方案中,所述第一信息包含以下中的至少一项:所述一条或多条候选路径的带宽信息;所述一条或多条候选路径的时延信息。
上述方案中,所述对所述数据流进行划分,并利用第一信息为划分后的数据流选择多条路径,包括:利用所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为划分后的数据流选择多条路径。
上述方案中,所述利用所述一条或多条候选路径的带宽信息和时延信息中的至少一个为划分后的数据流选择多条路径,包括以下中的至少一个:针对划分后的第一个数据流,利用所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为所述第一个数据流选择出第一路径;针对划分后的第N个数据流,利用第N-1个数据流的时延相关信息、所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为所述第N个数据流选择出第二路径,N为大于或等于2的整数。
上述方案中,所述方法还包括:在无法为所述第N个数据流选择出第二路径的情况下,重新对所述数据流进行划分,得到重新划分后的第N个数据流;利用第N-1个数据流的时延相关信息、以及所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为重新划分后的第N个数据流选择出第二路径。
上述方案中,所述利用选择的多条路径传输划分后的数据流,包括:基于划分后的数据流生成报文,并利用选择的多条路径传输生成的报文,生成的报文包含划分后的数据流和第二信息中的至少一个,所述第二信息用于标识所述第一业务。
上述方案中,生成的报文还包含第三信息,所述第三信息用于指示第二网络节点是否支持负载均衡处理。
上述方案中,生成的报文还包含第四信息和第五信息中的至少一个,所述第四信息用于指示第三网络节点是否支持校验处理,所述第五信息表征划分后的数据流的序列号。
上述方案中,所述方法还包括:向管理节点发送第五信息,所述第五信息用于请求所述一条或多条候选路径的链路状态信息,所述管理节点用于管理网络中的一个或多个网络节点;接收所述管理节点发送的第一信息。
本公开实施例还提供一种数据传输方法,应用于第二网络节点,包括:接收划分后的数据流,划分后的数据流是对第一业务的数据流划分得到的,划分后的数据流是利用多条路径传输的;发出划分后的数据流。
上述方案中,所述接收划分后的数据流,包括:接收报文,接收的报文包含划分后的数据流和第二信息中的至少一个,所述第二信息用于标识所述第一业务。
上述方案中,接收的报文还包含第三信息,所述第三信息用于指示第二网络节点是否支持负载均衡处理;所述方法还包括:在第二网络节点支持负载均衡处理的情况下,对划分后的数据流进行划分,得到划分后的子数据流;利用第六信息,为划分后的子数据流选择多条路径,所述第六信息包含与第三网络节点关联的一条或多条候选路径的链路状态信息;基于划分后的子数据流对接收的报文进行更新,并利用选择的多条路径传输更新后的报文,更新后的报文包含划分后的子数据流和所述第二信息中的至少一个。
上述方案中,所述第六信息包含以下中的至少一项:所述一条或多条候选路径的带宽信息;所述一条或多条候选路径的时延信息。
上述方案中,所述利用第六信息,为划分后的子数据流选择多条路径,包括以下中的至少一个:针对划分后的第一个子数据流,利用所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为所述第一个子数据流选择出第三路径;针对划分后的第M个子数据流,利用第M-1个子数据流的时延相关信息、以及所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为所述第M个子数据流选择出第四路径,M为大于或等于2的整数。
上述方案中,所述方法还包括:在无法为所述第M个子数据流选择出第四路径的情况下,重新对划分后的数据流进行划分,得到重新划分后的第M个子数据流;利用第M-1个子数据流的时延相关信息、以及所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为重新划分后的第M个子数据流选择出第四路径。
上述方案中,更新后的报文还包含第四信息和第七信息中的至少一个,所述第四信息用于指示第三网络节点是否支持校验处理,所述第七信息表征划分后的子数据流的序列号。
上述方案中,所述方法还包括:向管理节点发送第八信息,所述第八信息用于请求与第三网络节点关联一条或多条候选路径的链路状态信息,所述管理节点用于管理网络中的一个或多个网络节点;接收所述管理节点发送的第六信息。
本公开实施例还提供一种数据传输方法,应用于第三网络节点,包括:接收划分后的数据流,划分后的数据流是对第一业务的数据流划分得到的,划分后的数据流是利用多条路径传输的;对划分后的数据流进行整合处理,得到所述第一业务的数据流。
上述方案中,所述接收划分后的数据流,包括:接收更新后的报文,更新后的报文包含划分后的子数据流和第二信息中的至少一个,划分后的子数据流是基于划分后的数据流得到的,所述第二信息用于标识所述第一业务;所述方法还包括:对划分后的子数据流进行整合处理,得到所述第一业务的数据流。
上述方案中,更新后的报文还包含第四信息和第七信息中的至少一个,所述第四信息用于指示第三网络节点是否支持校验处理,所述第七信息表征划分后的子数据流的序列号;所述方法还包括:在所述第三网络节点支持校验处理的情况下,利用所述第七信息对划分后的子数据流进行顺序校验,得到校验结果;在所述校验结果表征校验未通过的情况下,基于所述第七信息对划分后的子数据流进行排序;对排序后的子数据流进行整合处理,得到所述第一业务的数据流。
本公开实施例还提供一种数据传输装置,包括:第一接收单元,用于接收第一业务的数据流;划分单元,用于利用第一信息对所述数据流进行划分,并为划分后的数据流选择多条路径,所述第一信息包含与第三网络节点关联的一条或多条候选路径的链路状态信息;传输单元,用于利用选择的多条路径传输划分后的数据流。
本公开实施例还提供一种数据传输装置,包括:第二接收单元,用于接收划分后的数据流,划分后的数据流是对第一业务的数据流划分得到的,划分后的数据流是利用多条路径传输的;发送单元,用于发出划分后的数据流。
本公开实施例还提供一种数据传输装置,包括:第三接收单元,用于接收划分后的数据流,划分后的数据流是对第一业务的数据流划分得到的,划分后的数据流是利用多条路径传输的;整合单元,用于对划分后的数据流进行整合处理,得到所述第一业务的数据流。
本公开实施例还提供一种第一网络节点,包括:第一处理器及第一通信接口;其中,所述第一通信接口,用于接收第一业务的数据流;所述第一处理器,用于对所述数据流进行划分,并利用第一信息为划分后的数据流选择多条路径,所述第一信息包含与第三网络节点关联的一条或多条候选路径的链路状态信息;以及利用选择的多条路径传输划分后的数据流。
本公开实施例还提供一种第二网络节点,包括:第二处理器及第二通信接口;其中,所述第二通信接口,用于接收划分后的数据流,划分后的数据流是对第一业务的数据流划分得到的,划分后的数据流是利用多条路径传输的;以及发出划分后的数据流。
本公开实施例还提供一种第三网络节点,包括:第三处理器及第三通信接口;其中,所述第三通信接口,用于接收划分后的数据流,划分后的数据流是对第一业务的数据流划分得到的,划分后的数据流是利用多条路径传输的;所述第三处理器,用于对划分后的数据流进行整合处理,得到所述第一业务的数据流。
本公开实施例还提供一种第一网络节点,包括:第一处理器和用于存储能够在处理器上运行的计算机程序的第一存储器,
其中,所述第一处理器用于运行所述计算机程序时,执行上述第一网络节点侧任一方法的步骤。
本公开实施例还提供一种第二网络节点,包括:第二处理器和用于存储能够在处理器上运行的计算机程序的第二存储器,
其中,所述第二处理器用于运行所述计算机程序时,执行上述第二网络节点侧任一方法的步骤。
本公开实施例还提供一种第三网络节点,包括:第三处理器和用于存储能够在处理器上运行的计算机程序的第三存储器,
其中,所述第三处理器用于运行所述计算机程序时,执行上述第三网络节点侧任一方法的步骤。
本公开实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一网络节点侧任一方法的步骤,或者实现上述第二网络节点侧任一方法的步骤,或者实现上述第三网络节点侧任一方法的步骤。
本公开实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述第一网络节点侧任一方法的步骤,或者实现上述第二网络节点侧任一方法的步骤,或者实现上述第三网络节点侧任一方法的步骤。
本公开实施例提供的数据传输方法、装置、相关设备、存储介质及计算机程序产品,第一网络节点接收第一业务的数据流;对所述数据流进行划分,并利用第一信息为划分后的数据流选择多条路径,所述第一信息包含与第三网络节点关联的一条或多条候选路径的链路状态信息;利用选择的多条路径传输划分后的数据流;第二网络节点接收划分后的数据流后,发出划分后的数据流;而第三网络节点接收划分后的数据流后,对划分后的数据流进行整合处理,得到所述第一业务的数据流。本公开实施例提供的技术方案,在数据流传输的过程中,入口节点(即第一网络节点)根据与业务(比如吞吐敏感业务)关联的目的节点(即第三网络节点)的链路情况划分数据流,并为划分的数据流选择多条传输路径,以通过中间节点(即第二网络节点)和目的节点的协作实现数据流的并行传输,如此,能够有效提高数据传输的吞吐量,进而满足了业务的高吞吐量的传输需求。
附图说明
图1为本公开实施例第一种数据传输的方法流程示意图;
图2为本公开实施例一种网络的结构示意图;
图3为本公开实施例一种划分后的数据流的结构示意图;
图4为本公开实施例第一种报文头的结构示意图;
图5为本公开实施例第二种报文头的结构示意图;
图6为本公开实施例第二种数据传输的方法流程示意图;
图7为本公开实施例第三种数据传输的方法流程示意图;
图8为本公开应用示例一种多路径并行传输的方法流程示意图;
图9为本公开实施例第一种数据传输装置结构示意图;
图10为本公开实施例第二种数据传输装置结构示意图;
图11为本公开实施例第三种数据传输装置结构示意图;
图12为本公开实施例第一网络节点结构示意图;
图13为本公开实施例第二网络节点结构示意图;
图14为本公开实施例第三网络节点结构示意图;
图15为本公开实施例数据传输系统结构示意图。
具体实施方式
下面结合附图及实施例对本公开再作进一步详细的描述。
对于吞吐敏感业务,常用的传输方案包括等价路由(ECMP,Equal Cost Multi-path)、接收数据包指导(RPS,Receive Packet Steering)及流片(英文可以表达为FLOWLET)等。
上述ECMP传输方案是以数据流为单位传输的,具体原理是:在每一数据流对应的首个数据包从主机到达第一个交换机后,第一个交换机会根据数据包的五元组判断是否为数据流的第一个数据包;如果是数据流的第一个数据包,则会根据哈希算法选择一个发送端口进行发送;如果不是数据流的第一个数据包,则基于上一个数据包的发送端口进行发送。上述方案的优点是在传输控制协议(TCP,Transmission Control Protocol)传输过程中,确保不会发生数据包的排序错误而导致丢包,从而触发TCP重传机制;缺点是不能够充分利用链路带宽,由于哈希算法的选择可能会发生哈希冲突而导致不能做到发送端口的负载均衡(可以理解为重复选择一个发送端口进行发送),进而增加排队延时。即使基于哈希算法实现了发送端口的负载均衡,也可能存在为数据流分配到不合适的发送端口(比如为较短的数据流分配到较长的数据流对应的发送端口),进而增加排队延时。
上述RPS方案是以数据包为单位传输的,具体原理是:在每一个数据包从主机到达第一个交换机后,第一个交换机会随机选择一个发送端口发送数据包。上述方案的优点是在数据包较多时能够实现发送端口的负载均衡,避免排队延时;缺点是容易出现数据包的排序错误,导致丢包而触发重传。另外,如果在数据包较少时未实现发送端口的负载均衡,在这种情况下,数据包排序错误将会是很大的问题。这样,随着带宽的增加,接收端对排序错误的数据包进行顺序保障处理时,存在所占用的中央处理器(CPU,Central Processing Unit)资源、内存等开销大的问题。
上述流片方案是以流片(可以理解为一次发的所有数据包)为单位传输的,具体原理是:基于TCP传输时一次性大量发包(英文可以表达为bast)的特性,当两次大量发包的时间间隔大于或等于上次发送端口与其它任一发送端口的传输时间差时,随机选择一个发送端口发送该流片;当两次大量发包的时间间隔小于上次发送端口与其它任一发送端口的传输时间差时,利用上一流片对应的发送端口发送该流片。上述方案的优点是能够兼顾了发送端口的负载均衡,使得排队延时低,也不会造成数据包的排序错误,缺点是传输时间差无法计算得到,只能人为设定阈值,但是,阈值设置过大会无法兼顾发送端口的负载均衡,阈值设置过小会造成数据包的排序错误。
通过上述描述可以看出,针对日益凸显的高吞吐量的传输需求,目前缺乏高吞吐传输方案。
基于此,在本公开的各种实施例中,针对业务的数据流,通过网络中的多个网络节点协作实现数据流的并行传输,从而提高数据传输过程中的吞吐量,以满足业务的高吞吐传输需求。
本公开实施例提供了一种数据传输方法,如图1所示,应用于第一网络节点,该方法包括步骤101-103。
步骤101:接收第一业务的数据流。
步骤102:对所述数据流进行划分,并利用第一信息为划分后的数据流选择多条路径,所述第一信息包含与第三网络节点关联的一条或多条(也可以理解为至少一条)候选路径的链路状态信息。
步骤103:利用选择的多条路径传输划分后的数据流。
在实际应用时,所述第一网络节点可以包含网络中的入口节点,所述第一网络节点可以称为入口节点、入口网络节点或边缘入口节点等,所述第一网络节点与发送端设备关联,本公开实施例对所述第一网络节点的名称不作限定,只要实现其功能即可。另外,所述第三网络节点可以包含网络中的出口节点,所述第三网络节点可以称为出口节点、出口网络节点或边缘出口节点等,所述第三网络节点与接收端设备关联,本公开实施例对所述第三网络节点的名称不作限定,只要实现其功能即可。
在步骤101中,所述第一网络节点可以接收发送端设备发送的数据流(英文可以表达为flow),所述数据流可以由多个数据包(英文可以表达为packet)组成,所述数据流的长度与数据包的数量关联。另外,所述第一网络节点还可以获取业务信息,所述业务信息用于指示第一业务的类型,比如具有高吞吐传输需求的第一业务。在一示例中,第一网络节点可以从发送端设备获取业务信息。在另一示例中,第一网络节点也可以通过深度数据包检测(DPI,Deep Packet Inspection))的方式获取业务信息,其中,通过DPI的方式获取业务信息的具体处理过程可参照相关技术理解,这里不再赘述。
在实际应用时,步骤102之前,所述第一网络节点需要获取第一信息。
基于此,在一实施例中,该方法还可以包括:向管理节点发送第五信息,所述第五信息用于请求所述一条或多条候选路径的链路状态信息,所述管理节点用于管理网络中的一个或多个网络节点;以及接收所述管理节点发送的第一信息。
其中,所述管理节点可以称为控制节点或控制器(英文可以表达为controller)等,所述管理节点能够管理网络中的一个或多个网络节点以及与网络节点关联的所有路径的链路状态信息,网络中可以包含第一网络节点、一个或多个第二网络节点(也可以理解为至少一个第二网络节点)和第三网络节点,所述链路状态信息可以包含路径拓扑、时延信息、带宽信息等信息中的一项或多项(也可以理解为至少之一)。另外,所述第二网络节点可以包含网络中的中间节点,所述第二网络节点可以称为中间节点或中间网络节点等,本公开实施例对所述第二网络节点的名称不作限定。
示例性地,如图2所示,假设网络中包含10个网络节点、一个管理节点C1和两个设备(分别是第一设备DC1和第二设备DC2)。如图2所示,在第一设备为发送端设备,且第二设备为接收端设备的情况下,R1代表第一网络节点,R2、R3、R4、R5、R6、R7、R8、R9代表8个第二网络节点,R10代表第三网络节点。在第二设备为发送端设备,且第一设备为接收端设备的情况下,R10代表第一网络节点,R2、R3、R4、R5、R6、R7、R8、R9代表8个第二网络节点,R1代表第三网络节点。在上述架构下,每个网络节点可以周期性向管理节点C1上报自身对应的网络质量信息(比如时延、带宽、丢包或抖动等信息),使得管理节点能够基于上报的网络质量信息得到网络中所有路径的链路状态信息。
在实际应用时,针对数据流,所述第一网络节点能够确定所述数据流需要到达的目的节点;在确定目的节点为第三网络节点的情况下,所述第一网络节点可以向所述管理节点发送所述第五信息,以请求所述一条或多条候选路径的链路状态信息,所述一条或多条候选路径可以理解为数据流从第一网络节点到达第三网络节点所有可用的传输路径。
在实际应用时,在接收到所述第五信息之后,所述管理节点可以从网络中所有路径的链路状态信息中查找与所述一条或多条候选路径相匹配的链路状态信息,从而得到所述第一信息;然后,所述管理节点可以向所述第一网络节点反馈所述第一信息。
在另一示例中,所述第一网络节点还可以通过分布式随流检测的方式获取所述第一信息,其中,通过分布式随流检测的方式获取所述第一信息的具体处理过程可参照相关技术理解,这里不再赘述。
在一实施例中,所述第一信息可以包含以下一项或多项(也可以理解为至少之一):
所述一条或多条候选路径的带宽信息;
所述一条或多条候选路径的时延信息。
在这种情况下,所述第一网络节点可以基于候选路径的时延信息和/或带宽信息选择路径,以在保障数据流到达第三网络节点的顺序(也可以称为保序)的前提下提高网络的负载均衡程度,从而有效提高数据传输的吞吐量。在本公开的实施例中,“A和/或B”意味着“A、B中的至少一个”,如A,B,或A和B。
在一实施例中,步骤102的具体实现可以包括:利用所述一条或多条候选路径的带宽信息和/或时延信息,为划分后的数据流选择多条路径。
其中,所述带宽信息可以包含候选路径对应的带宽利用率,所述时延信息可以包含候选路径对应的时延,即利用候选路径进行数据传输的时延。
在实际应用时,在对所述数据流进行划分并选择对应的路径的过程中,所述第一网络节点可以在每一次对所述数据流进行划分后,为划分后的数据流选择对应的路径;其中,可以根据相关配置信息对所述数据流进行划分,也就是说,划分后的数据流的长度可以是根据预先配置的,本公开实施例对数据流的划分方式不作限定。具体地,对所述数据流进行第一次划分后,所述第一网络节点能够得到划分后的第一个数据流,然后,为第一个数据流选择对应的路径。
具体地,在一实施例中,所述利用所述一条或多条候选路径的带宽信息和/或时延信息,为划分后的数据流选择多条路径,包括:
针对划分后的第一个数据流,利用所述一条或多条候选路径的带宽信息和/或时延信息,为所述第一个数据流选择出第一路径。
其中,所述第一个数据流可以称为首个数据流,所述第一路径与一个或多个第二网络节点以及第三网络节点关联。
在实际应用时,在所述第一信息包含一条或多条候选路径的带宽信息的情况下,所述第一网络节点可以利用一条或多条候选路径的带宽信息,为所述第一个数据流选择所述第一路径;在所述第一信息包含一条或多条候选路径的时延信息的情况下,所述第一网络节点可以利用一条或多条候选路径的时延信息,为所述第一个数据流选择所述第一路径;在所述第一信息包含一条或多条候选路径的带宽信息和时延信息的情况下,所述第一网络节点可以利用一条或多条候选路径的带宽信息和时延信息,为所述第一个数据流选择所述第一路径。
示例性地,如图3所示,对Flow(即数据流)进行一次划分后,所述第一网络节点能够得到Flowlet1(即第一个数据流),Flowlet1包含6个packet(即数据包)。然后,所述第一网络节点可以基于一条或多条候选路径对应的带宽利用率和时延,从一条或多条候选路径中为Flowlet1选择带宽利用率低且时延小的路径,并将选择的路径作为第一路径。
在实际应用时,选择出所述第一路径后,所述第一网络节点可以利用所述第一路径传输所述第一个数据流,同时,所述第一网络节点还可以对所述数据流再次划分,并为后续划分后的数据流选择对应的路径并进行数据流的传输,本公开实施例对划分后的数据流的数量不作限定。如此,能够实现数据流的并行传输,提高负载均衡程度,从而有效提高数据传输的吞吐量。
具体地,在一实施例中,所述利用所述一条或多条候选路径的带宽信息和/或时延信息,为划分后的数据流选择多条路径,包括:
针对划分后的第N个数据流,利用第N-1个数据流的时延相关信息、所述一条或多条候选路径的带宽信息和/或时延信息,为所述第N个数据流选择出第二路径,N为大于或等于2的整数。
其中,第N-1个数据流的时延相关信息可以包含第N-1个数据流对应的时延,具体可以包含第一时延和第二时延,所述第一时延可以理解为发送第N-1个数据流包含的数据包的时延,所述第二时延可以理解为利用对应的路径传输第N-1个数据流的时延。另外,所述第二路径与一个或多个第二网络节点以及第三网络节点关联。
在实际应用时,针对第N-1个数据流的时延相关信息,所述第一网络节点基于第N-1个数据流的长度,能够确定对应的第一时延,同时,基于第N-1数据流对应的选择出的路径的时延信息,能够确定对应的第二时延;利用所述第一时延和所述第二时延,所述第一网络节点能够得到第N-1个数据流的时延相关信息。
示例性地,如图3所示,针对Flowlet1,所述第一网络节点基于Flowlet1的长度(即包含的6个packet),确定对应的第一时延;同时,基于Flowlet1对应的第一路径的时延信息,确定第二时延;通过对第一时延和第二时延进行求和处理,得到Flowlet1对应的时延。
需要说明的是,由于每个划分后的数据流对应的长度可能不同,使得划分后的数据流对应的第一时延可能不同。示例性地,在第N个数据流包含5个数据包,第N-1个数据流包含10个数据包的情况下,第N-1个数据流对应的第一时延会大于第N个数据流对应的第一时延;在第N个数据流包含5个数据包,第N-1个数据流包含3个数据包的情况下,第N-1个数据流对应的第一时延会小于第N个数据流对应的第一时延。
在实际应用时,为了避免划分后的数据流在到达第三网络节点后出现顺序错乱的问题,所述第一网络节点可以使得第N个数据流(也可以理解为当前数据流)对应的时延大于第N-1个数据流(也可以理解为上一个数据流)对应的时延,如此,能够保障数据传输过程中第N-1个数据流早于第N个数据流到达第三网络节点,进而保障数据流的到达顺序。
因此,在为第N个数据流选择路径的过程中,所述第一网络节点可以利用第N-1个数据流的时延相关信息、所述一条或多条候选路径的带宽信息和/或时延信息,为所述第N个数据流选择出第二路径。具体地,对于第N个数据流,所述第一网络节点可以利用所述一条或多条候选路径的带宽信息、时延信息和第N-1个数据流的时延相关信息,从所述一条或多条路径中选择带宽利用率低(比如低于预设阈值或带宽利用率的数值最小),且对应的时延大于第N-1个数据流对应的时延的路径,并将选择的路径作为第二路径。
在实际应用时,若无法从所述一条或多条路径中选择出带宽利用率低,且对应的时延大于第N-1个数据流对应的时延的路径,则说明无法选择出对应的第二路径。在这种情况下,所述第一网络节点可以对第N个数据流的长度进行调整,便于后续为调整后的第N个数据流选择出所述第二路径。
基于此,在一实施例中,该方法还可以包括:在无法为所述第N个数据流选择出第二路径的情况下,重新对所述数据流进行划分,得到重新划分后的第N个数据流;以及利用第N-1个数据流的时延相关信息、所述一条或多条候选路径的带宽信息和/或时延信息,为重新划分后的第N个数据流选择出第二路径。
在实际应用时,在无法为所述第N个数据流选择出第二路径的情况下,所述第一网络节点可以重新对所述数据流进行划分,也就是说,所述第一网络节点可以调整第N个数据流的长度,以便后续利用第N-1个数据流的时延相关信息、所述一条或多条候选路径的带宽信息和/或时延信息,为调整后的第N个数据流选择出第二路径。
示例性地,如图3所示,在对数据流进行了第二次划分的情况下,所述第一网络节点能够得到Flowlet2,Flowlet2的长度为5个packet。在无法为Flowlet2选择出第二路径的情况下,所述第一网络节点可以重新对数据流进行第二次划分,以使调整后的Flowlet2的长度为7个packet;然后,利用Flowlet1对应的时延、一条或多条候选路径的带宽信息和时延信息,从一条或多条候选路径中选择出带宽利用率低,且Flowlet2对应的时延大于Flowlet1对应的时延的路径,并将选择的路径作为第二路径。
在实际应用时,在选择出多条路径后,所述第一网络节点可以以报文的形式传输划分后的数据流。
具体地,在一实施例中,所述利用选择的多条路径传输划分后的数据流,包括:基于划分后的数据流生成报文,并利用选择的多条路径传输生成的报文,生成的报文包含划分后的数据流和/或第二信息,所述第二信息用于标识所述第一业务。
在实际应用时,生成的报文可以包含报文头和数据部分,所述第二信息可以设置在报文头中,划分的数据流可以设置在数据中。另外,所述第二信息可以包含第一字段,长度可以根据需要设置,比如为32比特(英文可以表达为bit),能够指示所述第一业务的传输需求,比如是否需要高吞吐传输和/或保障数据流的到达顺序。
示例性地,针对所述第一个数据流,所述第一网络节点能够生成第一报文,并利用所述第一路径传输所述第一报文,所述第一报文包含所述第一个数据流和第二信息;针对所述第N个数据流,所述第一网络节点能够生成第二报文,并利用所述第二路径传输所述第二报文,所述第二报文包含所述第N个数据流和第二信息。
在实际应用时,在生成所述报文的过程中,所述第一网络节点可以生成第三信息,所述第三信息用于指示第二网络节点是否支持负载均衡处理。也就是说,在一实施例中,生成的报文还可以包含所述第三信息。
其中,所述第三信息可以设置在报文头中,所述第三信息可以包含第二字段,长度可以根据需要设置,比如为1比特,能够标识第二网络节点是否需要进行层次化负载均衡(也可以称为递归负载均衡),层次化负载均衡可以理解为第二网络节点参照第一网络节点的方式,对划分后的数据流进行进一步划分并选择对应的路径,从而利用选择的路径传输划分后的数据流。
另外,在生成所述报文的过程中,所述第一网络节点可以生成第四信息和/或第五信息,第四信息用于指示第三网络节点是否支持校验处理(也可以称为严格保序),所述第五信息表征划分后的数据流的序列号,所述第五信息用于指示划分后的数据流在所述数据流中的顺序。也就是说,生成的报文还可以包含所述第四信息和/或所述第五信息。
其中,所述第四信息和所述第五信息可以设置在报文头中,所述第四信息可以包含第三字段,长度可以根据需要设置,比如为1比特,所述第五信息可以包含第四字段,长度可以根据需要设置,比如为32比特。
在实际应用时,所述第一网络节点还可以生成第五字段,所述第五字段可以理解为预留字段,以供所述第一网络节点后续根据需要使用,长度可以根据需要设置,比如为30比特,所述第五字段可以设置在报文头中。
示例性地,如图4所示,报文的报文头可以包含以下字段:GSN ID(即第一字段),ST(即第二字段),R(即第三字段),SEQ(即第四字段)和RESERVE(即第五字段)。ST用于标识第三网络节点是否支持校验处理,比如ST为1代表第三网络节点支持校验处理,ST为0代表第三网络节点不支持校验处理。R用于标识第二网络节点是否支持递归负载均衡。SEQ用于标识第二网络节点的层次化负载均衡以及第三网络节点的校验处理。RESERVE可以根据需要设置,默认为0。
示例性地,生成的报文可以承载于多个协议数据平面,以网络协议第六版(IPv6)扩展头为例,如图5所示,可以为报文头定义下一报头字段为100;在报文头包含第一字段、第二字段、第三字段、第四字段和第五字段的情况下,报文头的长度可以根据第一字段、第二字段、第三字段、第四字段和第五字段的长度之和设置,比如为96bit,即12字节。
相应地,本公开实施例还提供了一种数据传输方法,如图6所示,应用于第二网络节点,该方法包括步骤601-602。
步骤601:接收划分后的数据流,其中划分后的数据流是对第一业务的数据流划分得到的,划分后的数据流是利用多条路径传输的。
步骤602:发出划分后的数据流。
在实际应用时,所述第二网络节点可以以报文的形式,接收划分后的数据流。
在一实施例中,步骤601的具体实现可以包括:接收报文,其中接收的报文包含划分后的数据流和/或第二信息,所述第二信息用于标识所述第一业务。
在实际应用时,接收的报文还可以包含第三信息,其中所述第三信息用于指示第二网络节点是否支持负载均衡处理。
在实际应用时,在利用所述第三信息确定第二网络节点不支持负载均衡处理的情况下,所述第二网络节点可以基于所述第一网络节点选择的多条路径发出接收的报文,即所述第二网络节点对接收的报文进行透传。
这里,接收的报文还可以包含第四信息和/或第七信息,所述第四信息用于指示第三网络节点是否支持校验处理,所述第七信息表征划分后的子数据流的序列号。如此,在第三网络节点支持校验处理的情况下,第三网络节点能够对划分后的数据流的顺序进行校验,以避免传输后的数据流发生顺序错乱的问题。
在实际应用时,在利用所述第三信息确定第二网络节点支持负载均衡处理的情况下,所述第二网络节点可以对划分后的数据流进一步划分,以进一步提高网络的负载均衡程度,进而提高数据传输吞吐量。
基于此,在一实施例中,该方法还可以包括:在第二网络节点支持负载均衡处理的情况下,对划分后的数据流进行划分,得到划分后的子数据流;利用第六信息,为划分后的子数据流选择多条路径,其中所述第六信息包含与第三网络节点关联的一条或多条候选路径的链路状态信息;以及基于划分后的子数据流对接收的报文进行更新,并利用选择的多条路径传输更新后的报文,其中更新后的报文包含划分后的子数据流和/或所述第二信息。
在实际应用时,针对所述第一个数据流,所述第二网络节点可以对所述第一个数据流进行划分,得到划分后的子数据流(比如2个子数据流),然后,为划分后的每个子数据流选择对应的路径。相应地,针对所述第N个数据流,所述第二网络节点可以对所述第N个数据流进行划分,得到划分后的子数据流(比如3个子数据流),然后,为划分后的每个子数据流选择对应的路径,本公开实施例对划分后的子数据流的数量不作限定。
在为划分后的子数据流选择路径之前,所述第二网络节点需要获取所述第六信息。
基于此,在一实施例中,该方法还可以包括:向管理节点发送第八信息,其中所述第八信息用于请求与第三网络节点关联的一条或多条候选路径的链路状态信息,所述管理节点用于管理网络中的一个或多个网络节点;以及接收所述管理节点发送的第六信息。
在一实施例中,所述第六信息包含以下一项或多项(也可以理解为至少之一):
所述一条或多条候选路径的带宽信息;
所述一条或多条候选路径的时延信息。
在实际应用时,得到所述第六信息后,所述第二网络节点可以基于所述第一网络节点的方式,为划分后的子数据流选择对应的路径。具体地,对划分后的数据流进行第一次划分后,所述第二网络节点能够得到划分后的第一个子数据流,并为第一个子数据流选择对应的路径。
在一实施例中,所述利用第六信息,为划分后的子数据流选择多条路径,包括:针对划分后的第一个子数据流,利用所述一条或多条候选路径的带宽信息和/或时延信息,为所述第一个子数据流选择出第三路径。所述第一个子数据流可以称为首个子数据流,本公开实施例对此不作限定。另外,所述第三路径与第三网络节点和/或一个或多个第二网络节点关联。
在实际应用时,在所述第六信息包含一条或多条候选路径的带宽信息的情况下,所述第二网络节点可以利用一条或多条候选路径的带宽信息,为所述第一个子数据流选择所述第三路径;在所述第六信息包含一条或多条候选路径的时延信息的情况下,所述第二网络节点可以利用一条或多条候选路径的时延信息,为所述第一个子数据流选择所述第三路径;在所述第六信息包含一条或多条候选路径的带宽信息和时延信息的情况下,所述第二网络节点可以利用一条或多条候选路径的带宽信息和时延信息,为所述第一个子数据流选择所述第三路径。
示例性地,如图3所示,在Flowlet1包含6个packet的情况下,所述第二网络节点对Flowlet1进行第一次划分,得到subflow1(即第一个子数据流),subflow1包含2个packet。然后,所述第二网络节点可以基于一条或多条候选路径对应的带宽利用率和时延,从一条或多条候选路径中为subflow1选择出带宽利用率低且时延小的路径,并将选择的路径作为第三路径。
在实际应用时,选择出所述第三路径后,所述第二网络节点可以基于所述第一个子数据流对接收的报文进行更新,并利用所述第三路径传输更新后的报文,更新后的报文可以包含所述第一个子数据流和/或所述第二信息。同时,所述第二网络节点还可以对划分后的数据流再次划分,为后续划分后的子数据流选择对应的路径并进行子数据流的传输,如此,能够实现子数据流的并行传输,进一步提高网络的负载均衡程度,从而提高数据传输的吞吐量。
在一实施例中,所述利用第六信息,为划分后的子数据流选择多条路径,包括:针对划分后的第M个子数据流,利用第M-1个子数据流的时延相关信息、所述一条或多条候选路径的带宽信息和/或时延信息,为所述第M个子数据流选择出第四路径,M为大于或等于2的整数。
第M-1个子数据流的时延相关信息可以包含第M-1个子数据流对应的时延,具体可以包含第三时延和第四时延,所述第三时延可以理解为发送第M-1个子数据流包含的数据包的时延,所述第四时延可以理解为利用对应的路径传输第M-1个子数据流的时延。另外,所述第四路径与第三网络节点和/或一个或多个第二网络节点关联。
示例性地,如图3所示,在Flowlet1包含6个packet,且进行了第一次划分的情况下,所述第二网络节点可以对Flowlet1进行第二次划分,得到subflow2(即第二个子数据流),subflow2包含2个packet。然后,所述第二网络节点可以基于一条或多条候选路径对应的带宽利用率和时延,从一条或多条候选路径中为subflow2选择出带宽利用率低,且对应的时延(即发送subflow2包含的3个packet的时延与传输subflow2的时延之和)大于subflow1对应的时延(即发送subflow1包含的2个packet的时延与利用第三路径传输subflow1的时延之和)的路径,并将选择的路径作为第四路径。
在实际应用时,若无法从所述一条或多条路径中选择出带宽利用率低,且对应的时延大于第M-1个子数据流对应的时延的路径,则说明无法选择出对应的第四路径。在这种情况下,所述第二网络节点可以对第M个子数据流的长度进行调整,便于后续为调整后的第M个数据流选择出所述第四路径。
基于此,在一实施例中,该方法还可以包括:在无法为所述第M个子数据流选择出第四路径的情况下,重新对划分后的数据流进行划分,得到重新划分后的第M个子数据流;以及利用第M-1个子数据流的时延相关信息、所述一条或多条候选路径的带宽信息和/或时延信息,为重新划分后的第M个子数据流选择出第四路径。
示例性地,在无法为subflow2选择出第四路径的情况下,所述第二网络节点可以对Flowlet1重新进行第二次划分,得到重新划分后的subflow2,subflow2包含3个packet,即调整了subflow2的长度。然后,所述第二网络节点可以基于一条或多条候选路径对应的带宽利用率和时延,从一条或多条候选路径中为subflow2选择出带宽利用率低,且对应的时延大于subflow1对应的时延的路径,并将选择的路径作为第四路径。
在实际应用时,选择出所述第四路径后,所述第二网络节点可以基于所述第M个子数据流对接收的报文进行更新,并利用所述第四路径传输更新后的报文,更新后的报文可以包含所述第M个子数据流和/或所述第二信息。
这里,更新后的报文还可以包含所述第四信息和/或第七信息,所述第四信息用于指示第三网络节点是否支持校验处理,所述第七信息表征划分后的子数据流的序列号,即所述第七信息能够指示划分后的子数据流在划分后的数据流中的顺序。如此,在第三网络节点支持校验处理的情况下,第三网络节点能够基于所述第七信息对划分后的子数据流的顺序进行校验,以避免传输后的子数据流发生顺序错乱的问题。
相应地,本公开实施例还提供了一种数据传输方法,如图7所示,应用于第三网络节点,该方法包括步骤701-702。
步骤701:接收划分后的数据流,其中划分后的数据流是对第一业务的数据流划分得到的,划分后的数据流是利用多条路径传输的。
步骤702:对划分后的数据流进行整合处理,得到所述第一业务的数据流。
在实际应用时,步骤701中,所述第三网络节点可以接收所述第二网络节点发送的划分后的数据流;其中,可以以报文的形式接收划分后的数据流。
在实际应用时,在第二网络节点不支持负载均衡处理的情况下,所述第三网络节点可以接收报文,所述报文可以包含划分后的数据流和/或所述第二信息;根据划分后的数据流的到达顺序,所述第三网络节点可以对划分后的数据流进行整合处理,得到所述数据流,并将所述数据流发送至接收端设备。
这里,接收的报文还可以包含所述第四信息和/或所述第七信息。在确定第三网络节点支持校验处理的情况下,所述第三网络节点可以利用所述第七信息对划分后的子数据流进行顺序校验,得到校验结果;在所述校验结果表征校验未通过(比如序列号大的第二个子数据流先到达第三网络节点,序列号小的第一个子数据流后到达第三网络节点)的情况下,基于所述第七信息对划分后的子数据流进行重新排序,并对排序后的子数据流进行整合处理,得到所述数据流。如此,保障了数据流的顺序。
在实际应用时,在第二网络节点支持负载均衡处理的情况下,所述第三网络节点可以接收到更新后的报文。
在一实施例中,所述接收划分后的数据流,包括:
接收更新后的报文,其中更新后的报文包含划分后的子数据流和/或第二信息,划分后的子数据流是基于划分后的数据流得到的,所述第二信息用于标识所述第一业务。
在实际应用时,接收到更新后的报文之后,所述第三网络节点可以根据划分后的子数据流的到达顺序,对划分后的子数据流进行整合处理,得到所述数据流;然后,将所述数据流发送至接收端设备。
这里,更新后的报文还可以包含所述第四信息和/或所述第七信息;在确定所述第三网络节点支持校验处理的情况下,所述第三网络节点可以对划分后的子数据流进行校验处理,以保障数据流的顺序。
在一实施例中,该方法还可以包括:在所述第三网络节点支持校验处理的情况下,利用所述第七信息对划分后的子数据流进行顺序校验,得到校验结果;在所述校验结果表征校验未通过的情况下,基于所述第七信息对划分后的子数据流进行排序;以及对排序后的子数据流进行整合处理,得到所述第一业务的数据流。
在实际应用时,所述第三网络节点可以利用所述第七信息对划分后的子数据流进行顺序校验;得到校验结果;在所述校验结果表征校验未通过(比如序列号大的第三个子数据流先到达第三网络节点,序列号小的第二个子数据流后到达第三网络节点)的情况下,基于所述第七信息对划分后的数据流进行重新排序,并对排序后的数据流进行整合处理,得到所述数据流。如此,保障了数据流的顺序。
本公开实施例提供的数据传输方法,第一网络节点接收第一业务的数据流;对所述数据流进行划分,并利用第一信息为划分后的数据流选择多条路径,所述第一信息包含与第三网络节点关联的一条或多条候选路径的链路状态信息;利用选择的多条路径传输划分后的数据流;第二网络节点接收划分后的数据流后,发出划分后的数据流;而第三网络节点接收划分后的数据流后,对划分后的数据流进行整合处理,得到所述第一业务的数据流。根据本公开实施例提供的技术方案,在数据流传输的过程中,入口节点(即第一网络节点)根据与业务(比如吞吐敏感业务)关联的目的节点(即第三网络节点)的链路情况划分数据流并为划分的数据流选择多条传输路径,以通过中间节点(即第二网络节点)和目的节点的协作实现数据流的并行传输,如此,能够有效提高数据传输的吞吐量,进而满足业务了的高吞吐量的传输需求。
下面结合应用示例对本公开再作进一步详细的描述。
本公开应用示例中,提出了一种利用网络节点协作实现多路径并行传输的方案。
具体地,利用网络节点协作实现多路径并行传输的过程,如图8所示,包括以下步骤。
步骤801:网络中的各个网络节点周期性地向控制器(即上述的管理节点)上报各个网络节点相关的网络质量信息,如时延、带宽、丢包、抖动等信息。
步骤802:网络节点从控制器获取相关的网络质量信息。
步骤803:DC1(即发送端设备)向R1(即上述的第一网络节点)发送业务报文,业务报文携带报文头和高吞吐业务(即上述的第一业务)的数据流。
步骤804:针对数据流,R1选择对应的flowlet的长度后,利用相关的网络质量信息(即上述的第一信息)选择对应的转发路径。
针对首个flowlet(即上述的第一个数据流),R1从报文到达目的地的所有可用路径(即上述的一条或多条候选路径)中选择带宽利用率最低且时延最低的路径(即上述的第一路径);针对后续flowlet(即上述的第N个数据流),R1从报文到达目的地的所有可用路径中选择带宽利用率最低且传输时延后不乱序的路径(即上述的第二路径)。
需要说明的是,flowlet长度的选择需要考虑给后续flowlet选择不乱序的路径留出时间余量,也就是说,可以为长度小的flowlet选择传输时延大的路径,可以为长度短的flowlet选择传输时延大的路径。
步骤805:R1基于选择的路径,向R2(即上述的第二网络节点)发送业务报文,发送的业务报文包含flowlet和报文头。
步骤806:R2基于业务报文携带的报文头,判断是否需要进行递归负载均衡;在需要进行递归负载均衡的情况下,选择subflow长度及转发路径。
R2根据报文头中的字段R,判断是否需要进行递归负载均衡;在需要进行递归负载均衡的情况下,R2采用与R1类似的方式,选择flowlet对应的subflow长度,并利用相关的网络质量信息(即上述的第六信息)选择对应的转发路径。
步骤807:R2基于选择的路径,向R10(即上述的第三网络节点)发送业务报文,发送的业务报文包含subflow和报文头。
步骤808:R10基于业务报文携带的报文头,判断是否需要严格保序;在需要严格保序的情况下,对subflow进行缓存并重新排序,以保障发送至DC2的数据流没有发生乱序。也就是说,针对严格保序和非严格保序业务,R10可以采取差异化处理的方式。
步骤809:R10向DC2(即接收端设备)发送数据流。
本公开应用示例中,采用网络节点分布式协作的方式实现了数据流的并行传输,能够不增加排序负担的前提下,充分利用多路径传输以提升有效吞吐,从而能够同时满足高吞吐业务的保序需求和负载均衡需求。
其次,网络节点能够在逐包和逐流间动态选择多路径传输的subflow大小,能够有效降低算法的复杂度。另外,上述方案可以基于相关的协议扩展,可以平滑演进,实施难度小。也就是说,仅需要较小的改动就能够实现,从而充分利用网络可用带宽,大幅提升网络传输效率,助力拓展数据快递等新型业务场景。
为了实现本公开实施例的方法,本公开实施例还提供了一种数据传输装置,设置在第一网络节点上,如图9所示,该装置包括:
第一接收单元901,用于接收第一业务的数据流;
划分单元902,用于利用第一信息对所述数据流进行划分,并为划分后的数据流选择多条路径,所述第一信息包含与第三网络节点关联的一条或多条候选路径的链路状态信息;
传输单元903,用于利用选择的多条路径传输划分后的数据流。
在一实施例中,所述划分单元902,用于利用所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为划分后的数据流选择多条路径。
在一实施例中,所述划分单元902,用于进行以下中的至少一个:
针对划分后的第一个数据流,利用所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为所述第一个数据流选择出第一路径;
针对划分后的第N个数据流,利用第N-1个数据流的时延相关信息、所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为所述第N个数据流选择出第二路径,N为大于或等于2的整数。
在一实施例中,所述划分单元902,还用于:在无法为所述第N个数据流选择出第二路径的情况下,重新对所述数据流进行划分,得到重新划分后的第N个数据流;利用第N-1个数据流的时延相关信息、所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为重新划分后的第N个数据流选择出第二路径。
在一实施例中,所述传输单元903,用于基于划分后的数据流生成报文,并利用选择的多条路径传输生成的报文,其中生成的报文包含划分后的数据流和第二信息中的至少一个,所述第二信息用于标识所述第一业务。
在一实施例中,所述划分单元902,还用于:向管理节点发送第五信息,其中所述第五信息用于请求所述一条或多条候选路径的链路状态信息,所述管理节点用于管理网络中的一个或多个网络节点;以及接收所述管理节点发送的第一信息。
在实际应用时,所述第一接收单元901可由数据传输装置中的通信接口实现。所述划分单元902和所述传输单元903可由数据传输装置中的通信接口结合处理器实现。
为了实现本公开实施例的方法,本公开实施例还提供了一种数据传输装置,设置在第二网络节点上,如图10所示,该装置包括:
第二接收单元1001,用于接收划分后的数据流,划分后的数据流是对第一业务的数据流划分得到的,划分后的数据流是利用多条路径传输的;
发送单元1002,用于发出划分后的数据流。
在一实施例中,所述第二接收单元1001,用于接收报文,其中接收的报文包含划分后的数据流和第二信息中的至少一个,所述第二信息用于标识所述第一业务。
在一实施例中,接收的报文还包含第三信息,其中所述第三信息用于指示第二网络节点是否支持负载均衡处理。该装置还可以包括处理单元;其中,所述处理单元用于:在第二网络节点支持负载均衡处理的情况下,对划分后的数据流进行划分,得到划分后的子数据流;以及利用第六信息,为划分后的子数据流选择多条路径,其中所述第六信息包含与第三网络节点关联的一条或多条候选路径的链路状态信息;所述发送单元1002,用于基于划分后的子数据流对接收的报文进行更新,并利用选择的多条路径传输更新后的报文,其中更新后的报文包含划分后的子数据流和所述第二信息中的至少一个。
在一实施例中,所述处理单元,用于进行以下中的至少一个:
针对划分后的第一个子数据流,利用所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为所述第一个子数据流选择出第三路径;
针对划分后的第M个子数据流,利用第M-1个子数据流的时延相关信息、以及所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为所述第M个子数据流选择出第四路径,M为大于或等于2的整数。
在一实施例中,所述处理单元,还用于:在无法为所述第M个子数据流选择出第四路径的情况下,重新对划分后的数据流进行划分,得到重新划分后的第M个子数据流;利用第M-1个子数据流的时延相关信息、所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为重新划分后的第M个子数据流选择出第四路径。
在一实施例中,所述发送单元1002,还用于向管理节点发送第八信息,其中所述第八信息用于请求与第三网络节点关联一条或多条候选路径的链路状态信息,所述管理节点用于管理网络中的一个或多个网络节点;所述第二接收单元1001,还用于接收所述管理节点发送的第六信息。
在实际应用时,所述第二接收单元1001和所述发送单元1002可由数据传输装置中的通信接口实现。所述处理单元可由数据传输装置中的处理器实现。
为了实现本公开实施例的方法,本公开实施例还提供了一种数据传输装置,设置在第三网络节点上,如图11所示,该装置包括:
第三接收单元1101,用于接收划分后的数据流,划分后的数据流是对第一业务的数据流划分得到的,划分后的数据流是利用多条路径传输的;
整合单元1102,用于对划分后的数据流进行整合处理,得到所述第一业务的数据流。
在一实施例中,所述第三接收单元1101,用于接收更新后的报文,其中更新后的报文包含划分后的子数据流和第二信息中的至少一个,划分后的子数据流是基于划分后的数据流得到的,所述第二信息用于标识所述第一业务;所述整合单元1102,用于对划分后的子数据流进行整合处理,得到所述第一业务的数据流。
在一实施例中,更新后的报文还包含第四信息和第七信息中的至少一个,其中所述第四信息用于指示第三网络节点是否支持校验处理,所述第七信息表征划分后的子数据流的序列号;所述整合单元1102,还用于:在所述第三网络节点支持校验处理的情况下,利用所述第七信息对划分后的子数据流进行顺序校验,得到校验结果;在所述校验结果表征校验未通过的情况下,基于所述第七信息对划分后的子数据流进行排序;以及对排序后的子数据流进行整合处理,得到所述第一业务的数据流。
在实际应用时,所述第三接收单元1101可由数据传输装置中的通信接口实现。所述整合单元1102可由数据传输装置中的处理器实现。
需要说明的是:上述实施例提供的数据传输装置在进行数据传输时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的数据传输装置与数据传输方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于上述程序模块的硬件实现,且为了实现本公开实施例第一网络节点侧的方法,本公开实施例还提供了一种第一网络节点,如图12所示,该第一网络节点1200包括:
第一通信接口1201,能够与第二网络节点进行信息交互;
第一处理器1202,与所述第一通信接口1201连接,以实现与第二网络节点进行信息交互,用于运行计算机程序时,执行上述第一网络节点侧一个或多个技术方案提供的方法;
第一存储器1203,所述计算机程序存储在第一存储器1203上。
具体地,所述第一通信接口1201,用于接收第一业务的数据流;所述第一处理器1202,用于对所述数据流进行划分,并利用第一信息为划分后的数据流选择多条路径,其中所述第一信息包含与第三网络节点关联的一条或多条候选路径的链路状态信息;所述第一通信接口1201,用于利用选择的多条路径传输划分后的数据流。
在一实施例中,所述第一处理器1202,用于利用所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为划分后的数据流选择多条路径。
在一实施例中,所述第一处理器1202,用于执行以下中的至少一个:
针对划分后的第一个数据流,利用所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为所述第一个数据流选择出第一路径;
针对划分后的第N个数据流,利用第N-1个数据流的时延相关信息、所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为所述第N个数据流选择出第二路径,N为大于或等于2的整数。
在一实施例中,所述第一处理器1202,还用于:在无法为所述第N个数据流选择出第二路径的情况下,重新对所述数据流进行划分,得到重新划分后的第N个数据流;利用第N-1个数据流的时延相关信息、以及所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为重新划分后的第N个数据流选择出第二路径。
在一实施例中,所述第一处理器1202,用于:基于划分后的数据流生成报文,并利用选择的多条路径传输生成的报文,其中生成的报文包含划分后的数据流和第二信息中的至少一个,所述第二信息用于标识所述第一业务。
在一实施例中,所述第一通信接口1201,用于:向管理节点发送第五信息,其中所述第五信息用于请求所述一条或多条候选路径的链路状态信息,所述管理节点用于管理网络中的一个或多个网络节点;以及接收所述管理节点发送的第一信息。
需要说明的是:第一处理器1202及第一通信接口1201的具体处理过程可参照上述方法理解。
在实际应用时,第一网络节点1200中的各个组件通过总线系统1204耦合在一起。可理解,总线系统1204用于实现这些组件之间的连接通信。总线系统1204除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图12中将各种总线都标为总线系统1204。
本公开实施例中的第一存储器1203用于存储各种类型的数据以支持第一网络节点1200的操作。这些数据的示例包括:用于在第一网络节点1200上操作的任何计算机程序。
上述本公开实施例揭示的方法可以应用于所述第一处理器1202中,或者由所述第一处理器1202实现。所述第一处理器1202可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过所述第一处理器1202中的硬件的集成逻辑电路或者软件形式的指令完成。上述的所述第一处理器1202可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述第一处理器1202可以实现或者执行本公开实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本公开实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于第一存储器1203,所述第一处理器1202读取第一存储器1203中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,第一网络节点1200可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或者其他电子元件实现,用于执行前述方法。
基于上述程序模块的硬件实现,且为了实现本公开实施例第二网络节点侧的方法,本公开实施例还提供了一种第二网络节点,如图13所示,该第二网络节点1300包括:
第二通信接口1301,能够与第一网络节点和第三网络节点进行信息交互;
第二处理器1302,与所述第二通信接口1301连接,以实现与第一网络节点和第三网络节点进行信息交互,用于运行计算机程序时,执行上述第二网络节点侧一个或多个技术方案提供的方法;
第二存储器1303,所述计算机程序存储在第二存储器1303上。
具体地,所述第二通信接口1301,用于接收划分后的数据流,其中划分后的数据流是对第一业务的数据流划分得到的,划分后的数据流是利用多条路径传输的;以及发出划分后的数据流。
在一实施例中,所述第二通信接口1301,用于接收报文,其中接收的报文包含划分后的数据流和第二信息中的至少一个,所述第二信息用于标识所述第一业务。
在一实施例中,接收的报文还包含第三信息,其中所述第三信息用于指示第二网络节点是否支持负载均衡处理;所述第二处理器1302,用于:在第二网络节点支持负载均衡处理的情况下,对划分后的数据流进行划分,得到划分后的子数据流;利用第六信息,为划分后的子数据流选择多条路径,所述第六信息包含与第三网络节点关联的一条或多条候选路径的链路状态信息;以及基于划分后的子数据流对接收的报文进行更新,并利用选择的多条路径传输更新后的报文,更新后的报文包含划分后的子数据流和所述第二信息中的至少一个。
在一实施例中,所述第二处理器1302,用于执行以下中的至少一个:
针对划分后的第一个子数据流,利用所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为所述第一个子数据流选择出第三路径;
针对划分后的第M个子数据流,利用第M-1个子数据流的时延相关信息、以及所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为所述第M个子数据流选择出第四路径,M为大于或等于2的整数。
在一实施例中,所述第二处理器1302,还用于:在无法为所述第M个子数据流选择出第四路径的情况下,重新对划分后的数据流进行划分,得到重新划分后的第M个子数据流;利用第M-1个子数据流的时延相关信息、以及所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为重新划分后的第M个子数据流选择出第四路径。
在一实施例中,所述第二通信接口1301,还用于:向管理节点发送第八信息,其中所述第八信息用于请求与第三网络节点关联一条或多条候选路径的链路状态信息,所述管理节点用于管理网络中的一个或多个网络节点;以及接收所述管理节点发送的第六信息。
需要说明的是:所述第二通信接口1301和所述第二处理器1302的具体处理过程可参照上述方法理解。
在实际应用时,第二网络节点1300中的各个组件通过总线系统1304耦合在一起。可理解,总线系统1304用于实现这些组件之间的连接通信。总线系统1304除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图13中将各种总线都标为总线系统1304。
本公开实施例中的第二存储器1303用于存储各种类型的数据以支持第二网络节点1300操作。这些数据的示例包括:用于在第二网络节点1300上操作的任何计算机程序。
上述本公开实施例揭示的方法可以应用于所述第二处理器1302中,或者由所述第二处理器1302实现。所述第二处理器1302可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过所述第二处理器1302中的硬件的集成逻辑电路或者软件形式的指令完成。上述的所述第二处理器1302可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述第二处理器1302可以实现或者执行本公开实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本公开实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于第二存储器1303,所述第二处理器1302读取第二存储器1303中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,第二网络节点1300可以被一个或多个ASIC、DSP、PLD、CPLD、FPGA、通用处理器、控制器、MCU、Microprocessor、或其他电子元件实现,用于执行前述方法。
基于上述程序模块的硬件实现,且为了实现本公开实施例第三网络节点侧的方法,本公开实施例还提供了一种第三网络节点,如图14所示,该第三网络节点1400包括:
第三通信接口1401,能够与第二网络节点进行信息交互;
第三处理器1402,与所述第三通信接口1401连接,以实现与第二网络节点进行信息交互,用于运行计算机程序时,执行上述第三网络节点侧一个或多个技术方案提供的方法;
第三存储器1403,所述计算机程序存储在第三存储器1403上。
具体地,所述第三通信接口1401,用于接收划分后的数据流,其中划分后的数据流是对第一业务的数据流划分得到的,划分后的数据流是利用多条路径传输的;所述第三处理器1402,用于对划分后的数据流进行整合处理,得到所述第一业务的数据流。
在一实施例中,所述第三通信接口1401,用于接收更新后的报文,更新后的报文包含划分后的子数据流和第二信息中的至少一个,划分后的子数据流是基于划分后的数据流得到的,所述第二信息用于标识所述第一业务;相应地,所述第三处理器1402,用于对划分后的子数据流进行整合处理,得到所述第一业务的数据流。
在一实施例中,更新后的报文还包含第四信息和第七信息中的至少一个,所述第四信息用于指示第三网络节点是否支持校验处理,所述第七信息表征划分后的子数据流的序列号;所述第三处理器1402,还用于:在所述第三网络节点支持校验处理的情况下,利用所述第七信息对划分后的子数据流进行顺序校验,得到校验结果;在所述校验结果表征校验未通过的情况下,基于所述第七信息对划分后的子数据流进行排序;以及对排序后的子数据流进行整合处理,得到所述第一业务的数据流。
需要说明的是:所述第三通信接口1401和所述第三处理器1402的具体处理过程可参照上述方法理解。
在实际应用时,第三网络节点1400中的各个组件通过总线系统1404耦合在一起。可理解,总线系统1404用于实现这些组件之间的连接通信。总线系统1404除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图14中将各种总线都标为总线系统1404。
本公开实施例中的第三存储器1403用于存储各种类型的数据以支持第三网络节点1400操作。这些数据的示例包括:用于在第三网络节点1400上操作的任何计算机程序。
上述本公开实施例揭示的方法可以应用于所述第三处理器1402中,或者由所述第三处理器1402实现。所述第三处理器1402可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过所述第三处理器1402中的硬件的集成逻辑电路或者软件形式的指令完成。上述的所述第三处理器1402可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述第三处理器1402可以实现或者执行本公开实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本公开实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于第三存储器1403,所述第三处理器1402读取第三存储器1403中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,第三网络节点1400可以被一个或多个ASIC、DSP、PLD、CPLD、FPGA、通用处理器、控制器、MCU、Microprocessor、或其他电子元件实现,用于执行前述方法。
可以理解,本公开实施例的存储器(第一存储器1203、第二存储器1303、第三存储器1403)可以是易失性存储器或者非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,Synchronous Dynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本公开实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
为了实现本公开实施例提供的方法,本公开实施例还提供了一种数据传输系统,如图15所示,该系统包括:第一网络节点1501、第二网络节点1502以及第三网络节点1503。
这里,需要说明的是:第一网络节点1501、第二网络节点1502以及第三网络节点1503的具体处理过程已在上文详述,这里不再赘述。
在示例性实施例中,本公开实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的第一存储器1203,上述计算机程序可由第一网络节点1200的第一处理器1202执行,以完成前述第一网络节点侧方法所述步骤,再比如包括存储计算机程序的第二存储器1303,上述计算机程序可由第二网络节点1300的第二处理器1302执行,以完成前述第二网络节点侧方法所述步骤,再比如包括存储计算机程序的第三存储器1403,上述计算机程序可由第三网络节点1400的第三处理器1402执行,以完成前述第三网络节点侧方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
在示例性实施例中,本公开实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序可由第一网络节点1200的第一处理器1202执行,以完成前述第一网络节点侧方法所述步骤,或者,所述计算机程序可由第二网络节点1300的第二处理器1302执行,以完成前述第二网络节点侧方法所述步骤,或者,所述计算机程序可由第三网络节点1400的第二处理器1402执行,以完成前述第三网络节点侧方法所述步骤。
需要说明的是:“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
另外,本公开实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本公开的较佳实施例而已,并非用于限定本公开的保护范围。

Claims (31)

  1. 一种数据传输方法,应用于第一网络节点,包括:
    接收第一业务的数据流;
    对所述数据流进行划分,并利用第一信息为划分后的数据流选择多条路径,其中所述第一信息包含与第三网络节点关联的一条或多条候选路径的链路状态信息;以及
    利用选择的多条路径传输所述划分后的数据流。
  2. 根据权利要求1所述的方法,其中,所述第一信息包含以下中的至少一项:
    所述一条或多条候选路径的带宽信息;
    所述一条或多条候选路径的时延信息。
  3. 根据权利要求2所述的方法,其中,所述对所述数据流进行划分,并利用第一信息为划分后的数据流选择多条路径,包括:
    利用所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为划分后的数据流选择多条路径。
  4. 根据权利要求3所述的方法,其中,所述利用所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为划分后的数据流选择多条路径,包括以下中的至少一个:
    针对划分后的第一个数据流,利用所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为所述第一个数据流选择出第一路径;
    针对划分后的第N个数据流,利用第N-1个数据流的时延相关信息、以及所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为所述第N个数据流选择出第二路径,N为大于或等于2的整数。
  5. 根据权利要求4所述的方法,还包括:
    在无法为所述第N个数据流选择出第二路径的情况下,重新对所述数据流进行划分,得到重新划分后的第N个数据流;以及
    利用第N-1个数据流的时延相关信息、以及所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为重新划分后的第N个数据流选择出第二路径。
  6. 根据权利要求1所述的方法,其中,所述利用选择的多条路径传输划分后的数据流,包括:
    基于划分后的数据流生成报文,并利用选择的多条路径传输生成的报文,其中所述生成的报文包含划分后的数据流和第二信息中的至少一个,所述第二信息用于标识所述第一业务。
  7. 根据权利要求6所述的方法,其中,所述生成的报文还包含第三信息,所述第三信息用于指示第二网络节点是否支持负载均衡处理。
  8. 根据权利要求6所述的方法,其中,所述生成的报文还包含第四信息和第五信息中的至少一个,所述第四信息用于指示第三网络节点是否支持校验处理,所述第五信息表征划分后的数据流的序列号。
  9. 根据权利要求1至8任一项所述的方法,还包括:
    向管理节点发送第五信息,其中所述第五信息用于请求所述一条或多条候选路径的链路状态信息,所述管理节点用于管理网络中的一个或多个网络节点;以及
    接收所述管理节点发送的第一信息。
  10. 一种数据传输方法,应用于第二网络节点,包括:
    接收划分后的数据流,其中所述划分后的数据流是对第一业务的数据流划分得到的,所述划分后的数据流是利用多条路径传输的;以及
    发出划分后的数据流。
  11. 根据权利要求10所述的方法,其中,所述接收划分后的数据流,包括:
    接收报文,其中接收的报文包含所述划分后的数据流和第二信息中的至少一个,所述第二信息用于标识所述第一业务。
  12. 根据权利要求11所述的方法,其中,接收的报文还包含第三信息,其中所述第三信息用于指示第二网络节点是否支持负载均衡处理;所述方法还包括:
    在第二网络节点支持负载均衡处理的情况下,对所述划分后的数据流进行划分,得到划分后的子数据流;
    利用第六信息,为所述划分后的子数据流选择多条路径,其中所述第六信息包含与第三网络节点关联的一条或多条候选路径的链路状态信息;
    基于所述划分后的子数据流对接收的报文进行更新,并利用选择的多条路径传输更新后的报文,其中所述更新后的报文包含所述划分后的子数据流和所述第二信息中的至少一个。
  13. 根据权利要求12所述的方法,其中,所述第六信息包含以下中的至少一项:
    所述一条或多条候选路径的带宽信息;
    所述一条或多条候选路径的时延信息。
  14. 根据权利要求13所述的方法,其中,所述利用第六信息,为所述划分后的子数据流选择多条路径,包括以下中的至少一个:
    针对划分后的第一个子数据流,利用所述一条或多条候选路径的带宽信息和时延信息,中的至少一个为所述第一个子数据流选择出第三路径;
    针对划分后的第M个子数据流,利用第M-1个子数据流的时延相关信息、以及所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为所述第M个子数据流选择出第四路径,M为大于或等于2的整数。
  15. 根据权利要求14所述的方法,还包括:
    在无法为所述第M个子数据流选择出第四路径的情况下,重新对划分后的数据流进行划分,得到重新划分后的第M个子数据流;
    利用第M-1个子数据流的时延相关信息、以及所述一条或多条候选路径的带宽信息和时延信息中的至少一个,为重新划分后的第M个子数据流选择出第四路径。
  16. 根据权利要求12所述方法,其中,所述更新后的报文还包含第四信息和第七信息中的至少一个,所述第四信息用于指示第三网络节点是否支持校验处理,所述第七信息表征划分后的子数据流的序列号。
  17. 根据权利要求12至16任一项所述的方法,还包括:
    向管理节点发送第八信息,其中所述第八信息用于请求与第三网络节点关联的一条或多条候选路径的链路状态信息,所述管理节点用于管理网络中的一个或多个网络节点;以及
    接收所述管理节点发送的第六信息。
  18. 一种数据传输方法,应用于第三网络节点,包括:
    接收划分后的数据流,其中所述划分后的数据流是对第一业务的数据流划分得到的,所述划分后的数据流是利用多条路径传输的;
    对划分后的数据流进行整合处理,得到所述第一业务的所述数据流。
  19. 根据权利要求18所述的方法,其中,所述接收划分后的数据流,包括:
    接收更新后的报文,其中所述更新后的报文包含划分后的子数据流和第二信息中的至少一个,划分后的子数据流是基于划分后的数据流得到的,所述第二信息用于标识所述第一业务;
    所述方法还包括:
    对划分后的子数据流进行整合处理,得到所述第一业务的数据流。
  20. 根据权利要求19所述的方法,其中,所述更新后的报文还包含第四信息和第七信息中的至少一个,所述第四信息用于指示第三网络节点是否支持校验处理,所述第七信息表征划分后的子数据流的序列号;所述方法还包括:
    在所述第三网络节点支持校验处理的情况下,利用所述第七信息对划分后的子数据流进行顺序校验,得到校验结果;
    在所述校验结果表征校验未通过的情况下,基于所述第七信息对划分后的子数据流进行排序;
    对排序后的子数据流进行整合处理,得到所述第一业务的数据流。
  21. 一种数据传输装置,包括:
    第一接收单元,用于接收第一业务的数据流;
    划分单元,用于利用第一信息对所述数据流进行划分,并为划分后的数据流选择多条路径,所述第一信息包含与第三网络节点关联的一条或多条候选路径的链路状态信息;
    传输单元,用于利用选择的多条路径传输划分后的数据流。
  22. 一种数据传输装置,包括:
    第二接收单元,用于接收划分后的数据流,划分后的数据流是对第一业务的数据流划分得到的,划分后的数据流是利用多条路径传输的;
    发送单元,用于发出划分后的数据流。
  23. 一种数据传输装置,包括:
    第三接收单元,用于接收划分后的数据流,划分后的数据流是对第一业务的数据流划分得到的,划分后的数据流是利用多条路径传输的;
    整合单元,用于对划分后的数据流进行整合处理,得到所述第一业务的数据流。
  24. 一种第一网络节点,包括:第一处理器及第一通信接口;其中,
    所述第一通信接口,用于接收第一业务的数据流;
    所述第一处理器,用于对所述数据流进行划分,并利用第一信息为划分后的数据流选择多条路径,所述第一信息包含与第三网络节点关联的一条或多条候选路径的链路状态信息;以及利用选择的多条路径传输划分后的数据流。
  25. 一种第二网络节点,包括:第二处理器及第二通信接口;其中,
    所述第二通信接口,用于接收划分后的数据流,划分后的数据流是对第一业务的数据流划分得到的,划分后的数据流是利用多条路径传输的;以及发出划分后的数据流。
  26. 一种第三网络节点,包括:第三处理器及第三通信接口;其中,
    所述第三通信接口,用于接收划分后的数据流,划分后的数据流是对第一业务的数据流划分得到的,划分后的数据流是利用多条路径传输的;
    所述第三处理器,用于对划分后的数据流进行整合处理,得到所述第一业务的数据流。
  27. 一种第一网络节点,包括:第一处理器和用于存储能够在处理器上运行的计算机程序的第一存储器,
    其中,所述第一处理器用于运行所述计算机程序时,执行权利要求1至9任一项所述方法的步骤。
  28. 一种第二网络节点,包括:第二处理器和用于存储能够在处理器上运行的计算机程序的第二存储器,
    其中,所述第二处理器用于运行所述计算机程序时,执行权利要求10至17任一项所述方法的步骤。
  29. 一种第三网络节点,包括:第三处理器和用于存储能够在处理器上运行的计算机程序的第三存储器,
    其中,所述第三处理器用于运行所述计算机程序时,执行权利要求18至20任一项所述方法的步骤。
  30. 一种存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1至9任一项所述方法的步骤,或者实现权利要求10至17任一项所述方法的步骤,或者实现权利要求18至20任一项所述方法的步骤。
  31. 一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1至9任一项所述方法的步骤,或者实现权利要求10至17任一项所述方法的步骤,或者实现权利要求18至20任一项所述方法的步骤。
PCT/CN2025/099767 2024-06-06 2025-06-06 数据传输方法、装置、相关设备、存储介质及计算器程序产品 Pending WO2025252239A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202410733354.0A CN118802725A (zh) 2024-06-06 2024-06-06 数据传输方法、装置、相关设备、存储介质及计算器程序产品
CN202410733354.0 2024-06-06

Publications (1)

Publication Number Publication Date
WO2025252239A1 true WO2025252239A1 (zh) 2025-12-11

Family

ID=93022853

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2025/099767 Pending WO2025252239A1 (zh) 2024-06-06 2025-06-06 数据传输方法、装置、相关设备、存储介质及计算器程序产品

Country Status (2)

Country Link
CN (1) CN118802725A (zh)
WO (1) WO2025252239A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118802725A (zh) * 2024-06-06 2024-10-18 中国移动通信有限公司研究院 数据传输方法、装置、相关设备、存储介质及计算器程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012149748A1 (zh) * 2011-09-19 2012-11-08 华为技术有限公司 网络优化流量控制方法、装置和系统
CN105933232A (zh) * 2016-03-29 2016-09-07 东北大学 支持多业务数据传输需求的多径传输控制终端及方法
CN108737263A (zh) * 2017-04-19 2018-11-02 阿里巴巴集团控股有限公司 数据中心系统及数据流处理方法
CN118802725A (zh) * 2024-06-06 2024-10-18 中国移动通信有限公司研究院 数据传输方法、装置、相关设备、存储介质及计算器程序产品

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102710489B (zh) * 2011-03-28 2015-07-29 日电(中国)有限公司 动态分流调度系统和方法
CN110391982B (zh) * 2018-04-20 2022-03-11 伊姆西Ip控股有限责任公司 传输数据的方法、设备和计算机程序产品
CN115134304B (zh) * 2022-06-27 2023-10-03 长沙理工大学 云计算数据中心避免数据包乱序的自适应负载均衡方法
CN116170370B (zh) * 2023-02-20 2024-03-12 重庆邮电大学 一种基于注意力机制和深度强化学习的sdn多路径路由方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012149748A1 (zh) * 2011-09-19 2012-11-08 华为技术有限公司 网络优化流量控制方法、装置和系统
CN105933232A (zh) * 2016-03-29 2016-09-07 东北大学 支持多业务数据传输需求的多径传输控制终端及方法
CN108737263A (zh) * 2017-04-19 2018-11-02 阿里巴巴集团控股有限公司 数据中心系统及数据流处理方法
CN118802725A (zh) * 2024-06-06 2024-10-18 中国移动通信有限公司研究院 数据传输方法、装置、相关设备、存储介质及计算器程序产品

Also Published As

Publication number Publication date
CN118802725A (zh) 2024-10-18

Similar Documents

Publication Publication Date Title
US20240171507A1 (en) System and method for facilitating efficient utilization of an output buffer in a network interface controller (nic)
JP4068166B2 (ja) 高性能多層スイッチ要素用探索エンジン・アーキテクチャ
KR102803151B1 (ko) 시스템 온 칩의 인터커넥트 패브릭 내에서 소스 기반 라우팅을 구현하기 위한 절차
US11750699B2 (en) Small message aggregation
US7558270B1 (en) Architecture for high speed class of service enabled linecard
US6798776B1 (en) Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network
US6754214B1 (en) Communication network having packetized security codes and a system for detecting security breach locations within the network
JP4890613B2 (ja) パケットスイッチ装置
JP2004524781A (ja) マルチキャスト伝送の効率的処理
JP2002541732A5 (zh)
KR20190112804A (ko) 패킷 처리 방법 및 장치
US7054950B2 (en) Network thread scheduling
US9838323B2 (en) Priority based anycast routing
WO2025252239A1 (zh) 数据传输方法、装置、相关设备、存储介质及计算器程序产品
CN119583436B (zh) 路由节点、数据包的发送方法、存储介质及电子设备
WO2020073907A1 (zh) 转发表项的更新方法及装置
US9143448B1 (en) Methods for reassembling fragmented data units
US6983334B2 (en) Method and system of tracking missing packets in a multicast TFTP environment
CN106789671B (zh) 一种业务报文转发方法及设备
EP4704400A1 (en) Data packet transmission method and network device
CN119135611B (zh) 网络负载均衡的控制方法、装置、设备及存储介质
US8018932B1 (en) Methods and apparatus for sending a multicast packet from multiple network interfaces using the same MAC source address
US7613200B1 (en) Method and apparatus using a random indication to map items to paths and to recirculate or delay the sending of a particular item when a destination over its mapped path is unreachable
WO2022147762A1 (zh) 一种数据包排序方法及装置
US12166659B2 (en) Dynamic packet routing using prioritized groups

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 25819286

Country of ref document: EP

Kind code of ref document: A1