WO2023202294A1 - Procédé de conservation d'ordre de flux de données, dispositif d'échange de données et réseau - Google Patents

Procédé de conservation d'ordre de flux de données, dispositif d'échange de données et réseau Download PDF

Info

Publication number
WO2023202294A1
WO2023202294A1 PCT/CN2023/082239 CN2023082239W WO2023202294A1 WO 2023202294 A1 WO2023202294 A1 WO 2023202294A1 CN 2023082239 W CN2023082239 W CN 2023082239W WO 2023202294 A1 WO2023202294 A1 WO 2023202294A1
Authority
WO
WIPO (PCT)
Prior art keywords
flow
sorting
node
information
slices
Prior art date
Application number
PCT/CN2023/082239
Other languages
English (en)
Chinese (zh)
Inventor
叶秋红
何子键
林云
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2023202294A1 publication Critical patent/WO2023202294A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • 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/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders

Definitions

  • the present application relates to the field of communication technology, and in particular to a data stream order preserving method, a data exchange device and a network.
  • Data switching networks generally adopt a multi-level (for example, two-level or three-level) switching node networking model to provide a fully connected network for many servers in the access network and exchange data between different servers.
  • each switching node has a cache with a certain capacity, which can be used to absorb bursty data flows.
  • queue head blocking and packet loss will occur.
  • multiple source nodes send data to the same destination node at the same time. Since the cache capacity of the destination node is limited, when the amount of data sent exceeds the cache capacity of the destination node, congestion and packet loss will occur, thus reducing the Network efficiency and increased latency.
  • data traffic is usually exchanged in a dynamic load balance (DLB) manner, which specifically includes the following three methods.
  • DLB dynamic load balance
  • the source node assigns a switching path to each of the multiple data flows, and transmits the corresponding data flow through the assigned switching path.
  • the source node divides the data flow into multiple flow segments (flowlets) according to the naturally existing time intervals (gaps) in the data flow, and allocates different switching paths to the multiple flow segments. Through the assigned switching paths Transmit the corresponding stream fragment.
  • the third method is that the source node divides the data flow into multiple flow slices (flow packets, flowpac) according to a certain length, allocates different switching paths to the multiple flow slices, and transmits the corresponding flow slices through the assigned switching paths. Finally, The destination node preserves the order of the multiple stream slices received.
  • the destination node does not need to maintain order, when the data volume of some data flows is large, load imbalance is likely to occur, leading to congestion on a single switching node.
  • the second method above is only applicable to scenarios where there is a time interval between multiple consecutive stream segments in the data stream, and when the time interval is less than the transmission delay, the destination node still needs to maintain order.
  • the third method mentioned above when the destination node maintains the order of the multiple flow slices, it needs to align with the slowest switching path in the network, resulting in a large delay.
  • This application provides a data flow order preserving method, a data switching device and a network, which are used to reduce the cache requirements and transmission delay of the destination node during dynamic load balancing, while avoiding congestion on a single switching node.
  • the first aspect provides a data stream order-preserving method.
  • the method includes: when the source node determines that the data volume of the target data stream is greater than a preset threshold, divide the target data stream into multiple stream slices; The switching node among the switching nodes sends write data information and the flow slice.
  • the write data information is used to instruct the switching node to store the flow slice and not forward the flow slice; the source node sends a sequence to the destination node of the target data flow.
  • Information, the sorting information is used to determine the order of the multiple flow slices stored in the multiple switching nodes.
  • the source node can use multiple switching nodes in the data switching network to store multiple flow slices of the target data flow when the data volume of the target data flow is greater than the preset threshold, and forward the data from the source node to the destination node.
  • Send sorting information so that the destination node can determine the order of the multiple flow slices based on the sorting information and schedule them in this order without the need to cache and sort the multiple flow slices at the destination node, thus reducing the cache of the destination node.
  • demand and transmission latency in addition, storing multiple flow slices of the target data flow across multiple switching nodes can also avoid congestion on a single switching node.
  • the method before the source node sends the sorting information to the destination node of the target data flow, the method further includes: the source node allocates A sorting identifier.
  • the sorting identifier of a flow slice is used to indicate the order of the flow slice in the multiple slice streams; wherein the sorting information includes the sorting identifier of each flow slice in the multiple flow slices.
  • the sorting identifier includes a sequence number; alternatively, the sorting identifier includes a timestamp.
  • the source node allocates sorting identifiers to the multiple flow slices and sends the destination node through the sorting information, so that the destination node can determine the order of the multiple flow slices based on the sorting information without having to specify the sequence of the multiple flow slices at the destination.
  • the node caches and sorts the multiple stream slices, thereby reducing the cache requirements and transmission delay of the destination node.
  • the method further includes: the source node receives data from the multiple switch nodes.
  • Multiple description information of the node corresponds to the multiple flow slices one-to-one, and each description information includes node information that stores the corresponding flow slice; the sorting information also includes the node information.
  • the node information may include one or more of the following information: the identification of the target data flow, the node identification (for example, the address of the node), the storage address of the flow slice (the storage address may be a physical address or a logical address).
  • the multiple switching nodes can return the description information of the corresponding stored flow slices to the source node, so that The source node sends multiple description information to the destination node, so that the destination node can schedule the multiple flow slices in an orderly manner based on the multiple description information.
  • the plurality of switching nodes include the destination node; or, the destination node includes a sorting cache for storing the sorting information. If the occupancy of the sorting cache is greater than the preset occupancy The multiple switching nodes do not include the destination node.
  • the above possible implementation method can avoid network congestion or packet loss problems caused by overflow of the sorting buffer at the destination node.
  • the sequence of the flow slices corresponding to one of the plurality of switching nodes in the plurality of flow slices and the distance corresponding to the switching node are arranged in order from small to large.
  • the order of the multiple distances is consistent, and the distance corresponding to the switching node is the distance between the switching node and the first switching node.
  • the multiple distances include the distance between each switching node in the multiple switching nodes and the first switching node. distance between.
  • a data flow order preserving method includes: the destination node obtains the ordering information of multiple flow slices in the target data flow, and the multiple flow slices are distributed and stored in multiple switching nodes; the destination node obtains the ordering information of multiple flow slices in the target data flow; The sorting information determines the order of the multiple flow slices stored in the multiple switching nodes; the destination node schedules the multiple flow slices from the multiple switching nodes according to the order.
  • the destination node when the source node uses multiple switching nodes in the data switching network to store the target data flow
  • the destination node can obtain the sorting information, determine the order of the multiple flow slices based on the sorting information, and schedule them in this order, without the need to cache and sort the multiple flow slices at the destination node, thus Reduce the cache requirements and transmission delay of the destination node; in addition, storing multiple flow slices of the target data flow in multiple switching nodes can also avoid congestion on a single switching node.
  • the destination node obtains the sorting information of multiple stream slices in the target data stream, including: the destination node receives the sorting information from the source node, and the sorting information includes the multiple streams.
  • the sorting identifier of each flow slice in the slice which is used to indicate the order of the flow slice in the multiple flow slices.
  • the destination node can directly obtain the sorting information from the source node.
  • the destination node obtains the sorting information of multiple flow slices in the target data stream, including: the destination node receives multiple description information from the multiple switching nodes, and the multiple The description information corresponds one-to-one to the multiple flow slices, and each description information includes a sorting identifier of the corresponding flow slice; the destination node determines the sorting information of the multiple flow slices based on the sorting identifiers of the multiple flow slices.
  • the destination node can directly obtain the sorting information from multiple switching nodes.
  • the sorting identifier includes a sequence number; or, the sorting identifier includes a timestamp.
  • the above possible implementation method can improve the flexibility and diversity of the source node in assigning sorting identifiers to multiple flow slices, so as to achieve order preservation of multiple flow slices in the data flow in different data exchange networks.
  • each description information also includes node information that stores the corresponding flow slice.
  • the node information includes one or more of the following information: the identification of the target data flow, the node identification (for example, the address of the node), the storage address of the flow slice (the storage address can be a physical address or a logical address, etc.), the The size of the flow slice and the identification (such as sequence number) of the packets included in the flow slice.
  • the plurality of switching nodes include the destination node; or, the destination node includes a sorting cache for storing the sorting information. If the occupancy of the sorting cache is greater than the preset occupancy The multiple switching nodes do not include the destination node.
  • the above possible implementation method can avoid network congestion or packet loss problems caused by overflow of the sorting buffer at the destination node.
  • the sequence of the flow slices corresponding to one of the plurality of switching nodes in the plurality of flow slices and the distance corresponding to the switching node are arranged in order from small to large.
  • the order of the multiple distances is consistent, and the distance corresponding to the switching node is the distance between the switching node and the first switching node.
  • the multiple distances include the distance between each switching node in the multiple switching nodes and the first switching node. distance between.
  • a data flow order preserving method includes: when the source node determines that the data volume of the target data flow is greater than a preset threshold, divide the target data flow into multiple flow slices; The switching node among the switching nodes sends write data information and the flow slice.
  • the write data information is used to instruct the switching node to store the flow slice and not forward the flow slice; the destination node obtains the data from the source node or the multiple switching nodes.
  • the node obtains the sorting information and determines the order of the multiple flow slices stored in the multiple switching nodes based on the sorting information; the destination node schedules the multiple flow slices from the multiple switching nodes in the order.
  • the source node can use multiple switching nodes in the data switching network to store multiple flow slices of the target data flow when the data volume of the target data flow is greater than the preset threshold, and the source node or multiple The switching node sends the sorting information to the destination node, so that the destination node can determine the order of the multiple flow slices based on the sorting information and Scheduling is performed in this order without the need to cache and sort the multiple flow slices at the destination node, thereby reducing the cache requirements and transmission delay of the destination node; in addition, multiple flow slices of the target data flow are stored in multiple Among switching nodes, congestion on a single switching node can also be avoided.
  • the destination node obtains the sorting information from the source node, including: the destination node receives the sorting information from the source node, the sorting information includes each of the plurality of flow slices.
  • the sorting identifier of a flow slice which is used to indicate the order of the flow slice among the multiple flow slices.
  • the destination node can directly obtain the sorting information from the source node.
  • the method further includes: the source node receiving a plurality of description information from the plurality of switching nodes, the plurality of description information being in one-to-one correspondence with the plurality of flow slices, each Each description information includes node information that stores the corresponding flow slice; the sorting information also includes the node information.
  • the destination node obtains the sorting information from the multiple switching nodes, including: the destination node receives multiple description information from the multiple switching nodes, and the multiple description information is related to The multiple flow slices correspond one to one, and each description information includes a sorting identifier of the corresponding flow slice; the destination node determines the sorting information of the multiple flow slices based on the sorting identifiers of the multiple flow slices.
  • the destination node can directly obtain the sorting information from multiple switching nodes.
  • the sorting identifier includes a sequence number; or, the sorting identifier includes a timestamp.
  • the above possible implementation method can improve the flexibility and diversity of the source node in assigning sorting identifiers to multiple flow slices, so as to achieve order preservation of multiple flow slices in the data flow in different data exchange networks.
  • each description information also includes node information that stores the corresponding flow slice;
  • the node information includes one or more of the following information: the identifier of the target data stream, the node identifier ( For example, the address of the node), the storage address of the flow slice (the storage address can be a physical address or a logical address, etc.), the size of the flow slice, and the identifier of the packet included in the flow slice (such as a sequence number).
  • the sequence of the flow slices corresponding to one of the plurality of switching nodes in the plurality of flow slices and the distance corresponding to the switching node are arranged in order from small to large.
  • the order of the multiple distances is consistent, and the distance corresponding to the switching node is the distance between the switching node and the first switching node.
  • the multiple distances include the distance between each switching node in the multiple switching nodes and the first switching node. distance between.
  • a data exchange device in a fourth aspect, includes: a processing unit configured to divide the target data flow into multiple flow slices when it is determined that the data amount of the target data flow is greater than a preset threshold; A sending unit, configured to send write data information and the flow slice to the switching node among the plurality of switching nodes, where the write data information is used to instruct the switching node to store the flow slice and not forward the flow slice; the sending unit is also configured to Used to send sorting information to the destination node of the target data flow, where the sorting information is used to determine the order of the multiple flow slices stored in the multiple switching nodes.
  • the processing unit is further configured to: assign a sorting identifier to each of the plurality of flow slices, and the sorting identifier of a flow slice is used to indicate that the flow slice is in An order in the multiple slice streams; wherein the sorting information includes a sorting identifier of each stream slice in the multiple stream slices.
  • the sorting identifier includes a sequence number; alternatively, the sorting identifier includes a timestamp.
  • the device further includes: a receiving unit configured to receive a plurality of description information from the plurality of switching nodes, the plurality of description information corresponding to the plurality of flow slices in a one-to-one manner , each description packet Including node information that stores the corresponding flow slice; the sorting information also includes the node information; the node information includes one or more of the following information: the identification of the target data flow, the node identification (for example, the address of the node), the flow The storage address of the slice (the storage address can be a physical address or a logical address, etc.), the size of the flow slice, and the identification of the packets included in the flow slice (for example, sequence number)
  • the plurality of switching nodes include the destination node; or, the destination node includes a sorting cache for storing the sorting information. If the occupancy of the sorting cache is greater than the preset occupancy The multiple switching nodes do not include the destination node.
  • a data exchange device in a fifth aspect, includes: an acquisition unit for acquiring the sorting information of multiple flow slices in the target data flow.
  • the multiple flow slices are distributed and stored in multiple switching nodes. ;
  • the determining unit is used to determine the order of the multiple flow slices stored in the multiple switching nodes according to the sorting information;
  • the scheduling unit is used to schedule the multiple flow slices from the multiple switching nodes in the order.
  • the acquisition unit is further configured to: receive sorting information from the source node, where the sorting information includes a sorting identification of each flow slice in the plurality of flow slices, the sorting identification Used to indicate the order of this flow slice among the multiple flow slices.
  • the obtaining unit is further configured to: receive a plurality of description information from the plurality of switching nodes, the plurality of description information corresponding to the plurality of flow slices, each The description information includes a sorting identifier of the corresponding flow slice; and the sorting information of the multiple flow slices is determined according to the sorting identifiers of the multiple flow slices.
  • the node information includes one or more of the following information: the identification of the target data flow, the node identification (for example, the address of the node), and the storage address of the flow slice (the storage address can be a physical address or a logical address). etc.), the size of the flow slice, and the identification of the packets included in the flow slice (for example, sequence number).
  • each description information also includes node information that stores the corresponding flow slice.
  • the sorting identifier includes a sequence number; alternatively, the sorting identifier includes a timestamp.
  • the plurality of switching nodes include the destination node; or, the destination node includes a sorting cache for storing the sorting information. If the occupancy of the sorting cache is greater than the preset occupancy The multiple switching nodes do not include the destination node.
  • a data exchange network in a sixth aspect, includes a source node, a plurality of exchange nodes and a destination node: the source node is used to convert the target data flow to the target when it is determined that the data volume of the target data flow is greater than a preset threshold.
  • the data flow is divided into multiple flow slices; the source node is also used to send write data information and the flow slice to a switching node among multiple switching nodes.
  • the write data information is used to instruct the switching node to store the flow slice and not Forward the flow slice; the destination node is used to obtain the sorting information, and determine the order of the multiple flow slices stored in the multiple switching nodes according to the sorting information; the destination node is also used to obtain the order from the multiple flow slices in the order.
  • the multiple flow slices are scheduled in each switching node.
  • the destination node is further configured to: receive sorting information from the source node, where the sorting information includes a sorting identifier of each flow slice in the plurality of flow slices, the sorting The identifier is used to indicate the order of the flow slice among the multiple flow slices.
  • the source node is further configured to: receive a plurality of description information from the plurality of switching nodes, the plurality of description information corresponding to the plurality of flow slices, each The description information includes node information that stores the corresponding stream slice; the sorting information also includes the node information; the node information includes one or more of the following information: the identifier of the target data stream, the node identifier (for example, the address of the node), The storage address of the flow slice (the storage address can be a physical address or a logical address, etc.), the size of the flow slice, and the size of the packets included in the flow slice. Identification (e.g., serial number).
  • the destination node is further configured to: receive a plurality of description information from the plurality of switching nodes, the plurality of description information corresponding to the plurality of flow slices, each The description information includes a sorting identifier of the corresponding flow slice; and the sorting information of the multiple flow slices is determined according to the sorting identifiers of the multiple flow slices.
  • the sorting identifier includes a sequence number; alternatively, the sorting identifier includes a timestamp.
  • each description information also includes node information that stores the corresponding flow slice.
  • a data exchange device in another aspect of the present application, includes: a processor, a memory, a communication interface and a bus.
  • the processor, the memory and the communication interface are connected through the bus; the memory is used to store
  • the program code when executed by the processor, causes the data exchange device to execute the data flow order preserving method provided by the first aspect or any possible implementation of the first aspect.
  • a data exchange device in another aspect of the present application, includes: a processor, a memory, a communication interface and a bus.
  • the processor, the memory and the communication interface are connected through the bus; the memory is used to store
  • the program code when executed by the processor, causes the data exchange device to execute the data flow order preserving method provided by the second aspect or any possible implementation of the second aspect.
  • a data exchange device in another aspect of the present application, includes: a processor, a memory, a communication interface and a bus.
  • the processor, the memory and the communication interface are connected through the bus; the memory is used to store
  • the program code when executed by the processor, causes the data exchange device to execute the data flow order preserving method provided by the third aspect or any possible implementation of the third aspect.
  • a computer-readable storage medium stores a computer program or instructions.
  • the computer program or instructions When the computer program or instructions are run, the first aspect or the first aspect is implemented.
  • the data flow order preserving method provided by any possible implementation.
  • a computer-readable storage medium stores a computer program or instructions.
  • the computer program or instructions When the computer program or instructions are run, the second aspect or the second aspect is implemented.
  • the data flow order preserving method provided by any possible implementation.
  • a computer-readable storage medium stores a computer program or instructions.
  • the third aspect or the third aspect is implemented.
  • the data flow order preserving method provided by any possible implementation.
  • a computer program product includes a computer program or instructions.
  • the computer program product includes a computer program or instructions.
  • the first aspect or any possible implementation of the first aspect is executed.
  • the data stream order preserving method provided by the method.
  • a computer program product in another aspect of the present application, includes a computer program or instructions.
  • the computer program product includes a computer program or instructions.
  • the second aspect or any possible implementation of the second aspect is executed.
  • the data stream order preserving method provided by the method.
  • a computer program product includes a computer program or instructions.
  • the computer program product includes a computer program or instructions.
  • the third aspect or any possible implementation of the third aspect is executed.
  • the data stream order preserving method provided by the method.
  • Figure 1 is a schematic structural diagram of a data switching network provided by an embodiment of the present application.
  • FIG. 2 is a schematic structural diagram of another data switching network provided by an embodiment of the present application.
  • FIG. 3 is a schematic structural diagram of another data switching network provided by an embodiment of the present application.
  • FIG. 4 is a schematic diagram of another data switching network provided by an embodiment of the present application.
  • Figure 5 is a schematic flowchart of a data stream order preserving method provided by an embodiment of the present application.
  • Figure 6 is a schematic flowchart of another data stream order preserving method provided by an embodiment of the present application.
  • Figure 7 is a schematic diagram of the transmission of multiple stream slices provided by an embodiment of the present application.
  • Figure 8 is a schematic diagram of storage of multiple stream slices provided by an embodiment of the present application.
  • Figure 9 is a schematic diagram of the transmission of multiple description information provided by an embodiment of the present application.
  • Figure 10 is another schematic diagram of storage of multiple flow slices provided by an embodiment of the present application.
  • Figure 11 is a schematic diagram of a destination node scheduling multiple flow slices provided by an embodiment of the present application.
  • Figure 12 is a schematic structural diagram of a source node provided by an embodiment of the present application.
  • Figure 13 is a schematic structural diagram of another source node provided by an embodiment of the present application.
  • Figure 14 is a schematic structural diagram of a switching node provided by an embodiment of the present application.
  • Figure 15 is a schematic structural diagram of another switching node provided by an embodiment of the present application.
  • Figure 16 is a schematic structural diagram of a destination node provided by an embodiment of the present application.
  • Figure 17 is a schematic structural diagram of another destination node provided by an embodiment of the present application.
  • At least one of a, b or c can mean: a, b, c, a and b, a and c, b and c or a, b and c, where a, b and c can It can be single or multiple.
  • words such as “first” and “second” do not limit the number and order.
  • the technical solution provided by this application can be applied to a variety of different data exchange networks.
  • the data exchange network can be a large data exchange network or a small data exchange network.
  • a small data switching network can also be called a data switching system.
  • the data switching network may include multiple switching nodes, which may also be referred to as nodes.
  • the switching node can be a switching device such as a switch or router, or a switching board or a switching element (SE).
  • SE switching board
  • the switching board may also be called a switching network card or a network interface card (NIC), and a switching board may include one or more switching units.
  • this data is submitted to
  • the replacement network can include a data center network (DCN), a high performance computing (HPC) network, a cloud network, and a single chip or an on-chip network after multiple chips are packaged together.
  • DCN data center network
  • HPC high performance computing
  • Figure 1 is a schematic structural diagram of a data switching network provided by an embodiment of the present application.
  • the data switching network includes three switching layers.
  • the data switching network includes an access layer, an aggregation layer and a core layer.
  • the access layer includes multiple access nodes
  • the aggregation layer includes multiple aggregation nodes
  • the core layer includes multiple aggregation nodes.
  • Core node, and the downlink port of the access node is connected to the server that needs to exchange data traffic
  • the uplink port of the access node is connected to the downlink port of the aggregation node
  • the uplink port of the aggregation node is connected to the core node.
  • the aggregation layer and the access layer can be divided into multiple groups (pods).
  • a group can include multiple access nodes and multiple aggregation nodes, and each access node is fully connected to multiple aggregation nodes.
  • Multiple core nodes connected to the same sink node can be called a core plane, and each core plane is connected to different sink nodes in each group.
  • Figure 1 only takes the example that the data switching network includes three groups, one group includes three access nodes and four aggregation nodes, and each core plane includes two core nodes.
  • the access nodes can be represented as A1 ⁇ A9
  • the aggregation nodes can be represented as B1 ⁇ B12
  • the core nodes can be represented as C1 ⁇ C8
  • the three groups are represented as P1 ⁇ P3 respectively.
  • the access node A1 when data traffic is exchanged between servers connected to different access nodes in a group, it can be realized through a convergence node in the same group as the access node.
  • access node A1 is connected to access node A3.
  • the server needs to exchange data traffic, then the access node A1 can send the data flow of the server it is connected to to the access node A3 through the convergence node B1.
  • data traffic is exchanged between servers connected to access nodes in different groups, it can be implemented through the aggregation node in the same group as the access node and the core node connected to the aggregation node.
  • the access node The servers connected by A1 and access node A5 need to exchange data traffic.
  • access node A1 can send the data flow of the connected server to aggregation node B1, and the aggregation node B1 forwards it to the core node C1, and then C1 passes the aggregation Node B5 sends it to access node A5.
  • FIG. 2 is a schematic structural diagram of another data switching network provided by an embodiment of the present application.
  • the data switching network includes two switching layers.
  • the data exchange network includes a relay layer (also called a TOR layer) and a backbone (spine) layer.
  • the relay layer includes multiple leaf nodes, and the backbone layer includes multiple backbone nodes, and the leaves
  • the downlink port of the node is connected to the server that needs to exchange data traffic, and the uplink port of the leaf node is connected to the multiple backbone nodes.
  • Figure 2 only takes the data exchange network including 4 leaf nodes and 2 backbone nodes as an example for illustration.
  • the leaf nodes in Figure 2 can be represented as A1 ⁇ A4, and the backbone nodes can be represented as C1 ⁇ C2.
  • leaf node A1 when data traffic is exchanged between two servers connected to the same leaf node, it can be realized through the leaf node.
  • two servers for example, S1 and S2 connected to the leaf node A1 can be exchanged through the leaf node.
  • A1 performs data traffic exchange.
  • server S1 connected to leaf node A1 needs to communicate with server S3 connected to leaf node A2.
  • leaf node A1 can send the data flow from server S1 to backbone node C1, and backbone node C1 forwards the data flow to leaf node A2.
  • FIG. 3 is a schematic structural diagram of another data switching network provided by an embodiment of the present application.
  • the data switching network may be an on-chip network.
  • the data switching network includes a plurality of switching chips.
  • Each switching chip of the plurality of switching chips includes a plurality of switching units. All switching units in the data switching network can be interconnected in a certain manner.
  • the data switching network includes 4 switching chips D1-D4, and each switching chip includes 9 switching units.
  • the switching units in the switching network are respectively represented as 1-35 as an example for explanation.
  • Each switching unit may have one or more input ports and one or more output ports.
  • the input port may be used to receive externally input data packets or cells, and the output port may be used to output data packets or cells to the outside. Yuan.
  • the interconnection between multiple switching units in the data switching network can be used to switch data packets or cells received by each input interface to the corresponding output port.
  • Each switching unit in the data switching network may include at least one buffer queue, and the at least one buffer queue may be used to buffer different data packets or cells destined for different output ports.
  • the interconnection relationships of multiple switching units shown in FIG. 3 are only exemplary and do not limit the embodiments of the present application.
  • each switching node has a certain switching capability and a certain capacity of cache.
  • DLB dynamic load balance
  • FIG. 4 shows a schematic diagram of data exchange between the source node S0 and the destination node D0.
  • the data switching network includes a source node S0, multiple switching nodes (represented as A1-A2, B1-B4 and C1-C2 respectively), and a destination node D0.
  • the source node S0 is interconnected with A1 and A2 respectively.
  • the destination node D0 is interconnected with C1 and C2 respectively, A1 is interconnected with C1 via B1 and B2 respectively, and A2 is interconnected with C2 via B3 and B4 respectively.
  • the switching nodes in the data exchange network can adopt the following three dynamic load balancing methods.
  • the source node allocates a switching path for each of the multiple data streams, and transmits the corresponding data stream through the allocated switching path.
  • source node S0 can allocate switching paths S0-A1-B1-C1-D0 to f1 and allocate switching paths to f2.
  • S0-A1-B2-C1-D0 assign the switching path S0-A2-B3-C2-D0 to f3, assign the switching path S0-A2-B4-C2-D0 to f4, and pass S0-A1-B1-C1- D0 transmits f1 to the destination node D0, transmits f2 to the destination node D0 through S0-A1-B2-C1-D0, transmits f3 to the destination node D0 through S0-A2-B3-C2-D0, and transmits f3 to the destination node D0 through S0-A2- B4-C2-D0 transmits f4 to the destination node D0.
  • the destination node does not need to maintain order. However, when the data volume of some data flows is large, load imbalance may easily occur, leading to congestion on a single switching node.
  • the source node divides the data flow into multiple flow segments (flowlets) according to the naturally existing time intervals (gaps) in the data flow, and allocates different switching paths to the multiple flow segments. Through the assigned switching paths Transmit the corresponding stream fragment.
  • the source node S0 divides f0 into four flow segments (represented as f0-1, f0-2, f0-3 and f0- respectively) according to time intervals. 4), assign the switching path S0-A1-B1-C1-D0 to f0-1, assign the switching path S0-A1-B2-C1-D0 to f0-2, and assign the switching path to f0-3.
  • S0-A2-B3-C2-D0 assign the switching path S0-A2-B4-C2-D0 to f0-4, and transmit f0-1 to the destination node D0 through S0-A1-B1-C1-D0, through S0 -A1-B2-C1-D0 transmits f0-2 to the destination node D0, through
  • S0-A2-B3-C2-D0 transmits f0-3 to the destination node D0
  • S0-A2-B4-C2-D0 transmits f0-4 to the destination node D0.
  • This method is only applicable to scenarios where there is a time interval between multiple consecutive flow segments in the data stream, and when the time interval is less than the transmission delay, it may cause the flow segments sent later to arrive at the destination node first, and the flow segments sent first.
  • the destination node is reached after the stream fragment. At this time, the destination node still needs to maintain order.
  • the third method is that the source node divides the data flow into multiple flow slices (flowpac) according to a certain length, and allocates different switching paths to the multiple flow slices.
  • the corresponding flow slices are transmitted through the assigned switching paths, and finally the destination node docking Multiple stream slices received are ordered.
  • the source node S0 divides f1 into four flow slices (denoted as f1-1, respectively) according to a fixed length (for example, N consecutive messages).
  • embodiments of the present application provide a data switching network and a data flow order preserving method based on the data switching network.
  • information transmission between any two nodes may include a control plane and a data plane.
  • the control plane is used to transmit control signaling
  • the data plane is used to transmit data.
  • the control signaling may include the following ordering information, description information, scheduling information, etc.
  • the data transmitted on this data plane can include cells, packets, flow slices, etc.
  • the source node when the data volume of the target data flow is large, can use multiple switching nodes in the data switching network to store multiple flow slices of the target data flow, and the source node or the multiple flow slices are A switching node sends sorting information to the destination node, so that the destination node can determine the order of the multiple flow slices based on the sorting information and schedule them in this order, without the need to cache and sort the multiple flow slices at the destination node.
  • Figure 5 is a schematic flowchart of a data flow order preserving method provided by an embodiment of the present application. This method can be applied to any of the data switching networks provided above. The method includes the following steps.
  • Figure 6 is an example of the data stream order preserving method being applied to a data switching network.
  • the source node may be a source server of the target data flow, or may be a switching node in the data switching network to which the source server is connected.
  • the destination node below may be the destination server of the target data flow, or may be the switching node to which the destination server is connected in the data switching network.
  • the target data flow may be a data flow whose data volume is greater than a preset threshold among the multiple data flows that the source node needs to exchange, so the target data flow may also be called an elephant flow.
  • the target data flow can be a data flow divided according to five-tuple, or a data flow divided according to one of the source node, source port, target node or destination port, or it can be a data flow divided according to the virtual LAN It is obtained by VLAN division, and the embodiment of the present application does not specifically limit this.
  • the above-mentioned preset threshold may be set in advance, and may be specifically set according to the network performance and related configuration of the data switching network. The embodiment of the present application does not place any specific restrictions on the specific value of the preset threshold.
  • each flow slice can also be called a data block.
  • Each flow slice can include multiple consecutive packets in the target data flow.
  • the number of packets included in different flow slices can be the same. It may be different, and the embodiments of this application do not specifically limit this.
  • the source node can determine the destination of the target data flow.
  • the amount of data (for example, determined based on the cache depth occupied by the target data flow, or the source node counts the number of packets of the target data flow through a counter, etc.). If the data amount is greater than the preset threshold, the source node will The data flow is divided into multiple flow slices. For example, the source node divides the target data flow into multiple flow slices according to the number of packets or cells of a fixed length (or), or according to the number of packets or cells of varying lengths.
  • the source node divides the target data flow into multiple flow slices according to the sizes of caches in multiple switching nodes that can be used to store the target data flow. That is, the size of the multiple flow slices is the same as the size of the multiple flow slices. The size of the cache used by the switching node to store the target data flow is consistent.
  • the source node S0 determines that the data volume of the target data flow f is greater than the preset threshold, it sends the target data according to the number of fixed-length packets.
  • the flow f is divided into 6 flow slices and are respectively represented as DB1, DB2, DB3, DB4, DB5 and DB6.
  • the source node can divide the target data flow into multiple flow slices after obtaining all the traffic of the target data flow, or it can divide the target data flow into multiple flow slices during the process of obtaining the target data flow. Slicing multiple flows means that the source node can divide the target data flow when it receives part of the traffic of the target data flow but not all the traffic.
  • the source node can also assign a sorting identifier to each flow slice in the multiple flow slices.
  • the sorting identifier can be used to indicate the position of the corresponding flow slice in the multiple flow slices.
  • the sorting identifier can also be used to indicate the position of the corresponding flow slice in the multiple flow slices.
  • the sorting identifier is a sequence number.
  • the multiple flow slices include 6 flow slices and the corresponding sorting identifiers are SN1-SN6 respectively.
  • the sorting identifier is a timestamp.
  • the multiple flow slices include 6 flow slices and the corresponding sorting identifiers are TS1-TS6 respectively.
  • the source node can encapsulate the sorting identifier of each flow slice in the corresponding flow slice.
  • the source node when the source node needs to exchange a target data stream and determines that the data volume of the target data stream is less than or equal to a preset threshold, the source node can transmit the target data stream to The destination node can also be transmitted through the data stream order-preserving method provided in this article, and the embodiments of this application do not specifically limit this.
  • the source node sends write data information and flow slices to a switching node among multiple switching nodes.
  • the write data information is used to instruct the switching node to store the flow slice and stop forwarding the flow slice.
  • the plurality of switching nodes may include some switching nodes in the data switching network, or may include all switching nodes in the data switching network.
  • the multiple switching nodes may or may not include destination nodes.
  • the multiple switching nodes are represented as multiple cache nodes.
  • the source node writes flow slices in the multiple cache nodes in a balanced manner, and the description is given by taking the multiple switching nodes not including the destination node as an example.
  • the source node may send at least one of the plurality of flow slices to one of the plurality of switching nodes, and the write data information sent to the switching node may be used to instruct the switching node to store the at least one flow slice.
  • a flow slice takes the source node sending a flow slice to a switching node as an example.
  • the write data information may include a write data identifier, and the write data identifier may be used to instruct the switching node that receives the write data identifier to store the flow slice locally and stop forwarding the flow slice.
  • stopping forwarding the flow slice may mean that when the switching node that receives the flow slice does not receive scheduling information for scheduling the flow slice, the switching node does not send the flow slice to lower-level nodes. That is, the switching node can only send the flow slice to the lower-level node after receiving the scheduling information used to schedule the flow slice.
  • the The source node may send the write data information and the flow slice to one of the plurality of switching nodes to instruct the switch node to store the flow slice and stop forwarding the flow slice through the write data information.
  • the source node when the source node is interconnected with the switching node, the source node can directly send the write data information and the flow slice to the switching node; when the source node When interconnected with the switching node through other switching nodes, the source node can send the write data information and the flow slice to the switching node through the other switching nodes.
  • the source node S0 when the source node S0 divides the target data flow into 6 flow slices and represents them as DB1-DB6 respectively, the source node S0 can send DB1-DB6 to the multiple switching nodes according to the following method: Send DB1 and the corresponding write data information to C1 through A1 and B1 (or B2), send DB2 and the corresponding write data information to B1 through A1, send DB3 and the corresponding write data information to B2 through A1, and send it to B3 through A2.
  • DB4 and the corresponding write data information are sent to B4 through A2, DB5 and the corresponding write data information are sent to C2 through A2 and B3 (or B4). Only the flow slice sent by the source node S0 is shown in Figure 7 .
  • the write data information may also be used to indicate at least one of the following: an identifier of the target data flow, a sorting identifier of the flow slice, and an identifier (such as a sequence number) of the packet included in the flow slice.
  • the write data information can include: the sequence number of the first packet in the flow slice and the sequence number of the last data packet. Sequence number; or the sequence number of the first packet in the flow slice and the number of packets included.
  • the order of the flow slices corresponding to one of the plurality of switching nodes in the plurality of flow slices is consistent with the order of the distances corresponding to the switching node in the plurality of distances arranged in order from small to large
  • the distance corresponding to the switching node is the distance between the switching node and the destination node
  • the multiple distances include distances between the multiple switching nodes and the destination node.
  • the multiple switching nodes include B1-B4 and C1-C2.
  • the distances between the multiple switching nodes and the destination node D0 are arranged in order from small to large as C1, C2, B1, B2, B3, B4, the order of these six stream slices is DB1-DB6, then DB1 can be stored in C1, DB2 can be stored in C2, DB3 can be stored in B1, and DB4 can be stored in B2. Store DB5 in B3 and DB6 in B4.
  • the switching node can parse the write data information to obtain the write data identification, and according to the write data identification Determine that the flow slice needs to be stored, so that the switching node can store the flow slice locally, for example, store the flow slice in the cache allocated by the switching node for the target data flow, and do not forward the flow slice to the lower level switching node.
  • the switching node parses the write data information and may also correspond to Get the above information.
  • switching node C1 locally stores DB1 when receiving DB1 and the corresponding write data information
  • switching node B1 locally stores DB2 when receiving DB2 and the corresponding write data information
  • switching node B2 stores DB3 locally when receiving DB3 and the corresponding write data information
  • switching node B3 stores DB4 locally when receiving DB4 and the corresponding write data information
  • switching node B4 stores DB4 locally when receiving DB5 and the corresponding write data information.
  • DB5 is stored locally
  • switching node C2 stores DB6 locally when receiving DB6 and the corresponding write data information.
  • the switching node among the plurality of switching nodes may also send the stored first description information of the flow slice to the destination node, where the first description information includes the sorting identifier of the flow slice.
  • the first description information may also include node information of the flow slice.
  • the node information may include one or more of the following information: the identification of the target data flow, the node identification, the storage address of the flow slice, the flow The size of the slice and the identifier of the packets included in the flow slice.
  • the destination node can receive a plurality of first description information, and the plurality of first description information corresponds to the plurality of flow slices one-to-one, so that the destination node can determine the plurality of flows based on the plurality of first description information.
  • the sorting information of the slices determines the order of the multiple flow slices stored in the multiple switching nodes.
  • switching node C1 sends the description information of DB1 to the destination node D0
  • the switching node B1 sends the description information of DB2 to the destination node D0 through C1
  • the switching node B2 The description information of DB3 is sent to the destination node D0 through C1.
  • the switching node B3 sends the description information of DB4 to the destination node D0 through C2.
  • the switching node B4 sends the description information of DB5 to the destination node D0 through C2.
  • the switching node C2 sends the description information to the destination node D0.
  • the description information of DB6 The description information of DB6.
  • the destination node D0 When the destination node D0 receives the description information of DB1-DB6, it can determine based on the description information of DB1-DB6 that the order of the six flow slices stored in the switching nodes B1-B4 and C1-C2 is DB1, DB2, DB3, DB4, DB5, DB6.
  • the source node may send sorting information to the destination node, where the sorting information is used to indicate the order of the multiple flow slices stored in the multiple switching nodes. For example, after the source node allocates corresponding sorting identifiers to the multiple flow slices, the source node may carry the sorting identifiers of the multiple flow slices and the identifier of the target data stream in the sorting information and send them to the destination node. In this way, the destination node can determine the order of the multiple flow slices stored in the multiple switching nodes based on the sorting information.
  • the source node can also send node information of the multiple switching nodes to the destination node.
  • the node information can be determined when the source node divides the target data flow and sends the multiple flow slices, or can be the multiple flow slices. Sent by a switching node. Taking the following as an example that the node information is sent by the multiple switching nodes, the switching node among the multiple switching nodes can also send the second description information of the stored flow slice to the source node.
  • the second description information can include the corresponding storage
  • the node information of the flow slice may include one or more of the following information: the identification of the target data flow, the node identification (for example, the address of the node), the storage address of the flow slice (the storage address may be a physical address or logical address, etc.), the size of the flow slice, and the identification of the packets included in the flow slice (for example, sequence number).
  • the source node may receive a plurality of second description information, which corresponds to the plurality of flow slices one-to-one, and the source node may also send the plurality of second description information to the destination node. , for example, the plurality of second description information may be carried in the sorting information.
  • switching node C1 sends the description information of DB1 to the source node S0
  • the switching node B1 sends the description information of DB2 to the source node S0
  • the switching node B2 sends the description information of DB2 to the source node S0.
  • Node S0 sends the description information of DB3
  • the switching node B3 sends the description information of DB4 to the source node S0
  • the switching node B4 sends the description information of DB5 to the source node S0
  • the switching node C2 sends the description information of DB6 to the source node S0
  • the source node S0 After receiving the description information of DB1-DB6, it sends the sorting information PD1-PD6 of DB1-DB6 to the destination node D0 (PD1-PD6 carries the sorting identification and description information of DB1-DB6, and the destination node determines based on the sorting information PD1-PD6
  • the order of the six flow slices stored in switching nodes B1-B4 and C1-C2 is DB1, DB2, DB3, DB4, DB5, DB6.
  • the destination node obtains the sorting information, and determines the order of the multiple flow slices stored in the multiple switching nodes based on the sorting information.
  • the destination node may receive multiple first description information, and the multiple first description information is one by one with the multiple flow slices. corresponding, so that the destination node can determine the ordering information of the multiple flow slices according to the multiple first description information, that is, determine the order of the multiple flow slices stored in the multiple switching nodes.
  • multiple cache nodes send description information to the destination node as an example for illustration.
  • the destination node when the source node sends sorting information to the destination node, the destination node can determine the order of the multiple flow slices stored in the multiple switching nodes based on the sorting information.
  • the sorting information includes a sorting identifier of each flow slice in the multiple flow slices.
  • the sorting identifier is used to indicate the order of the flow slice in the multiple flow slices, so that the destination node can perform the processing according to the multiple flow slices.
  • the sorting identifier determines the order of the multiple flow slices stored in the multiple switching nodes.
  • the destination node can obtain the sorting information of the multiple flow slices according to either of the above two implementation methods, and determine the order of the multiple flow slices stored in the multiple switching nodes.
  • the detailed process of the destination node determining the order of the multiple flow slices stored in the multiple switching nodes will be described below with an example.
  • the destination node after receiving the sequence numbers of the multiple flow slices, can sequence the multiple flow slices in order from small to large (or from large to small).
  • the sequence numbers of the slices are sorted to determine the sequence of the multiple flow slices stored in the multiple switching nodes. For example, as shown in (a) in Figure 9, if the sequence numbers of DB1-DB6 are SN1-SN6 respectively, the sequence numbers of the multiple flow slices received by the destination node are SN1-SN6-SN3-SN2- SN5-SN4, then the destination node can sort the sequence numbers in ascending order to obtain SN1-SN2-SN3-SN4-SN5-SN6.
  • any switching node can Sort the timestamps of the flow slices and send the sorted timestamps to the lower-level switching node. In this way, after receiving the timestamps of the multiple flow slices, the destination node only needs to reorder the transmission caused by the upper-level node. Ordering without the need to reorder timestamps caused by all switching nodes in the transmission path.
  • the switching node C1 sends TS1 to the destination node D0; the switching node C2 sends TS6 to the destination node D0; the switching node B1 sends TS2 through path B1-C1-D0, switching node B2 sends TS3 through path B2-C1-D0, switching node C1 sorts TS2 and TS3 when receiving them to obtain TS2-TS3, and forwards TS2-TS3 to the destination.
  • switching node B3 sends TS4 through path B3-C2-D0
  • switching node B4 sends TS5 through path B4-C2-D0
  • switching node C2 sorts TS3 and TS4 when receiving them to obtain TS4-TS5, and forwards them TS4-TS5 to the destination node D0; at this time, the order of the timestamps of the multiple flow slices received by the destination node D0 is TS1-TS6-(TS2-TS3)-(TS4-TS5), then the destination node can The order is TS1-TS2-TS3-TS4-TS5-TS6.
  • the destination node can also determine the message description information corresponding to each flow slice based on a plurality of first description information from the plurality of switching nodes or a plurality of sorting information or a plurality of second description information from the source node,
  • the packet description information may be used to determine the number of packets included in each of the multiple flow slices and/or the sequence of the corresponding packets.
  • the destination node may include a sorting cache, which may be a cache allocated by the destination node for storing sorting information of different data streams.
  • the sorting cache may also be called a sorting channel. Specifically, when the destination node receives the sorting information of multiple flow slices of the target data flow, the destination node can store the sorting information in the sorting channel, and perform the sorting of the multiple flow slices in the sorting channel. Sort by sort identifier (e.g., serial number), To determine the order of the plurality of flow slices stored in the plurality of switching nodes.
  • the destination node can send indication information to the source node.
  • the indication information can be used to instruct the source node to stop sending the target data stream to the destination node. of stream slices.
  • the source node may not send the flow slice to the destination node in S202, that is, the multiple switching nodes in S202 do not include the destination node.
  • the destination node can preserve the order of multiple stream slices of the target data stream based on a sliding window sorting cache. For example, the destination node maintains a sorting cache with limited capacity, and promptly notifies the source node or switching node of the available capacity of the sorting cache, so that the source node or switching node can send sorting information of corresponding size to the destination node based on the available capacity. . Since the size of the sorting information of the flow slice is much smaller than that of the flow slice, the cache in the destination node can store a larger amount of sorting information of the flow slice when used as a sorting cache, and is less likely to cause a sorting cache of overflow.
  • the source node may send the flow slice to the destination node in S202, that is, the multiple switching nodes in S202 include the destination node.
  • the source node S0 can divide the target data flow into 7 flow slices and represent them as DB1-DB7 respectively, and send DB1 to D0, DB2 to C1, DB3 to C2, and DB3 to C2.
  • B1 sends DB4, DB5 to B2, DB6 to B3, and DB7 to B4 to store DB1-DB7 in nodes D0, C1, C2, B1, B2, B3, and B4 respectively.
  • the destination node sends scheduling information to the switching node among the multiple switching nodes in the order, and the scheduling information is used to schedule the flow slices stored in the switching node.
  • the destination node can sequentially schedule the multiple flow slices through the scheduling information in the order of the multiple flow slices while ensuring throughput, In this way, the destination node obtains the multiple flow slices in sequence according to the order of the multiple flow slices, that is, the order in which the destination node receives the multiple flow slices is guaranteed through scheduling information.
  • the destination node can generate corresponding scheduling information (for example, the scheduling information is a read command), and send the scheduling information to the switching node.
  • the scheduling information may include the identification of the switching node, the storage address of the scheduled flow slice in the switching node, etc.
  • the scheduling information is a read command as an example for explanation.
  • the destination node when the destination node reads the corresponding flow slice from the switching node through scheduling information, the destination node can obtain the flow slice through one scheduling or multiple scheduling. Get this stream slice.
  • the scheduling information sent by the destination node each time can also be used to indicate the currently scheduled data volume, or to indicate the identity of the currently scheduled message, etc.
  • the destination node when the destination node is interconnected with the switching node, the destination node can directly send the scheduling information to the switching node; when the destination node passes through other switching nodes When interconnected with the switching node, the destination node can send the scheduling information to the switching node through other switching nodes.
  • the process of the destination node D0 sending scheduling information to the multiple switching nodes may include: sending the scheduling information to the switching node C1
  • the read command RD1 used to schedule BD1 is sent to the switching node B1 through the switching node C1.
  • the read command RD2 used to schedule BD2 is sent to the switching node B1 through the switching node C1.
  • the read command RD3 used to schedule BD3 is sent to the switching node B2 through the switching node C1.
  • Switching node B3 sends a read command RD4 for scheduling BD4, and sends a read command for scheduling BD5 to switching node B4 through switching node C2.
  • RD5 sends the read command RD6 for scheduling BD6 to the switching node C1.
  • the destination node can create a request list based on the source node, and perform fair scheduling on the data flows of multiple source nodes based on the request list.
  • the destination node can also schedule data flows according to different scheduling levels, such as scheduling according to egress ports, queue priorities, data flows and buffer pool linked lists.
  • the buffer pool linked lists can be used to indicate that in different switching nodes The order and storage location of multiple stream slices stored in the same data stream.
  • the switching node can read the corresponding flow slice from the local according to the scheduling information, and send the flow slice to the destination node, so that the destination node The node receives the stream slice.
  • the destination node receives the multiple flow slices in the order of the multiple flow slices, the destination node can output the flow slice according to a certain bandwidth or rate when receiving each flow slice to output the multiple flow slices. Stream slicing to complete the exchange of the destination data stream.
  • the switching node when the destination node obtains the flow slice through one scheduling, the switching node can obtain the entire flow slice locally according to the scheduling information and send the flow slice to the destination node; when When the destination node obtains the flow slice through multiple scheduling, the switching node can send the flow slice to the destination node through multiple sending according to the scheduling information.
  • the switching node when the destination node is interconnected with the switching node, the switching node can directly send the flow slice to the destination node; when the destination node communicates with the switching node through other switching nodes When nodes are interconnected, the switching node can send the flow slice to the destination node through other switching nodes.
  • the source node when the data volume of the target data flow is greater than the preset threshold, can use multiple switching nodes in the data switching network to store multiple flow slices of the target data flow, and the source node or the source node can store multiple flow slices of the target data flow.
  • Multiple switching nodes send sorting information to the destination node, so that the destination node can determine the order of the multiple flow slices based on the sorting information and schedule them in this order, without the need to cache and sort the multiple flow slices at the destination node. This reduces the cache requirements and transmission delay of the destination node; in addition, dispersing and storing multiple flow slices of the target data flow in multiple switching nodes can also avoid congestion on a single switching node.
  • each network element such as a source node, a switching node, a destination node, etc.
  • each network element such as a source node, a switching node, a destination node, etc.
  • each network element includes a corresponding hardware structure and/or software module to perform each function.
  • the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is performed by hardware or computer software driving the hardware depends on the specific application and design constraints of the technical solution. Skilled artisans may implement the described functionality using different methods for each specific application, but such implementations should not be considered beyond the scope of this application.
  • Embodiments of the present application can divide the source node, switching node and destination node into functional modules according to the above method examples.
  • each functional module can be divided corresponding to each function, or two or more functions can be integrated into one module. middle.
  • the above integrated modules can be implemented in the form of hardware or software function modules. It should be noted that the division of modules in the embodiment of the present application is schematic and is only a logical function division. In actual implementation, there may be other division methods. The following is an example of dividing each functional module into corresponding functions:
  • FIG. 12 shows a possible structural diagram of the data exchange device involved in the above embodiment.
  • the data exchange device may be a source node or a chip built into the source node.
  • the data exchange device includes: a processing unit 301 and a sending unit 302.
  • the processing unit 301 is used to support the data exchange device to perform S201 in the method embodiment and the step of assigning a sorting identifier to the flow slice;
  • the sending unit 302 supports the data exchange device to perform S202 in the method embodiment and/or to the destination. Steps for nodes to send sorting information.
  • the data exchange device may also include a receiving unit 303, which is configured to support the step of the data exchange device receiving multiple description information. All relevant content of each step involved in the above method embodiments can be quoted from the functional description of the corresponding functional module, and will not be described again here.
  • the processing unit 301 in this application can be the processor of the data exchange device
  • the sending unit 302 can be the transmitter of the data exchange device
  • the receiving unit 303 can be the receiver of the data exchange device.
  • the transmitter can usually be integrated with the receiver and used as a transceiver.
  • the specific transceiver can also be called a communication interface.
  • FIG. 13 is a schematic diagram of a possible logical structure of the data exchange device involved in the above embodiment provided for the embodiment of the present application.
  • the data exchange device may be a source node or a chip built into the source node.
  • the data exchange device includes a processor 312 and a communication interface 313 .
  • the processor 312 is used to control and manage the actions of the data exchange device.
  • the processor 312 is used to support the data exchange device in executing S201 in the method embodiment, the step of assigning a sorting identifier to the flow slice, and/or for use herein. Other procedures for the described technology.
  • the data exchange device may also include a memory 311 and a bus 314.
  • the processor 312, the communication interface 313 and the memory 311 are connected to each other through the bus 314; the communication interface 313 is used to support the data exchange device to communicate; the memory 311 is used to store the Program code and data for data exchange devices.
  • the processor 312 may be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field-programmable gate array or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It may implement or execute the various illustrative logical blocks, modules, and circuits described in connection with this disclosure.
  • the processor may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a digital signal processor and a microprocessor, and so on.
  • the bus 314 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc.
  • PCI peripheral component interconnect
  • EISA extended industry standard architecture
  • FIG. 14 shows a possible structural diagram of the data exchange device involved in the above embodiment.
  • the data exchange device may be a switching node or a chip built into the switching node.
  • the data exchange device includes: a receiving unit 401 and a processing unit 402.
  • the receiving unit 401 is used to support the steps of receiving write data information and stream slices, and receiving scheduling information in the data exchange device execution method embodiment;
  • the processing unit 402 supports S203 in the data exchange device execution method embodiment.
  • the data exchange device may also include a sending unit 403, which is configured to support the data exchange device in performing S206 in the above embodiment and/or the steps of sending description information. All relevant content of each step involved in the above method embodiments can be quoted from the functional description of the corresponding functional module, and will not be described again here.
  • the processing unit 402 in this application can be the processor of the data exchange device
  • the receiving unit 401 can be the receiver of the data exchange device
  • the sending unit 403 can be the transmitter of the data exchange device.
  • the transmitter can usually be integrated with the receiver and used as a transceiver.
  • the specific transceiver can also be called a communication interface. mouth.
  • FIG 15 shows a schematic diagram of a possible logical structure of the data exchange device involved in the above embodiment provided for the embodiment of the present application.
  • the data exchange device may be a destination node or a chip built into the destination node.
  • the data exchange device includes a processor 412 and a communication interface 413 .
  • the processor 412 is used to control and manage the actions of the data exchange device.
  • the processor 412 is used to support the data exchange device to perform S203 in the method embodiment, and/or other processes for the technology described herein.
  • the data exchange device may also include a memory 411 and a bus 414.
  • the processor 412, the communication interface 413 and the memory 411 are connected to each other through the bus 414; the communication interface 413 is used to support the data exchange device to communicate; the memory 411 is used to store the Program code and data for data exchange devices.
  • the processor 412 may be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It may implement or execute the various illustrative logical blocks, modules, and circuits described in connection with this disclosure.
  • the processor may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a digital signal processor and a microprocessor, and so on.
  • the bus 414 may be a Peripheral Component Interconnect Standard (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, or the like.
  • PCI Peripheral Component Interconnect Standard
  • EISA Extended Industry Standard Architecture
  • FIG. 16 shows a possible structural diagram of the data exchange device involved in the above embodiment.
  • the data exchange device may be a destination node or a chip built into the destination node.
  • the data exchange device includes: an acquisition unit 501 , a determination unit 502 and a scheduling unit 503 .
  • the obtaining unit 501 is used to support the step of obtaining the sorting information in S204 of the data exchange device execution method embodiment
  • the determination unit 502 is used to support the data exchange device to determine the order of the multiple stream slices in S204 of the method embodiment.
  • the steps of; the scheduling unit 503 is used to execute S205 in the embodiment of the data exchange device execution method. All relevant content of each step involved in the above method embodiments can be quoted from the functional description of the corresponding functional module, and will not be described again here.
  • the determination unit 502 in this application can be the processor of the data exchange device, and the acquisition unit 501 and the scheduling unit 503 can be the transceiver of the data exchange device.
  • the transceiver usually includes a transmitter and a receiver.
  • the specific transceiver can also be called a communication interface.
  • FIG. 17 is a schematic diagram of a possible logical structure of the data exchange device involved in the above embodiment provided for the embodiment of the present application.
  • the data exchange device may be a destination node or a chip built into the destination node.
  • the data exchange device includes a processor 512 and a communication interface 513 .
  • the processor 512 is used to control and manage the actions of the data exchange device.
  • the processor 512 is used to support the data exchange device in performing the step of determining the order of the multiple stream slices in S204 of the method embodiment, and/or to Other procedures for the techniques described in this article.
  • the data exchange device may also include a memory 511 and a bus 514.
  • the processor 512, the communication interface 513 and the memory 511 are connected to each other through the bus 514; the communication interface 513 is used to support the data exchange device to communicate; the memory 511 is used to store the Program code and data for data exchange devices.
  • the processor 512 may be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It may implement or execute the various illustrative logical blocks, modules, and circuits described in connection with this disclosure.
  • the processor may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a digital signal processor and a microprocessor, and so on.
  • the bus 514 may be a Peripheral Component Interconnect Standard (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, or the like.
  • PCI Peripheral Component Interconnect Standard
  • EISA Extended Industry Standard Architecture
  • a data switching network in another embodiment of the present application, includes a source node, a switching node and a destination node.
  • the source node may be the source node provided in the above device embodiment, used to support the source node to perform the steps of the source node in the method embodiment; and/or the switching node may be the switching node provided in the above device embodiment, used To support the switching node to perform the steps of the switching node in the method embodiment; and/or, the destination node is the destination node provided in the above device embodiment, to support the destination node to perform the steps of the destination node in the method embodiment.
  • the source node, switching node and destination node in the device embodiment of the present application may respectively correspond to the source node, switching node and destination node in the method embodiment of the present application.
  • each module and other operations and/or functions of the source node, switching node and destination node are respectively intended to implement the corresponding processes of the above method embodiments.
  • the description of the method embodiments of the present application may be applied to this device embodiment. In This will not be described again.
  • the disclosed systems, devices and methods can be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the units is only a logical function division. In actual implementation, there may be other division methods.
  • multiple units or components may be combined or can be integrated into another system, or some features can be ignored, or not implemented.
  • the coupling or direct coupling or communication connection between each other shown or discussed may be through some interfaces, and the indirect coupling or communication connection of the devices or units may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place, or they may be distributed to multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
  • each functional unit in each embodiment of the present application can be integrated into one processing unit, each unit can exist physically alone, or two or more units can be integrated into one unit.
  • the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium.
  • the technical solution of the present application is essentially or the part that contributes to the existing technology or the part of the technical solution can be embodied in the form of a software product.
  • the computer software product is stored in a storage medium, including Several instructions are used to cause a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in various embodiments of this application.
  • a readable storage medium is also provided.
  • Computer execution instructions are stored in the readable storage medium.
  • a device which can be a microcontroller, a chip, etc.
  • a processor executes the above method embodiment, The steps of the source node in the provided data flow order-preserving method.
  • the aforementioned readable storage media may include: U disk, mobile hard disk, read-only memory, random access memory, magnetic disk or optical disk and other various media that can store program codes.
  • a readable storage medium is also provided.
  • Computer execution instructions are stored in the readable storage medium.
  • a device which can be a microcontroller, a chip, etc.
  • a processor executes the above method embodiment, The steps for exchanging nodes in the provided data flow order-preserving method.
  • the aforementioned readable storage media may include: U disk, mobile hard disk, read-only memory, random access memory, magnetic disk or optical disk and other various media that can store program codes.
  • a readable storage medium is also provided.
  • Computer execution instructions are stored in the readable storage medium.
  • a device which can be a microcontroller, a chip, etc.
  • a processor executes the above method embodiment, The steps of the destination node in the provided data flow order preserving method.
  • the aforementioned readable storage media may include: U disk, mobile hard disk, read-only memory, random access memory, magnetic disk or optical disk and other various media that can store program codes.
  • a computer program product in another embodiment of the present application, includes computer-executable instructions, and the computer-executable instructions are stored in a computer-readable storage medium; at least one processor of the device can obtain data from a computer-readable storage medium. Reading the storage medium reads the computer execution instructions, and at least one processor executes the computer execution instructions to implement the steps of the source node in the data flow order preserving method provided by the above method embodiment.
  • a computer program product in another embodiment, includes computer-executable instructions, and the computer-executable instructions are stored in a computer-readable storage medium; at least one processor of the device can obtain data from a computer-readable storage medium.
  • the storage medium is read to read the computer execution instructions, and at least one processor executes the computer execution instructions so that the above method of the device implements the step of switching nodes in the provided data flow order preserving method.
  • a computer program product includes computer-executable instructions, and the computer-executable instructions are stored in a computer-readable storage medium; at least one processor of the device can obtain data from a computer-readable storage medium. Reading the storage medium reads the computer execution instructions, and at least one processor executes the computer execution instructions so that the above method of the device implements the steps of the destination node in the provided data flow order preserving method.

Landscapes

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

Abstract

La présente demande se rapporte au domaine technique des communications, et concerne un procédé de conservation d'ordre de flux de données, un dispositif d'échange de données et un réseau, destinés à être utilisés pour réduire la demande de mémoire cache et le retard de transmission d'un nœud de destination et éviter l'apparition d'un encombrement au niveau d'un nœud d'échange unique, pendant un processus d'équilibrage de charge dynamique. Le procédé comprend les étapes suivantes consistant à : lorsqu'un nœud source détermine que la quantité de données d'un flux de données cible est supérieure à un seuil prédéfini, diviser le flux de données cible en de multiples paquets de flux ; envoyer, au moyen du nœud source, des informations de données d'écriture et les paquets de flux à un nœud d'échange parmi de multiples nœuds d'échange, les informations de données d'écriture étant utilisées pour ordonner au nœud d'échange de mémoriser les paquets de flux et de ne pas transférer les paquets de flux ; obtenir, au moyen d'un nœud de destination, des informations de tri à partir du nœud source ou des multiples nœuds d'échange, et déterminer, en fonction des informations de tri, un ordre des multiples paquets de flux mémorisés dans les multiples nœuds d'échange ; et planifier, au moyen du nœud de destination, les multiples paquets de flux à partir des multiples nœuds d'échange en fonction de l'ordre.
PCT/CN2023/082239 2022-04-18 2023-03-17 Procédé de conservation d'ordre de flux de données, dispositif d'échange de données et réseau WO2023202294A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210405697.5 2022-04-18
CN202210405697.5A CN116962301A (zh) 2022-04-18 2022-04-18 一种数据流保序方法、数据交换装置及网络

Publications (1)

Publication Number Publication Date
WO2023202294A1 true WO2023202294A1 (fr) 2023-10-26

Family

ID=88419093

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/082239 WO2023202294A1 (fr) 2022-04-18 2023-03-17 Procédé de conservation d'ordre de flux de données, dispositif d'échange de données et réseau

Country Status (2)

Country Link
CN (1) CN116962301A (fr)
WO (1) WO2023202294A1 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118138533A (zh) * 2022-12-01 2024-06-04 华为技术有限公司 一种数据传输方法和节点

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108476208A (zh) * 2015-12-28 2018-08-31 亚马逊技术股份有限公司 多路径传输设计
US20210227007A1 (en) * 2018-01-19 2021-07-22 Wangsu Science & Technology Co., Ltd. Data storage method, encoding device, and decoding device
CN113691459A (zh) * 2020-05-19 2021-11-23 华为技术有限公司 基于标识报文的数据传输方法及装置
WO2022052882A1 (fr) * 2020-09-14 2022-03-17 华为技术有限公司 Procédé et appareil de transmission de données

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108476208A (zh) * 2015-12-28 2018-08-31 亚马逊技术股份有限公司 多路径传输设计
US20210227007A1 (en) * 2018-01-19 2021-07-22 Wangsu Science & Technology Co., Ltd. Data storage method, encoding device, and decoding device
CN113691459A (zh) * 2020-05-19 2021-11-23 华为技术有限公司 基于标识报文的数据传输方法及装置
WO2022052882A1 (fr) * 2020-09-14 2022-03-17 华为技术有限公司 Procédé et appareil de transmission de données

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WU M INGJIE, QINGKUI CHEN, ENG YI M: "OpenFlow Packet Buffer Management Model Based on Flow Granularity", COMPUTER ENGINEERING, vol. 43, no. 2, 15 February 2017 (2017-02-15), pages 124 - 130, XP093098206 *

Also Published As

Publication number Publication date
CN116962301A (zh) 2023-10-27

Similar Documents

Publication Publication Date Title
US11799764B2 (en) System and method for facilitating efficient packet injection into an output buffer in a network interface controller (NIC)
US7227841B2 (en) Packet input thresholding for resource distribution in a network switch
US7352694B1 (en) System and method for tolerating data link faults in a packet communications switch fabric
EP2893678B1 (fr) Appareil de transfert de paquets entre des modules de commande d'interface de cartes de lignes
US7042891B2 (en) Dynamic selection of lowest latency path in a network switch
US7283556B2 (en) Method and system for managing time division multiplexing (TDM) timeslots in a network switch
US7406041B2 (en) System and method for late-dropping packets in a network switch
JP3412825B2 (ja) データネットワーク上でデータパケットをスイッチングする方法および装置
US8782307B1 (en) Systems and methods for dynamic buffer allocation
US20030026267A1 (en) Virtual channels in a network switch
US6754222B1 (en) Packet switching apparatus and method in data network
US20020118692A1 (en) Ensuring proper packet ordering in a cut-through and early-forwarding network switch
US20070268903A1 (en) System and Method for Assigning Packets to Output Queues
US8014401B2 (en) Electronic device and method of communication resource allocation
CN109684269B (zh) 一种pcie交换芯片内核及工作方法
US10387355B2 (en) NoC interconnect with linearly-tunable QoS guarantees for real-time isolation
WO2023202294A1 (fr) Procédé de conservation d'ordre de flux de données, dispositif d'échange de données et réseau
US11256634B2 (en) System and method for serial interface memory using switched architecture
WO2023130835A1 (fr) Procédé et appareil d'échange de données
US10289598B2 (en) Non-blocking network
US10185606B2 (en) Scalable autonomic message-transport with synchronization
CN1728682A (zh) 基于变长包的交换系统及交换方法
WO2016014044A1 (fr) Dispositif informatique basé sur un nœud ayant une priorité basée sur un protocole
CN117762858A (zh) 片上网络系统、计算机系统及芯片
CN116755624A (zh) 基于fc设备多分区独立缓存的通信方法与系统

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: 23790955

Country of ref document: EP

Kind code of ref document: A1