WO2023202294A1 - Data stream order-preserving method, data exchange device, and network - Google Patents

Data stream order-preserving method, data exchange device, and network 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
French (fr)
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/en

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.

Abstract

The present application relates to the technical field of communications, and provides a data stream order-preserving method, a data exchange device, and a network, for use in reducing the cache demand and transmission delay of a destination node and avoiding the occurrence of congestion at a single exchange node, during a dynamic load balance process. The method comprises: when a source node determines that the data amount of a target data stream is greater than a preset threshold, dividing the target data stream into multiple flow packets; the source node sending write data information and the flow packets to an exchange node among multiple exchange nodes, the write data information being used for instructing the exchange node to store the flow packets and not forward the flow packets; a destination node obtaining sorting information from the source node or the multiple exchange nodes, and determining, according to the sorting information, an order of the multiple flow packets stored in the multiple exchange nodes; and the destination node scheduling the multiple flow packets from the multiple exchange nodes according to the order.

Description

一种数据流保序方法、数据交换装置及网络A data flow order preserving method, data exchange device and network
本申请要求于2022年04月18日提交国家知识产权局、申请号为202210405697.5、申请名称为“一种数据流保序方法、数据交换装置及网络”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application requests the priority of the Chinese patent application submitted to the State Intellectual Property Office on April 18, 2022, with the application number 202210405697.5 and the application title "A data stream order preserving method, data exchange device and network", and its entire content incorporated herein by reference.
技术领域Technical field
本申请涉及通信技术领域,尤其涉及一种数据流保序方法、数据交换装置及网络。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.
背景技术Background technique
数据交换网络一般采用多级(比如,两级或三级)交换节点的组网模式,为接入网络内的众多服务器(server)提供全连接的网络,将不同服务器之间的数据进行交换。在数据交换网络中,每个交换节点具有一定容量的缓存,该缓存可用于吸收突发的数据流。当一个交换节点的待调度流量超出了该交换节点的交换能力和缓存能力时,则会导致队列头阻和丢包等现象。比如,多个源节点同时向同一目的节点发送数据,由于该目的节点的缓存容量有限,当发送的数据量超出该目的节点的缓存容量时,则会出现拥塞和丢包等现象,从而降低了网络效率、增加时延。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. In a data switching network, each switching node has a cache with a certain capacity, which can be used to absorb bursty data flows. When the traffic to be scheduled on a switching node exceeds the switching capability and cache capability of the switching node, queue head blocking and packet loss will occur. For example, 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.
现有技术中,通常是按照动态负载均衡(dynamic load balance,DLB)的方式进行数据流量的交换,具体包括以下三种方式。第一种、对于源节点的多条数据流时,源节点为多条数据流中的每一条数据流分配一个交换路径,通过分配的交换路径传输对应的数据流。第二种、源节点按照数据流中自然存在的时间间隔(gap)将该数据流划分为多个流片段(flowlet),并为该多个流片段分配不同的交换路径,通过分配的交换路径传输对应的流片段。第三种、源节点按照一定长度将数据流划分为多个流切片(flow packets,flowpac),并为该多个流切片分配不同的交换路径,通过分配的交换路径传输对应的流切片,最后由目的节点对接收到的该多个流切片进行保序。In the existing technology, data traffic is usually exchanged in a dynamic load balance (DLB) manner, which specifically includes the following three methods. First, for multiple data flows from the source node, 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. Second, 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.
上述第一种方式,虽然目的节点无需进行保序,但是当某一些数据流的数据量较大时,容易出现负载不均衡,而导致单个交换节点拥塞。上述第二种方式,仅适用于数据流中连续的多个流片段之间存在时间间隔的场景,且在时间间隔小于传输延迟的情况下,仍需要目的节点进行保序。上述第三种方式中,目的节点对该多个流切片进行保序时,需要对齐网络中最慢的交换路径,从而延迟较大。In the first method mentioned above, although 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. In 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.
发明内容Contents of the invention
本申请提供一种数据流保序方法、数据交换装置及网络,用于在动态负载均衡过中,减小目的节点的缓存需求和传输延迟,同时避免单个交换节点出现拥塞。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.
为达到上述目的,本申请采用如下技术方案:In order to achieve the above purpose, this application adopts the following technical solutions:
第一方面,提供一种数据流保序方法,该方法包括:当源节点确定目标数据流的数据量大于预设阈值时,将该目标数据流划分为多个流切片;该源节点向多个交换节点中的交换节点发送写数据信息和该流切片,该写数据信息用于指示该交换节点存储该流切片且不转发该流切片;该源节点向该目标数据流的目的节点发送排序信息,该排序信息用于确定该多个交换节点中存储的该多个流切片的顺序。 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.
在上述技术方案中,该源节点能够在目标数据流的数据量大于预设阈值时,利用数据交换网络中的多个交换节点存储目标数据流的多个流切片,并由源节点向目的节点发送排序信息,这样目的节点可以根据该排序信息确定该多个流切片的顺序并按照该顺序进行调度,而无需在目的节点对该多个流切片进行缓存和排序,从而减小目的节点的缓存需求和传输延迟;此外,将目标数据流的多个流切片分散存储在多个交换节点中,还能够避免单个交换节点出现拥塞。In the above technical solution, 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.
在第一方面的一种可能的实现方式中,该源节点向该目标数据流的目的节点发送排序信息之前,该方法还包括:该源节点为该多个流切片中的每个流切片分配一个排序标识,一个流切片的排序标识用于指示该流切片在该多个切片流中的顺序;其中,该排序信息包括该多个流切片中的每个流切片的排序标识。可选的,该排序标识包括序列号;或者,该排序标识包括时间戳。上述可能的实现方式中,该源节点通过为该多个流切片分配排序标识,并通过排序信息发送目的节点,可以使得目的节点根据该排序信息确定该多个流切片的顺序,而无需在目的节点对该多个流切片进行缓存和排序,从而减小目的节点的缓存需求和传输延迟。In a possible implementation of the first aspect, 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. Optionally, the sorting identifier includes a sequence number; alternatively, the sorting identifier includes a timestamp. In the above possible implementation manner, 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.
在第一方面的一种可能的实现方式中,该源节点向多个交换节点中的该交换节点发送写数据信息和该流切片之后,该方法还包括:该源节点接收来自该多个交换节点的多个描述信息,该多个描述信息与该多个流切片一一对应,每个描述信息包括存储对应的流切片的节点信息;该排序信息还包括该节点信息。可选的,该节点信息可以包括以下信息中的一个或者多个:目标数据流的标识、节点标识(比如,节点的地址)、该流切片的存储地址(该存储地址可以为物理地址或者逻辑地址等)、该流切片的尺寸、该流切片所包括的报文的标识(比如,序列号)。上述可能的实现方式中,当源节点将目标数据流的多个流切片分别存储在多个交换节点中时,该多个交换节点可以向源节点返回对应存储的流切片的描述信息,以使源节点将多个描述信息发送给目的节点,这样目的节点可以根据该多个描述信息对该多个流切片进行有序调度。In a possible implementation of the first aspect, after the source node sends the write data information and the flow slice to the switch node among multiple switch nodes, the method further includes: the source node receives data from the multiple switch nodes. Multiple description information of the node, the multiple description information 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. Optionally, 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). address, etc.), the size of the flow slice, and the identification of the packets included in the flow slice (for example, sequence number). In the above possible implementation, when the source node stores multiple flow slices of the target data flow in multiple switching nodes, 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.
在第一方面的一种可能的实现方式中,该多个交换节点包括该目的节点;或者,该目的节点包括用于存储该排序信息的排序缓存,若该排序缓存的占用率大于预设占用率该多个交换节点不包括该目的节点。上述可能的实现方式,能够避免目的节点因为排序缓存溢出,而导致网络出现拥塞或丢包的问题。In a possible implementation of the first aspect, 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.
在第一方面的一种可能的实现方式中,该多个交换节点中一个交换节点对应的流切片在该多个流切片中的顺序与该交换节点对应的距离在按照从小到大的顺序排列的多个距离中的顺序一致,该交换节点对应的距离为该交换节点与第一交换节点之间的距离,该多个距离包括该多个交换节点中每个交换节点与第一交换节点之间的距离。上述可能的实现方式中,能够减小目的节点调度该多个流切片时的路径,以提高目的节点调度该多个流切片的效率。In a possible implementation of the first aspect, 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. In the above possible implementation manner, the path taken by the destination node when scheduling the multiple flow slices can be reduced, so as to improve the efficiency of the destination node in scheduling the multiple flow slices.
第二方面,提供一种数据流保序方法,该方法包括:目的节点获取目标数据流中多个流切片的排序信息,该多个流切片分散存储在多个交换节点中;该目的节点根据该排序信息确定该多个交换节点中存储的该多个流切片的顺序;该目的节点按照该顺序从该多个交换节点中调度该多个流切片。In the second aspect, a data flow order preserving method is provided. The 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.
在上述技术方案中,当该源节点利用数据交换网络中的多个交换节点存储目标数据流 的多个流切片时,目的节点可以获取排序信息,根据该排序信息确定该多个流切片的顺序并按照该顺序进行调度,而无需在目的节点对该多个流切片进行缓存和排序,从而减小目的节点的缓存需求和传输延迟;此外,将目标数据流的多个流切片分散存储在多个交换节点中,还能够避免单个交换节点出现拥塞。In the above technical solution, when the source node uses multiple switching nodes in the data switching network to store the target data flow When there are multiple flow slices, 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.
在第二方面的一种可能的实现方式中,该目的节点获取目标数据流中多个流切片的排序信息,包括:该目的节点接收来自源节点的排序信息,该排序信息包括该多个流切片中的每个流切片的排序标识,该排序标识用于指示该流切片在该多个流切片中的顺序。上述可能的实现方式中,该目的节点可以直接从源节点获取该排序信息。In a possible implementation of the second aspect, 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. In the above possible implementation manner, the destination node can directly obtain the sorting information from the source node.
在第二方面的一种可能的实现方式中,该目的节点获取目标数据流中多个流切片的排序信息,包括:该目的节点接收来自该多个交换节点的多个描述信息,该多个描述信息与该多个流切片一一对应,每个描述信息包括对应的流切片的排序标识;该目的节点根据该多个流切片的排序标识,确定该多个流切片的排序信息。上述可能的实现方式中,该目的节点可以直接从多个交换节点获取该排序信息。In a possible implementation of the second aspect, 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. In the above possible implementation manner, the destination node can directly obtain the sorting information from multiple switching nodes.
在第二方面的一种可能的实现方式中,该排序标识包括序列号;或者,该排序标识包括时间戳。上述可能的实现方式,能够提高源节点为多个流切片分配排序标识的灵活性和多样性,以在不同的数据交换网络中实现数据流中多个流切片的保序。In a possible implementation manner of the second aspect, 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.
在第二方面的一种可能的实现方式中,每个描述信息还包括存储对应的流切片的节点信息。该节点信息包括以下信息中的一个或者多个:目标数据流的标识、节点标识(比如,节点的地址)、该流切片的存储地址(该存储地址可以为物理地址或者逻辑地址等)、该流切片的尺寸、该流切片所包括的报文的标识(比如,序列号)。In a possible implementation of the second aspect, 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.
在第二方面的一种可能的实现方式中,该多个交换节点包括该目的节点;或者,该目的节点包括用于存储该排序信息的排序缓存,若该排序缓存的占用率大于预设占用率该多个交换节点不包括该目的节点。上述可能的实现方式,能够避免目的节点因为排序缓存溢出,而导致网络出现拥塞或丢包的问题。In a possible implementation of the second aspect, 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.
在第二方面的一种可能的实现方式中,该多个交换节点中一个交换节点对应的流切片在该多个流切片中的顺序与该交换节点对应的距离在按照从小到大的顺序排列的多个距离中的顺序一致,该交换节点对应的距离为该交换节点与第一交换节点之间的距离,该多个距离包括该多个交换节点中每个交换节点与第一交换节点之间的距离。上述可能的实现方式中,能够减小目的节点调度该多个流切片时的路径,以提高目的节点调度该多个流切片的效率。In a possible implementation of the second aspect, 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. In the above possible implementation manner, the path taken by the destination node when scheduling the multiple flow slices can be reduced, so as to improve the efficiency of the destination node in scheduling the multiple flow slices.
第三方面,提供一种数据流保序方法,该方法包括:当源节点确定目标数据流的数据量大于预设阈值时,将该目标数据流划分为多个流切片;该源节点向多个交换节点中的该交换节点发送写数据信息和该流切片,该写数据信息用于指示该交换节点存储该流切片且不转发该流切片;该目的节点从该源节点或者该多个交换节点获取排序信息,并根据该排序信息确定该多个交换节点中存储的该多个流切片的顺序;该目的节点按照该顺序从该多个交换节点中调度该多个流切片。In the third aspect, a data flow order preserving method is provided. The 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.
在上述技术方案中,该源节点能够在目标数据流的数据量大于预设阈值时,利用数据交换网络中的多个交换节点存储目标数据流的多个流切片,并由源节点或者多个交换节点向目的节点发送排序信息,这样目的节点可以根据该排序信息确定该多个流切片的顺序并 按照该顺序进行调度,而无需在目的节点对该多个流切片进行缓存和排序,从而减小目的节点的缓存需求和传输延迟;此外,将目标数据流的多个流切片分散存储在多个交换节点中,还能够避免单个交换节点出现拥塞。In the above technical solution, 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.
在第三方面的一种可能的实现方式中,该目的节点从该源节点获取排序信息,包括:该目的节点接收来自该源节点的排序信息,该排序信息包括该多个流切片中的每个流切片的排序标识,该排序标识用于指示该流切片在该多个流切片中的顺序。上述可能的实现方式中,该目的节点可以直接从源节点获取该排序信息。In a possible implementation manner of the third aspect, 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. In the above possible implementation manner, the destination node can directly obtain the sorting information from the source node.
在第三方面的一种可能的实现方式中,该方法还包括:该源节点接收来自该多个交换节点的多个描述信息,该多个描述信息与该多个流切片一一对应,每个描述信息包括存储对应的流切片的节点信息;该排序信息还包括该节点信息。In a possible implementation of the third aspect, 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.
在第三方面的一种可能的实现方式中,该目的节点从该多个交换节点获取排序信息,包括:该目的节点接收来自该多个交换节点的多个描述信息,该多个描述信息与该多个流切片一一对应,每个描述信息包括对应的流切片的排序标识;该目的节点根据该多个流切片的排序标识,确定该多个流切片的排序信息。上述可能的实现方式中,该目的节点可以直接从多个交换节点获取该排序信息。In a possible implementation of the third aspect, 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. In the above possible implementation manner, the destination node can directly obtain the sorting information from multiple switching nodes.
在第三方面的一种可能的实现方式中,该排序标识包括序列号;或者,该排序标识包括时间戳。上述可能的实现方式,能够提高源节点为多个流切片分配排序标识的灵活性和多样性,以在不同的数据交换网络中实现数据流中多个流切片的保序。In a possible implementation manner of the third aspect, 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.
在第三方面的一种可能的实现方式中,每个描述信息还包括存储对应的流切片的节点信息;该节点信息包括以下信息中的一个或者多个:目标数据流的标识、节点标识(比如,节点的地址)、该流切片的存储地址(该存储地址可以为物理地址或者逻辑地址等)、该流切片的尺寸、该流切片所包括的报文的标识(比如,序列号)。In a possible implementation of the third aspect, 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).
在第三方面的一种可能的实现方式中,该多个交换节点中一个交换节点对应的流切片在该多个流切片中的顺序与该交换节点对应的距离在按照从小到大的顺序排列的多个距离中的顺序一致,该交换节点对应的距离为该交换节点与第一交换节点之间的距离,该多个距离包括该多个交换节点中每个交换节点与第一交换节点之间的距离。上述可能的实现方式中,能够减小目的节点调度该多个流切片时的路径,以提高目的节点调度该多个流切片的效率。In a possible implementation of the third aspect, 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. In the above possible implementation manner, the path taken by the destination node when scheduling the multiple flow slices can be reduced, so as to improve the efficiency of the destination node in scheduling the multiple flow slices.
第四方面,提供一种数据交换装置,该装置作为源节点,包括:处理单元,用于当确定目标数据流的数据量大于预设阈值时,将该目标数据流划分为多个流切片;发送单元,用于向多个交换节点中的该交换节点发送写数据信息和该流切片,该写数据信息用于指示该交换节点存储该流切片且不转发该流切片;该发送单元,还用于向该目标数据流的目的节点发送排序信息,该排序信息用于确定该多个交换节点中存储的该多个流切片的顺序。In a fourth aspect, a data exchange device is provided. The device, as a source node, 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.
在第四方面的一种可能的实现方式中,该处理单元还用于:为该多个流切片中的每个流切片分配一个排序标识,一个流切片的排序标识用于指示该流切片在该多个切片流中的顺序;其中,该排序信息包括该多个流切片中的每个流切片的排序标识。可选的,该排序标识包括序列号;或者,该排序标识包括时间戳。In a possible implementation of the fourth aspect, 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. Optionally, the sorting identifier includes a sequence number; alternatively, the sorting identifier includes a timestamp.
在第四方面的一种可能的实现方式中,该装置还包括:接收单元,用于接收来自该多个交换节点的多个描述信息,该多个描述信息与该多个流切片一一对应,每个描述信息包 括存储对应的流切片的节点信息;该排序信息还包括该节点信息;该节点信息包括以下信息中的一个或者多个:目标数据流的标识、节点标识(比如,节点的地址)、该流切片的存储地址(该存储地址可以为物理地址或者逻辑地址等)、该流切片的尺寸、该流切片所包括的报文的标识(比如,序列号)In a possible implementation of the fourth aspect, 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)
在第四方面的一种可能的实现方式中,该多个交换节点包括该目的节点;或者,该目的节点包括用于存储该排序信息的排序缓存,若该排序缓存的占用率大于预设占用率该多个交换节点不包括该目的节点。In a possible implementation of the fourth aspect, 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.
第五方面,提供一种数据交换装置,该装置作为目的节点,包括:获取单元,用于获取目标数据流中多个流切片的排序信息,该多个流切片分散存储在多个交换节点中;确定单元,用于根据该排序信息确定该多个交换节点中存储的该多个流切片的顺序;调度单元,用于按照该顺序从该多个交换节点中调度该多个流切片。In a fifth aspect, a data exchange device is provided. The device, as a destination node, 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.
在第五方面的一种可能的实现方式中,该获取单元还用于:接收来自源节点的排序信息,该排序信息包括该多个流切片中的每个流切片的排序标识,该排序标识用于指示该流切片在该多个流切片中的顺序。In a possible implementation of the fifth aspect, 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.
在第五方面的一种可能的实现方式中,该获取单元还用于:接收来自该多个交换节点的多个描述信息,该多个描述信息与该多个流切片一一对应,每个描述信息包括对应的流切片的排序标识;根据该多个流切片的排序标识,确定该多个流切片的排序信息。可选的,该节点信息包括以下信息中的一个或者多个:目标数据流的标识、节点标识(比如,节点的地址)、该流切片的存储地址(该存储地址可以为物理地址或者逻辑地址等)、该流切片的尺寸、该流切片所包括的报文的标识(比如,序列号)。In a possible implementation of the fifth aspect, 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. Optionally, 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).
在第五方面的一种可能的实现方式中,每个描述信息还包括存储对应的流切片的节点信息。可选的,该排序标识包括序列号;或者,该排序标识包括时间戳。In a possible implementation of the fifth aspect, each description information also includes node information that stores the corresponding flow slice. Optionally, the sorting identifier includes a sequence number; alternatively, the sorting identifier includes a timestamp.
在第五方面的一种可能的实现方式中,该多个交换节点包括该目的节点;或者,该目的节点包括用于存储该排序信息的排序缓存,若该排序缓存的占用率大于预设占用率该多个交换节点不包括该目的节点。In a possible implementation of the fifth aspect, 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.
第六方面,提供一种数据交换网络,该数据交换网络包括源节点、多个交换节点和目的节点:该源节点,用于当确定目标数据流的数据量大于预设阈值时,将该目标数据流划分为多个流切片;该源节点,还用于向多个交换节点中的交换节点发送写数据信息和该流切片,该写数据信息用于指示该交换节点存储该流切片且不转发该流切片;该目的节点,用于获取排序信息,并根据该排序信息确定该多个交换节点中存储的该多个流切片的顺序;该目的节点,还用于按照该顺序从该多个交换节点中调度该多个流切片。In a sixth aspect, a data exchange network is provided. The data exchange network 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.
在第六方面的一种可能的实现方式中,该目的节点还用于:接收来自该源节点的排序信息,该排序信息包括该多个流切片中的每个流切片的排序标识,该排序标识用于指示该流切片在该多个流切片中的顺序。In a possible implementation of the sixth aspect, 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.
在第六方面的一种可能的实现方式中,该源节点还用于:接收来自该多个交换节点的多个描述信息,该多个描述信息与该多个流切片一一对应,每个描述信息包括存储对应的流切片的节点信息;该排序信息还包括该节点信息;该节点信息包括以下信息中的一个或者多个:目标数据流的标识、节点标识(比如,节点的地址)、该流切片的存储地址(该存储地址可以为物理地址或者逻辑地址等)、该流切片的尺寸、该流切片所包括的报文的 标识(比如,序列号)。In a possible implementation of the sixth aspect, 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).
在第六方面的一种可能的实现方式中,该目的节点还用于:接收来自该多个交换节点的多个描述信息,该多个描述信息与该多个流切片一一对应,每个描述信息包括对应的流切片的排序标识;根据该多个流切片的排序标识,确定该多个流切片的排序信息。可选的,该排序标识包括序列号;或者,该排序标识包括时间戳。In a possible implementation of the sixth aspect, 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. Optionally, the sorting identifier includes a sequence number; alternatively, the sorting identifier includes a timestamp.
在第六方面的一种可能的实现方式中,每个描述信息还包括存储对应的流切片的节点信息。In a possible implementation of the sixth aspect, each description information also includes node information that stores the corresponding flow slice.
在本申请的又一方面,提供一种数据交换装置,该数据交换装置包括:处理器、存储器、通信接口和总线,该处理器、该存储器和该通信接口通过总线连接;该存储器用于存储程序代码,当该程序代码被该处理器执行时,使得该数据交换装置执行如第一方面或者第一方面的任一种可能的实现方式所提供的数据流保序方法。In another aspect of the present application, a data exchange device is provided. The data exchange device 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.
在本申请的又一方面,提供一种数据交换装置,该数据交换装置包括:处理器、存储器、通信接口和总线,该处理器、该存储器和该通信接口通过总线连接;该存储器用于存储程序代码,当该程序代码被该处理器执行时,使得该数据交换装置执行如第二方面或者第二方面的任一种可能的实现方式所提供的数据流保序方法。In another aspect of the present application, a data exchange device is provided. The data exchange device 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.
在本申请的又一方面,提供一种数据交换装置,该数据交换装置包括:处理器、存储器、通信接口和总线,该处理器、该存储器和该通信接口通过总线连接;该存储器用于存储程序代码,当该程序代码被该处理器执行时,使得该数据交换装置执行如第三方面或者第三方面的任一种可能的实现方式所提供的数据流保序方法。In another aspect of the present application, a data exchange device is provided. The data exchange device 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.
在本申请的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序或指令,当该计算机程序或指令被运行时,实现如第一方面或者第一方面的任一种可能的实现方式所提供的数据流保序方法。In another aspect of the present application, a computer-readable storage medium is provided. The computer-readable storage medium stores a 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.
在本申请的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序或指令,当该计算机程序或指令被运行时,实现如第二方面或者第二方面的任一种可能的实现方式所提供的数据流保序方法。In another aspect of the present application, a computer-readable storage medium is provided. The computer-readable storage medium stores a 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.
在本申请的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序或指令,当该计算机程序或指令被运行时,实现如第三方面或者第三方面的任一种可能的实现方式所提供的数据流保序方法。In another aspect of the present application, a computer-readable storage medium is provided. The computer-readable storage medium stores a computer program or instructions. When the computer program or instructions are run, the third aspect or the third aspect is implemented. The data flow order preserving method provided by any possible implementation.
在本申请的又一方面,提供一种计算机程序产品,该计算机程序产品包括计算机程序或指令,当计算机程序或指令被运行时,执行上述第一方面或第一方面的任一种可能的实现方式所提供的数据流保序方法。In yet another aspect of the present application, a computer program product is provided. The computer program product includes a computer program or instructions. When the computer program or instructions are run, the first aspect or any possible implementation of the first aspect is executed. The data stream order preserving method provided by the method.
在本申请的又一方面,提供一种计算机程序产品,该计算机程序产品包括计算机程序或指令,当计算机程序或指令被运行时,执行上述第二方面或第二方面的任一种可能的实现方式所提供的数据流保序方法。In another aspect of the present application, a computer program product is provided. The computer program product includes a computer program or instructions. When the computer program or instructions are run, the second aspect or any possible implementation of the second aspect is executed. The data stream order preserving method provided by the method.
在本申请的又一方面,提供一种计算机程序产品,该计算机程序产品包括计算机程序或指令,当计算机程序或指令被运行时,执行上述第三方面或第三方面的任一种可能的实现方式所提供的数据流保序方法。In yet another aspect of the present application, a computer program product is provided. The computer program product includes a computer program or instructions. When the computer program or instructions are run, the third aspect or any possible implementation of the third aspect is executed. The data stream order preserving method provided by the method.
可以理解地,上述提供的任一种数据交换装置、数据交换网络、计算机存储介质或者计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参 考上文所提供的对应的方法中的有益效果,此处不再赘述。It can be understood that any data exchange device, data exchange network, computer storage medium or computer program product provided above is used to execute the corresponding method provided above. Therefore, the beneficial effects it can achieve can be referred to Considering the beneficial effects of the corresponding methods provided above, they will not be described again here.
附图说明Description of the drawings
图1为本申请实施例提供的一种数据交换网络的结构示意图;Figure 1 is a schematic structural diagram of a data switching network provided by an embodiment of the present application;
图2为本申请实施例提供的另一种数据交换网络的结构示意图;Figure 2 is a schematic structural diagram of another data switching network provided by an embodiment of the present application;
图3为本申请实施例提供的又一种数据交换网络的结构示意图;Figure 3 is a schematic structural diagram of another data switching network provided by an embodiment of the present application;
图4为本申请实施例提供的另一种数据交换网络的示意图;Figure 4 is a schematic diagram of another data switching network provided by an embodiment of the present application;
图5为本申请实施例提供的一种数据流保序方法的流程示意图;Figure 5 is a schematic flowchart of a data stream order preserving method provided by an embodiment of the present application;
图6为本申请实施例提供的另一种数据流保序方法的流程示意图;Figure 6 is a schematic flowchart of another data stream order preserving method provided by an embodiment of the present application;
图7为本申请实施例提供的一种多个流切片的传输示意图;Figure 7 is a schematic diagram of the transmission of multiple stream slices provided by an embodiment of the present application;
图8为本申请实施例提供的一种多个流切片的存储示意图;Figure 8 is a schematic diagram of storage of multiple stream slices provided by an embodiment of the present application;
图9为本申请实施例提供的一种多个描述信息的传输示意图;Figure 9 is a schematic diagram of the transmission of multiple description information provided by an embodiment of the present application;
图10为本申请实施例提供的另一种多个流切片的存储示意图;Figure 10 is another schematic diagram of storage of multiple flow slices provided by an embodiment of the present application;
图11为本申请实施例提供的一种目的节点调度多个流切片的示意图;Figure 11 is a schematic diagram of a destination node scheduling multiple flow slices provided by an embodiment of the present application;
图12为本申请实施例提供的一种源节点的结构示意图;Figure 12 is a schematic structural diagram of a source node provided by an embodiment of the present application;
图13为本申请实施例提供的另一种源节点的结构示意图;Figure 13 is a schematic structural diagram of another source node provided by an embodiment of the present application;
图14为本申请实施例提供的一种交换节点的结构示意图;Figure 14 is a schematic structural diagram of a switching node provided by an embodiment of the present application;
图15为本申请实施例提供的另一种交换节点的结构示意图;Figure 15 is a schematic structural diagram of another switching node provided by an embodiment of the present application;
图16为本申请实施例提供的一种目的节点的结构示意图;Figure 16 is a schematic structural diagram of a destination node provided by an embodiment of the present application;
图17为本申请实施例提供的另一种目的节点的结构示意图。Figure 17 is a schematic structural diagram of another destination node provided by an embodiment of the present application.
具体实施方式Detailed ways
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c或a、b和c,其中a、b和c可以是单个,也可以是多个。另外,在本申请的实施例中,“第一”、“第二”等字样并不对数量和次序进行限定。The technical solutions in the embodiments of the present application will be described below with reference to the drawings in the embodiments of the present application. In this application, "at least one" means one or more, and "plurality" means two or more. "And/or" describes the association of associated objects, indicating that there can be three relationships, for example, A and/or B, which can mean: A exists alone, A and B exist simultaneously, and B exists alone, where A, B can be singular or plural. The character "/" generally indicates that the related objects are in an "or" relationship. "At least one of the following" or similar expressions thereof refers to any combination of these items, including any combination of a single item (items) or a plurality of items (items). For example, 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. In addition, in the embodiments of the present application, words such as “first” and “second” do not limit the number and order.
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。It should be noted that in this application, words such as “exemplary” or “for example” are used to represent examples, illustrations or explanations. Any embodiment or design described herein as "exemplary" or "such as" is not intended to be construed as preferred or advantageous over other embodiments or designs. Rather, use of the words "exemplary" or "such as" is intended to present the concept in a concrete manner.
本申请提供的技术方案可以应用于多种不同的数据交换网络中。该数据交换网络可以为大型的数据交换网络,也可以为小型的数据交换网络。小型的数据交换网络也可以称为数据交换系统。该数据交换网络可以包括多个交换节点,该交换节点也可以称为节点。在实际应用中,该交换节点可以为交换机或者路由器等交换设备,也可以为交换板或者交换单元(switch element,SE)等。其中,交换板也可以称为交换网卡或者网络接口卡(network interface card,NIC),一个交换板中可以包括一个或者多个交换单元。可选的,该数据交 换网络可以包括数据中心网络(dater center network,DCN)、高性能计算(high performance computing,HPC)网络、云网络、以及单个芯片或者多个芯片合封后的片上网络等。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. In practical applications, the switching node can be a switching device such as a switch or router, or a switching board or a switching element (SE). 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. Optionally, 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.
下面通过图1-图3对该数据交换网络的结构进行举例说明。The following is an example of the structure of the data switching network through Figures 1 to 3.
图1为本申请实施例提供的一种数据交换网络的结构示意图,该数据交换网络包括三个交换层。参见图1,该数据交换网络包括接入层、汇聚层和核心层,接入层中包括多个接入(access)节点,汇聚层中包括多个汇聚(aggregation)节点,核心层包括多个核心(core)节点,且接入节点的下行端口与需要进行数据流量交换的服务器(server)连接,接入节点的上行端口与汇聚节点的下行端口连接,汇聚节点的上行端口与核心节点连接。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. Referring to Figure 1, 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, and 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, and the uplink port of the aggregation node is connected to the core node.
其中,汇聚层和接入层可以被划分为多个群组(pod),一个群组中可以包括多个接入节点和多个汇聚节点,且每个接入节点与多个汇聚节点全连接。与同一个汇聚节点连接的多个核心节点可以称为一个核心(core)平面,每个核心平面分别和各个群组中的不同汇聚节点连接。图1中仅以该数据交换网络包括3个群组,一个群组内包括3个接入节点和4个汇聚节点,每个核心平面包括两个核心节点为例进行说明。图1中的接入节点可以表示为A1~A9,汇聚节点可以表示为B1~B12,核心节点可以表示为C1~C8,3个群组分别表示为P1~P3。Among them, 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. In Figure 1, 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, and the three groups are represented as P1~P3 respectively.
其中,当一个群组内不同接入节点连接的服务器之间进行数据流量交换时,可以通过与接入节点在同一群组内的汇聚节点实现,比如,接入节点A1和接入节点A3连接的服务器需要进行数据流量交换,则接入节点A1可以通过汇聚节点B1将其连接的服务器的数据流发送给接入节点A3。当不同群组内的接入节点连接的服务器之间进行数据流量交换时,可以通过与接入节点在同一群组内的汇聚节点、以及与汇聚节点连接的核心节点实现,比如,接入节点A1和接入节点A5连接的服务器需要进行数据流量交换,则接入节点A1可以将其连接的服务器的数据流发送给汇聚节点B1,由汇聚节点B1转发给核心节点C1,再由C1通过汇聚节点B5发送给接入节点A5。Among them, 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. For example, 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. When 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. For example, the access node The servers connected by A1 and access node A5 need to exchange data traffic. Then 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.
图2为本申请实施例提供的另一种数据交换网络的结构示意图,该数据交换网络包括两个交换层。参见图2,该数据交换网络包括中继层(也可以称为TOR层)和骨干(spine)层,中继层中包括多个叶子(leaf)节点,骨干层包括多个骨干节点,且叶子节点的下行端口与需要进行数据流量交换的服务器(server)连接,叶子节点的上行端口与该多个骨干节点连接。图2中仅以该数据交换网络包括4个叶子节点和2个骨干节点为例进行说明。图2中的叶子节点可以表示为A1~A4,骨干节点可以表示为C1~C2。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. Referring to Figure 2, 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.
其中,当接入同一叶子节点的两个服务器之间进行数据流量交换时,可以通过该叶子节点来实现,比如,接入叶子节点A1的两个服务器(比如,S1和S2)可以通过叶子节点A1进行数据流量交换。当接入不同叶子节点的两个服务器之间进行数据流量交换时,可以通过该叶子节点和骨干节点来实现,比如,接入叶子节点A1的服务器S1需要与接入叶子节点A2的服务器S3进行数据流量交换时,叶子节点A1可以将来自服务器S1的数据流发送给骨干节点C1,由骨干节点C1将该数据流转发给叶子节点A2。Among them, when data traffic is exchanged between two servers connected to the same leaf node, it can be realized through the leaf node. For example, 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. When data traffic is exchanged between two servers connected to different leaf nodes, it can be achieved through the leaf node and the backbone node. For example, server S1 connected to leaf node A1 needs to communicate with server S3 connected to leaf node A2. When exchanging data traffic, 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.
图3为本申请实施例提供的又一种数据交换网络的结构示意图,该数据交换网络可以为片上网络。参见图3,该数据交换网络包括多个交换芯片,该多个交换芯片中的每个交换芯片包括多个交换单元,该数据交换网络中的所有交换单元可以按照一定方式互连。图3中以该数据交换网络包括4个交换芯片D1-D4,每个交换芯片包括9个交换单元,该数 据交换网络中的交换单元分别表示为1-35为例进行说明。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. Referring to Figure 3, 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. In Figure 3, 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.
其中,每个交换单元可以具有一个或者多个输入端口、以及一个或者多个输出端口,该输入接口可用于接收外部输入的数据包或信元,该输出端口可用于向外部输出数据包或者信元。该数据交换网络中的多个交换单元之间的互连可用于将每个输入接口接收到的数据包或者信元交换到对应的输出端口。该数据交换网络中的每个交换单元中可以包括至少一个缓存(queue)队列,该至少一个缓存队列可用于缓存不同去往不同输出端口的数据包或者信元。图3中示出了多个交换单元的互连关系仅为示例性的,并不对本申请实施例构成限制。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.
在上述数据交换网络中,每个交换节点均具有一定的交换能力和一定容量的缓存,当一个交换节点的待调度流量超出了该交换节点的交换能力和缓存能力时,则会导致队列头阻和丢包等现象。目前,通常是按照动态负载均衡(dynamic load balance,DLB)的方式进行数据流量的交换,以避免网络中出现拥塞。In the above data switching network, each switching node has a certain switching capability and a certain capacity of cache. When the scheduled traffic of a switching node exceeds the switching capability and cache capability of the switching node, queue head blocking will occur. and packet loss. At present, data traffic is usually exchanged according to dynamic load balance (DLB) to avoid congestion in the network.
示例性,图4示出了一种源节点S0与目的节点D0之间交换数据的示意图。图4中以该数据交换网络包括源节点S0、多个交换节点(分别表示为A1-A2、B1-B4和C1-C2)、以及目的节点D0,源节点S0分别与A1和A2互连,目的节点D0分别与C1和C2互连,A1分别通过B1和B2与C1互连,A2分别通过B3和B4与C2互连为例进行说明。在数据交换过程中,该数据交换网络中的交换节点可以采用如下三种动态负载均衡的方式。For example, FIG. 4 shows a schematic diagram of data exchange between the source node S0 and the destination node D0. In Figure 4, 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. This is explained as an example. During the data exchange process, the switching nodes in the data exchange network can adopt the following three dynamic load balancing methods.
第一种、对于源节点的多条数据流时,源节点为该多条数据流中的每一条数据流分配一个交换路径,通过分配的交换路径传输对应的数据流。示例性的,结合图4,对于源节点S0的4条数据流(分别表示为f1-f4),源节点S0可以为f1分配交换路径S0-A1-B1-C1-D0、为f2分配交换路径S0-A1-B2-C1-D0、为f3分配交换路径S0-A2-B3-C2-D0、为f4分配交换路径S0-A2-B4-C2-D0,并通过S0-A1-B1-C1-D0将f1传输至目的节点D0、通过S0-A1-B2-C1-D0将f2传输至目的节点D0、通过S0-A2-B3-C2-D0将f3传输至目的节点D0、通过S0-A2-B4-C2-D0将f4传输至目的节点D0。该方式中,目的节点无需进行保序,但是当某一些数据流的数据量较大时,容易出现负载不均衡,而导致单个交换节点拥塞的情况。First, for multiple data streams from the source node, 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. For example, with reference to Figure 4, for the four data flows of source node S0 (respectively represented as f1-f4), 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. In this method, 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.
第二种、源节点按照数据流中自然存在的时间间隔(gap)将该数据流划分为多个流片段(flowlet),并为该多个流片段分配不同的交换路径,通过分配的交换路径传输对应的流片段。示例性的,结合图4,对于源节点S0的一条数据流f0,源节点S0按照时间间隔将f0划分为四个流片段(分别表示为f0-1、f0-2、f0-3和f0-4),为f0-1分配交换路径S0-A1-B1-C1-D0、为f0-2分配交换路径S0-A1-B2-C1-D0、为f0-3分配交换路径Second, 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. For example, with reference to Figure 4, for a data flow f0 of the source node S0, 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、为f0-4分配交换路径S0-A2-B4-C2-D0,并通过S0-A1-B1-C1-D0将f0-1传输至目的节点D0、通过S0-A1-B2-C1-D0将f0-2传输至目的节点D0、通过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将f0-3传输至目的节点D0、通过S0-A2-B4-C2-D0将f0-4传输至目的节点D0。该方式,仅适用于数据流中连续的多个流片段之间存在时间间隔的场景,且在时间间隔小于传输延迟的情况下,可能会导致后发的流片段先到达目的节点、先发送的流片段后到达目的节点,此时要目的节点仍需要进行保序。S0-A2-B3-C2-D0 transmits f0-3 to the destination node D0, and 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.
第三种、源节点按照一定长度将数据流划分为多个流切片(flowpac),并为该多个流切片分配不同的交换路径,通过分配的交换路径传输对应的流切片,最后由目的节点对接 收到的多个流切片进行保序。示例性的,结合图4,对于源节点S0的一条数据流f1,源节点S0按照固定长度(比如,连续的N个报文)将f1划分为四个流切片(分别表示为f1-1、f1-2、f1-3和f1-4),为f1-1分配交换路径S0-A1-B1-C1-D0、为f1-2分配交换路径S0-A1-B2-C1-D0、为f1-3分配交换路径S0-A2-B3-C2-D0、为f1-4分配交换路径S0-A2-B4-C2-D0,并通过S0-A1-B1-C1-D0将f1-1传输至目的节点D0、通过S0-A1-B2-C1-D0将f1-2传输至目的节点D0、通过S0-A2-B3-C2-D0将f1-3传输至目的节点D0、通过S0-A2-B4-C2-D0将f1-4传输至目的节点D0。该方式中,目的节点对该多个流切片进行保序时,需要对齐网络中最慢的交换路径,即需要接收到所有的多个流切片才能进行保序,从而延迟较大。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. For example, with reference to Figure 4, for a data flow f1 of the source node S0, 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). f1-2, f1-3 and f1-4), assign switching path S0-A1-B1-C1-D0 to f1-1, assign switching path S0-A1-B2-C1-D0 to f1-2, and assign switching path S0-A1-B2-C1-D0 to f1- 3 Assign the switching path S0-A2-B3-C2-D0, assign the switching path S0-A2-B4-C2-D0 to f1-4, and transmit f1-1 to the destination node through S0-A1-B1-C1-D0 D0, transmit f1-2 to the destination node D0 through S0-A1-B2-C1-D0, transmit f1-3 to the destination node D0 through S0-A2-B3-C2-D0, transmit f1-3 to the destination node D0 through S0-A2-B4-C2 -D0 transmits f1-4 to the destination node D0. In this method, when the destination node maintains the order of the multiple flow slices, it needs to align with the slowest switching path in the network, that is, it needs to receive all multiple flow slices to maintain the order, resulting in a large delay.
基于此,本申请实施例提供一种数据交换网络、以及基于该数据交换网络的数据流保序方法。在该数据交换网络中,任意两个节点(比如,服务器与交换节点、以及交换节点与交换节点)之间的信息传输包括可以包括控制面和数据面,该控制面用于传输控制信令,该数据面用于传输数据,比如,该控制信令可以包括下文中的排序信息、描述信息和调度信息等。该数据面传输的数据可以包括信元、报文和流切片等。在该数据流保序方法中,源节点能够在目标数据流的数据量较大时,利用数据交换网络中的多个交换节点存储目标数据流的多个流切片,并由源节点或者该多个交换节点向目的节点发送排序信息,这样目的节点可以根据该排序信息确定该多个流切片的顺序并按照该顺序进行调度,而无需在目的节点对该多个流切片进行缓存和排序,从而减小目的节点的缓存需求和传输延迟;此外,将目标数据流的多个流切片分散存储在多个交换节点中,还能够避免单个交换节点出现拥塞。Based on this, embodiments of the present application provide a data switching network and a data flow order preserving method based on the data switching network. In the data switching network, information transmission between any two nodes (for example, a server and a switching node, and a switching node and a switching node) 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. For example, 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. In this data flow order-preserving method, when the data volume of the target data flow is large, the source node 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. 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 following is an introduction to the data stream order preserving method provided by the embodiment of the present application.
图5为本申请实施例提供的一种数据流保序方法的流程示意图,该方法可以应用于上文所提供的任意一种数据交换网络中,该方法包括以下步骤。图6为该数据流保序方法应用于数据交换网络中的一种示例。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.
S201:当源节点确定目标数据流的数据量大于预设阈值时,将目标数据流划分为多个流切片。S201: When the source node determines that the data volume of the target data flow is greater than the preset threshold, divide the target data flow into multiple flow slices.
其中,源节点可以为目标数据流的源服务器,也可以为该数据交换网络中该源服务器接入的交换节点。类似的,下文中的目的节点可以为目标数据流的目的服务器,也可以为该数据交换网络中该目的服务器接入的交换节点。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. Similarly, 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.
另外,目标数据流可以是该源节点需要交换的多条数据流中数据量大于预设阈值的一条数据流,从而该目标数据流也可以称为大象流。可选的,该目标数据流可以是按照五元组划分得到的数据流,也可以是按照源节点、源端口、目标节点或目的端口中的一个划分得到的数据流,也可以是按照虚拟局域网VLAN划分得到的,本申请实施例对此不作具体限制。上述预设阈值可以是事先设置的,具体可以根据数据交换网络的网络性能和相关配置进行设置,本申请实施例对该预设阈值的具体数值不作具体限制。In addition, 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. Optionally, 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.
再者,该流切片也可以称为数据块(data block),每个流切片中可以包括该目标数据流中连续的多个报文,不同流切片中包括的报文的数量可以相同,也可以不同,本申请实施例对此不作具体限制。Furthermore, the 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.
具体的,当源节点需要进行目标数据流的交换时,该源节点可以确定该目标数据流的 数据量(比如,根据该目标数据流占用的缓存深度确定、或者该源节点通过计数器统计该目标数据流的报文数量等确定),若该数据量大于预设阈值,该源节点将该目标数据流划分为多个流切片。比如,该源节点按照固定长度的报文数量或信元数量(或者),或者按照变化长度的报文数量或信元数量将该目标数据流划分为多个流切片。再比如,该源节点按照下述多个交换节点中可用于存储该目标数据流的缓存的尺寸,将该目标数据流划分为多个流切片,即该多个流切片的尺寸与该多个交换节点用于存储该目标数据流的缓存的尺寸一致。Specifically, when the source node needs to exchange the target data flow, 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. For another example, 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.
示例性的,以图4所示的数据交换网络为例,如图7所示,源节点S0在确定目标数据流f的数据量大于预设阈值时,按照固定长度的报文数量将目标数据流f划分为6个流切片且分别表示为DB1、DB2、DB3、DB4、DB5和DB6。Illustratively, taking the data switching network shown in Figure 4 as an example, as shown in Figure 7, when 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.
需要说明的是,该源节点可以在获取到该目标数据流的全部流量后再将该目标数据流划分为多个流切片,也可以在获取该目标数据流的过程中将该目标数据流划分为多个流切片,即该源节点可以在接收到该目标数据流的一部分流量,而未接收全部流量时,就对该目标数据流进行划分。It should be noted that 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.
进一步的,该源节点还可以为该多个流切片中的每个流切片分配一个排序标识,该排序标识可以用于指示对应的流切片在该多个流切片中的位置,该排序标识还可以用于标识对应的流切片。在一种示例中,该排序标识为序列号,比如,该多个流切片包括6个流切片且对应的排序标识分别为SN1-SN6。在另一种示例中,该排序标识为时间戳,比如,该多个流切片包括6个流切片且对应的排序标识分别为TS1-TS6。可选的,该源节点可以将每个流切片的排序标识封装在对应的流切片中。Further, 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. Can be used to identify the corresponding stream slice. In one example, the sorting identifier is a sequence number. For example, the multiple flow slices include 6 flow slices and the corresponding sorting identifiers are SN1-SN6 respectively. In another example, the sorting identifier is a timestamp. For example, the multiple flow slices include 6 flow slices and the corresponding sorting identifiers are TS1-TS6 respectively. Optionally, the source node can encapsulate the sorting identifier of each flow slice in the corresponding flow slice.
在一些可能的实施例中,当源节点需要进行目标数据流的交换,且确定该目标数据流的数据量小于或等于预设阈值时,该源节点可以通过一条路径将该目标数据流传输至目的节点,也可以通过本文所提供的数据流保序方法进行传输,本申请实施例对此不作具体限制。In some possible embodiments, 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.
S202:该源节点向多个交换节点中的交换节点发送写数据信息和流切片,该写数据信息用于指示该交换节点存储该流切片且停止转发该流切片。S202: 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.
其中,该多个交换节点(也可以称为缓存节点)可以包括该数据交换网络中的部分交换节点,也可以包括该数据交换网络中的所有交换节点。该多个交换节点可以包括目的节点,也可以不包括目的节点。图6中将该多个交换节点表示为多个缓存节点,源节点在该多个缓存节点中均衡写入流切片,且以该多个交换节点不包括目的节点为例进行说明。The plurality of switching nodes (which may also be called cache 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. In FIG. 6 , 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.
另外,该源节点可以向该多个交换节点中的一个交换节点发送该多个流切片中的至少一个流切片,同时发送给该交换节点的写数据信息可以用于指示该交换节点存储该至少一个流切片,下文中以该源节点向一个交换节点发送一个流切片为例进行说明。可选的,该写数据信息可以包括写数据标识,该写数据标识可以用于指示接收该写数据标识的交换节点在本地存储该流切片且停止转发该流切片。In addition, 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. The following description takes the source node sending a flow slice to a switching node as an example. Optionally, 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.
需要说明的是,停止转发该流切片可以是指接收到该流切片的交换节点在没有接收到用于调度该流切片的调度信息时,该交换节点不向下级的节点发送该流切片。即该交换节点只有接收到用于调度该流切片的调度信息,才能向下级的节点发送该流切片。It should be noted that 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.
具体的,当该源节点划分得到多个流切片时,对于该多个流切片中的每个流切片,该 源节点可以向该多个交换节点中的一个交换节点发送写数据信息和该流切片,以通过该写数据信息指示该交换节点存储该流切片且停止转发该流切片。Specifically, when the source node is divided into multiple flow slices, for each flow slice in the multiple flow slices, 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.
其中,对于该多个交换节点中的每个交换节点,当该源节点与该交换节点互连时,该源节点可以直接向该交换节点发送该写数据信息和该流切片;当该源节点通过其他交换节点与该交换节点互连时,该源节点可以通过该其他交换节点向该交换节点发送该写数据信息和该流切片。Wherein, for each switching node in the plurality of switching nodes, 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.
示例性的,如图7所示,源节点S0在将该目标数据流划分为6个流切片且分别表示为DB1-DB6时,可以按照以下方法将DB1-DB6发送给该多个交换节点:通过A1和B1(或B2)向C1发送DB1和对应的写数据信息,通过A1向B1发送DB2和对应的写数据信息,通过A1向B2发送DB3和对应的写数据信息,通过A2向B3发送DB4和对应的写数据信息,通过A2向B4发送DB5和对应的写数据信息,通过A2和B3(或B4)向C2发送DB6和对应的写数据信息。图7中仅示出了源节点S0发送的流切片。For example, as shown in Figure 7, 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 .
可选的,该写数据信息还可以用于指示以下至少一项:该目标数据流的标识、该流切片的排序标识、以及该流切片所包括的报文的标识(比如,序列号)。在一种示例中,若该写数据信息可用于指示该流切片所包括的报文的标识,该写数据信息可以包括:该流切片中第1个报文的序列号和最后一个数据包的序号;或者该流切片中第1个报文的序列号和所包括的报文数量。Optionally, 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. In an example, if the write data information can be used to indicate the identity of the packets 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.
进一步的,该多个交换节点中的一个交换节点对应的流切片在该多个流切片中的顺序与该交换节点对应的距离在按照从小到大的顺序排列的多个距离中的顺序一致,该交换节点对应的距离为该交换节点与该目的节点之间的距离,该多个距离包括该多个交换节点与该目的节点之间的距离。示例性的,如图7所示,该多个交换节点包括B1-B4和C1-C2,该多个交换节点与目的节点D0之间的距离按照从小到大的顺序排列依次为C1、C2、B1、B2、B3、B4,这6个流切片的顺序为DB1-DB6,则可以将DB1存储在C1中,将DB2存储在C2中,将DB3存储在B1中,将DB4存储在B2中,将DB5存储在B3中,将DB6存储在B4中。Further, 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, and the multiple distances include distances between the multiple switching nodes and the destination node. For example, as shown in Figure 7, 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.
S203:当该多个交换节点中的交换节点接收到该写数据信息和该流切片时,该交换节点存储该流切片。S203: When a switching node among the plurality of switching nodes receives the write data information and the flow slice, the switching node stores the flow slice.
对于该多个交换节点中的每个交换节点,当该交换节点接收到写数据信息和该流切片时,该交换节点可以解析该写数据信息,以得到写数据标识,并根据该写数据标识确定该流切片需要进行存储,从而该交换节点可以在本地存储该流切片,比如,将该流切片存储在该交换节点为该目标数据流分配的缓存中,且不将该流切片转发给下级的交换节点。可选的,当该写数据信息还包括该目标数据流的标识、该流切片的排序标识、以及该流切片所包括的报文的标识时,该交换节点解析该写数据信息,也可以对应得到上述信息。For each switching node in the plurality of switching nodes, when the switching node receives the write data information and the flow slice, 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. Optionally, when the write data information also includes the identification of the target data flow, the sorting identification of the flow slice, and the identification of the packets included in the flow slice, the switching node parses the write data information and may also correspond to Get the above information.
示例性的,结合图7,如图8所示,交换节点C1在接收到DB1和对应的写数据信息时在本地存储DB1,交换节点B1在接收到DB2和对应的写数据信息在本地存储DB2,交换节点B2在接收到DB3和对应的写数据信息时在本地存储DB3,交换节点B3在接收到DB4和对应的写数据信息时在本地存储DB4,交换节点B4在接收到DB5和对应的写数据信息时在本地存储DB5,交换节点C2在接收到DB6和对应的写数据信息时在本地存储DB6。 Illustratively, in conjunction with Figure 7, as shown in Figure 8, switching node C1 locally stores DB1 when receiving DB1 and the corresponding write data information, and 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, and switching node B4 stores DB4 locally when receiving DB5 and the corresponding write data information. When data information is stored, DB5 is stored locally, and switching node C2 stores DB6 locally when receiving DB6 and the corresponding write data information.
进一步的,如图6所示,该多个交换节点中的交换节点还可以向目的节点发送所存储的流切片的第一描述信息,第一描述信息包括该流切片的排序标识。可选的,第一描述信息还可以包括该流切片的节点信息,该节点信息可以包括以下信息中的一个或者多个:目标数据流的标识、节点标识、该流切片的存储地址、该流切片的尺寸、该流切片所包括的报文的标识。这样,该目的节点可以接收到多个第一描述信息,该多个第一描述信息与该多个流切片一一对应,从而该目的节点可以根据该多个第一描述信息确定该多个流切片的排序信息,即确定该多个交换节点中的存储的该多个流切片的顺序。Further, as shown in FIG. 6 , 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. Optionally, 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. In this way, 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.
示例性的,结合图8,如图9中的(a)所示,交换节点C1向目的节点D0发送DB1的描述信息,交换节点B1通过C1向目的节点D0发送DB2的描述信息,交换节点B2通过C1向目的节点D0发送DB3的描述信息,交换节点B3通过C2向目的节点D0发送DB4的描述信息,交换节点B4通过C2向目的节点D0发送DB5的描述信息,交换节点C2向目的节点D0发送DB6的描述信息,当目的节点D0接收到DB1-DB6的描述信息时,可以根据DB1-DB6的描述信息确定交换节点B1-B4和C1-C2中存储的该6个流切片的顺序为DB1、DB2、DB3、DB4、DB5、DB6。For example, with reference to Figure 8, as shown in (a) of Figure 9, 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, and 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. 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.
可替换的,该源节点可以向目的节点发送排序信息,该排序信息用于指示该多个交换节点中存储的该多个流切片的顺序。比如,该源节点在为该多个流切片分配对应的排序标识之后,可以将该多个流切片的排序标识和该目标数据流的标识携带在该排序信息中发送给目的节点。这样,该目的节点可以根据该排序信息确定该多个交换节点中的存储的该多个流切片的顺序。可选的,该源节点还可以向目的节点发送该多个交换节点的节点信息,该节点信息可以是源节点切分目标数据流和发送该多个流切片时确定的,也可以是该多个交换节点发送的。下面以该节点信息是该多个交换节点发送的为例,该多个交换节点中的交换节点还可以向源节点发送所存储的流切片的第二描述信息,第二描述信息可以包括对应存储该流切片的节点信息,该节点信息可以包括以下信息中的一个或者多个:目标数据流的标识、节点标识(比如,节点的地址)、该流切片的存储地址(该存储地址可以为物理地址或者逻辑地址等)、该流切片的尺寸、该流切片所包括的报文的标识(比如,序列号)。相应的,该源节点可以接收到多个第二描述信息,该多个第二描述信息与该多个流切片一一对应,该源节点还可以向该目的节点发送该多个第二描述信息,比如,该多个第二描述信息可以携带在排序信息中。Alternatively, 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. Optionally, 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). Correspondingly, 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.
示例性的,结合图8,如图9中的(b)所示,交换节点C1向源节点S0发送DB1的描述信息,交换节点B1向源节点S0发送DB2的描述信息,交换节点B2向源节点S0发送DB3的描述信息,交换节点B3向源节点S0发送DB4的描述信息,交换节点B4向源节点S0发送DB5的描述信息,交换节点C2向源节点S0发送DB6的描述信息,源节点S0在接收到DB1-DB6的描述信息后向目的节点D0发送DB1-DB6的排序信息PD1-PD6(PD1-PD6中携带DB1-DB6的排序标识和描述信息,目的节点根据该排序信息PD1-PD6确定交换节点B1-B4和C1-C2中存储的该6个流切片的顺序为DB1、DB2、DB3、DB4、DB5、DB6。For example, with reference to Figure 8, as shown in (b) of Figure 9, 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, and 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.
S204:目的节点获取排序信息,并根据该排序信息确定该多个交换节点中存储的该多个流切片的顺序。S204: 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.
在一种可能的实现方式中,当该多个交换节点中的交换节点向该目的节点发送所存储 的流切片的第一描述信息,第一描述信息包括该流切片的排序标识时,该目的节点可以接收到多个第一描述信息,该多个第一描述信息与该多个流切片一一对应,从而该目的节点可以根据该多个第一描述信息确定该多个流切片的排序信息,即确定该多个交换节点中的存储的该多个流切片的顺序。图6中以多个缓存节点向目的节点发送描述信息为例进行说明。In a possible implementation, when a switching node among the plurality of switching nodes sends the stored The first description information of the flow slice. When the first description information includes the ordering identifier of the flow slice, 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. In Figure 6, multiple cache nodes send description information to the destination node as an example for illustration.
在另一种可能的实现方式中,当该源节点向该目的节点发送排序信息时,该目的节点可以根据该排序信息确定该多个交换节点中存储的该多个流切片的顺序。比如,该排序信息包括该多个流切片中的每个流切片的排序标识,该排序标识用于指示该流切片在该多个流切片中的顺序,从而该目的节点可以根据多个流切片的排序标识,确定该多个交换节点中存储的该多个流切片的顺序。In another possible implementation, 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. For example, 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.
因此,该目的节点可以根据上述两种实现方式中的任意一种获取到该多个流切片的排序信息,并确定该多个交换节点中存储的该多个流切片的顺序。下面对该目的节点确定该多个交换节点中存储的该多个流切片的顺序的详细过程进行举例说明。Therefore, 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.
在一种示例中,若该排序标识为序列号,则该目的节点在接收到该多个流切片的序列号后,可以按照从小到大(或者从大到小)的顺序对该多个流切片的序列号进行排序,以确定该多个交换节点中的存储的该多个流切片的先后顺序。比如,如图9中的(a)所示,若DB1-DB6的序列号分别为SN1-SN6,该目的节点接收到该多个流切片的序列号的顺序为SN1-SN6-SN3-SN2-SN5-SN4,则该目的节点可以按照从小到大的顺序对该序列号进行排序得到SN1-SN2-SN3-SN4-SN5-SN6。In an example, if the sorting identifier is a sequence number, then 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.
在另一种示例中,若该排序标识为时间戳,则在源节点或者该多个交换节点发送该多个流切片的时间戳的过程中,任一交换节点可以对接收到的至少两个流切片的时间戳进行排序,并将排序后的时间戳发送给下级交换节点,这样目的节点在接收到该多个流切片的时间戳后,仅需对上一级节点的传输造成的乱序进行排序,而无需对传输路径中的所有交换节点造成的时间戳的乱序进行排序。比如,如图9中的(a)所示,若DB1-DB6的时间戳分别为TS1-TS6,则:交换节点C1向目的节点D0发送TS1;交换节点C2向目的节点D0发送TS6;交换节点B1通过路径B1-C1-D0发送TS2,交换节点B2通过路径B2-C1-D0发送TS3,交换节点C1在接收到TS2和TS3时对其进行排序得到TS2-TS3,并转发TS2-TS3给目的节点D0;交换节点B3通过路径B3-C2-D0发送TS4,交换节点B4通过路径B4-C2-D0发送TS5,交换节点C2在接收到TS3和TS4时对其进行排序得到TS4-TS5,并转发TS4-TS5给目的节点D0;此时,目的节点D0接收到的该多个流切片的时间戳的顺序为TS1-TS6-(TS2-TS3)-(TS4-TS5),则该目的节点可以将其排序为TS1-TS2-TS3-TS4-TS5-TS6。In another example, if the sorting identifier is a timestamp, then during the process of the source node or the multiple switching nodes sending the timestamps of the multiple flow slices, 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. For example, as shown in (a) in Figure 9, if the timestamps of DB1-DB6 are TS1-TS6 respectively, then: 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. Node D0; 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.
可选的,该目的节点还可以根据来自该多个交换节点的多个第一描述信息或者来自源节点的排序信息或多个第二描述信息,确定每个流切片对应的报文描述信息,该报文描述信息可用于确定该多个流切片中每个流切片所包括的报文的数量和/或对应的报文的顺序等。Optionally, 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.
进一步的,该目的节点可以包括排序缓存,该排序缓存可以是该目的节点分配的用于存储不同数据流的排序信息的缓存,该排序缓存也可以称为排序通道。具体的,当该目的节点接收到目标数据流的多个流切片的排序信息时,该目的节点可以将该排序信息存储在该排序通道中,并在该排序通道中对该多个流切片的排序标识(比如,序列号)进行排序, 以确定该多个交换节点中存储的该多个流切片的顺序。Further, 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.
可选的,当该排序缓存的占有率大于预设占有率时,该目的节点可以向该源节点发送指示信息,该指示信息可以用于指示该源节点停止向该目的节点发送该目标数据流的流切片。这样,当该源节点接收到该指示信息时,该源节点可以在S202中不向该目的节点发送流切片,也即是S202中的多个交换节点不包括该目的节点。上述图7-图9均以该目的节点的排序缓存的占有率大于预设占有率,该多个交换节点不包括该目的节点为例进行说明。Optionally, when the occupancy rate of the sorting cache is greater than the preset occupancy rate, 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. In this way, when the source node receives the indication information, 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 above figures 7 to 9 are all explained by taking the occupancy rate of the sorting cache of the destination node to be greater than the preset occupancy rate and the plurality of switching nodes not including the destination node as an example.
在一些可能的实施例中,该目的节点可以基于滑动窗口的排序缓存对目标数据流的多个流切片进行保序。示例性的,该目的节点维护容量有限的排序缓存,并及时通告源节点或交换节点该排序缓存的可用容量,从而源节点或交换节点可以根据该可用容量向该目的节点发送对应尺寸的排序信息。由于流切片的排序信息的尺寸是远远小于与流切片的尺寸的,从而该目的节点中的缓存在用作排序缓存时,可以存储更大数量的流切片的排序信息,且不易造成排序缓存的溢出。In some possible embodiments, 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.
此外,若源节点未接收到该指示信息,源节点可以在S202中向目的节点发送流切片,也即是S202中的多个交换节点包括该目的节点。示例性的,如图10所示,源节点S0可以将该目标数据流划分为7个流切片且分别表示为DB1-DB7,并向D0发送DB1,向C1发送DB2,向C2发送DB3,向B1发送DB4,向B2发送DB5,向B3发送DB6,向B4发送DB7,以将DB1-DB7分别存储在节点D0、C1、C2、B1、B2、B3和B4中。In addition, if the source node does not receive the indication information, 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. For example, as shown in Figure 10, 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.
S205:该目的节点按照该顺序向该多个交换节点中的交换节点发送调度信息,该调度信息用于调度该交换节点中存储的流切片。S205: 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.
当该目的节点需要调度该目标数据流的该多个流切片时,该目的节点可以在保证吞吐量的情况下,按照该多个流切片的顺序,依次通过调度信息调度该多个流切片,以使该目的节点按照该多个流切片的顺序依次获取到该多个流切片,即通过调度信息来保证目的节点接收该多个流切片的顺序。在一种实施例中,对于该多个交换节点中的每个交换节点,该目的节点可以生成对应的调度信息(比如,该调度信息为读命令),并向该交换节点发送的该调度信息,该调度信息可以包括该交换节点的标识、以及调度的流切片在该交换节点中的存储地址等。图6中以该调度信息为读命令为例进行说明。When the destination node needs to schedule the multiple flow slices of the target data flow, 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. In one embodiment, for each switching node in the plurality of switching nodes, 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. In Figure 6, the scheduling information is a read command as an example for explanation.
可选的,对于任意一个交换节点,当该目的节点通过调度信息从该交换节点中读取对应的流切片时,该目的节点可以通过一次调度来获取该流切片,也可以通过多次调度来获取该流切片。当该目的节点通过多次调度来获取该流切片时,该目的节点每次发送的调度信息还可以用于指示当前调度的数据量,或者用于指示当前调度的报文的标识等。Optionally, for any switching 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. When the destination node obtains the flow slice through multiple scheduling, 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.
具体的,对于该多个交换节点中的每个交换节点,当该目的节点与该交换节点互连时,该目的节点可以直接向该交换节点发送该调度信息;当该目的节点通过其他交换节点与该交换节点互连时,该目的节点可以通过其他交换节点向该交换节点发送该调度信息。Specifically, for each switching node in the plurality of switching nodes, 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.
示例性的,结合图7-图9,如图11所示,该目的节点D0向该多个交换节点(即B1-B4和C1-C2)发送调度信息的过程可以包括:向交换节点C1发送用于调度BD1的读命令RD1,通过交换节点C1向交换节点B1发送用于调度BD2的读命令RD2,通过交换节点C1向交换节点B2发送用于调度BD3的读命令RD3,通过交换节点C2向交换节点B3发送用于调度BD4的读命令RD4,通过交换节点C2向交换节点B4发送用于调度BD5的读命令 RD5,向交换节点C1发送用于调度BD6的读命令RD6。For example, with reference to Figures 7-9, as shown in Figure 11, the process of the destination node D0 sending scheduling information to the multiple switching nodes (ie, B1-B4 and C1-C2) 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.
在实际应用中,针对数据量大于预设阈值的数据流,该目的节点可以创建一个基于源节点的请求链表,基于该请求链表对多个源节点的数据流进行公平调度。此外,该目的节点还可以按照不同的调度层次来调度数据流,比如按照出端口、队列优先级、数据流和缓存池链表等来进行调度,该缓存池链表可以用于指示在不同交换节点中存储在同一数据流的多个流切片的顺序和存储位置。In practical applications, for data flows whose data volume is greater than the preset threshold, 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. In addition, 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.
S206:当该多个交换节点中的一个交换节点接收到该调度信息时,该交换节点向该目的节点发送对应的流切片。S206: When one of the multiple switching nodes receives the scheduling information, the switching node sends the corresponding flow slice to the destination node.
当该多个交换节点中的一个交换节点接收到对应的调度信息时,该交换节点可以根据调度信息从本地中读取对应的流切片,并将该流切片发送给该目的节点,以使目的节点接收到该流切片。当该目的节点按照该多个流切片的顺序接收该多个流切片时,该目的节点可以在接收到每个流切片时,按照一定带宽或速率向外输出该流切片,以输出该多个流切片,从而完成该目的数据流的交换。When one of the multiple switching nodes receives the corresponding scheduling information, 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. When 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.
可选的,对于任意一个交换节点,当该目的节点通过一次调度来获取该流切片时,该交换节点可以根据调度信息从本地获取整个流切片,并将该流切片发送给该目的节点;当该目的节点通过多次调度来获取该流切片时,该交换节点可以根据调度信息通过多次发送,以将该流切片发送给该目的节点。Optionally, for any 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.
对于该多个交换节点中的任意一个交换节点,当该目的节点与该交换节点互连时,该交换节点可以直接向该目的节点发送该流切片;当该目的节点通过其他交换节点与该交换节点互连时,该交换节点可以通过其他交换节点向该目的节点发送该流切片。For any one of the multiple switching nodes, 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.
在本申请实施例中,该源节点能够在目标数据流的数据量大于预设阈值时,利用数据交换网络中的多个交换节点存储目标数据流的多个流切片,并由源节点或者该多个交换节点向目的节点发送排序信息,这样目的节点可以根据该排序信息确定该多个流切片的顺序并按照该顺序进行调度,而无需在目的节点对该多个流切片进行缓存和排序,从而减小目的节点的缓存需求和传输延迟;此外,将目标数据流的多个流切片分散存储在多个交换节点中,还能够避免单个交换节点出现拥塞。In this embodiment of the present application, when the data volume of the target data flow is greater than the preset threshold, the source node 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.
上述主要从各个节点之间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,各个网元,例如源节点、交换节点和目的节点等,为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。The above mainly introduces the solution provided by the embodiment of the present application from the perspective of interaction between various nodes. It can be understood that each network element, such as a source node, a switching node, a destination node, etc., in order to implement the above functions, includes a corresponding hardware structure and/or software module to perform each function. Persons skilled in the art should easily realize that, with the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein, 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. For example, 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:
在采用集成的单元的情况下,图12示出了上述实施例中所涉及的数据交换装置的一种可能的结构示意图。该数据交换装置可以为源节点或者源节点内置的芯片,该数据交换装置包括:处理单元301和发送单元302。其中,处理单元301用于支持该数据交换装置执行方法实施例中的S201、以及为流切片分配排序标识的步骤;发送单元302支持该数据交换装置执行方法实施例中S202、和/或向目的节点发送排序信息的步骤。可选的,该数据交换装置还可以包括接收单元303,接收单元303用于支持该数据交换装置接收多个描述信息的步骤。上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。In the case of using an integrated unit, 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. Among them, 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. Optionally, 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.
在采用硬件实现的基础上,本申请中的处理单元301可以为数据交换装置的处理器,发送单元302可以为该数据交换装置的发送器,接收单元303可以为该数据交换装置的接收器,发送器通常可以和接收器集成在一起用作收发器,具体的收发器还可以称为通信接口。On the basis of hardware implementation, 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, and 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.
图13所示,为本申请的实施例提供的上述实施例中所涉及的数据交换装置的一种可能的逻辑结构示意图。该数据交换装置可以为源节点或者源节点内置的芯片,该数据交换装置包括:处理器312和通信接口313。处理器312用于对该数据交换装置动作进行控制管理,例如,处理器312用于支持该数据交换装置执行方法实施例中的S201,为流切片分配排序标识的步骤,和/或用于本文所描述的技术的其他过程。此外,该数据交换装置还可以包括存储器311和总线314,处理器312、通信接口313以及存储器311通过总线314相互连接;通信接口313用于支持该数据交换装置进行通信;存储器311用于存储该数据交换装置的程序代码和数据。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. For example, 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. In addition, 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.
其中,处理器312可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线314可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。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. The bus can be divided into address bus, data bus, control bus, etc. For ease of representation, only one thick line is used, but it does not mean that there is only one bus or one type of bus.
在采用集成的单元的情况下,图14示出了上述实施例中所涉及的数据交换装置的一种可能的结构示意图。该数据交换装置可以为交换节点或者交换节点内置的芯片,该数据交换装置包括:接收单元401和处理单元402。其中,接收单元401用于支持该数据交换装置执行方法实施例中接收写数据信息和流切片、以及接收调度信息的步骤;处理单元402支持该数据交换装置执行方法实施例中的S203。可选的,该数据交换装置还可以包括发送单元403,发送单元403用于支持该数据交换装置执行上述实施例中的S206、和/或发送描述信息的步骤。上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。In the case of using an integrated unit, 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. Among them, 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. Optionally, 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.
在采用硬件实现的基础上,本申请中的处理单元402可以为数据交换装置的处理器,接收单元401可以为该数据交换装置的接收器,发送单元403可以为该数据交换装置的发送器,发送器通常可以和接收器集成在一起用作收发器,具体的收发器还可以称为通信接 口。On the basis of hardware implementation, 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, and 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.
图15所示,为本申请的实施例提供的上述实施例中所涉及的数据交换装置的一种可能的逻辑结构示意图。该数据交换装置可以为目的节点或者目的节点内置的芯片,该数据交换装置包括:处理器412和通信接口413。处理器412用于对该数据交换装置动作进行控制管理,例如,处理器412用于支持该数据交换装置执行方法实施例中的S203,和/或用于本文所描述的技术的其他过程。此外,该数据交换装置还可以包括存储器411和总线414,处理器412、通信接口413以及存储器411通过总线414相互连接;通信接口413用于支持该数据交换装置进行通信;存储器411用于存储该数据交换装置的程序代码和数据。Figure 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. For example, 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. In addition, 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.
其中,处理器412可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线414可以是外设部件互连标准(PCI)总线或扩展工业标准结构(EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。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. The bus can be divided into address bus, data bus, control bus, etc. For ease of representation, only one thick line is used, but it does not mean that there is only one bus or one type of bus.
在采用集成的单元的情况下,图16示出了上述实施例中所涉及的数据交换装置的一种可能的结构示意图。该数据交换装置可以为目的节点或者目的节点内置的芯片,该数据交换装置包括:获取单元501、确定单元502和调度单元503。其中,获取单元501用于支持该数据交换装置执行方法实施例的S204中获取排序信息的步骤;确定单元502用于支持该数据交换装置执行方法实施例的S204中确定该多个流切片的顺序的步骤;调度单元503用于执行该数据交换装置执行方法实施例中的S205。上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。In the case of using an integrated unit, 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 . Among them, 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.
在采用硬件实现的基础上,本申请中的确定单元502可以为数据交换装置的处理器,获取单元501和调度单元503可以为该数据交换装置的收发器,该收发器通常包括发送器和接收器,具体的收发器还可以称为通信接口。Based on hardware implementation, 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.
图17所示,为本申请的实施例提供的上述实施例中所涉及的数据交换装置的一种可能的逻辑结构示意图。该数据交换装置可以为目的节点或者目的节点内置的芯片,该数据交换装置包括:处理器512和通信接口513。处理器512用于对该数据交换装置动作进行控制管理,例如,处理器512用于支持该数据交换装置执行方法实施例的S204中确定该多个流切片的顺序的步骤,和/或用于本文所描述的技术的其他过程。此外,该数据交换装置还可以包括存储器511和总线514,处理器512、通信接口513以及存储器511通过总线514相互连接;通信接口513用于支持该数据交换装置进行通信;存储器511用于存储该数据交换装置的程序代码和数据。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. For example, 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. In addition, 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.
其中,处理器512可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线514可以是外设部件互连标准(PCI)总线或扩展工业标准结构(EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。 为便于表示,仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。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. The bus can be divided into address bus, data bus, control bus, etc. For ease of representation, only one thick line is used, but it does not mean that there is only one bus or one type of bus.
在本申请的另一实施例中,还提供一种数据交换网络,该数据交换网络包括源节点、交换节点和目的节点。其中,源节点可以为上述装置实施例中所提供的源节点,用于支持源节点执行方法实施例中源节点的步骤;和/或,交换节点为上述装置实施例所提供的交换节点,用于支持交换节点执行方法实施例中交换节点的步骤;和/或,目的节点为上述装置实施例所提供的目的节点,用于支持目的节点执行方法实施例中目的节点的步骤。In another embodiment of the present application, a data switching network is also provided. The data switching network includes a source node, a switching node and a destination node. Wherein, 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. Moreover, 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. For the sake of simplicity, the description of the method embodiments of the present application may be applied to this device embodiment. In This will not be described again.
本申请装置实施例的有益效果可参考上述对应的方法实施例中的有益效果,此处不再赘述。另外,本申请装置实施例中相关内容的描述也可以参考上述对应的方法实施例。For the beneficial effects of the device embodiments of the present application, reference can be made to the beneficial effects of the corresponding method embodiments mentioned above, which will not be described again here. In addition, the description of relevant content in the device embodiments of this application may also refer to the corresponding method embodiments mentioned above.
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented with electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software 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.
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。Those skilled in the art can clearly understand that for the convenience and simplicity of description, the specific working processes of the systems, devices and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be described again here.
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only illustrative. For example, the division of the units is only a logical function division. In actual implementation, there may be other division methods. For example, multiple units or components may be combined or can be integrated into another system, or some features can be ignored, or not implemented. On the other hand, 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.
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。In addition, 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.
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。If 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. Based on this understanding, 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.
在本申请的另一实施例中,还提供一种可读存储介质,可读存储介质中存储有计算机执行指令,当一个设备(可以是单片机,芯片等)或者处理器执行上述方法实施例所提供的数据流保序方法中源节点的步骤。前述的可读存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。 In another embodiment of the present application, a readable storage medium is also provided. Computer execution instructions are stored in the readable storage medium. When a device (which can be a microcontroller, a chip, etc.) or 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.
在本申请的另一实施例中,还提供一种可读存储介质,可读存储介质中存储有计算机执行指令,当一个设备(可以是单片机,芯片等)或者处理器执行上述方法实施例所提供的数据流保序方法中交换节点的步骤。前述的可读存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。In another embodiment of the present application, a readable storage medium is also provided. Computer execution instructions are stored in the readable storage medium. When a device (which can be a microcontroller, a chip, etc.) or 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.
在本申请的另一实施例中,还提供一种可读存储介质,可读存储介质中存储有计算机执行指令,当一个设备(可以是单片机,芯片等)或者处理器执行上述方法实施例所提供的数据流保序方法中目的节点的步骤。前述的可读存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。In another embodiment of the present application, a readable storage medium is also provided. Computer execution instructions are stored in the readable storage medium. When a device (which can be a microcontroller, a chip, etc.) or 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.
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备上述方法实施例所提供的数据流保序方法中源节点的步骤。In another embodiment of the present application, a computer program product is also provided. The 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 to implement the steps of the source node in the data flow order preserving method provided by the above method embodiment.
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备上述方法实施所提供的数据流保序方法中交换节点的步骤。In another embodiment of the present application, a computer program product is also provided. The 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. 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.
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备上述方法实施所提供的数据流保序方法中目的节点的步骤。In another embodiment of the present application, a computer program product is also provided. The 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.
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。 Finally, it should be noted that the above are only specific implementation modes of the present application, but the protection scope of the present application is not limited thereto. Any changes or substitutions within the technical scope disclosed in the present application shall be covered by this application. within the scope of protection applied for. Therefore, the protection scope of this application should be subject to the protection scope of the claims.

Claims (36)

  1. 一种数据流保序方法,其特征在于,所述方法包括:A data stream order preserving method, characterized in that the method includes:
    当源节点确定目标数据流的数据量大于预设阈值时,将所述目标数据流划分为多个流切片;When the source node determines that the data volume of the target data stream is greater than the preset threshold, divide the target data stream into multiple stream slices;
    所述源节点向多个交换节点中的所述交换节点发送写数据信息和所述流切片,所述写数据信息用于指示所述交换节点存储所述流切片且不转发所述流切片;The source node sends 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 source node sends sorting information to the destination node of the target data flow, and the sorting information is used to determine the order of the plurality of flow slices stored in the plurality of switching nodes.
  2. 根据权利要求1所述的方法,其特征在于,所述源节点向所述目标数据流的目的节点发送排序信息之前,所述方法还包括:The method according to claim 1, characterized in that before the source node sends the sorting information to the destination node of the target data flow, the method further includes:
    所述源节点为所述多个流切片中的每个流切片分配一个排序标识,一个流切片的排序标识用于指示所述流切片在所述多个切片流中的顺序;The source node assigns a sorting identifier to each of the multiple flow slices, and 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 a sorting identifier of each flow slice in the plurality of flow slices.
  3. 根据权利要求2所述的方法,其特征在于,所述排序标识包括序列号;或者,所述排序标识包括时间戳。The method according to claim 2, wherein the sorting identifier includes a sequence number; or the sorting identifier includes a timestamp.
  4. 根据权利要求1-3任一项所述的方法,其特征在于,所述源节点向多个交换节点中的所述交换节点发送写数据信息和所述流切片之后,所述方法还包括:The method according to any one of claims 1 to 3, characterized in that, after the source node sends the write data information and the flow slice to the switching node among the plurality of switching nodes, the method further includes:
    所述源节点接收来自所述多个交换节点的多个描述信息,所述多个描述信息与所述多个流切片一一对应,每个描述信息包括存储对应的流切片的节点信息;The source node receives a plurality of description information from the plurality of switching nodes, the plurality of description information corresponds to the plurality of 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.
  5. 根据权利要求1-4任一项所述的方法,其特征在于,所述多个交换节点包括所述目的节点;或者,所述目的节点包括用于存储所述排序信息的排序缓存,若所述排序缓存的占用率大于预设占用率所述多个交换节点不包括所述目的节点。The method according to any one of claims 1 to 4, characterized in that 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 rate of the sorting cache is greater than the preset occupancy rate, the plurality of switching nodes do not include the destination node.
  6. 一种数据流保序方法,其特征在于,所述方法包括:A data stream order preserving method, characterized in that the method includes:
    目的节点获取目标数据流中多个流切片的排序信息,所述多个流切片分散存储在多个交换节点中;The destination node obtains the sorting 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 determines an order of the plurality of flow slices stored in the plurality of switching nodes according to the sorting information;
    所述目的节点按照所述顺序从所述多个交换节点中获取所述多个流切片。The destination node obtains the multiple flow slices from the multiple switching nodes in the order.
  7. 根据权利要求6所述的方法,其特征在于,所述目的节点获取目标数据流中多个流切片的排序信息,包括:The method according to claim 6, characterized in that the destination node obtains the sorting information of multiple flow slices in the target data flow, including:
    所述目的节点接收来自源节点的排序信息,所述排序信息包括所述多个流切片中的每个流切片的排序标识,所述排序标识用于指示所述流切片在所述多个流切片中的顺序。The destination node receives sorting information from the source node. The sorting information includes a sorting identifier of each of the multiple flow slices. The sorting identifier is used to indicate that the flow slice is in the multiple flow slices. The order in the slice.
  8. 根据权利要求6所述的方法,其特征在于,所述目的节点获取目标数据流中多个流切片的排序信息,包括:The method according to claim 6, characterized in that the destination node obtains the sorting information of multiple flow slices in the target data flow, including:
    所述目的节点接收来自所述多个交换节点的多个描述信息,所述多个描述信息与所述多个流切片一一对应,每个描述信息包括对应的流切片的排序标识; The destination node receives a plurality of description information from the plurality of switching nodes, the plurality of description information corresponds to the plurality of flow slices in a one-to-one manner, 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.
  9. 根据权利要求8所述的方法,其特征在于,每个描述信息还包括存储对应的流切片的节点信息。The method of claim 8, wherein each description information further includes node information that stores the corresponding flow slice.
  10. 根据权利要求7-9任一项所述的方法,其特征在于,所述排序标识包括序列号;或者,所述排序标识包括时间戳。The method according to any one of claims 7-9, wherein the sorting identifier includes a sequence number; or the sorting identifier includes a timestamp.
  11. 根据权利要求6-10任一项所述的方法,其特征在于,所述多个交换节点包括所述目的节点;或者,所述目的节点包括用于存储所述排序信息的排序缓存,若所述排序缓存的占用率大于预设占用率所述多个交换节点不包括所述目的节点。The method according to any one of claims 6-10, characterized in that 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 rate of the sorting cache is greater than the preset occupancy rate, the plurality of switching nodes do not include the destination node.
  12. 一种数据流保序方法,其特征在于,所述方法包括:A data stream order preserving method, characterized in that the method includes:
    当源节点确定目标数据流的数据量大于预设阈值时,将所述目标数据流划分为多个流切片;When the source node determines that the data volume of the target data stream is greater than the preset threshold, divide the target data stream into multiple stream slices;
    所述源节点向多个交换节点中的所述交换节点发送写数据信息和所述流切片,所述写数据信息用于指示所述交换节点存储所述流切片且不转发所述流切片;The source node sends 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 destination node obtains sorting information from the source node or the multiple switching nodes, 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 plurality of flow slices from the plurality of switching nodes in the order.
  13. 根据权利要求12所述的方法,其特征在于,所述目的节点从所述源节点获取排序信息,包括:The method according to claim 12, characterized in that the destination node obtains sorting information from the source node, including:
    所述目的节点接收来自所述源节点的排序信息,所述排序信息包括所述多个流切片中的每个流切片的排序标识,所述排序标识用于指示所述流切片在所述多个流切片中的顺序。The destination node receives sorting information from the source node. The sorting information includes a sorting identifier of each flow slice in the plurality of flow slices. The sorting identifier is used to indicate that the flow slice is in the plurality of flow slices. The order in a stream slice.
  14. 根据权利要求13所述的方法,其特征在于,所述方法还包括:The method of claim 13, further comprising:
    所述源节点接收来自所述多个交换节点的多个描述信息,所述多个描述信息与所述多个流切片一一对应,每个描述信息包括存储对应的流切片的节点信息;The source node receives a plurality of description information from the plurality of switching nodes, the plurality of description information corresponds to the plurality of 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.
  15. 根据权利要求12所述的方法,其特征在于,所述目的节点从所述多个交换节点获取排序信息,包括:The method according to claim 12, characterized in that the destination node obtains sorting information from the plurality of switching nodes, including:
    所述目的节点接收来自所述多个交换节点的多个描述信息,所述多个描述信息与所述多个流切片一一对应,每个描述信息包括对应的流切片的排序标识;The destination node receives a plurality of description information from the plurality of switching nodes, the plurality of description information corresponds to the plurality of flow slices in a one-to-one manner, 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.
  16. 根据权利要求15所述的方法,其特征在于,每个描述信息还包括存储对应的流切片的节点信息。The method according to claim 15, characterized in that each description information further includes node information storing corresponding flow slices.
  17. 根据权利要求13-16任一项所述的方法,其特征在于,所述排序标识包括序列号;或者,所述排序标识包括时间戳。The method according to any one of claims 13 to 16, wherein the sorting identifier includes a sequence number; or the sorting identifier includes a timestamp.
  18. 一种数据交换装置,其特征在于,所述装置作为源节点,包括:A data exchange device, characterized in that, as a source node, the device includes:
    处理单元,用于当确定目标数据流的数据量大于预设阈值时,将所述目标数据流划分为多个流切片;A processing unit configured to divide the target data stream into multiple stream slices when it is determined that the data volume of the target data stream is greater than a preset threshold;
    发送单元,用于向多个交换节点中的所述交换节点发送写数据信息和所述流切片,所述写数据信息用于指示所述交换节点存储所述流切片且不转发所述流切片; A sending unit, configured to send write data information and the flow slice to the switching node among multiple 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 further configured 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.
  19. 根据权利要求18所述的装置,其特征在于,所述处理单元还用于:The device according to claim 18, characterized in that the processing unit is also used to:
    为所述多个流切片中的每个流切片分配一个排序标识,一个流切片的排序标识用于指示所述流切片在所述多个切片流中的顺序;Assigning a sorting identification to each flow slice in the plurality of flow slices, and the sorting identification of a flow slice is used to indicate the order of the flow slice in the plurality of slice streams;
    其中,所述排序信息包括所述多个流切片中的每个流切片的排序标识。Wherein, the sorting information includes a sorting identifier of each flow slice in the plurality of flow slices.
  20. 根据权利要求19所述的装置,其特征在于,所述排序标识包括序列号;或者,所述排序标识包括时间戳。The device according to claim 19, wherein the sorting identifier includes a sequence number; or the sorting identifier includes a timestamp.
  21. 根据权利要求18-20任一项所述的装置,其特征在于,所述装置还包括:The device according to any one of claims 18-20, characterized in that the device further includes:
    接收单元,用于接收来自所述多个交换节点的多个描述信息,所述多个描述信息与所述多个流切片一一对应,每个描述信息包括存储对应的流切片的节点信息;A receiving unit configured to receive multiple description information from the multiple switching nodes, where the multiple description information 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.
  22. 根据权利要求18-21任一项所述的装置,其特征在于,所述多个交换节点包括所述目的节点;或者,所述目的节点包括用于存储所述排序信息的排序缓存,若所述排序缓存的占用率大于预设占用率所述多个交换节点不包括所述目的节点。The device according to any one of claims 18-21, wherein 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 rate of the sorting cache is greater than the preset occupancy rate, the plurality of switching nodes do not include the destination node.
  23. 一种数据交换装置,其特征在于,所述装置作为目的节点,包括:A data exchange device, characterized in that, as a destination node, the device includes:
    获取单元,用于获取目标数据流中多个流切片的排序信息,所述多个流切片分散存储在多个交换节点中;An acquisition unit, configured to acquire the sorting information of multiple flow slices in the target data flow, where the multiple flow slices are distributed and stored in multiple switching nodes;
    确定单元,用于根据所述排序信息确定所述多个交换节点中存储的所述多个流切片的顺序;a determining unit configured to determine the order of the plurality of flow slices stored in the plurality of switching nodes according to the sorting information;
    调度单元,用于按照所述顺序从所述多个交换节点中调度所述多个流切片。A scheduling unit configured to schedule the plurality of flow slices from the plurality of switching nodes in the order.
  24. 根据权利要求23所述的装置,其特征在于,所述获取单元还用于:The device according to claim 23, characterized in that the acquisition unit is also used 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, where the sorting identifier is used to indicate the order of the flow slice in the plurality of flow slices. .
  25. 根据权利要求23所述的装置,其特征在于,所述获取单元还用于:The device according to claim 23, characterized in that the acquisition unit is also used to:
    接收来自所述多个交换节点的多个描述信息,所述多个描述信息与所述多个流切片一一对应,每个描述信息包括对应的流切片的排序标识;Receive a plurality of description information from the plurality of switching nodes, the plurality of description information corresponds one-to-one to the plurality of flow slices, and each description information includes a sorting identifier of the corresponding flow slice;
    根据所述多个流切片的排序标识,确定所述多个流切片的排序信息。Sorting information of the multiple flow slices is determined according to the sorting identifiers of the multiple flow slices.
  26. 根据权利要求25所述的装置,其特征在于,每个描述信息还包括存储对应的流切片的节点信息。The apparatus according to claim 25, wherein each description information further includes node information that stores corresponding flow slices.
  27. 根据权利要求24-26任一项所述的装置,其特征在于,所述排序标识包括序列号;或者,所述排序标识包括时间戳。The device according to any one of claims 24 to 26, wherein the sorting identifier includes a sequence number; or the sorting identifier includes a timestamp.
  28. 根据权利要求23-27任一项所述的装置,其特征在于,所述多个交换节点包括所述目的节点;或者,所述目的节点包括用于存储所述排序信息的排序缓存,若所述排序缓存的占用率大于预设占用率所述多个交换节点不包括所述目的节点。The device according to any one of claims 23 to 27, characterized in that 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 rate of the sorting cache is greater than the preset occupancy rate, the plurality of switching nodes do not include the destination node.
  29. 一种数据交换网络,其特征在于,所述数据交换网络包括源节点、多个交换节点和目的节点:A data switching network, characterized in that the data switching network includes a source node, a plurality of switching nodes and a destination node:
    所述源节点,用于当确定目标数据流的数据量大于预设阈值时,将所述目标数据流划分为多个流切片; The source node is configured to divide the target data flow into multiple flow slices when it is determined that the data volume of the target data flow is greater than a preset threshold;
    所述源节点,还用于向多个交换节点中的所述交换节点发送写数据信息和所述流切片,所述写数据信息用于指示所述交换节点存储所述流切片且不转发所述流切片;The source node is further 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. narration slice;
    所述目的节点,用于获取排序信息,并根据所述排序信息确定所述多个交换节点中存储的所述多个流切片的顺序;The destination node is used to obtain 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 further configured to schedule the multiple flow slices from the multiple switching nodes in the order.
  30. 根据权利要求29所述的数据交换网络,其特征在于,所述目的节点还用于:The data exchange network according to claim 29, characterized in that the destination node is also used for:
    接收来自所述源节点的排序信息,所述排序信息包括所述多个流切片中的每个流切片的排序标识,所述排序标识用于指示所述流切片在所述多个流切片中的顺序。Receive sorting information from the source node, where the sorting information includes a sorting identifier of each of the multiple flow slices, where the sorting identifier is used to indicate that the flow slice is in the multiple flow slices. Order.
  31. 根据权利要求30所述的数据交换网络,其特征在于,所述源节点还用于:The data exchange network according to claim 30, characterized in that the source node is also used for:
    接收来自所述多个交换节点的多个描述信息,所述多个描述信息与所述多个流切片一一对应,每个描述信息包括存储对应的流切片的节点信息;Receive a plurality of description information from the plurality of switching nodes, the plurality of description information corresponds to the plurality of 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.
  32. 根据权利要求29所述的数据交换网络,其特征在于,所述目的节点还用于:The data exchange network according to claim 29, characterized in that the destination node is also used for:
    接收来自所述多个交换节点的多个描述信息,所述多个描述信息与所述多个流切片一一对应,每个描述信息包括对应的流切片的排序标识;Receive a plurality of description information from the plurality of switching nodes, the plurality of description information corresponds one-to-one to the plurality of flow slices, and each description information includes a sorting identifier of the corresponding flow slice;
    根据所述多个流切片的排序标识,确定所述多个流切片的排序信息。Sorting information of the multiple flow slices is determined according to the sorting identifiers of the multiple flow slices.
  33. 根据权利要求32所述的数据交换网络,其特征在于,每个描述信息还包括存储对应的流切片的节点信息。The data switching network of claim 32, wherein each description information further includes node information that stores corresponding flow slices.
  34. 根据权利要求30-33任一项所述的数据交换网络,其特征在于,所述排序标识包括序列号;或者,所述排序标识包括时间戳。The data exchange network according to any one of claims 30 to 33, wherein the sorting identifier includes a sequence number; or the sorting identifier includes a timestamp.
  35. 一种数据交换装置,其特征在于,所述数据交换装置包括:处理器、存储器、通信接口和总线,所述处理器、所述存储器和所述通信接口通过总线连接;所述存储器用于存储程序代码,当所述程序代码被所述处理器执行时,使得所述装置执行权利要求1-17任一项所述的数据流保序方法。A data exchange device, characterized in that the data exchange device 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 Program code, when the program code is executed by the processor, causes the device to execute the data flow order preserving method described in any one of claims 1-17.
  36. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序或指令,当所述计算机程序或指令被运行时,实现如权利要求1-17任一项所述的数据流保序方法。 A computer-readable storage medium, characterized in that a computer program or instructions are stored in the computer-readable storage medium. When the computer program or instructions are run, the implementation as described in any one of claims 1-17 is implemented. Data flow order preserving method.
PCT/CN2023/082239 2022-04-18 2023-03-17 Data stream order-preserving method, data exchange device, and network WO2023202294A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210405697.5A CN116962301A (en) 2022-04-18 2022-04-18 Data stream order keeping method, data exchange device and network
CN202210405697.5 2022-04-18

Publications (1)

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

Family

ID=88419093

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/082239 WO2023202294A1 (en) 2022-04-18 2023-03-17 Data stream order-preserving method, data exchange device, and network

Country Status (2)

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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108476208A (en) * 2015-12-28 2018-08-31 亚马逊技术股份有限公司 Multi-path transmission designs
US20210227007A1 (en) * 2018-01-19 2021-07-22 Wangsu Science & Technology Co., Ltd. Data storage method, encoding device, and decoding device
CN113691459A (en) * 2020-05-19 2021-11-23 华为技术有限公司 Data transmission method and device based on identification message
WO2022052882A1 (en) * 2020-09-14 2022-03-17 华为技术有限公司 Data transmission method and apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108476208A (en) * 2015-12-28 2018-08-31 亚马逊技术股份有限公司 Multi-path transmission designs
US20210227007A1 (en) * 2018-01-19 2021-07-22 Wangsu Science & Technology Co., Ltd. Data storage method, encoding device, and decoding device
CN113691459A (en) * 2020-05-19 2021-11-23 华为技术有限公司 Data transmission method and device based on identification message
WO2022052882A1 (en) * 2020-09-14 2022-03-17 华为技术有限公司 Data transmission method and apparatus

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 (en) 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 (en) Apparatus for transferring packets between interface control modules of line cards
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
US5781549A (en) Method and apparatus for switching data packets in a data network
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 (en) PCIE (peripheral component interface express) exchange chip core and working method
US10387355B2 (en) NoC interconnect with linearly-tunable QoS guarantees for real-time isolation
US11256634B2 (en) System and method for serial interface memory using switched architecture
US10289598B2 (en) Non-blocking network
WO2023202294A1 (en) Data stream order-preserving method, data exchange device, and network
US10185606B2 (en) Scalable autonomic message-transport with synchronization
WO2023130835A1 (en) Data exchange method and apparatus
CN1728682A (en) Switching system and switching method based on length variable packet
WO2016014044A1 (en) Node-based compute device with protocol-based priority
CN117762858A (en) Network-on-chip system, computer system and chip
CN116755624A (en) Communication method and system based on FC equipment multi-partition independent cache

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