WO2022179451A1 - 一种负载分担方法、装置及芯片 - Google Patents
一种负载分担方法、装置及芯片 Download PDFInfo
- Publication number
- WO2022179451A1 WO2022179451A1 PCT/CN2022/076919 CN2022076919W WO2022179451A1 WO 2022179451 A1 WO2022179451 A1 WO 2022179451A1 CN 2022076919 W CN2022076919 W CN 2022076919W WO 2022179451 A1 WO2022179451 A1 WO 2022179451A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data packet
- value
- data
- load sharing
- field
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 107
- 230000005540 biological transmission Effects 0.000 claims description 128
- 241000406668 Loxodonta cyclotis Species 0.000 claims description 45
- 238000004590 computer program Methods 0.000 claims description 14
- 238000003860 storage Methods 0.000 claims description 9
- 230000000694 effects Effects 0.000 abstract description 11
- 230000006855 networking Effects 0.000 abstract description 11
- 230000008569 process Effects 0.000 abstract description 3
- 238000013461 design Methods 0.000 description 34
- 238000010586 diagram Methods 0.000 description 26
- 238000012545 processing Methods 0.000 description 16
- 230000003044 adaptive effect Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 230000008521 reorganization Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
Definitions
- the embodiments of the present application relate to the field of network interconnection technologies, and in particular, to a load sharing method, device, and chip.
- Traffic sent from one network device to another network device through the transport network usually has multiple reachable paths.
- traffic needs to be shared among multiple paths to improve its forwarding performance, enhance the reliability of the network, and better serve users.
- the existing load sharing method mainly adopts the flow-by-flow load sharing method, that is, the device can pass the characteristic fields of the data packet, such as the source internet protocol (IP) address, the destination IP address, the source media access control (media access control). , MAC address, destination MAC address, and port number to divide the original packet into different flows, and determine the sending interface and path according to the binding method. Packets of the same flow will be sent on the same interface and route. Or adopt the flow table-based flow cluster (flowlet) load sharing method to send the flowlet through the sending interface specified in the flow table.
- IP internet protocol
- media access control media access control
- the packet-by-packet load balancing method is adopted, that is, the device selects the member link with a lighter load in the current load balancing link based on the data packet for forwarding, or transmits it in turn based on the reachable path.
- the above flow-by-flow load sharing method is likely to cause uneven traffic load and low network utilization when faced with the coexistence of a large-bandwidth elephant flow and a small-bandwidth mouse flow.
- the elephant flow is a It refers to a large-capacity (referring to the total number of bits) persistent data flow established on the network link.
- the elephant flow may be generated by data backup or virtual machine migration.
- the mouse flow refers to the data flow of small capacity (referring to the total number of bits) established on the network link; for example, the mouse flow can be transactional traffic, data flow generated by web world wide web (WWW) browsing, search The data stream generated by the query.
- WWW web world wide web
- the above-mentioned packet-by-packet load sharing method requires the receiving end to support the function of out-of-order packet grouping.
- the above load sharing method for the transmission network is based on the global fixed configuration of the transmission network, and is not applicable to complex networking and mixed traffic scenarios.
- Embodiments of the present application provide a load sharing method, device, and chip, which are applicable to scenarios of complex combinations and mixed processes.
- an embodiment of the present application provides a load sharing method, which is applied to a sending end.
- the method includes: sending a first data packet to a forwarding device, where the first data packet belongs to a first data stream, and the The value of the first field included in the first data packet is a first value, and the first value is used to instruct the forwarding device to forward the first data packet by adopting the first load sharing rule; to the forwarding device Send a second data packet, the second data packet belongs to the second data stream, the value of the first field included in the second data packet is a second value, and the second value is used to indicate the The forwarding device forwards the second data packet by adopting the second load sharing rule; wherein the flow type of the first data flow is different from the flow type of the second data flow.
- the sender when sending a data packet, instructs the forwarding device to adopt different load sharing rules according to the flow types of different data flows. Different load balancing rules can achieve better load balancing effects than configuring forwarding devices to use fixed load balancing rules for all traffic.
- the flow type of the first data flow is mouse flow
- the flow type of the second data flow is elephant flow
- the method further includes: before sending the first data packet to the forwarding device, determining the flow type of the first data flow according to the service type or data volume of the first data flow as: Mouse flow; before sending the second data packet to the forwarding device, determine that the flow type of the second data flow is an elephant flow according to the service type or data volume of the second data flow.
- the terminal side indicates the load sharing rule adopted by the forwarding device according to the traffic characteristics, that is, the terminal side instructs the switch which load sharing rule to use according to its own traffic characteristics or demands, so that the switch uses the load sharing rule indicated by the terminal side. Forward traffic. For mixed traffic in complex networking, different load sharing rules can be used for different types of traffic to achieve better load sharing effect.
- the first data stream is a data stream sent to a first receiving end; the method may further include: according to the ability of the first receiving end to reassemble out-of-order packets and the first The flow type of the data flow determines that the forwarding device forwards the first data flow using the first load sharing rule.
- the terminal side indicates the load sharing rule adopted by the forwarding device according to the traffic characteristics and the ability of the receiving end to reassemble the out-of-order packets, that is, the terminal side indicates the load sharing rule adopted by the forwarding device according to its own traffic characteristics and the ability of the receiving end to reassemble the out-of-order packets.
- Which load balancing rule the switch adopts so that the switch forwards traffic according to the load balancing rule indicated by the end-side, which can achieve better load balancing effect than using a fixed load balancing rule.
- the method further includes: receiving capability information from the first receiving end, where the capability information is used to indicate whether the first receiving end has the ability to reassemble out-of-order packets.
- the second data stream is a data stream sent to a second receiving end; the method further includes: according to the ability of the second receiving end to reassemble out-of-order packets and the second data The flow type of the flow determines that the forwarding device forwards the second data flow using the second load sharing rule.
- the terminal side indicates the load sharing rule adopted by the forwarding device according to the traffic characteristics and the ability of the receiving end to reassemble the out-of-order packets, that is, the terminal side indicates the load sharing rule adopted by the forwarding device according to its own traffic characteristics and the ability of the receiving end to reassemble the out-of-order packets.
- Which load balancing rule the switch adopts so that the switch forwards traffic according to the load balancing rule indicated by the end-side, which can achieve better load balancing effect than using a fixed load balancing rule.
- the first data stream is a mouse stream
- the first receiving end has the ability to reorganize out-of-order packets
- the first load sharing rule is: according to the different arrivals at the first receiving end The distance of the transmission path and the degree of congestion are selected from the different transmission paths for forwarding the transmission path for the first data packet; or, the shortest path to the first receiving end is used as forwarding the first data packet the forwarding path described in the text.
- the switch can select the transmission path according to the distance and congestion of the transmission path according to the first load sharing rule. Forwarding on a non-congested transmission path can ensure the delay requirement of the mouse flow.
- the first receiving end does not have the ability to reassemble out-of-order packets;
- the first data packet further includes a second field, and the second field included in the first data packet is The value is used to indicate the load sharing factor of the first data packet;
- the first load sharing rule is: based on the load sharing factor, the shortest path to the first receiving end is used as forwarding the first data packet The forwarding path of the text.
- the method further includes: sending a third data packet to the forwarding device, where the third data packet belongs to the first data stream, and the value of the first field included in the third data packet is selected.
- the value is the first value, and the destination address of the third data packet indicates the second receiving end;
- the third data packet further includes a second field, and the third data packet includes a second field.
- the value of the field is used to indicate the load sharing factor of the third data packet; wherein the value of the second field of the third data packet is the same as the value of the second field of the first data packet or, when the sending time interval between the third data packet and the first data packet is greater than the first duration, the value of the second field of the third data packet is the same as that of the first data packet.
- the value of the second field of the packet is different; when the sending time interval between the third data packet and the first data packet is less than or equal to the first duration, the second field of the third data packet The value of is different from the value of the second field of the first data packet.
- the same load sharing factor is adopted for the data packets belonging to the same data flow or the same load sharing factor is adopted between the two data packets, so that the mouse flows belonging to the same data flow can arrive and receive in order. end, so that the receiving end can receive data packets belonging to the same data stream in sequence.
- the second data packet further includes a second field, and a value of the second field included in the second data packet is used to indicate a load sharing factor of the second data packet ; wherein the value of the second field of the second data packet is different from the value of the second field of the third data packet.
- the second data stream belongs to the elephant stream
- the second data packet further includes a second field
- the value of the second field included in the second data packet is used to indicate the the load sharing factor of the second data packet
- the second load sharing rule is: based on the load sharing factor, at least one transmission path to the second receiving end is selected for forwarding the second data packet forwarding path.
- the terminal side instructs the forwarding device to select a route for each data packet of the elephant flow based on the load sharing factor. As much as possible, the elephant flow can be shared across multiple transmission paths.
- the second receiving end does not have the ability to reassemble out-of-order packets
- the method further includes: sending a fourth data packet to the forwarding device, where the fourth data packet belongs to the In the second data stream, the value of the first field included in the fourth data packet is the second value, the fourth data packet further includes a second field, and the fourth data packet includes the first field.
- the value of the second field is used to indicate the load sharing factor of the fourth data packet;
- the value of the second field of the fourth data packet is the same as the value of the second field of the second data packet; or,
- the fourth data packet When the fourth data packet is adjacent to the second data packet and the sending time interval between the fourth data packet and the second data packet is greater than the second duration, the fourth data packet The value of the second field of the second data packet is different from the value of the second field of the second data packet; when the fourth data packet is adjacent to the second data packet and the fourth data packet When the sending time interval between the message and the second data message is less than or equal to the second duration, the value of the second field of the fourth data message and the value of the second field of the second data message same.
- the same load sharing factor is used for the data packets belonging to the same data flow or the same load is used when the interval between two data packets is short.
- the sharing factor enables elephant flows belonging to the same data flow to arrive at the receiving end in sequence, so that the receiving end can receive data packets belonging to the same data flow in sequence.
- the second receiving end is capable of reorganizing out-of-order packets; the method further includes: sending a fifth data packet to the forwarding device, where the fifth data packet belongs to the the second data stream, the value of the first field included in the fifth data packet is the second value, the fifth data packet further includes a second field, and the fifth data packet includes The value of the second field is used to indicate the load sharing factor of the fifth data packet; wherein the value of the second field of the fifth data packet is the same as the value of the second field of the second data packet different values; or,
- the value of the second field of the fifth data packet is the same as the value of the first field of the second data packet.
- the values of the two fields are different.
- the sending time interval between the fifth data packet and the second data packet is less than or equal to the second duration, the value of the second field of the fifth data packet is the same as the value of the second field.
- the value of the second field of the second data packet is the same; or, when the number of packets between the fifth data packet and the second data packet is greater than the second number, the fifth data packet.
- the value of the second field of the packet is different from the value of the second field of the second data packet, when the number of packets in the interval between the fifth data packet and the second data packet is less than or When it is equal to the second number, the value of the second field of the fifth data packet is the same as the value of the second field of the second data packet.
- the same load sharing factor is adopted for the data packets belonging to the same data flow or the same load sharing factor is used when the interval between two data packets is short. factor, so that the elephant streams belonging to the same data stream can arrive at the receiving end in sequence, so that the receiving end can receive data packets belonging to the same data stream in sequence.
- the present application further provides a load sharing method.
- the method is applied to a forwarding device and includes: receiving a first data packet, the first data packet belongs to a first data stream, and the first data packet The value of the first field included in the file is the first value, and the first data packet is forwarded according to the first load sharing rule indicated by the first value; the second data packet is received, and the second data packet is belongs to the second data flow, the value of the first field included in the second data packet is a second value, and the second data packet is forwarded according to the second load sharing rule indicated by the second value; the The stream type of the first data stream is different from the stream type of the second data stream.
- the sender when sending a data packet, instructs the forwarding device to adopt different load sharing rules according to the flow types of different data flows. Different load balancing rules can achieve better load balancing effects than configuring forwarding devices to use fixed load balancing rules for all traffic.
- the flow type of the first data flow is mouse flow
- the flow type of the second data flow is elephant flow
- the first data stream is a data stream destined for a first receiving end
- forwarding the first data packet according to the first load sharing rule indicated by the first value includes: according to the arrival The distance and congestion degree of the transmission path of the first receiving end are selected in the transmission path for forwarding the first data packet.
- the first data stream is a data stream sent to the first receiving end, and the first data packet further includes a second field, where the second field is used to indicate a load sharing factor; according to Forwarding the first data packet by the first load sharing rule indicated by the first value includes: selecting, based on the load sharing factor, at least one shortest path to the first receiving end for forwarding the first data packet Forwarding path of data packets.
- the first data packet includes a first destination address
- the first destination address indicates the first receiving end
- based on the load sharing factor at least the first destination address reaches the second receiving end.
- Selecting a forwarding path for forwarding the first data packet in a shortest path includes: determining, according to a routing table, at least one egress port whose cost value corresponding to the first destination address is small; the routing table includes the first destination address.
- the first data packet includes a first destination address
- the first destination address indicates the first receiving end
- based on the load sharing factor at least the first destination address reaches the second receiving end.
- Selecting a forwarding path for forwarding the first data packet in a shortest path includes: determining, according to a routing table, at least one egress port whose cost value corresponding to the first destination address is small; the routing table includes the first destination address.
- the second data stream is a data stream sent to the second receiving end, and forwarding the second data packet according to the second load sharing rule indicated by the second value includes: When the value of the first field is the second value, a forwarding path for forwarding the second data packet is selected from at least one transmission path reaching the second receiving end based on the load sharing factor.
- an embodiment of the present application provides a load sharing apparatus, the method is applied to a sending end, and may be implemented by a processor in the sending end, or by a network card in the sending end.
- the load sharing device includes a sending module.
- a sending module configured to send a first data packet to the forwarding device, where the first data packet belongs to a first data stream, the value of a first field included in the first data packet is a first value, and the The first value is used to instruct the forwarding device to forward the first data packet using the first load sharing rule; the sending module is further configured to send a second data packet to the forwarding device, the second data packet belongs to the second data flow, the value of the first field included in the second data packet is a second value, and the second value is used to instruct the forwarding device to forward the second data by using the second load sharing rule message; wherein the flow type of the first data flow is different from the flow type of the second data flow.
- the present application further provides a load sharing apparatus, where the apparatus is applied to a forwarding device and can be implemented by a processor, a controller or a chip in the forwarding device.
- the load sharing device includes a receiving module and a sending module.
- a receiving module configured to receive a first data packet, where the first data packet belongs to a first data stream, and the value of a first field included in the first data packet is a first value
- a sending module configured to The first data packet is forwarded according to the first load sharing rule indicated by the first value
- the receiving module is further configured to receive a second data packet, the second data packet belongs to the second data stream, and the The value of the first field included in the second data packet is a second value
- the sending module is further configured to forward the second data packet according to the second load sharing rule indicated by the second value
- the first data packet The stream type of the stream is different from the stream type of the second data stream.
- a load sharing apparatus in a fifth aspect, includes a processor and an intelligent network card (may be referred to as a network card for short).
- the processor is configured to receive a data stream sent by the network card, or send a data stream to the network card, and the smart network card is configured to implement the method of any one of the first and second aspects above.
- a chip in a sixth aspect, includes a controller and an interface.
- the controller and the interface cooperate with each other, so that the chip performs the method in any one of the designs of the first aspect - the second aspect.
- the present application provides a chip, including a memory and a controller; the memory is used to store a computer program; the controller is used to execute the calculation program stored in the memory, so as to realize the above-mentioned first and second aspects method in any possible design.
- a computer-readable storage medium is provided, and instructions are stored in the computer-readable storage medium, and when the computer-readable storage medium is run on a computer, the computer is made to execute any one of the designs of the first aspect to the second aspect. method.
- a computer program product which, when run on a computer, causes the computer to execute the method in any one of the designs of the first to second aspects above.
- FIG. 1 is a schematic diagram of a possible flow-by-flow load sharing method in an embodiment of the present application
- FIG. 2 is a schematic diagram of a possible flow-based flowlet load sharing manner in an embodiment of the present application
- FIG. 3 is a schematic diagram of a possible packet-by-packet load sharing manner in an embodiment of the present application
- FIG. 4 is a schematic diagram of a possible network system architecture in an embodiment of the present application.
- FIG. 5 is a schematic structural diagram of a possible host server in an embodiment of the present application.
- FIG. 6A is a schematic diagram of a load sharing manner of Example 1 in an embodiment of the present application.
- FIG. 6B is a schematic diagram of the load sharing method of Example 2 in the embodiment of the present application.
- FIG. 6C is a schematic diagram of the load sharing method of Example 3 in the embodiment of the present application.
- FIG. 7A is a schematic diagram of a load sharing manner in Example 4 in an embodiment of the present application.
- FIG. 7B is a schematic diagram of the load sharing method of Example 5 in the embodiment of the present application.
- FIG. 7C is a schematic diagram of the load sharing method of Example 6 in the embodiment of the present application.
- FIG. 8 is a schematic diagram of a load sharing method according to Example 7 in an embodiment of the present application.
- FIG. 9 is a schematic diagram of a load sharing method according to Example 8 in an embodiment of the present application.
- FIG. 10 is a schematic flowchart of a possible load sharing method in an embodiment of the present application.
- FIG. 11 is a schematic diagram of a possible network scenario in an embodiment of the present application.
- FIG. 12 is a schematic diagram of another possible network scenario in an embodiment of the present application.
- FIG. 13 is a schematic structural diagram of a load sharing apparatus 1300 in an embodiment of the present application.
- FIG. 14 is a schematic diagram of a chip structure in an embodiment of the present application.
- first and second are only used for descriptive purposes, and cannot be understood as indicating or implying relative importance or implying the number of indicated technical features.
- a feature defined as “first” or “second” may expressly or implicitly include one or more of that feature.
- plural means two or more.
- words such as “exemplary” or “for example” are used to represent examples, illustrations or illustrations. Any embodiments or designs described in the embodiments of the present application as “exemplary” or “such as” should not be construed as preferred or advantageous over other embodiments or designs. Rather, the use of words such as “exemplary” or “such as” is intended to present the related concepts in a specific manner.
- the embodiments of the present application may be applied to communication networks such as an Ethernet (ethernet, ETH)/Internet Protocol (IP)/Infiniband (Infiniband, IB) network.
- Ethernet Ethernet
- IP Internet Protocol
- IB Intelligent Broadband
- the load sharing methods that can be adopted in the ETH/IP network may include 1) flow-by-flow load sharing, 2) flowlet load sharing based on a flow table, and 3) per-packet load sharing. The above three load sharing methods are described below.
- Flow-by-flow load sharing For example, traditional link aggregation or equal-cost multi-path routing (ECMP) systems generally adopt a flow-by-flow load balancing approach.
- the flow-by-flow load sharing method generally uses the characteristic fields of the data packets as hash factors, such as the source MAC address, destination MAC address, source IP address, destination IP address, TCP/UDP port number and other fields of the data packet.
- Hash calculation is performed by using a hash algorithm for the hash factor to obtain a calculation result value. Then, according to the hash calculation result value, a member link in the load balancing link is selected to forward the data packet.
- the flow-by-flow load sharing method can realize that different data flows (Flows) are forwarded on different member links, and can also ensure the timing of each data packet in the same data flow arriving at the receiving end.
- FIG. 1 is a schematic diagram of a possible flow-by-flow load sharing manner.
- the data flow (flow) 1 is transmitted through the member link 1 , that is, the data packets 1 , 2 , 3 , 6 , and 7 belonging to the data flow (Flow) 1 are transmitted through the member link 1 .
- the data flow 2 is transmitted through the member link 2, that is, the data packets 4 and 5 belonging to the flow2 are transmitted through the member link 2.
- a flowlet refers to a number of sub-flows that divide a data flow into certain time intervals. Different flowlets independently select routes, which may be shared between different member links or the same member link. Different Flowlets correspond to different Flowlet flow table entries. The Flowlet flow table entry is used to indicate the forwarding path of the data packets included in each Flowlet. When forwarding data packets, the switch will judge the time interval between the data packet to be forwarded and the previous data packet in the data flow to which it belongs.
- the data packet to be forwarded is the first packet of a new flowlet; if it is less than the maximum link transmission delay of each member link in the load balancing link, it belongs to the same flowlet as the previous data packet. Based on the flowlet, the switch selects the member link with a lighter load in the current load balancing link for forwarding, and the data packets in the same flowlet select the same link for forwarding.
- At least two member links are included between switch A and switch B, namely member link 1 and member link 2 .
- Data flow 1 is divided into flowlet1-1 and flowlet1-2.
- Data flow 2 includes only flowlet2-1.
- flowlet1-1 of data flow 1 is transmitted through member link 1
- flowlet1-2 of data flow 1 is transmitted through member link 2, that is, data packets 1, 2, and 3 belonging to data flow 1 pass through member link 1 Transmission
- data packets 6 and 7 belonging to data flow 1 are transmitted through member link 2.
- the flowlet2-1 of the data flow 2 is transmitted through the member link 2, that is, the data packets 4 and 5 belonging to the data flow 2 are transmitted through the member link 2.
- the switch selects a member link with a lighter load in the current load sharing link to forward based on the data packet. forwarding on the path.
- the member links selected by the switch for the two adjacent data packets may be the same or different.
- At least two member links are included between switch A and switch B, namely member link 1 and member link 2 .
- the data packets arriving at switch A in chronological order are: data packet 1 , data packet 2 , data packet 3 and data packet 4 belonging to data flow 1 , and data packet 5 belonging to data flow 2 .
- data packet 1 and data packet 3 are transmitted through member link 1
- data packet 2 , data packet 4 and data packet 5 are transmitted through member link 2 .
- the load sharing modes that can be adopted in the IB network may include 4) load sharing by flow or 2) load sharing by adaptive routing. The above two load sharing manners are described below.
- the switch in the IB network uses the characteristic information of the data packet, such as the destination local identifier (LID), to query the forwarding table, and forwards it according to the query result of querying the forwarding table.
- LID is the number assigned by the controller in the IB network for controlling the switch to the network card in the host for forwarding data packets.
- the controller assigns multiple LIDs to each network card, so that the network card on the sending end encapsulates different destination LIDs for different data streams, so that in the routing configured by the switch, data streams using different LIDs pass through different member links. Forward. It is understandable that the network card at the sending end selects an LID for each data flow, and different destination LIDs indicate different paths in the switch network.
- the adaptive routing sharing scheme supports two adaptive routing modes, namely free mode and bounded mode.
- the load sharing method used in free mode is similar to the packet-by-packet load sharing method applied to the ETH/IP network. For each data packet, the member link with the lightest load is selected to send the data packet according to the congestion degree of the outgoing port of the switch.
- the load sharing method adopted in Bounded mode is similar to the load sharing method of flowlet based on flow table applied to ETH/IP network.
- the load sharing methods in the current network basically include the following three methods: (1) the flow-by-flow load sharing technology, which performs load sharing according to the characteristic fields of the data packets (such as quintuple or LID), Also known as static load sharing.
- the flow-by-flow load sharing technology which performs load sharing according to the characteristic fields of the data packets (such as quintuple or LID)
- static load sharing Also known as static load sharing.
- the flowlet load sharing method based on the flow table is better than the flow-by-flow load sharing, but it is more complicated for the switch to identify the flowlet, and it needs to store a large number of flow tables, which affects the forwarding delay.
- the switch adopts a fixed flowlet time interval configuration. If the time interval configuration is too small, it may lead to out of order. If the configuration is too large, the load part will not work well.
- the load sharing technology in free mode in packet-by-packet or adaptive routing has better load sharing effect than the first two. In this mode, it is necessary to ensure that the traffic receiving end supports the function of out-of-order packet grouping.
- one of the above three load balancing methods is generally configured globally based on the switch. In complex networking and mixed traffic scenarios, the load balancing effect cannot be guaranteed.
- the embodiments of the present application provide a load sharing method and device. Based on the traffic characteristics of the terminal side or the requirements of the terminal side, the load sharing rule used by the switch is instructed by the terminal side, which can adapt to complex networking and mixed traffic scenarios. .
- the existing fixed configuration based on the global switch does not consider the characteristics of end-side traffic or the requirements of the end-side, such as bandwidth priority or delay priority. Bandwidth priority needs to be shared among multiple paths as much as possible, and delay priority needs to take the shortest path. . Regardless of the fixed load balancing rule adopted by the switch, in the face of complex networking and mixed traffic, it may balance the different needs of various traffic.
- the terminal side determines the load sharing rule according to the traffic characteristics, and indicates the load sharing rule adopted by the switch, that is, the terminal side instructs the switch which load sharing rule to adopt according to its own traffic characteristics or demands, so that the switch adopts the load sharing rule.
- Traffic is forwarded according to the load balancing rules indicated by the end-side.
- load sharing rules can be used for different types of traffic to achieve better load sharing effect.
- the embodiments of the present application may be applied to a network system including a sending end and a receiving end, and the sending end and the receiving end are connected through a plurality of forwarding devices.
- the sending end and the receiving end may be host servers, personal computers, etc. for generating or receiving data packets.
- the forwarding device may also be a forwarding device responsible for forwarding data packets, such as a router, a switch, a repeater, and the like.
- FIG. 4 is a schematic diagram of a possible network system architecture.
- the network system includes at least two host servers.
- a communication connection is established between the host servers.
- the host servers may be interconnected through a switch network and/or a router network.
- two host servers are used as an example, and the two host servers communicate through switch A-switch D.
- FIG. 4 is only an example, and does not affect the number of host servers included in the network system. And the number of switches is limited.
- the host server may be simply referred to as the host as an example.
- the host server may include a network card and one or more processors.
- the processor can be a general-purpose central processing unit (CPU), a microprocessor, an application specific integrated circuit (ASIC), or one or more integrated circuits, or a graphics processing unit (GPU) ) is used to execute related programs to realize the technical solutions provided by the embodiments of the present application.
- the network card may be referred to as the processing unit's network card.
- the network card may also be referred to as a network interface card, a network adapter, a physical network interface, or the like.
- a first field is added to the data packet, and different values of the first field are used to indicate different load sharing rules.
- Data flows of different flow types can adopt different load sharing rules, and the sender can add different values to the first field, so that the switch can forward packets according to the load sharing rules indicated by the value of the first field.
- the first field may be called a routing mode (Routing Mode, RM), and the first field may also use other names, which are not specifically limited in this application. In the subsequent description, it is called RM as an example.
- a transmission path is selected from all reachable paths. Different data streams on the end side select different transmission paths, and different data packets of the same data stream select the same transmission path.
- a transmission path is selected from all reachable paths. For example, when there are multiple all reachable paths, two adjacent data packets select different transmission paths.
- the same transmission path may be selected for consecutive N data packets. It can be understood that the data packets included in the same data stream are grouped, and the same transmission path is selected for a group of consecutive N data packets. Two adjacent data packet groups select different transmission paths.
- the same transmission path may be selected for data packets in the same time period. It can be understood as: N data packets in a continuous time period are a group, and the same transmission path is selected for the data packets in the same group. Data packet groups in adjacent time periods select different transmission paths.
- the transmission path may be selected from the multiple reachable paths according to the traffic burst. For example, if the time interval between two adjacent data packets is less than the first duration, the same transmission path is used for sending. It can be understood that the sending time interval between the data packet sent later and the data packet sent before is less than the first duration, then the data packet sent later and the data packet sent before belong to the same group (also known as flow cluster), if the time interval between two adjacent data packets is greater than the first duration, different transmission paths are used for sending.
- a transmission path is selected from the shortest reachable path.
- different transmission paths are selected for different data flows on the terminal side, and the same transmission path is selected for different data packets of the same data flow.
- a transmission path is selected on the shortest reachable path. For example, when there are multiple shortest reachable paths, two adjacent data packets may select different transmission paths.
- the same transmission path may be selected for consecutive N data packets. It can be understood that the data packets included in the same data stream are grouped, and the same transmission path is selected for a group of consecutive N data packets. Two adjacent data packet groups select different transmission paths.
- the same transmission path may be selected for data packets in the same time period. It can be understood as: N data packets in a continuous time period are a group, and the same transmission path is selected for the data packets in the same group. Data packet groups in adjacent time periods select different transmission paths.
- a transmission path may be selected from the multiple shortest reachable paths according to the traffic burst. For example, if the time interval between two adjacent data packets is less than the first duration, the same transmission path is used for sending. If the time interval between two adjacent data packets is greater than the first duration, different transmission paths are used for sending.
- the transmission path is selected based on the degree of distance and congestion of all reachable paths.
- a transmission path is selected among one or more shortest reachable paths based on the load of the shortest reachable paths.
- the shortest reachable path with the smallest load is selected.
- LB load balance
- the sender When the sender encapsulates a data packet for the data flow to be sent, it encapsulates the RM and LB in the data packet.
- the RM is used to indicate the load sharing rule adopted by the forwarding device
- the LB indicates the load sharing factor
- the load sharing factor is used to select the transmission path.
- the switch After the switch receives the data packet, it can determine the load sharing rule to be adopted according to the RM, and then select the transmission path according to the instructions of the LB.
- the switch may perform a hash operation on the value of the LB to obtain a hash value, perform a remainder operation on the number of selectable paths according to the obtained hash value, and use the path corresponding to the result of the remainder operation as the selected forwarding path.
- the switch may perform a hash operation on the value of the LB and one or more items included in the quintuple in the data packet to obtain a hash value, and then perform a hash value on the selectable items according to the obtained hash value.
- a remainder operation is performed on the number of paths, and the path corresponding to the result of the remainder operation is used as the selected forwarding path.
- the quintuple may include source IP address, destination IP address, source port number, destination port number, and protocol number.
- Different values of RM in this embodiment of the present application may indicate different load sharing rules.
- the mapping relationship between different values of RM and load sharing rules can be configured by the network manager to each network device and switch, or can be specified by a protocol.
- Different values of LB are used to select the transmission path.
- the value range of the LB can be configured by the network manager to each network device, or can be specified by a protocol.
- RM can occupy 2 bits (bit). Different values of RM are used to indicate different load sharing rules 1 to 4.
- a possible value configuration method is that 1 bit is used to indicate the flow-based routing mode or the adaptive routing mode, and the other 1 bit is used to indicate that the route is selected from all reachable paths or the shortest reachable path. path is selected.
- the high-order bits indicate the routing mode
- the low-order bits indicate the selectable transmission path range.
- the low-order bits indicate the routing mode
- the high-order bits indicate the selectable transmission path range. See, for example, Table 1.
- Table 1 takes 8 bits occupied by the LB as an example, and Table 1 is only an example, and does not specifically limit the number of bits occupied by the RM and the LB.
- Example 1 the first possible example is described: the sender side instructs the switch to adopt the load sharing rule 1 in the data packets included in the data flow, and the LB adopts the load sharing rule 1 when encapsulating the data packets belonging to the same data flow. the same value.
- RM load sharing rule 1
- Flow1 data flow 1
- the RM values of the data packets belonging to the data flow 1 are all 0b00, and the LB field values are all LB1. Therefore, when switch 1 receives the data packet belonging to data flow 1, it is determined that there are four reachable paths from switch 1 to host 2, and a transmission path can be selected from the four reachable paths through the value of the LB field.
- the sender can configure different values for the LB field of data packets in different data streams. It can be understood that different data streams can send data streams within a set duration.
- Example 2 the second possible example is described: the sender side instructs the switch to adopt load sharing rule 1 in the data packets included in the data flow, and encapsulates two adjacent data packets belonging to the same data flow.
- the LB value of data packets in a data stream varies from packet to packet.
- the load sharing of each data packet is carried out in the multi-path. The load sharing effect is good, but the degree of disorder is serious, and the receiving end needs to have the ability to reorganize the disordered packets.
- Table 1 is taken as an example.
- the value of RM is 0b00, which means that load sharing rule 1 is adopted, that is, the flow-based routing mode is used to select routes among all reachable paths. Take data flow 1 (Flow1) as an example, from host 1 to host 2.
- the RM values of the data packets belonging to this data stream 1 are all 0b00.
- the values of the LB fields of the four data packets belonging to the data flow are LB1, LB2, LB3, and LB4, respectively.
- switch 1 when switch 1 receives the data packet belonging to data flow 1, it determines that there are four reachable paths from switch 1 to host 2, which can be performed by taking the value of the LB field (or the value of the LB field and the quintuple).
- the Greek operation selects a transmission path for transmission from the 4 reachable paths. Because the LB values of the four data packets of the same data stream are different, they are shared on four transmission paths after hash operation.
- Example 3 the second to fifth possible examples are described: the sender side instructs the switch to adopt load sharing rule 1 in the data packets included in the data flow, and groups the data packets belonging to the same data flow. , the value of the second field of the data packets belonging to the same group (the same flow cluster) is the same. The LB value of data packets in a data stream changes group by group.
- Table 1 is taken as an example.
- the value of RM is 0b00, which means that load sharing rule 1 is adopted, that is, the flow-based routing mode is used to select routes among all reachable paths. Take data flow 1 (Flow1) as an example, from host 1 to host 2.
- the RM values of the data packets belonging to this data stream 1 are all 0b00.
- the values of the LB fields of the four data packets belonging to the data flow are LB1, LB1, LB2, and LB2, respectively.
- switch 1 when switch 1 receives the data packet belonging to data flow 1, it determines that there are four reachable paths from switch 1 to host 2, which can be performed by taking the value of the LB field (or the value of the LB field and the quintuple).
- the Greek operation selects a transmission path for transmission from the 4 reachable paths. Data packets with the same LB value are forwarded through the same transmission path, and data packets with different LB values are forwarded through different transmission paths.
- Example 4 the sixth possible example is described: the sender side instructs the switch in the data packet included in the data flow to adopt load sharing rule 2 (route selection in the shortest reachable path), and for the data packets belonging to the same data flow The same value is used in the second field when the data packet is encapsulated.
- load sharing rule 2 route selection in the shortest reachable path
- the routing table configured by the switch may include a cost value (Cost) used to indicate the distance of each transmission path.
- Cost a cost value used to indicate the distance of each transmission path.
- the switch can determine one or more reachable paths according to the routing table, and can determine the shortest path from the one or more reachable paths according to the cost value. It should be understood that if there is only one reachable path, the reachable path is the shortest reachable path.
- RM load sharing rule 2
- Flow1 data flow 1
- the RM values of the data packets belonging to the data flow 1 are all 0b00
- the LB field values are all LB1. Therefore, when the switch 1 receives the data packet belonging to the data flow 1, it determines the shortest reachable path from the switch 1 to the host 2, and can determine the shortest reachable path from all the reachable paths through the routing table.
- the shortest reachable path includes two. It is possible to further select a transmission path from the two reachable paths to transmit the data stream 1 through the value of the LB field.
- the sender may configure different values for the LB fields of data packets in different data streams.
- Example 5 the seventh possible example is described: the sender side instructs the switch to adopt load sharing rule 2 in the data packets included in the data flow, and encapsulates two adjacent data packets belonging to the same data flow.
- the LB value of data packets in a data stream varies from packet to packet.
- Load balancing is performed on multiple shortest paths for each data packet. The load balancing effect is good, but the degree of out-of-order is serious, and the receiving end needs to have the ability to reorganize out-of-sequence packets.
- Table 1 is taken as an example.
- the value of RM is 0b10, which means that load sharing rule 2 is adopted, that is, the flow-based routing mode is used to select routes among all reachable paths. Taking data flow 1 (Flow1) as an example, it is sent from host 1 to host 2.
- the RM values of the data packets belonging to this data stream 1 are all 0b10.
- the values of the LB fields of the four data packets belonging to the data stream 1 are LB1, LB2, LB3, and LB4, respectively.
- switch 1 when switch 1 receives the data packet belonging to data flow 1, it determines that there are two shortest reachable paths from switch 1 to host 2, which can be determined by the value of the LB field (or the value of the LB field and the quintuple).
- the hash operation selects the transmission path for transmission from 2 reachable paths. Therefore, the four data packets of data flow 1 are shared over two shortest reachable paths for transmission.
- Example 6 the eighth to tenth possible examples are described: the sender side instructs the switch to adopt load sharing rule 2 in the data packets included in the data flow, and groups the data packets belonging to the same data flow. , the value of the second field of the data packets belonging to the same group (the same flow cluster) is the same. The LB value of data packets in a data stream changes group by group.
- Table 1 is taken as an example.
- the value of RM is 0b10, which means that load sharing rule 1 is adopted, that is, the flow-based routing mode is used to select routes among all reachable paths. Take data flow 1 (Flow1) as an example, from host 1 to host 2.
- the RM values of the data packets belonging to this data stream 1 are all 0b10.
- the values of the LB fields of the four data packets belonging to the data flow are LB1, LB1, LB2, and LB2, respectively.
- switch 1 when switch 1 receives the data packet belonging to data flow 1, it determines that there are two shortest reachable paths from switch 1 to host 2, which can be determined by the value of the LB field (or the value of the LB field and the quintuple).
- the hash operation selects the transmission path for transmission from the 2 shortest reachable paths. Data packets with the same LB value are forwarded through the same shortest reachable path, and data packets with different LB values are forwarded through different shortest reachable paths.
- Example 7 an eleventh possible example is described: the sender side instructs the switch to adopt the load sharing rule 3 in the data packet included in the data flow.
- the value of LB can be configured as a default value.
- the data packet may not include the LB.
- RM load sharing rule 3
- Flow1 data flow 1
- the RM values of the data packets belonging to this data stream 1 are all 0b01.
- the switch receives a data packet with the RM value of 0b01, it selects a route according to the cost of each outgoing port and the congestion level of the outgoing port queue among all the reachable paths configured in the routing table. For example, the transmission path with the shortest distance among the transmission paths whose congestion degree is less than the first threshold value is selected.
- the switch can determine the egress port with the smallest cost based on the routing table, that is, select the shortest reachable path. If there are multiple shortest reachable paths, select the shortest reachable path with the least load, that is, the egress port with the least load. If the congestion degree of the egress port of the shortest reachable path exceeds the first threshold value, the uncongested egress port with the next highest cost is selected, and so on. As shown in Figure 8, the transmission path: switch 1 ⁇ switch 5 ⁇ switch 6 is the same as the transmission path: switch 1 ⁇ switch 4 ⁇ switch 6, and both are the shortest reachable paths.
- switch 1 After switch 1 receives data packet 1 from host 1, it determines two shortest reachable paths, and selects the transmission path with the lowest load from the shortest reachable paths: switch 1 ⁇ switch 5 ⁇ switch 6, and forwards data packet 1 to switch 5. After switch 1 receives data packet 2, the transmission path with the lowest load is still: switch 1 ⁇ switch 5 ⁇ switch 6, and forwards data packet 2 to switch 5. After switch 1 receives data packet 3, the transmission path with the lowest load is: switch 1 ⁇ switch 4 ⁇ switch 6, and forwards data packet 3 to switch 4. After switch 1 receives data packet 4, the transmission path with the lowest load is: switch 1 ⁇ switch 4 ⁇ switch 6, and forwards data packet 4 to switch 5.
- switch 1 When data packet 5 is received, the congestion degree of the two shortest reachable paths is greater than the first threshold value, so a transmission path with a slightly farther distance is selected: switch 1 ⁇ switch 2 ⁇ switch 3 ⁇ switch 6. Switch 1 forwards data packet 5 to switch 2.
- Example 8 the twelfth possible example is described: the sender side instructs the switch to adopt the load sharing rule 3 in the data packet included in the data flow.
- the value of LB can be configured as a default value.
- the data packet may not include the LB.
- RM is 0b11, which means that the load sharing rule 4 is adopted, that is, the route selection mode based on adaptive routing, and the route is selected in the shortest reachable path.
- Flow1 data flow 1
- the RM values of the data packets belonging to this data stream 1 are all 0b11.
- the switch receives a data packet with an RM value of 0b11, it selects a route based on the cost of each outgoing port among all the reachable paths configured in the routing table. For example, choose the shortest reachable path with the least load.
- the switch can determine the egress port with the smallest cost based on the routing table, that is, select the shortest reachable path. If there are multiple shortest reachable paths, select the shortest reachable path with the least load, that is, the egress port with the least load.
- the transmission path: switch 1 ⁇ switch 5 ⁇ switch 6 is the same as the transmission path: switch 1 ⁇ switch 4 ⁇ switch 6, and both are the shortest reachable paths.
- switch 1 After switch 1 receives data packet 1 from host 1, it determines two shortest reachable paths, and selects the transmission path with the lowest load from the shortest reachable paths: switch 1 ⁇ switch 5 ⁇ switch 6, and forwards data packet 1 to switch 5.
- switch 1 After switch 1 receives data packet 2, the transmission path with the lowest load is still: switch 1 ⁇ switch 5 ⁇ switch 6, and forwards data packet 2 to switch 5. After switch 1 receives data packet 3, the transmission path with the lowest load is: switch 1 ⁇ switch 4 ⁇ switch 6, and forwards data packet 3 to switch 4. After switch 1 receives data packet 4, the transmission path with the lowest load is: switch 1 ⁇ switch 4 ⁇ switch 6, and forwards data packet 4 to switch 5. When data packet 5 is received, the congestion degree of the two shortest reachable paths is greater than the first threshold value, so a transmission path with a slightly farther distance is selected: switch 1 ⁇ switch 2 ⁇ switch 3 ⁇ switch 6. Switch 1 forwards data packet 5 to switch 2.
- the sender may instruct the forwarding device to adopt different load sharing rules for data flows of different flow types.
- FIG. 10 a schematic flowchart of a possible load sharing method provided by an embodiment of the present application is shown.
- the load sharing method may be performed by the sending end, for example, may be performed by a network card in the device of the sending end.
- the sending end sends a first data packet to the forwarding device, the first data packet belongs to the first data stream, and the value of the RM included in the first data packet is a first value, and the first value is used to instruct the forwarding device to forward the first data packet by adopting the first load sharing rule.
- the forwarding device may be a device with a function of forwarding data packets, such as a switch or a router.
- any forwarding device adopts the first load sharing rule to forward the first data packet to the next hop until reaching the receiving end corresponding to the first data stream. 10 , it is taken as an example that the receiving end corresponding to the first data stream is the first receiving end.
- the sending end sends a second data packet to the forwarding device, the second data packet belongs to the second data stream, the value of the RM included in the second data packet is a second value, and the first data packet is a second value.
- the binary value is used to instruct the forwarding device to forward the second data packet using the second load sharing rule.
- any forwarding device adopts the second load sharing rule to forward the second data packet to the next hop according to the value of RM, until it reaches the receiving end corresponding to the second data stream.
- FIG. 10 it is taken as an example that the receiving end corresponding to the second data stream is the second receiving end.
- the flow type of the first data flow may be mouse flow, and the flow type of the second data flow may be elephant flow.
- This embodiment of the present application does not limit the sequence of execution between step 1001 and step 1003, for example, 1001 may be executed first, and then 1003 may be executed, or, for example, 1003 may be executed first and then 1001 may be executed.
- the sender instructs the switch to adopt different load sharing rules for data flows of different flow types, so that it is not necessary to configure the load sharing rules globally for the switch. Therefore, the switch can adopt different load balancing rules for different data flows, which is suitable for complex networking and mixed traffic scenarios.
- an adaptive routing mode may be adopted.
- the first load sharing rule may be load sharing rule 3 and load sharing rule 4.
- a flow-based routing mode can be adopted.
- the second load sharing rule can be load sharing rule 3 and load sharing rule 4.
- the sender may determine the stream type of the data stream according to the service type and/or the size of the data stream.
- the service type such as transactional data flow, data flow generated by WWW browsing, or data flow generated by search query, etc.
- data streams generated by data backup or virtual machine migration belong to elephant streams.
- the sender determines that the flow of the data flow to be sent is greater than the flow threshold, then determines that the data flow belongs to the elephant flow, and the sender determines that the flow of the data flow to be sent is less than or equal to the flow threshold, Then it is determined that the data flow belongs to the mouse flow.
- the flow threshold value can be based on the empirical value of distinguishing elephant flow and mouse flow.
- the operations of encapsulating and sending data packets in the embodiments of the present application may be implemented by a network card.
- the network card may determine the flow type of the data flow according to the service type and/or the data volume of the data flow.
- the processor may send the traffic characteristics of the data stream to the network card, for example, the processor may indicate to the network card that the stream type of the data stream to be sent is an elephant stream or a mouse stream.
- the sender may determine the load sharing rule adopted by the forwarding device according to the capability of the receiver to reassemble out-of-order packets and the flow type of the data stream to be sent.
- the ability of the receiving end to reassemble out-of-order packets can be configured by the controller or the sending end manually, or information exchange between the receiving end and the sending end can be performed to send its own capability information to the opposite end.
- the capability information is used to indicate whether it has the capability to reassemble out-of-order packets.
- the first data stream is a data stream sent to the first receiving end.
- the sending end may acquire capability information of the first receiving end from the first receiving end, and the capability information of the first receiving end is used to indicate whether the first receiving end has the capability of reassembling out-of-order packets.
- an adaptive routing mode can be used for the mouse flow, such as load sharing rule 3 or load sharing rule 4.
- the sender may encapsulate 0b01 or 0b11 in the RM field of the data packet of the first data stream.
- the forwarding device receives the first data stream and determines that the value of the RM field is 0b01, according to the distance and congestion degree of the transmission path reaching the first receiving end A first forwarding path for forwarding the first data packet is selected in the transmission path.
- the first forwarding path is the transmission path with the shortest distance among the transmission paths whose congestion degree is less than the first threshold value.
- the forwarding device determines that the value of the RM field is 0b11 when receiving the first data packet, it selects the shortest reachable path with the smallest load.
- a flow-based routing mode can be adopted for the mouse flow, such as load sharing rule 2, which instructs the forwarding device to select the transmission path based on the LB .
- load sharing rule 2 instructs the forwarding device to select the transmission path based on the LB .
- the approach in the sixth possible example can be used.
- the tenth possible example manner may be adopted. Taking Table 1 as an example, when sending the first data stream, the sender may encapsulate 0b10 in the RM field of the data packet of the first data stream.
- the forwarding device determines that the value of the RM field is 0b10, performs a hash operation according to the LB (or the LB and the quintuple), and selects a forwarding path from the shortest reachable paths.
- the value of the RM included in the first data packet and the third data packet is taken as an example.
- the value is the same, and the value of LB is also the same.
- the value of RM included in the first data packet and the third data packet is the same, when the time interval between the sending of the third data packet and the first data packet is When the duration is greater than the first duration, the value of the LB of the third data packet is different from the value of the LB of the first data packet; when the sending time interval between the third data packet and the first data packet is less than or equal to the first When the duration is long, the value of the LB of the third data packet is different from the value of the LB of the first data packet.
- the second receiving end does not have the ability to reassemble out-of-order packets.
- Use flow-based routing mode such as load sharing rule 1.
- the sender instructs the forwarding device to select a transmission path among all reachable paths based on the LB.
- the approach in the first possible example can be used.
- the sixth possible example can be adopted.
- Table 1 when sending the second data stream, the sender may encapsulate 0b00 in the RM field of the data packet of the second data stream.
- the forwarding device determines that the value of the RM field is 0b00, performs a hash operation according to the LB (or the LB and the quintuple), and selects a forwarding path from all reachable paths.
- the value of the LB of the fourth data packet is the same as that of the fourth data packet.
- the value of the LB of the second data packet is the same.
- the fourth data packet when the fourth data packet is adjacent to the second data packet and the sending time interval between the fourth data packet and the second data packet is greater than the second duration, the fourth data packet is The value of the LB of the packet is different from the value of the LB of the second data packet; when the fourth data packet is adjacent to the second data packet and the transmission time interval between the fourth data packet and the second data packet is When the duration is less than or equal to the second duration, the value of the LB of the fourth data packet is the same as the value of the LB of the second data packet.
- the second receiving end has the capability of reorganizing out-of-order packets.
- a flow-based routing mode such as load sharing rule 1
- the sender instructs the forwarding device to select a transmission path among all reachable paths based on the LB.
- the approach in the second possible example can be adopted.
- the third possible example can be adopted.
- the fourth possible example can be adopted.
- the fifth possible example can be used. Taking Table 1 as an example, when sending the second data stream, the sender may encapsulate 0b00 in the RM field of the data packet of the second data stream.
- the forwarding device When receiving the second data packet, the forwarding device determines that the value of the RM field is 0b00, performs a hash operation according to the LB (or the LB and the quintuple), and selects a forwarding path from all reachable paths.
- the route selection mode of adaptive routing may be used to select from all reachable paths. For example, the load sharing rule 3 is adopted.
- the fifth data packet and the second data packet are When adjacent, the value of the LB of the fifth data packet is different from the value of the LB of the second data packet.
- the value of the LB of the fifth data packet is the same as that of the second data packet. The value of the LB of the data packet is different.
- the value of the LB of the fifth data packet is the same as that of the second data packet.
- the value of LB is the same.
- the value of the LB of the fifth data packet is the same as the value of the LB of the second data packet.
- the values are different.
- the value of the LB of the fifth data packet is the same as the value of the LB of the second data packet.
- the value of the LB of the fifth data packet when the number of packets between the fifth data packet and the second data packet is greater than the second number, the value of the LB of the fifth data packet is the same as that of the second data packet.
- the value of the LB of the fifth data packet is different.
- the value of the LB of the fifth data packet is the same as that of the second data packet.
- the value of LB is the same.
- the sender determines the value of the RM and LB encapsulated in the data packet according to the flow type and the ability of the receiver to reassemble out-of-order packets. values, as shown in Table 3. It should be understood that Table 3 is only used as an example, and does not constitute a specific limitation.
- host1 sends 4 data streams to host2.
- two of the data streams belong to elephant streams, which are represented by solid lines in FIG. 11
- the other two data streams are mouse streams, which are represented by dotted lines in FIG. 11 .
- Host2 has the ability to reassemble out-of-order packets. Therefore, different data packets of the same data stream sent by host1 to host2 can be transmitted on different paths.
- Table 3 when host1 sends two elephant flows to host2, the RM value in the multiple data packets included in the two elephant flows is 0b00, that is, each switch is instructed to adopt flow-based routing mode, and Routing among all reachable paths.
- Host1 can switch the value of LB packet by packet when encapsulating data packets, or switch the value of LB once for multiple data packets. Therefore, the switch forwards based on RM and LB, so that the two elephant flows can be evenly distributed to four reachable paths.
- the value of RM in the multiple data packets included in the two mouse flows is 0b11, that is, each switch is instructed to adopt the route selection mode of self-adaptive routing, and select from the paths configured in the routing table. Select the shortest reachable path.
- the switch forwards the data packets in the two mouse flows based on the RM, it can select the shortest reachable path with the smallest load in real time for each data packet. reach the path. Therefore, the data packets in the two mouse flows are transmitted on the transmission path with the least load among the two shortest reachable paths in the middle.
- the large data traffic with priority on bandwidth is distributed to all reachable paths as much as possible, and the large bandwidth of multiple paths is fully utilized.
- the small data traffic with priority of delay is sent on the shortest and lightest load path as much as possible, fully enjoying the low latency of the shortest path.
- the data packets sent by the sender through the network card carry the RM and LB fields, and provide different forwarding strategies for different traffic in a differentiated manner to achieve differentiated services.
- host1 sends 4 data streams to host2, assuming that the 4 data streams are all elephant streams. It is indicated by a solid line in FIG. 12 .
- Host3 sends host4 1 data stream, which is an elephant stream.
- Host2 has the ability to reorganize out-of-order packets, and different data packets of the same data stream can be transmitted on different transmission paths.
- Host4 does not have the ability to reassemble out-of-order packets.
- the value of RM in the multiple data packets included in the four elephant flows is 0b00, that is, each switch is instructed to use flow-based Routing mode, and routing in all reachable paths.
- Host1 can switch the value of LB packet by packet when encapsulating data packets, or switch the value of LB once for multiple data packets. Therefore, the switch forwards based on the RM and LB, so that the four elephant flows can be evenly distributed to the four reachable paths.
- the value of RM in the multiple data packets included in the four elephant flows sent from host1 to host2 is configured as 0b01, that is, each switch is instructed to adopt the route selection mode of adaptive routing, and when all reachable Choose a path.
- the value of LB can adopt the default value. Therefore, when the switch forwards each data packet based on the RM and LB, it selects the transmission path with the lightest load according to the load of the transmission path, so that each data packet included in the four elephant flows can be shared in real time to the one with the lightest load. transmission on the transmission path.
- Host3 When Host3 sends 1 elephant flow to host4, the value of RM in the multiple data packets included in the 4 elephant flows is 0b00, that is, each switch is instructed to adopt the flow-based routing mode, and select the route selection mode among all reachable paths. road. Since host4 does not have the ability to reassemble out-of-order packets, Host3 does not switch the value of LB when encapsulating data packets for this elephant flow, and all data packets in this elephant flow are transmitted through a reachable path.
- a path is selected based on the flow, and the LB value is used to make the data flow transmitted through one path , to prevent out-of-order data packets in the data stream.
- the routing mode based on adaptive routing flexibly selects the transmission path with the lightest load, or switches the LB value, so that the elephant flow can be evenly shared among four on an accessible path.
- a path is occupied for the data flow that cannot be out of order, and the data flow that can be out of order is forwarded based on the load.
- the bandwidth of all reachable paths can be utilized as much as possible.
- existing network switches cannot perceive the ability to reassemble out-of-order packets on the end side.
- mixed networks with different reorganization capabilities of out-of-order packets they can only use flow-based load balancing technology across the board. Congestion on the path increases.
- an embodiment of the present application provides a load sharing apparatus 1300, as shown in FIG. 13 .
- the load sharing apparatus 1300 may include a sending module 1301 .
- the load sharing apparatus 1300 may also include a processing module 1302 .
- the load sharing apparatus 1300 may further include a receiving module 1303 .
- the apparatus 1300 may be applied to a network device, that is, may be applied to a sending device, and may be implemented by a processor in the network device, or by a network card in the network device.
- the load sharing apparatus 1300 is configured to implement the method implemented by a host, a processor, or a network card in any of the foregoing embodiments.
- the sending module 1301 is configured to send a first data packet to the forwarding device, the first data packet belongs to the first data stream, and the value of the first field included in the first data packet is a first value, so The first value is used to instruct the forwarding device to forward the first data packet using the first load sharing rule; and send a second data packet to the forwarding device, the second data packet belongs to the second data packet flow, the value of the first field included in the second data packet is a second value, and the second value is used to instruct the forwarding device to forward the second data packet using the second load sharing rule; wherein , the stream type of the first data stream is different from the stream type of the second data stream.
- the flow type of the first data flow is mouse flow
- the flow type of the second data flow is elephant flow.
- the processing module 1302 may further determine the first data packet according to the service type or data volume of the first data stream before the sending module 1301 sends the first data packet to the forwarding device.
- the flow type of a data flow is mouse flow; or before sending a second data packet to the forwarding device, determine that the flow type of the second data flow is large according to the service type or data volume of the second data flow elephant flow.
- the first data stream is a data stream sent to a first receiving end; the processing module 1302 is further configured to reassemble out-of-order packets according to the capability of the first receiving end and all The flow type of the first data flow determines that the forwarding device forwards the first data flow using a first load sharing rule.
- the receiving module 1303 may also receive capability information from the first receiving end, where the capability information is used to indicate whether the first receiving end has the ability to reassemble out-of-order packets.
- the second data stream is a data stream sent to the second receiving end; the processing module 1302 may also reorganize out-of-order packets according to the capability of the second receiving end and the The flow type of the second data flow determines that the forwarding device forwards the second data flow using the second load sharing rule.
- the first receiving end has the ability to reassemble out-of-order packets; the first load sharing rule is: according to the distance and congestion degree of different transmission paths reaching the first receiving end A transmission path for forwarding the first data packet is selected among the different transmission paths; or, the shortest path reaching the first receiving end is used as the forwarding path for forwarding the first data packet.
- the first receiving end does not have the ability to reassemble out-of-order packets; the first data packet further includes a second field, and the second field included in the first data packet
- the value of is used to indicate the load sharing factor of the first data packet; the first load sharing rule is: based on the load sharing factor, the shortest path to the first receiving end is used to forward the first A forwarding path for data packets.
- the sending module 1301 may further send a third data packet to the forwarding device, where the third data packet belongs to the first data stream, and the third data packet includes The value of the first field of the third data packet is the first value, the destination address of the third data packet indicates the second receiving end; the third data packet further includes a second field, the third data packet The value of the second field included in the packet is used to indicate the load sharing factor of the third data packet;
- the value of the second field of the third data packet is the same as the value of the second field of the first data packet; or, when the third data packet is the same as the first data packet When the sending time interval of the message is greater than the first duration, the value of the second field of the third data message is different from the value of the second field of the first data message; when the third data message When the time interval between sending the first data packet is less than or equal to the first duration, the value of the second field of the third data packet is different from the value of the second field of the first data packet .
- the second data packet further includes a second field, and a value of the second field included in the second data packet is used to indicate load sharing of the second data packet factor; wherein the value of the second field of the second data packet is different from the value of the second field of the third data packet.
- the second data packet further includes a second field, and a value of the second field included in the second data packet is used to indicate load sharing of the second data packet factor; the second load sharing rule is: based on the load sharing factor, selecting a forwarding path for forwarding the second data packet in at least one transmission path reaching the second receiving end.
- the second receiving end does not have the ability to reassemble out-of-order packets
- the sending module 1301 is further configured to send a fourth data packet to the forwarding device, the fourth data packet
- the data packet belongs to the second data stream, the value of the first field included in the fourth data packet is the second value, the fourth data packet further includes a second field, and the fourth data packet is The value of the second field included in the message is used to indicate the load sharing factor of the fourth data message;
- the value of the second field of the fourth data packet is the same as the value of the second field of the second data packet; or, when the fourth data packet and the second data packet have the same value When the data packets are adjacent to each other and the sending time interval between the fourth data packet and the second data packet is greater than the second duration, the value of the second field of the fourth data packet is the same as the value of the second data packet.
- the value of the second field of the message is different; when the fourth data message is adjacent to the second data message and the sending time interval between the fourth data message and the second data message is less than or When equal to the second duration, the value of the second field of the fourth data packet is the same as the value of the second field of the second data packet.
- the second receiving end has the capability of reorganizing out-of-order packets; the sending module 1301 is further configured to send a fifth data packet to the forwarding device, the fifth data
- the packet belongs to the second data stream, the value of the first field included in the fifth data packet is the second value, the fifth data packet further includes a second field, and the fifth data packet is The value of the second field included in the packet is used to indicate the load sharing factor of the fifth data packet; wherein, the value of the second field of the fifth data packet is the same as the value of the second data packet.
- the value of the second field is different; or, when the sending time interval between the fifth data packet and the second data packet is greater than the second duration, the value of the second field of the fifth data packet Different from the value of the second field of the second data packet, when the sending time interval between the fifth data packet and the second data packet is less than or equal to the second duration, the fifth data packet
- the value of the second field of the packet is the same as the value of the second field of the second data packet; or, when the number of packets between the fifth data packet and the second data packet is greater than When the second number is used, the value of the second field of the fifth data packet is different from the value of the second field of the second data packet.
- the value of the second field of the fifth data packet is the same as the value of the second field of the second data packet.
- the apparatus 1300 can also be applied to a forwarding device, which can be implemented by a processor in the forwarding device, or by a network card in the forwarding device.
- the load sharing apparatus 1300 is configured to implement the method implemented by a forwarding device, a switch, or a processor in any of the foregoing embodiments.
- the receiving module 1303 is configured to receive a first data packet, the first data packet belongs to the first data stream, the value of the first field included in the first data packet is a first value, and receive the second data packet.
- data packet the second data packet belongs to the second data stream, and the value of the first field included in the second data packet is the second value;
- the sending module 1301 is configured to indicate the first value according to the The first load sharing rule forwards the first data packet; and the second data packet is forwarded according to the second load sharing rule indicated by the second value;
- the flow type of the first data flow is the same as that of the first data flow.
- the stream types of the two data streams can be different.
- the flow type of the first data flow may be a mouse flow
- the flow type of the second data flow may be an elephant flow.
- the first data stream is a data stream sent to the first receiving end
- the processing module 1302 is specifically configured to, when the value of the first field is the first value, selecting a first forwarding path for forwarding the first data message in the transmission path according to the distance and congestion degree of the transmission path of the first receiving end;
- the first forwarding path is the transmission path with the shortest distance to the first receiving end among the transmission paths whose congestion degree is less than the first threshold value.
- the first data stream is a data stream sent to a first receiving end, and the first data packet further includes a second field, where the second field is used to indicate a load sharing factor;
- the processing module 1302 is specifically configured to, when the value of the first field is a first value, select, based on the load sharing factor, at least one shortest path to the first receiving end for forwarding the first data Forwarding path of packets.
- the first data packet includes a first destination address
- the first destination address indicates the first receiving end
- the processing module 1302 is specifically configured to determine the The cost value corresponding to the first destination address is at least one egress port from small to large
- the routing table includes multiple egress ports corresponding to the first destination address and a cost value corresponding to each egress port, and the cost value indicates the number of egress ports corresponding to the first destination address.
- the second data stream is a data stream sent to the second receiving end
- the processing module 1302 is specifically configured to, when the value of the first field is the second value, based on The load sharing factor selects a forwarding path for forwarding the second data packet in at least one transmission path reaching the second receiving end.
- the chip in this embodiment as shown in FIG. 14 may include a controller 1410 and an interface 1420 .
- the controller 1410 and the interface 1420 cooperate with each other, so that the chip executes the method executed by the network card or the method executed by the processor in the foregoing embodiments.
- the controller 1410 may be a central controller (CPU, central processing unit), a general-purpose processor, a co-controller, a digital signal processor (DSP), an application-specific integrated circuit (ASIC, application-specific integrated circuit) , field programmable gate array (FPGA, field programmable gate array) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof.
- the controller may also be a combination that implements computing functions, such as a combination of one or more microcontrollers, a combination of a DSP and a microcontroller, and the like.
- the present application also provides a computer-readable storage medium, where the computer-readable storage medium stores a computer program, and the computer program implements the method implemented by the aforementioned host or switch, or processor or network card when executed by a computing device.
- the present application also provides a computer program product comprising computer instructions.
- the computer instructions When the computer instructions are executed by the computing device, the method implemented by the aforementioned host or switch or processor or network card is implemented.
- the principle of solving the problem of the load sharing device provided in the embodiment of the present application is similar to the principle of solving the problem of the method embodiment of the present application. Therefore, the implementation of each device can refer to the implementation of the device, which is not described here for brevity. Repeat.
- the embodiments of the present application may be provided as a method, a system, or a computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein.
- computer-usable storage media including, but not limited to, disk storage, CD-ROM, optical storage, etc.
- These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory result in an article of manufacture comprising instruction means, the instructions
- the apparatus implements the functions specified in the flow or flow of the flowcharts and/or the block or blocks of the block diagrams.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种负载分担方法、装置及芯片,适用复杂组合和混合流程的场景。发送端在发送数据报文时,针对不同的数据流的流类型在数据报文的第一字段添加不同的取值,用于指示转发设备采用不同的负载分担规则,在复杂组网中存在混合流量时,针对不同流类型的流量采用不同的负载分担规则,相比配置转发设备针对所有流量均采用固定的负载分担规则来说,能够达到更好的负载分担效果。
Description
相关申请的交叉引用
本申请要求在2021年02月24日提交中国专利局、申请号为202110209432.3、申请名称为“一种负载分担方法、装置及芯片”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请实施例涉及网络互联技术领域,尤其涉及一种负载分担方法、装置及芯片。
随着网络的扩张和应用场景的多样化,传输网络的组网方式多种多样。从一个网络设备发送流量,通过传输网络到达另一个网络设备,通常有多条可达路径。传输网络中需要在多条路径中进行流量的分担,来提高其转发性能,增强网络的可靠性,从而更好的为用户服务。
现有的负载分担方法主要是采用逐流负载分担方法,即设备可以通过数据包的特征字段,比如源互联网协议(internet protocol,IP)地址、目的IP地址、源媒体接入控制(media access control,MAC)地址、目的MAC地址、端口号将原始报文分成不同的流,根据捆绑的方式确定发送接口和路径,同一条流的报文将在同一个接口和路由上发送。或者采用基于流表的流簇(flowlet)负载分担方法,通过流表中指定的发送接口来发送flowlet。又或者采用逐包负载分担方法,即设备基于数据包选择当前负载分担链路中负载较轻的成员链路进行转发,或者基于可达路径轮流发送。
但是,上述逐流负载分担的方法,在面对大带宽的大象流和小带宽的老鼠流共存的情况时,容易造成流量负载不均、网络利用率低的问题;其中,大象流是指在网络链路上建立的大容量(指总比特数)的持久的数据流,大象流例如可以由数据备份、或虚拟机迁移等原因而产生。老鼠流是指在网络链路上建立的小容量(指总比特数)的数据流;老鼠流例如可以是事务性流量、全球广域网(web world wide web,WWW)浏览而产生的数据流、搜索查询而产生的数据流。而基于流表的flowlet负载分担方法,设备中需要存储大量的流表,转发时延较大;上述逐包负载分担方法需要接收端支持报文乱序组包的功能。以上针对传输网络采用何种负载分担方式是基于传输网络全局采用固定配置的方式,并不适用复杂组网和混合流量的场景。
发明内容
本申请实施例提供一种负载分担方法、装置及芯片,适用复杂组合和混合流程的场景。
第一方面,本申请实施例提供一种负载分担方法,应用于发送端,所述方法包括:向转发设备发送第一数据报文,所述第一数据报文属于第一数据流,所述第一数据报文包括的第一字段的取值为第一值,所述第一值用于指示所述转发设备采用第一负载分担规则转发所述第一数据报文;向所述转发设备发送第二数据报文,所述第二数据报文属于第二数 据流,所述第二数据报文包括的第一字段的取值为第二值,所述第二值用于指示所述转发设备采用第二负载分担规则转发所述第二数据报文;其中,所述第一数据流的流类型与所述第二数据流的流类型不同。本申请实施例中,发送端在发送数据报文时,针对不同的数据流的流类型指示转发设备采用不同的负载分担规则,在复杂组网中存在混合流量时,针对不同流类型的流量采用不同的负载分担规则,相比配置转发设备针对所有流量均采用固定的负载分担规则来说,能够达到更好的负载分担效果。
在一种可能的设计中,所述第一数据流的流类型为老鼠流,所述第二数据流的流类型为大象流。
在一种可能的设计中,所述方法还包括:向转发设备发送第一数据报文之前,根据所述第一数据流的业务类型或者数据量大小确定所述第一数据流的流类型为老鼠流;向所述转发设备发送第二数据报文之前,根据所述第二数据流的业务类型或者数据量大小确定所述第二数据流的流类型为大象流。通过上述设计,端侧根据流量特征指示转发设备所采用的负载分担规则,即端侧根据自身的流量特征或者诉求来指示交换机采用何种负载分担规则,从而交换机根据端侧指示的负载分担规则来转发流量。针对复杂组网中存在混合流量,不同类型的流量可以采用不同的负载分担规则,达到更好的负载分担效果。
在一种可能的设计中,所述第一数据流为发往第一接收端的数据流;所述方法还可以包括:根据所述第一接收端的重组乱序报文的能力以及所述第一数据流的流类型确定所述转发设备使用第一负载分担规则转发所述第一数据流。通过上述设计,端侧根据流量特征和接收端的重组乱序报文的能力来指示转发设备所采用的负载分担规则,即端侧根据自身的流量特征和接收端的重组乱序报文的能力来指示交换机采用何种负载分担规则,从而交换机根据端侧指示的负载分担规则来转发流量,相比采用固定的负载分担规则来说,能够达到更好的负载分担效果。
在一种可能的设计中,所述方法还包括:接收来自第一接收端的能力信息,所述能力信息用于指示所述第一接收端是否具备重组乱序报文的能力。
在一种可能的设计中,所述第二数据流为发往第二接收端的数据流;所述方法还包括:根据所述第二接收端的重组乱序报文的能力以及所述第二数据流的流类型确定所述转发设备使用第二负载分担规则转发所述第二数据流。通过上述设计,端侧根据流量特征和接收端的重组乱序报文的能力来指示转发设备所采用的负载分担规则,即端侧根据自身的流量特征和接收端的重组乱序报文的能力来指示交换机采用何种负载分担规则,从而交换机根据端侧指示的负载分担规则来转发流量,相比采用固定的负载分担规则来说,能够达到更好的负载分担效果。
在一种可能的设计中,比如第一数据流为老鼠流,所述第一接收端具备重组乱序报文的能力;所述第一负载分担规则为:根据到达所述第一接收端的不同传输路径的远近程度以及拥塞程度在所述不同传输路径中选择用于转发所述第一数据报文的传输路径;或者,将到达所述第一接收端的最短路径作为转发所述第一数据报文的所述转发路径。通过上述设计,针对老鼠流,并且老鼠流的接收端具备重组乱序报文的能力,从而可以交换机根据第一负载分担规则,能够根据传输路径远近程度和拥塞程度选择传输路径,比如选择最近且不拥塞的传输路径来转发,能够保障老鼠流对时延的要求。
在一种可能的设计中,所述第一接收端不具备重组乱序报文的能力;所述第一数据报文还包括第二字段,所述第一数据报文包括的第二字段的取值用于指示所述第一数据报文 的负载分担因子;所述第一负载分担规则为:基于所述负载分担因子将到达所述第一接收端的最短路径作为转发所述第一数据报文的转发路径。通过上述设计,针对老鼠流,并且老鼠流的接收端不具备重组乱序报文的能力,从而可以交换机根据第一负载分担规则,基于负载分担因子来转发属于第一数据流的数据报文。
在一种可能的设计中,还包括:向转发设备发送第三数据报文,所述第三数据报文属于所述第一数据流,所述第三数据报文包括的第一字段的取值为所述第一值,所述第三数据报文的目的地址指示所述第二接收端;所述第三数据报文还包括第二字段,所述第三数据报文包括的第二字段的取值用于指示所述第三数据报文的负载分担因子;其中,所述第三数据报文的第二字段的取值与所述第一数据报文的第二字段的取值相同;或者,当所述第三数据报文与所述第一数据报文的发送时间间隔大于第一时长时,所述第三数据报文的第二字段的取值与所述第一数据报文的第二字段的取值不同;当所述第三数据报文与所述第一数据报文的发送时间间隔小于或者等于第一时长时,所述第三数据报文的第二字段的取值与所述第一数据报文的第二字段的取值不同。
上述设计中,针对属于同一数据流的数据报文采用的负载分担因子相同或者两个数据报文之间间隔较短采用同一负载分担因子,使得属于同一数据流的老鼠流,能够按照顺序到达接收端,使得接收端能够按照顺序接收属于同一数据流的数据报文。
在一种可能的设计中,所述第二数据报文还包括第二字段,所述第二数据报文包括的第二字段的取值用于指示所述第二数据报文的负载分担因子;其中,所述第二数据报文的第二字段的取值与所述第三数据报文的第二字段的取值不同。上述设计中,不同的流类型的数据流的负载分担因子不同。
在一种可能的设计中,比如第二数据流属于大象流,所述第二数据报文还包括第二字段,所述第二数据报文包括的第二字段的取值用于指示所述第二数据报文的负载分担因子;所述第二负载分担规则为:基于所述负载分担因子在到达所述第二接收端的至少一条传输路径中选择用于转发所述第二数据报文的转发路径。上述设计中,端侧指示转发设备针对大象流的各个数据报文基于负载分担因子来选路。尽可能的使得大象流可以分担到多个传输路径传输。
在一种可能的设计中,所述第二接收端不具备重组乱序报文的能力,所述方法还包括:向转发设备发送第四数据报文,所述第四数据报文属于所述第二数据流,所述第四数据报文包括的第一字段的取值为所述第二值,所述第四数据报文还包括第二字段,所述第四数据报文包括的第二字段的取值用于指示所述第四数据报文的负载分担因子;
其中,所述第四数据报文的第二字段的取值与所述第二数据报文的第二字段的取值相同;或者,
当所述第四数据报文与所述第二数据报文相邻且所述第四数据报文与所述第二数据报文的发送时间间隔大于第二时长时,所述第四数据报文的第二字段的取值与所述第二数据报文的第二字段的取值不同;当所述第四数据报文与所述第二数据报文相邻且所述第四数据报文与所述第二数据报文的发送时间间隔小于或者等于第二时长时,所述第四数据报文的第二字段的取值与所述第二数据报文的第二字段的取值相同。
上述设计中,在接收端不具备重组乱序报文的能力的情况下,针对属于同一数据流的数据报文采用的负载分担因子相同或者两个数据报文之间间隔较短时采用同一负载分担因子,使得属于同一数据流的大象流,能够按照顺序到达接收端,使得接收端能够按照顺 序接收属于同一数据流的数据报文。
在一种可能的设计中,所述第二接收端具备重组乱序报文的能力;所述方法还包括:向所述转发设备发送第五数据报文,所述第五数据报文属于所述第二数据流,所述第五数据报文包括的第一字段的取值为所述第二值,所述第五数据报文还包括第二字段,所述第五数据报文包括的第二字段的取值用于指示所述第五数据报文的负载分担因子;其中,所述第五数据报文的第二字段的取值与所述第二数据报文的第二字段的取值不同;或者,
当所述第五数据报文与所述第二数据报文的发送时间间隔大于第二时长时,所述第五数据报文的第二字段的取值与所述第二数据报文的第二字段的取值不同,当所述第五数据报文与所述第二数据报文的发送时间间隔小于或者等于第二时长时,所述第五数据报文的第二字段的取值与所述第二数据报文的第二字段的取值相同;或者,当所述第五数据报文与所述第二数据报文间隔的报文数大于第二数量时,所述第五数据报文的第二字段的取值与所述第二数据报文的第二字段的取值不同,当所述第五数据报文与所述第二数据报文的间隔的报文数小于或者等于第二数量时,所述第五数据报文的第二字段的取值与所述第二数据报文的第二字段的取值相同。
上述设计中,在接收端具备重组乱序报文的能力的情况下,针对属于同一数据流的数据报文采用的负载分担因子相同或者两个数据报文之间间隔较短时采用同一负载分担因子,使得属于同一数据流的大象流,能够按照顺序到达接收端,使得接收端能够按照顺序接收属于同一数据流的数据报文。
第二方面,本申请还提供一种负载分担方法,所述方法应用于转发设备,包括:接收第一数据报文,所述第一数据报文属于第一数据流,所述第一数据报文包括的第一字段的取值为第一值,根据所述第一值指示的第一负载分担规则转发所述第一数据报文;接收第二数据报文,所述第二数据报文属于第二数据流,所述第二数据报文包括的第一字段的取值为第二值,根据所述第二值指示的第二负载分担规则转发所述第二数据报文;所述第一数据流的流类型与所述第二数据流的流类型不同。本申请实施例中,发送端在发送数据报文时,针对不同的数据流的流类型指示转发设备采用不同的负载分担规则,在复杂组网中存在混合流量时,针对不同流类型的流量采用不同的负载分担规则,相比配置转发设备针对所有流量均采用固定的负载分担规则来说,能够达到更好的负载分担效果。
在一种可能的设计中,所述第一数据流的流类型为老鼠流,所述第二数据流的流类型为大象流。
在一种可能的设计中,所述第一数据流为发往第一接收端的数据流,根据所述第一值指示的第一负载分担规则转发所述第一数据报文,包括:根据到达所述第一接收端的传输路径的远近程度以及拥塞程度在所述传输路径中选择用于转发所述第一数据报文的第一转发路径;其中,所述第一转发路径为拥塞程度小于第一门限值的传输路径中距离最短的传输路径。
在一种可能的设计中,所述第一数据流为发往第一接收端的数据流,所述第一数据报文还包括第二字段,所述第二字段用于指示负载分担因子;根据所述第一值指示的第一负载分担规则转发所述第一数据报文,包括:基于所述负载分担因子在到达所述第一接收端的至少一条最短路径中选择用于转发所述第一数据报文的转发路径。
在一种可能的设计中,所述第一数据报文包括第一目的地址,所述第一目的地址指示所述第一接收端,基于所述负载分担因子在到达所述第二接收端的至少一条最短路径中选 择用于转发所述第一数据报文的转发路径,包括:根据路由表确定所述第一目的地址对应的代价值从小到达的至少一个出端口;路由表中包括第一目的地址对应的多个出端口以及每个出端口对应的代价值,所述代价值指示从所述代价值对应的出端口到达所述第一接收端的传输路径的远近程度;从所述至少一个出端口中选择第一出端口,所述第一出端口的拥塞程度小于第一门限值且所述第一出端口为所述至少一个出端口中负载最低的出端口。
在一种可能的设计中,所述第一数据报文包括第一目的地址,所述第一目的地址指示所述第一接收端,基于所述负载分担因子在到达所述第二接收端的至少一条最短路径中选择用于转发所述第一数据报文的转发路径,包括:根据路由表确定所述第一目的地址对应的代价值从小到达的至少一个出端口;路由表中包括第一目的地址对应的多个出端口以及每个出端口对应的代价值,所述代价值指示从所述代价值对应的出端口到达所述第一接收端的传输路径的远近程度;从所述至少一个出端口中选择第一出端口,所述第一出端口为拥塞程度小于第一门限值的至少一个出端口中代价值最小且负载最低的出端口。
在一种可能的设计中,所述第二数据流为发往第二接收端的数据流,根据所述第二值指示的第二负载分担规则转发所述第二数据报文,包括:在所述第一字段的取值为第二值时,基于所述负载分担因子在到达所述第二接收端的至少一条传输路径中选择用于转发所述第二数据报文的转发路径。
第三方面,本申请实施例提供一种负载分担装置,所述方法应用于发送端,可以由发送端中的处理器来实现,或者由发送端中的网卡来实现。负载分担装置包括发送模块。
发送模块,用于向转发设备发送第一数据报文,所述第一数据报文属于第一数据流,所述第一数据报文包括的第一字段的取值为第一值,所述第一值用于指示所述转发设备采用第一负载分担规则转发所述第一数据报文;发送模块,还用于向所述转发设备发送第二数据报文,所述第二数据报文属于第二数据流,所述第二数据报文包括的第一字段的取值为第二值,所述第二值用于指示所述转发设备采用第二负载分担规则转发所述第二数据报文;其中,所述第一数据流的流类型与所述第二数据流的流类型不同。
另外,该第三方面中,负载分担装置其他可选的实施方式可参见上述第一方面的相关内容,此处不再详述。
第四方面,本申请还提供一种负载分担装置,所述装置应用于转发设备,可以由转发设备中的处理器或者控制器或者芯片来实现。负载分担装置包括接收模块和发送模块。接收模块,用于接收第一数据报文,所述第一数据报文属于第一数据流,所述第一数据报文包括的第一字段的取值为第一值;发送模块,用于根据所述第一值指示的第一负载分担规则转发所述第一数据报文;接收模块,还用于接收第二数据报文,所述第二数据报文属于第二数据流,所述第二数据报文包括的第一字段的取值为第二值;发送模块还用于根据所述第二值指示的第二负载分担规则转发所述第二数据报文;所述第一数据流的流类型与所述第二数据流的流类型不同。
另外,该第四方面中,负载分担装置其他可选的实施方式可参见上述第二方面的相关内容,此处不再详述。
第五方面,提供了一种负载分担装置,该负载分担装置包括处理器和智能网卡(可以简称为网卡)。处理器用于接收网卡发送的数据流,或向网卡发送数据流,且智能网卡用于实现上述第一方面-第二方面的任意一种实施方式的方法。
第六方面,提供了一种芯片,该芯片包括控制器和接口。控制器和接口相互配合,使 得芯片执行上述第一方面-第二方面的任意一种设计中的方法。
第七方面,本申请提供一种芯片,包括存储器和控制器;所述存储器用于存储计算机程序;所述控制器用于执行所述存储器中存储的计算程序,实现上述第一方面-第二方面的任一可能的设计中的方法。
第八方面,提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面-第二方面的任意一种设计中的方法。
第九方面,提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面-第二方面的任意一种设计中的方法。
上述第三方面-第九方面的有益效果可以参见第一方面-第二方面中的相关说明,此处不再赘述。
图1为本申请实施例中一种可能的逐流负载分担方式示意图;
图2为本申请实施例中一种可能的基于流的flowlet负载分担方式示意图;
图3为本申请实施例中一种可能的逐包负载分担方式示意图;
图4为本申请实施例中一种可能的网络系统架构示意图;
图5为本申请实施例中一种可能的主机服务器结构示意图;
图6A为本申请实施例中示例1的负载分担方式示意图;
图6B为本申请实施例中示例2的负载分担方法示意图;
图6C为本申请实施例中示例3的负载分担方法示意图;
图7A为本申请实施例中示例4的负载分担方式示意图;
图7B为本申请实施例中示例5的负载分担方法示意图;
图7C为本申请实施例中示例6的负载分担方法示意图;
图8为本申请实施例中示例7的负载分担方法示意图;
图9为本申请实施例中示例8的负载分担方法示意图;
图10为本申请实施例中一种可能的负载分担方法流程示意图;
图11为本申请实施例中一种可能网络场景示意图;
图12为本申请实施例中另一种可能网络场景示意图;
图13为本申请实施例中负载分担装置1300结构示意图;
图14为本申请实施例中芯片结构示意图。
在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或 者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
应注意到本申请实施例中,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
本申请实施例可以应用于以太网(ethernet,ETH)/网络互联协议(internet protocol,IP)/无限带宽(infiniband,IB)网等通信网络。
在ETH/IP网络中可以采用的负载分担方式可以包括1)逐流负载分担、2)基于流表的flowlet负载分担、3)逐包负载分担。下面针对以上三种负载分担方式进行描述。
1)逐流负载分担。举例来说,传统链路聚合或者等价多路径路由(ECMP)系统一般采用逐流负载分担方式。逐流负载分担方式一般将数据包的特征字段作为哈希(hash)因子,比如数据包的源MAC地址、目的MAC地址、源IP地址、目的IP地址、TCP/UDP端口号等域段。针对哈希因子采用哈希算法进行哈希计算得到计算结果值。然后根据哈希计算结果值在负载分担链路中选择一条成员链路对数据包进行转发。逐流负载分担方式能够实现不同数据流(Flow)在不同成员链路上转发,也能够保证同一数据流中各数据包到达接收端的时序性。
例如,参见图1所示,为一种可能的逐流负载分担方式示意图。交换机A与交换机B之间至少包括两条成员链路,分别为成员链路1和成员链路2。图1中,数据流(flow)1通过成员链路1传输,即属于数据流(Flow)1的数据包1、2、3、6、7通过成员链路1传输。数据流2通过成员链路2传输,即属于flow2的数据包4、5通过成员链路2传输。
2)基于流表的flowlet负载分担。flowlet是指按照一定的时间间隔将数据流分割成的若干个子流。不同的flowlet之间独立选路,可能分担到不同的成员链路,也可能分担到同一条成员链路。不同的Flowlet对应不同的Flowlet流表表项。所述Flowlet流表表项用于指示每个Flowlet中包括的数据包的转发路径。交换机在转发数据包时会判断待转发的数据包与其所属的数据流中上一个数据包之间的时间间隔,若大于负载分担链路中各成员链路的最大链路传输时延,则认为待转发的数据包是一个新flowlet的首包;若小于负载分担链路中各成员链路的最大链路传输时延,则与上一个数据包属于同一个flowlet。交换机基于flowlet选取当前负载分担链路中负载较轻的成员链路进行转发,同一flowlet中的数据包选取相同的链路进行转发。
例如,参见图2所示,交换机A与交换机B之间至少包括两条成员链路,分别为成员链路1和成员链路2。数据流1被划分为flowlet1-1和flowlet1-2。数据流2仅包括flowlet2-1。 图2中,数据流1的flowlet1-1通过成员链路1传输,数据流1的flowlet1-2通过成员链路2传输,即属于数据流1的数据包1、2、3通过成员链路1传输,属于数据流1的数据包6、7通过成员链路2传输。数据流2的flowlet2-1通过成员链路2传输,即属于数据流2的数据包4、5通过成员链路2传输。
3)逐包负载分担。一种方式中,交换机基于数据包选择当前负载分担链路中负载较轻的成员链路转发,另一种方式中,基于可达路径轮流发送,即根据数据包到达的时间轮流分担到各个可达路径上进行转发。采用逐包负载分担时,针对相邻两个属于同一数据流的数据包,交换机为该两个相邻的数据包选择的成员链路可能相同,也可能不同。
例如,参见图3所示,交换机A与交换机B之间至少包括两条成员链路,分别为成员链路1和成员链路2。图3中,按照时间先后顺序达到交换机A的数据包依次为:属于数据流1的数据包1、数据包2、数据包3和数据包4,以及属于数据流2的数据包5。图2中,数据包1和数据包3通过成员链路1传输,数据包2、数据包4和数据包5通过成员链路2传输。
在IB网络中可以采用的负载分担方式可以包括4)逐流负载分担或者2)自适应路由负载分担。下面针对以上两种负载分担方式进行描述。
4)IB网的逐流负载分担。与应用于ETH的逐流负载分担方式类似。IB网络中的交换机使用数据包的特征信息,比如目的本地指示符(local identifier,LID),来查询转发表,根据查询转发表的查询结果进行转发。LID是IB网中用于控制交换机的控制器为主机中的网卡分配的用于转发数据包的编号。一般情况下,控制器为每个网卡会分配多个LID,从而发送端的网卡针对不同的数据流封装不同的目的LID,从而交换机配置的路由中,使用不同LID的数据流通过不同的成员链路转发。可以理解的是,发送端的网卡来为每个数据流选择一个LID,不同的目的LID表示在交换机网络中走不同的路径。
5)IB网的自适应路由(adaptive routing)负载分担方案。自适应路由分担方案支持两种自适应路由模式(adaptive routing Mode),分别为无界(free)模式和有界(bounded)模式。
free模式下采用的负载分担方式,类似于应用于ETH/IP网的逐包负载分担方式。针对每个数据包,根据交换机的出端口的拥塞程度来选择负载最轻的成员链路进行数据包的发送。Bounded模式下采用的负载分担方式,类似于应用于ETH/IP网的基于流表的flowlet的负载分担方式。
从上可以看出,当前网络中的负载分担方法,基本包括以下三种方式:(1)逐流负载分担技术,根据数据包的特征字段(比如五元组或者LID)进行负载分担的方式,也可以称为静态负载分担。它的缺点是没有考虑负载分担链路中各成员链路的利用率,从而会出现成员链路之间的负载分担不均衡,尤其当大数据流出现时会加剧所选中成员链路的拥塞甚至引起丢包。(2)基于流表的flowlet负载分担方式(或者Bounded模式下的负载分担技术),相比逐流负载分担效果较好,但是交换机识别flowlet较为复杂,同时需要存储大量流表,影响转发时延,交换机采用固定的flowlet时间间隔配置,时间间隔配置太小可能会导致乱序,配置太大导致负载部分效果不好。(3)逐包或自适应路由中free模式下的负载分担技术,负载分担效果相比前两种较好,该方式下需要确保流量接收端支持报文乱序组包的功能。
网络系统中,目前一般基于交换机全局进行固定配置以上三种负载分担方法中的一种, 在复杂组网和存在混合流量的场景下,负载分担效果无法保障。
基于此,本申请实施例提供一种负载分担方法及装置,基于端侧的流量特征或者端侧的诉求,由端侧指示交换机采用的负载分担规则,可以适应复杂组网和存在混合流量的场景。现有基于交换机全局进行固定配置的方式,并没有考虑端侧流量的特征或端侧的诉求,比如带宽优先还是时延优先,带宽优先需要尽量分担到多条路径,时延优先需要走最短路径。不管交换机采用哪种固定的负载分担规则,面对复杂组网和混合流量,可能平衡各种流量的不同需求。因此,本申请实施例中,端侧根据流量特征确定负载分担规则,并指示交换机所采用的负载分担规则,即端侧根据自身的流量特征或者诉求来指示交换机采用何种负载分担规则,从而交换机根据端侧指示的负载分担规则来转发流量。针对复杂组网中存在混合流量,不同类型的流量可以采用不同的负载分担规则,达到更好的负载分担效果。
下面结合具体实施例对本申请提供的方案进行详细说明。
本申请实施例中可以应用于包括发送端和接收端的网络系统中,发送端和接收端之间通过多个转发设备相连。发送端和接收端可以是用于生成或者接收数据报文的主机服务器、个人计算机等。转发设备也可以是负责转发数据报文的转发设备,比如路由器、交换机、转发器等。
作为一种示例,参见图4所示,为一种可能的网络系统架构示意图。网络系统中包括至少两台主机服务器。主机服务器之间建立通信连接。作为一种举例,主机服务器之间可以通过交换机网络和/或路由器网络互联。图4中以两台主机服务器为例,两台主机服务器之间通过交换器A-交换机D进行通信,应理解的是,图4仅是一种示例,并不对网络系统包括的主机服务器的数量以及交换机的数量进行限定。后续描述时,将主机服务器可以简称为主机为例。
作为一种示例,参见图5所示,主机服务器可以包括网卡和一个或者多个处理器。处理器可以采用通用的中央处理器(centralprocessing unit,CPU),微处理器,应用专用集成电路(application specificintegrated circuit,ASIC),或者一个或多个集成电路,或者图像处理器(graphics processing unit,GPU)用于执行相关程序,以实现本申请实施例所提供的技术方案。该网卡可以称为该处理单元的网卡。该网卡也可以称为网络接口卡(network interface card)、网络适配器(network adapter)、物理网络接口(physical network interface)等。
为适应复杂组网和混合流量的场景,本申请实施例中在数据报文中增加第一字段,第一字段的不同取值用于指示不同的负载分担规则。不同流类型的数据流可以采用不同的负载分担规则,发送端可以在第一字段中添加不同的取值,从而交换机可以根据第一字段的取值指示的负载分担规则来转发报文。作为一种示例,第一字段可以称为路由模式(Routing Mode,RM),第一字段还可以采用其它的名称,本申请对此不作具体限定。后续描述时,以称为RM为例。
如下示例性的描述几种可能的负载分担规则。
(1)负载分担规则1,基于流的选路模式,并且在全部可达路径中选择。
第一种可能示例中,针对一条数据流包括的多个数据报文,在全部可达路径选择一条传输路径。端侧的不同的数据流选择不同的传输路径,同一数据流的不同的数据报文选择相同的传输路径。
第二种可能的示例中,针对同一数据流包括的每个数据报文,在全部可达路径选择传 输路径。比如,在全部可达路径包括多条时,相邻的两个数据报文选择不同的传输路径。
第三种可能的示例中,在全部可达路径包括多条时,可以连续的N个数据报文选择同一传输路径。可以理解为:同一数据流包括的数据报文进行分组,连续的N个数据报文为一组选择同一传输路径。相邻的两个数据报文组选择不同的传输路径。
第四种可能的示例中,在全部可达路径包括多条时,可以在同一时间周期内的数据报文选择同一传输路径。可以理解为:连续一个时间周期的N个数据报文为一组,针对同一组的数据报文选择同一传输路径。相邻时间周期的数据报文组选择不同的传输路径。
第五种可能的示例中,在全部可达路径包括多条时,可以根据流量burst从多条可达路径中选择传输路径。比如相邻的两个数据报文的时间间隔小于第一时长,则采用同一传输路径发送。可以理解为,后发送的数据报文与前一个发送的数据报文的发送时间间隔小于第一时长,则后发送的数据报文与前一个发送的数据报文属于同一组(也可以称为流簇),相邻两个数据报文的时间间隔大于第一时长,则采用不同的传输路径发送。
(2)负载分担规则2,基于流的选路模式,并且在最短可达路径中选择。
第六种可能的示例中,针对一条数据流包括的多个数据报文,在最短可达路径选择一条传输路径。当最短可达路径包括多条时,针对端侧的不同的数据流选择不同的传输路径,同一数据流的不同的数据报文选择相同的传输路径。
第七种可能的示例中,针对同一数据流包括的每个数据报文,在最短可达路径选择传输路径。比如,在最短可达路径包括多条时,相邻的两个数据报文可以选择不同的传输路径。
第八种可能的示例中,在最短可达路径包括多条时,可以连续的N个数据报文选择同一传输路径。可以理解为:针对同一数据流包括的数据报文进行分组,连续的N个数据报文为一组选择同一传输路径。相邻的两个数据报文组选择不同的传输路径。
第九种可能的示例中,在最短可达路径包括多条时,可以在同一时间周期内的数据报文选择同一传输路径。可以理解为:连续一个时间周期的N个数据报文为一组,针对同一组的数据报文选择同一传输路径。相邻时间周期的数据报文组选择不同的传输路径。
第十种可能的示例中,在最短可达路径包括多条时,可以根据流量burst从多条最短可达路径中选择传输路径。比如相邻的两个数据报文的时间间隔小于第一时长,则采用同一传输路径发送。相邻两个数据报文的时间间隔大于第一时长,则采用不同的传输路径发送。
(3)负载分担规则3,自适应路由的选路模式,并且在全部可达路径中选择。
第十一种可能的示例中,基于全部可达路径的远近程度和拥塞程度选择传输路径。
(4)负载分担规则4,自适应路由的选路模式,并且在最短可达路径中选择。
第十二种可能的示例中,基于最短可达路径的负载在一个或者多个最短可达路径中选择传输路径。示例性地,当最短可达路径包括多条时,选择负载最小的最短可达路径。
在一种可能的实施方式中,在实现负载分担规则1和负载分担规则2时,在确定采用基于流的选择模式时,具体交换机如何在最短可达路径或者全部可达路径中选择,可以由端侧来指示。一种可能的示例中,在数据报文中增加第二字段,第二字段用于指示负载分担因子。进而交换机可以根据负载分担因子来选择传输路径。第二字段可以称为负载平衡(load balance,LB),第二字段也可以采用其它的名称,本申请对此不作具体限定。后续描述时,以称为LB为例。
发送端针对待发送的数据流封装数据报文时,在数据报文中封装RM和LB,RM用于指示转发设备采用的负载分担规则,LB指示负载分担因子,负载分担因子用于选择传输路径。交换机接收到数据报文后,可以根据RM确定采用的负载分担规则,然后结合LB的指示来选择传输路径。作为一种示例,交换机可以针对LB的取值进行哈希运算得到哈希值,根据得到的哈希值对可选择的路径数量进行取余运算,将取余运算结果对应的路径作为选择的转发路径。作为另一种示例,交换机可以针对LB的取值,以及数据报文中的五元组包括的一项或者多项进行哈希运算得到哈希值,然后根据得到的哈希值对可选择的路径数量进行取余运算,将取余运算结果对应的路径作为选择的转发路径。五元组可以包括源IP地址、目的IP地址、源端口号、目的端口号、协议号。
本申请实施例中RM的不同取值可以指示不同的负载分担规则。RM的不同取值与负载分担规则的映射关系,可以由网络管理器配置给各个网络设备和交换机,也可以是协议规定的。LB的不同取值用于选择传输路径。LB的取值范围可以由网络管理器分别配置给各个网络设备,也可以是协议规定的。
作为一种举例,以上述负载分担规则1-负载分担规则4为例。RM可以占用2比特(bit)。RM的不同取值用于指示不同的负载分担规则1-负载分担规则4。一种可能的取值配置方式是,其中1bit用于指示基于流的选路模式或者自适应路由的选路模式,另外1bit用于指示选路时在全部可达路径中选择或者在最短可达路径中选择。比如,高比特位指示选路模式,低比特位指示可选择的传输路径范围。又比如,低比特位指示选路模式,高比特位指示可选择的传输路径范围。例如参见表1所示。表1中以LB占用8比特为例,表1仅是一种示例,并不对RM和LB占用的比特数进行具体限制。
表1
下面结合附图对上述第一种可能的示例-第十二种可能的示例中进行详细说明。
示例1,针对第一种可能的示例进行说明:发送端侧通过在数据流包括的数据报文中指示交换机采用负载分担规则1,并且针对属于同一数据流的数据报文进行封装时在LB采用相同的取值。
例如,参见图6A所示,以表1为例。RM取值为0b00,表示采用负载分担规则1,即基于流的选路模式,在全部可达路径中选路。以数据流1(Flow1)为例,从主机1到达主机2。属于该数据流1的数据报文的RM取值均为0b00,LB字段取值均为LB1。从而交换机1接收到该属于数据流1的数据报文时,确定从交换机1到达主机2的可达路径包括4条,可以通过LB字段取值从4条可达路径选择一条传输路径传输。发送端可以针对 不同的数据流中的数据报文的LB字段配置不同的取值。可以理解的是,不同的数据流可以在设定时长内发送的数据流。
示例2,针对第二种可能的示例进行说明:发送端侧通过在数据流包括的数据报文中指示交换机采用负载分担规则1,并且针对属于同一数据流的相邻两个数据报文进行封装时在第二字段采用不同的取值。一条数据流中数据报文的LB取值逐包变化。逐个数据报文在多路径中进行负载分担,负载分担效果较好,但乱序程度严重,需要接收端具备重组乱序报文的能力。
例如,参见图6B所示,以表1为例。RM取值为0b00,表示采用负载分担规则1,即基于流的选路模式,在全部可达路径中选路。以数据流1(Flow1)为例,从主机1到达主机2。属于该数据流1的数据报文的RM取值均为0b00。参见6B所示,属于数据流的4个数据报文的LB字段取值分别为LB1、LB2、LB3和LB4。从而交换机1接收到该属于数据流1的数据报文时,确定从交换机1到达主机2的可达路径包括4条,可以通过LB字段取值(或者LB字段取值和五元组)进行哈希运算从4条可达路径选择一条传输路径传输。由于同一数据流的4个数据报文的LB值不同,因此通过哈希运算后分担到4条传输路径上传输。
示例3,针对第二种-第五种可能的示例进行说明:发送端侧通过在数据流包括的数据报文中指示交换机采用负载分担规则1,并且针对属于同一数据流的数据报文进行分组,属于同一组(同一流簇)的数据报文的第二字段的取值相同。一条数据流中数据报文的LB取值逐组变化。
例如,参见图6C所示,以表1为例。RM取值为0b00,表示采用负载分担规则1,即基于流的选路模式,在全部可达路径中选路。以数据流1(Flow1)为例,从主机1到达主机2。属于该数据流1的数据报文的RM取值均为0b00。参见6C所示,属于数据流的4个数据报文的LB字段取值分别为LB1、LB1、LB2和LB2。从而交换机1接收到该属于数据流1的数据报文时,确定从交换机1到达主机2的可达路径包括4条,可以通过LB字段取值(或者LB字段取值和五元组)进行哈希运算从4条可达路径选择一条传输路径传输。LB取值相同的数据报文通过同一传输路径转发,LB取值不同的数据报文通过不同的传输路径转发。
示例4,针对第六种可能的示例进行说明:发送端侧通过在数据流包括的数据报文中指示交换机采用负载分担规则2(在最短可达路径中选路),并且针对属于同一数据流的数据报文进行封装时在第二字段采用相同的取值。
作为一种举例,本申请实施例中,交换机配置的路由表可以包括用于指示各个传输路径远近程度的代价值(Cost)。Cost值越小可以标识传输路径越短。例如,参见表2所示的路由表。表2中,不同的出端口对应不同的传输路径。
表2
索引 | 出端口 | 代价值 |
目的地址 | Port1 | Cost1 |
Port2 | Cost2 | |
…… | …… | |
PortN | CostN |
从而交换机可以根据路由表确定一条或者多条可达路径,根据代价值可以从一条或者多条可达路径中确定出最短路径。应理解的是,如果仅存在一条可达路径,则该条可达路径为最短可达路径。
例如,参见图7A所示,以表1为例。RM取值为0b10,表示采用负载分担规则2,即基于流的选路模式,在最短可达路径中选路。以数据流1(Flow1)为例,从主机1到达主机2。属于该数据流1的数据报文的RM取值均为0b00,LB字段取值均为LB1。从而交换机1接收到该属于数据流1的数据报文时,确定从交换机1到达主机2的最短可达路径,可以通过路由表从全部可达路径中确定出最短可达路径。参见图7A所示,最短可达路径包括2条。可以进一步通过LB字段取值从2条可达路径选择一条传输路径传输数据流1。发送端可以针对不同的数据流中的数据报文的LB字段配置不同的取值。
示例5,针对第七种可能的示例进行说明:发送端侧通过在数据流包括的数据报文中指示交换机采用负载分担规则2,并且针对属于同一数据流的相邻两个数据报文进行封装时在第二字段采用不同的取值。一条数据流中数据报文的LB取值逐包变化。逐个数据报文在多条最短路径中进行负载分担,负载分担效果较好,但乱序程度严重,需要接收端具备重组乱序报文的能力。
例如,参见图7B所示,以表1为例。RM取值为0b10,表示采用负载分担规则2,即基于流的选路模式,在全部可达路径中选路。以数据流1(Flow1)为例,从主机1发往主机2。属于该数据流1的数据报文的RM取值均为0b10。参见7B所示,属于数据流1的4个数据报文的LB字段取值分别为LB1、LB2、LB3和LB4。从而交换机1接收到该属于数据流1的数据报文时,确定从交换机1到达主机2的最短可达路径包括2条,可以通过LB字段取值(或者LB字段取值和五元组)进行哈希运算从2条可达路径选择传输路径传输。因此,数据流1的4个数据报文分担到2条最短可达路径上传输。
示例6,针对第八种-第十种可能的示例进行说明:发送端侧通过在数据流包括的数据报文中指示交换机采用负载分担规则2,并且针对属于同一数据流的数据报文进行分组,属于同一组(同一流簇)的数据报文的第二字段的取值相同。一条数据流中数据报文的LB取值逐组变化。
例如,参见图7C所示,以表1为例。RM取值为0b10,表示采用负载分担规则1,即基于流的选路模式,在全部可达路径中选路。以数据流1(Flow1)为例,从主机1到达主机2。属于该数据流1的数据报文的RM取值均为0b10。参见7C所示,属于数据流的4个数据报文的LB字段取值分别为LB1、LB1、LB2和LB2。从而交换机1接收到该属于数据流1的数据报文时,确定从交换机1到达主机2的最短可达路径包括2条,可以通过LB字段取值(或者LB字段取值和五元组)进行哈希运算从2条最短可达路径选择传输路径传输。LB取值相同的数据报文通过同一最短可达路径转发,LB取值不同的数据报文通过不同的最短可达路径转发。
示例7,针对第十一种可能的示例进行说明:发送端侧通过在数据流包括的数据报文中指示交换机采用负载分担规则3。一种方式中,在采用负载分担规则3时,可以将LB的取值配置为缺省值。另一种方式中,在采用负载分担规则3中,数据报文可以不包括LB。
例如,参见图8所示,以表1为例。RM取值为0b01,表示采用负载分担规则3,即基于自适应路由的选路模式,在全部可达路径中选路。以数据流1(Flow1)为例,从主机1到达主机2。属于该数据流1的数据报文的RM取值均为0b01。交换机在接收到RM取 值为0b01的数据报文时,在路由表配置的全部可达路径中根据每个出端口的Cost以及出端口队列的拥塞程度决策选路。比如,选择拥塞程度小于第一门限值的传输路径中距离最短的传输路径。作为一种举例,交换机可以基于路由表确定最小Cost的出端口,即选择最短可达路径,如果有多条最短可达路径,选择负载最小的最短可达路径,即负载最小的出端口。如果最短可达路径的出端口拥塞程度超过第一门限值,则选择cost次高的不拥塞的出端口,以此类推。如图8所示,传输路径:交换机1→交换机5→交换机6,与传输路径:交换机1→交换机4→交换机6,远近程度相同,均为最短可达路径。交换机1接收到来自主机1的数据报文1后,确定两条最短可达路径,从最短可达路径中选择负载最低的传输路径:交换机1→交换机5→交换机6,将数据报文1转发给交换机5。交换机1接收到数据报文2后,负载最低的传输路径依然为:交换机1→交换机5→交换机6,将数据报文2转发给交换机5。交换机1接收到数据报文3后,负载最低的传输路径为:交换机1→交换机4→交换机6,将数据报文3转发给交换机4。交换机1接收到数据报文4后,负载最低的传输路径为:交换机1→交换机4→交换机6,将数据报文4转发给交换机5。接收到数据报文5时,两条最短可达路径的拥塞程度大于第一门限值,从而选择距离稍远些的传输路径:交换机1→交换机2→交换机3→交换机6。交换机1将数据报文5转发给交换机2。
示例8,针对第十二种可能的示例进行说明:发送端侧通过在数据流包括的数据报文中指示交换机采用负载分担规则3。一种方式中,在采用负载分担规则4时,可以将LB的取值配置为缺省值。另一种方式中,在采用负载分担规则4中,数据报文可以不包括LB。
例如,参见图9所示,以表1为例。RM取值为0b11,表示采用负载分担规则4,即基于自适应路由的选路模式,在最短可达路径中选路。以数据流1(Flow1)为例,从主机1到达主机2。属于该数据流1的数据报文的RM取值均为0b11。交换机在接收到RM取值为0b11的数据报文时,在路由表配置的全部可达路径中根据每个出端口的Cost决策选路。比如,选择负载最小的最短可达路径。作为一种举例,交换机可以基于路由表确定最小Cost的出端口,即选择最短可达路径,如果有多条最短可达路径,选择负载最小的最短可达路径,即负载最小的出端口。如图9所示,传输路径:交换机1→交换机5→交换机6,与传输路径:交换机1→交换机4→交换机6,远近程度相同,均为最短可达路径。交换机1接收到来自主机1的数据报文1后,确定两条最短可达路径,从最短可达路径中选择负载最低的传输路径:交换机1→交换机5→交换机6,将数据报文1转发给交换机5。交换机1接收到数据报文2后,负载最低的传输路径依然为:交换机1→交换机5→交换机6,将数据报文2转发给交换机5。交换机1接收到数据报文3后,负载最低的传输路径为:交换机1→交换机4→交换机6,将数据报文3转发给交换机4。交换机1接收到数据报文4后,负载最低的传输路径为:交换机1→交换机4→交换机6,将数据报文4转发给交换机5。接收到数据报文5时,两条最短可达路径的拥塞程度大于第一门限值,从而选择距离稍远些的传输路径:交换机1→交换机2→交换机3→交换机6。交换机1将数据报文5转发给交换机2。
在本申请实施例,发送端可以针对不同的流类型的数据流指示转发设备采用不同的负载分担规则。参见图10所示,为本申请实施例提供的一种可能的负载分担方法流程示意图。该负载分担方法可以由发送端执行,比如可以由发送端的设备中的网卡执行。
1001,发送端向转发设备发送第一数据报文,所述第一数据报文属于第一数据流,所述第一数据报文包括的RM的取值为第一值,所述第一值用于指示所述转发设备采用第一负载分担规则转发所述第一数据报文。转发设备可以是交换机或者路由器等具有转发数据报文功能的设备。
1002,传输路径中,任一转发设备根据RM的取值为第一值,采用第一负载分担规则向下一跳转发所述第一数据报文,直到到达第一数据流对应的接收端,图10中,以第一数据流对应的接收端为第一接收端为例。
1003,发送端向所述转发设备发送第二数据报文,所述第二数据报文属于第二数据流,所述第二数据报文包括的RM的取值为第二值,所述第二值用于指示所述转发设备采用第二负载分担规则转发所述第二数据报文。
1004,传输路径中,任一转发设备根据RM的取值为第二值,采用第二负载分担规则向下一跳转发所述第二数据报文,直到到达第二数据流对应的接收端。图10中,以第二数据流对应的接收端为第二接收端为例。
其中,所述第一数据流的流类型可以为老鼠流,所述第二数据流的流类型可以为大象流。
本申请实施例并不限定步骤1001和步骤1003之间的先后执行顺序,比如可以先执行1001,后执行1003,又比如可以先执行1003后执行1001。
通过本申请实施例提供的方法,发送端针对不同的流类型的数据流指示交换机采用不同的负载分担规则,从而不需要针对交换机进行全局配置负载分担规则。从而交换机可以针对不同的数据流采用不同的负载分担规则,适用复杂组网和混合流量的场景。
一种可能的实施方式中,针对老鼠流,可以采用自适应路由的选路模式,比如第一负载分担规则可以是负载分担规则3和负载分担规则4。针对大象流,可以采用基于流的选路模式,比如第二负载分担规则可以是负载分担规则3和负载分担规则4。
在一些实施例中,发送端可以根据数据流的业务类型和/或数据量大小来确定数据流的流类型。作为一种举例,比如事务性的数据流、WWW浏览产生的数据流或者搜索查询产生的数据流等,属于老鼠流。比如由数据备份、或虚拟机迁移等原因而产生的数据流等属于大象流。作为另一种举例,发送端确定待发送的数据流的流量大于流量门限值,则确定该数据流属于大象流,发送端确定待发送的数据流的流量小于或者等于流量门限值,则确定该数据流属于老鼠流。流量门限值可以根据区别大象流和老鼠流的经验值。
本申请实施例中封装以及发送数据报文的操作,可以由网卡实现。一种方式中,网卡可以根据数据流的业务类型和/或数据量大小来确定数据流的流类型。另一种方式中,处理器可以将数据流的流量特征发送给网卡,比如处理器可以向网卡指示待发送的数据流的流类型为大象流或者老鼠流。
另一种可能的实施方式中,发送端可以根据接收端的重组乱序报文的能力以及待发送数据流的流类型确定指示转发设备采用的负载分担规则。接收端的重组乱序报文能力,可以由控制器或者人工配置发送端,也可以由接收端与发送端之间进行信息交互,将自身的能力信息发送给对端。能力信息用于指示是否具备重组乱序报文的能力。以第一数据流为例,第一数据流为发往第一接收端的数据流。发送端可以从第一接收端获取第一接收端的能力信息,第一接收端的能力信息用于指示所述第一接收端是否具备重组乱序报文的能力。
如下以第一数据流为例,第一数据流为老鼠流,以第一数据流发往第一接收端为例。
一种举例中,第一接收端具备重组乱序报文的能力,则针对该老鼠流可以采用自适应路由的选路模式,比如采用负载分担规则3或者负载分担规则4。以表1为例,发送端可以在发送第一数据流时,在第一数据流的数据报文的RM字段封装0b01或者0b11。一种示例中,以封装0b01为例,转发设备在接收到第一数据流时,确定RM字段取值为0b01时,根据到达所述第一接收端的传输路径的远近程度以及拥塞程度在所述传输路径中选择用于转发所述第一数据报文的第一转发路径。比如,所述第一转发路径为拥塞程度小于第一门限值的传输路径中距离最短的传输路径。另一种示例中,以封装0b11为例,转发设备在接收到第一数据报文时,确定RM字段取值为0b11时,选择负载最小的最短可达路径。
另一种举例中,第一接收端不具备重组乱序报文的能力,则针对该老鼠流可以采用基于流的选路模式,比如采用负载分担规则2,指示转发设备基于LB来选择传输路径。例如,可以采用第六种可能的示例中的方式。再例如,可以采用第十种可能的示例的方式。以表1为例,发送端可以在发送第一数据流时,在第一数据流的数据报文的RM字段封装0b10。转发设备在接收到第一数据报文时,确定RM字段取值为0b10,根据LB(或者LB和五元组)进行哈希运算,从最短可达路径中选择一个转发路径。
比如采用第六种可能的示例中的方式,针对属于第一数据流的第一数据报文和第三数据报文为例,第一数据报文和第三数据报文中包括的RM的取值相同,LB的取值也相同。再比如,采用第十种可能的示例中的方式,第一数据报文和第三数据报文中包括的RM的取值相同,当第三数据报文与第一数据报文的发送时间间隔大于第一时长时,第三数据报文的LB的取值与第一数据报文的LB的取值不同;当第三数据报文与第一数据报文的发送时间间隔小于或者等于第一时长时,第三数据报文的LB的取值与第一数据报文的LB的取值不同。
如下以第二数据流为例,第二数据流为大象流,以第二数据流发往第二接收端为例。
一种举例中,第二接收端不具备重组乱序报文的能力。采用基于流的选路模式,比如采用负载分担规则1。发送端指示转发设备基于LB在全部可达路径中选择传输路径。例如,可以采用第一种可能的示例中的方式。再例如,可以采用第六种可能的示例的方式。以表1为例,发送端可以在发送第二数据流时,在第二数据流的数据报文的RM字段封装0b00。转发设备在接收到第二数据报文时,确定RM字段取值为0b00,根据LB(或者LB和五元组)进行哈希运算,从全部可达路径中选择一个转发路径。
比如,以发送端发送均属于第二数据流的第二数据报文和第四数据报文为例,采用第一种可能的示例中的方式时,第四数据报文的LB的取值与第二数据报文的LB的取值相同。采用第六种可能的示例的方式时,当第四数据报文与第二数据报文相邻且第四数据报文与第二数据报文的发送时间间隔大于第二时长时,第四数据报文的LB的取值与第二数据报文的LB的取值不同;当第四数据报文与第二数据报文相邻且第四数据报文与第二数据报文的发送时间间隔小于或者等于第二时长时,第四数据报文的LB的取值与第二数据报文的LB的取值相同。
另一种举例中,第二接收端具备重组乱序报文的能力。一些实施例中,可以采用基于流的选路模式,比如采用负载分担规则1。发送端指示转发设备基于LB在全部可达路径中选择传输路径。例如,可以采用第二种可能的示例中的方式。再例如,可以采用第三种可能的示例的方式。再例如,可以采用第四种可能的示例的方式。例如,可以采用第五种可能的示例的方式。以表1为例,发送端可以在发送第二数据流时,在第二数据流的数据 报文的RM字段封装0b00。转发设备在接收到第二数据报文时,确定RM字段取值为0b00,根据LB(或者LB和五元组)进行哈希运算,从全部可达路径中选择一个转发路径。另一些实施例中,可以采用自适应路由的选路模式,在全部可达路径中选择。比如采用负载分担规则3。
比如,以发送端发送均属于第二数据流的第二数据报文和第五数据报文为例,采用第二种可能的示例中的方式时,第五数据报文与第二数据报文相邻时,第五数据报文的LB的取值与第二数据报文的LB的取值不同。采用第三种可能的示例中的方式时,当第五数据报文与第二数据报文间隔的报文数大于第二数量时,第五数据报文的LB的取值与第二数据报文的LB的取值不同,当第五数据报文与第二数据报文的间隔的报文数小于或者等于第二数量时,第五数据报文的LB的取值与第二数据报文的LB的取值相同。采用第四种可能的示例中的方式时,当第五数据报文与第二数据报文不属于同一时间周期时,第五数据报文的LB的取值与第二数据报文的LB的取值不同,当第五数据报文与第二数据报文属于同一时间周期时,第五数据报文的LB的取值与第二数据报文的LB的取值相同。采用第五种可能的示例中的方式时,第五数据报文与第二数据报文间隔的报文数大于第二数量时,第五数据报文的LB的取值与第二数据报文的LB的取值不同,当第五数据报文与第二数据报文的间隔的报文数小于或者等于第二数量时,第五数据报文的LB的取值与第二数据报文的LB的取值相同。
作为一种举例,下面结合表1中RM的取值与负载分担规则的对应关系,发送端根据流类型和接收端的重组乱序报文的能力确定封装在数据报文中的RM和LB的取值,可以参见表3所示。应理解的是,表3仅作为一种举例,并不构成具体限定。
表3
下面结合具体的网络应用场景,示例性地对本申请实施例提供的方案进行详细说明。
一种示例性地的应用场景中,在如图11所示的网络场景中,host1发给host2 4条数据流。比如其中2条数据流属于大象流,图11中通过实线表示,另外2条数据流为老鼠流,图11通过虚线表示。host2具备重组乱序报文的能力,因此,host1发送给host2的同一数据流的不同数据报文可以在不同的路径上传输。以表3为例,host1向host2发送两条大象流时,针对2条大象流包括的多个数据报文中RM取值为0b00,即指示各个交换机采用基于流的选路模式,且在全部可达路径中选路。Host1针对每一条大象流,在封装数据报文 时,可以逐包切换LB的取值,或者多个数据报文切换一次LB的取值。从而交换机基于RM和LB进行转发,使2条大象流能够较为均匀的分担到4条可达路径上。
host1向host2发送两条老鼠流时,针对2条老鼠流包括的多个数据报文中RM取值为0b11,即指示各个交换机采用自适应路由的选路模式,在路由表配置的路径中选择最短可达路径进行选路。参见图11所示,host1与host2之间包括两条最短可达路径,从而交换机基于RM进行转发两条老鼠流中的数据报文时,可以针对每个数据报文实时选择负载最小的最短可达路径。因此,两条老鼠流中的数据报文传输在中间两条最短可达路径中且负载最小的传输路径上。
通过上述应用场景可以看出,本申请实施例中,针对带宽优先的大数据流量尽可能的分散到所有可达路径上,充分利用了多路径的大带宽。针对时延优先的小数据流量尽可能的在最短的且负载最轻的路径上发送,充分享受了最短路径的低延时。发送端通过网卡发送的数据报文携带RM和LB字段,差异化的给不同流量提供不同的转发策略,实现差异化的服务。
现有网络中端侧和交换机没有更好配合来实现更好的负载分担,交换机无法感知端侧的诉求,一般配置固定的负载分担规则,只能满足大带宽或低延时中的一种诉求,无法同时满足两种流类型的差异诉求。本申请提出由发送端根据流量特征和对端网卡能力,带RM和LB字段穿过网络,告诉沿途的交换机端侧的诉求,沿途的交换机根据网卡带来的RM和LB字段所表达出的诉求实现对应的负载分担技术。本申请实施例根据对端的网卡能力,大带宽的大象流分担到所有路径,低时延的老鼠流走最短路径,同时满足两种流类型的差异诉求。
另一种示例性地的应用场景中,在如图12所示的网络场景中,host1发给host2 4条数据流,假设4条数据流均为大象流。图12中通过实线表示。host3发给host4 1条数据流,该数据流为大象流。host2具备重组乱序报文的能力,同一数据流的不同数据报文可以在不同的传输路径上传输。Host4不具备重组乱序报文的能力。
以表3为例,host1向host2发送4条大象流时,一种示例中,针对4条大象流包括的多个数据报文中RM取值为0b00,即指示各个交换机采用基于流的选路模式,且在全部可达路径中选路。Host1针对每一条大象流,在封装数据报文时,可以逐包切换LB的取值,或者多个数据报文切换一次LB的取值。从而交换机基于RM和LB进行转发,使4条大象流能够较为均匀的分担到4条可达路径上。另一种示例中,针对host1向host2发送的4条大象流包括的多个数据报文中RM取值配置为0b01,即指示各个交换机采用自适应路由的选路模式,且在全部可达路径中选路。LB的取值可以采用缺省值。从而交换机基于RM和LB针对每个数据报文进行转发时,根据传输路径的负载选择负载最轻的传输路径,使4条大象流包括的各个数据报文能够实时被分担到负载最轻的传输路径上传输。
Host3向host4发送1条大象流时,针对4条大象流包括的多个数据报文中RM取值为0b00,即指示各个交换机采用基于流的选路模式,且在全部可达路径中选路。由于host4不具备重组乱序报文的能力,Host3针对该条大象流,在封装数据报文时,不切换LB的取值,该大象流中所有数据报文通过一条可达路径传输。
通过上述应用场景可以看出,本申请实施例中,对于接收端不具备重组乱序报文能力的大象流,则基于流来选择路径,并且通过LB取值来使得数据流通过一条路径传输,防止数据流中的数据报文发生乱序。对于接收端具备重组乱序报文能力的大象流,则基于自 适应路由的选路模式灵活选择负载最轻的传输路径,或者通过切换LB取值,使得大象流能够均匀的分担到4条可达路径上。本申请实施例中针对不能乱序的数据流占用一条路径,而可以乱序的数据流基于负载进行转发。针对重组乱序报文能力不一的混合组网,可以把所有可达路径的带宽尽量利用起来。而现有网络交换机感知不到端侧的重组乱序报文能力,针对重组乱序报文能力不一的混合组网,只能一刀切的采用基于流的负载分担技术,导致网络中的某些路径的拥塞情况加剧。
基于与上述方法同样的技术构思,本申请实施例提供一种负载分担装置1300,参见图13所示。负载分担装置1300可以包括发送模块1301。负载分担装置1300还可以包括处理模块1302。负载分担装置1300还可以包括接收模块1303。
在一种可能的应用场景中,所述装置1300可以应用于网络设备,也就是可以应用于发送设备,可以由网络设备中的处理器来实现,或者由网络设备中网卡来实现。负载分担装置1300用于实现上述任一实施例中主机或者处理器或者网卡实现的方法。
发送模块1301,用于向转发设备发送第一数据报文,所述第一数据报文属于第一数据流,所述第一数据报文包括的第一字段的取值为第一值,所述第一值用于指示所述转发设备采用第一负载分担规则转发所述第一数据报文;以及向所述转发设备发送第二数据报文,所述第二数据报文属于第二数据流,所述第二数据报文包括的第一字段的取值为第二值,所述第二值用于指示所述转发设备采用第二负载分担规则转发所述第二数据报文;其中,所述第一数据流的流类型与所述第二数据流的流类型不同。在一种可能的实现方式中,所述第一数据流的流类型为老鼠流,所述第二数据流的流类型为大象流。
在一种可能的实现方式中,所述处理模块1302,还可以在发送模块1301向转发设备发送第一数据报文之前,根据所述第一数据流的业务类型或者数据量大小确定所述第一数据流的流类型为老鼠流;或者向所述转发设备发送第二数据报文之前,根据所述第二数据流的业务类型或者数据量大小确定所述第二数据流的流类型为大象流。
在一种可能的实现方式中,所述第一数据流为发往第一接收端的数据流;所述处理模块1302,还用于根据所述第一接收端的重组乱序报文的能力以及所述第一数据流的流类型确定所述转发设备使用第一负载分担规则转发所述第一数据流。
在一种可能的实现方式中,所述接收模块1303还可以接收来自第一接收端的能力信息,所述能力信息用于指示所述第一接收端是否具备重组乱序报文的能力。
在一种可能的实现方式中,所述第二数据流为发往第二接收端的数据流;所述处理模块1302,还可以根据所述第二接收端的重组乱序报文的能力以及所述第二数据流的流类型确定所述转发设备使用第二负载分担规则转发所述第二数据流。
在一种可能的实现方式中,所述第一接收端具备重组乱序报文的能力;所述第一负载分担规则为:根据到达所述第一接收端的不同传输路径的远近程度以及拥塞程度在所述不同传输路径中选择用于转发所述第一数据报文的传输路径;或者,将到达所述第一接收端的最短路径用于转发所述第一数据报文的所述转发路径。
在一种可能的实现方式中,所述第一接收端不具备重组乱序报文的能力;所述第一数据报文还包括第二字段,所述第一数据报文包括的第二字段的取值用于指示所述第一数据报文的负载分担因子;所述第一负载分担规则为:基于所述负载分担因子将到达所述第一接收端的最短路径中用于转发所述第一数据报文的转发路径。
在一种可能的实现方式中,所述发送模块1301,还可以向转发设备发送第三数据报文, 所述第三数据报文属于所述第一数据流,所述第三数据报文包括的第一字段的取值为所述第一值,所述第三数据报文的目的地址指示所述第二接收端;所述第三数据报文还包括第二字段,所述第三数据报文包括的第二字段的取值用于指示所述第三数据报文的负载分担因子;
其中,所述第三数据报文的第二字段的取值与所述第一数据报文的第二字段的取值相同;或者,当所述第三数据报文与所述第一数据报文的发送时间间隔大于第一时长时,所述第三数据报文的第二字段的取值与所述第一数据报文的第二字段的取值不同;当所述第三数据报文与所述第一数据报文的发送时间间隔小于或者等于第一时长时,所述第三数据报文的第二字段的取值与所述第一数据报文的第二字段的取值不同。
在一种可能的实现方式中,所述第二数据报文还包括第二字段,所述第二数据报文包括的第二字段的取值用于指示所述第二数据报文的负载分担因子;其中,所述第二数据报文的第二字段的取值与所述第三数据报文的第二字段的取值不同。
在一种可能的实现方式中,所述第二数据报文还包括第二字段,所述第二数据报文包括的第二字段的取值用于指示所述第二数据报文的负载分担因子;所述第二负载分担规则为:基于所述负载分担因子在到达所述第二接收端的至少一条传输路径中选择用于转发所述第二数据报文的转发路径。
在一种可能的实现方式中,所述第二接收端不具备重组乱序报文的能力,所述发送模块1301,还用于向转发设备发送第四数据报文,所述第四数据报文属于所述第二数据流,所述第四数据报文包括的第一字段的取值为所述第二值,所述第四数据报文还包括第二字段,所述第四数据报文包括的第二字段的取值用于指示所述第四数据报文的负载分担因子;
其中,所述第四数据报文的第二字段的取值与所述第二数据报文的第二字段的取值相同;或者,当所述第四数据报文与所述第二数据报文相邻且所述第四数据报文与所述第二数据报文的发送时间间隔大于第二时长时,所述第四数据报文的第二字段的取值与所述第二数据报文的第二字段的取值不同;当所述第四数据报文与所述第二数据报文相邻且所述第四数据报文与所述第二数据报文的发送时间间隔小于或者等于第二时长时,所述第四数据报文的第二字段的取值与所述第二数据报文的第二字段的取值相同。
在一种可能的实现方式中,所述第二接收端具备重组乱序报文的能力;所述发送模块1301,还用于向所述转发设备发送第五数据报文,所述第五数据报文属于所述第二数据流,所述第五数据报文包括的第一字段的取值为所述第二值,所述第五数据报文还包括第二字段,所述第五数据报文包括的第二字段的取值用于指示所述第五数据报文的负载分担因子;其中,所述第五数据报文的第二字段的取值与所述第二数据报文的第二字段的取值不同;或者,当所述第五数据报文与所述第二数据报文的发送时间间隔大于第二时长时,所述第五数据报文的第二字段的取值与所述第二数据报文的第二字段的取值不同,当所述第五数据报文与所述第二数据报文的发送时间间隔小于或者等于第二时长时,所述第五数据报文的第二字段的取值与所述第二数据报文的第二字段的取值相同;或者,当所述第五数据报文与所述第二数据报文间隔的报文数大于第二数量时,所述第五数据报文的第二字段的取值与所述第二数据报文的第二字段的取值不同,当所述第五数据报文与所述第二数据报文的间隔的报文数小于或者等于第二数量时,所述第五数据报文的第二字段的取值与所述第二数据报文的第二字段的取值相同。
另一种可能的应用场景中,所述装置1300还可以应用于转发设备,可以由转发设备 中的处理器来实现,或者由转发设备中网卡来实现。负载分担装置1300用于实现上述任一实施例中转发设备或者交换机或者处理器实现的方法。
接收模块1303,用于接收第一数据报文,所述第一数据报文属于第一数据流,所述第一数据报文包括的第一字段的取值为第一值,以及接收第二数据报文,所述第二数据报文属于第二数据流,所述第二数据报文包括的第一字段的取值为第二值;发送模块1301用于根据所述第一值指示的第一负载分担规则转发所述第一数据报文;以及根据所述第二值指示的第二负载分担规则转发所述第二数据报文;所述第一数据流的流类型与所述第二数据流的流类型可以不同。在一种可能的实现方式中,所述第一数据流的流类型可为老鼠流,所述第二数据流的流类型可为大象流。
在一种可能的实现方式中,所述第一数据流为发往第一接收端的数据流,所述处理模块1302,具体用于在第一字段的取值为第一值时,根据到达所述第一接收端的传输路径的远近程度以及拥塞程度在所述传输路径中选择用于转发所述第一数据报文的第一转发路径;
其中,所述第一转发路径为拥塞程度小于第一门限值的传输路径中到达第一接收端距离最短的传输路径。
在一种可能的实现方式中,所述第一数据流为发往第一接收端的数据流,所述第一数据报文还包括第二字段,所述第二字段用于指示负载分担因子;所述处理模块1302,具体用于在第一字段的取值为第一值时,基于所述负载分担因子在到达所述第一接收端的至少一条最短路径中选择用于转发所述第一数据报文的转发路径。
在一种可能的实现方式中,所述第一数据报文包括第一目的地址,所述第一目的地址指示所述第一接收端,所述处理模块1302具体用于根据路由表确定所述第一目的地址对应的代价值从小到大的至少一个出端口;路由表中包括第一目的地址对应的多个出端口以及每个出端口对应的代价值,所述代价值指示从所述代价值对应的出端口到达所述第一接收端的传输路径的远近程度;从所述至少一个出端口中选择第一出端口,所述第一出端口的拥塞程度小于第一门限值且所述第一出端口为所述至少一个出端口中负载最低的出端口。
在一种可能的实现方式中,所述第二数据流为发往第二接收端的数据流,所述处理模块1302,具体用于在所述第一字段的取值为第二值时,基于所述负载分担因子在到达所述第二接收端的至少一条传输路径中选择用于转发所述第二数据报文的转发路径。
参见图14,是本申请另一实施例提供的一种芯片的结构性框图。如图14所示的本实施例中的芯片可以包括控制器1410和接口1420。控制器1410和接口1420相互配合,使得芯片执行上述实施例中网卡所执行的方法或者处理器所执行的方法。其中,控制器1410可以是中央控制器(CPU,central processing unit),通用处理器,协控制器,数字信号控制器(digital signal processor,DSP),专用集成电路(ASIC,application-specific integrated circuit),现场可编程门阵列(FPGA,field programmable gate array)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。该控制器也可以是实现计算功能的组合,例如包含一个或多个微控制器组合,DSP和微控制器的组合等等。
此外,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,上述计算机程序在被计算设备执行时实现前述主机或者交换机或者处理器或者网卡所实现的方法。
此外,本申请还提供了一种计算机程序产品,该计算机程序产品包括计算机指令。当该计算机指令被计算设备执行时实现前述主机或者交换机或者处理器或者网卡所实现的方法。
基于同一技术构思,本申请实施例中提供的负载分担装置解决问题的原理与本申请方法实施例解决问题的原理相似,因此各设备的实施可以参见装置的实施,为简洁描述,在这里不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (23)
- 一种负载分担方法,其特征在于,应用于发送端,所述方法包括:向转发设备发送第一数据报文,所述第一数据报文属于第一数据流,所述第一数据报文包括的第一字段的取值为第一值,所述第一值用于指示所述转发设备采用第一负载分担规则转发所述第一数据报文;向所述转发设备发送第二数据报文,所述第二数据报文属于第二数据流,所述第二数据报文包括的第一字段的取值为第二值,所述第二值用于指示所述转发设备采用第二负载分担规则转发所述第二数据报文;其中,所述第一数据流的流类型与所述第二数据流的流类型不同。
- 如权利要求1所述的方法,其特征在于,所述第一数据流的流类型为老鼠流,所述第二数据流的流类型为大象流。
- 如权利要求2所述的方法,其特征在于,所述方法还包括:向转发设备发送第一数据报文之前,根据所述第一数据流的业务类型或者数据量大小确定所述第一数据流的流类型为老鼠流;向所述转发设备发送第二数据报文之前,根据所述第二数据流的业务类型或者数据量大小确定所述第二数据流的流类型为大象流。
- 如权利要求2或3所述的方法,其特征在于,所述第一数据流为发往第一接收端的数据流;所述方法还包括:根据所述第一接收端的重组乱序报文的能力以及所述第一数据流的流类型确定所述转发设备使用第一负载分担规则转发所述第一数据流。
- 如权利要求4所述的方法,其特征在于,所述方法还包括:接收来自第一接收端的能力信息,所述能力信息用于指示所述第一接收端是否具备重组乱序报文的能力。
- 如权利要求2或3所述的方法,其特征在于,所述第二数据流为发往第二接收端的数据流;所述方法还包括:根据所述第二接收端的重组乱序报文的能力以及所述第二数据流的流类型确定所述转发设备使用第二负载分担规则转发所述第二数据流。
- 如权利要求4所述的方法,其特征在于,所述第一接收端具备重组乱序报文的能力;所述第一负载分担规则为:根据到达所述第一接收端的不同传输路径的远近程度以及拥塞程度在所述不同传输路径中选择用于转发所述第一数据报文的传输路径;或者,将到达所述第一接收端的最短路径作为转发所述第一数据报文的所述转发路径。
- 如权利要求6所述的方法,其特征在于,所述第一接收端不具备重组乱序报文的能力;所述第一数据报文还包括第二字段,所述第一数据报文包括的第二字段的取值用于指示所述第一数据报文的负载分担因子;所述第一负载分担规则为:基于所述负载分担因子将到达所述第一接收端的最短路径作为转发所述第一数据报文的转发路径。
- 如权利要求8所述的方法,其特征在于,还包括:向转发设备发送第三数据报文,所述第三数据报文属于所述第一数据流,所述第三数 据报文包括的第一字段的取值为所述第一值,所述第三数据报文的目的地址指示所述第二接收端;所述第三数据报文还包括第二字段,所述第三数据报文包括的第二字段的取值用于指示所述第三数据报文的负载分担因子;其中,所述第三数据报文的第二字段的取值与所述第一数据报文的第二字段的取值相同;或者,当所述第三数据报文与所述第一数据报文的发送时间间隔大于第一时长时,所述第三数据报文的第二字段的取值与所述第一数据报文的第二字段的取值不同;当所述第三数据报文与所述第一数据报文的发送时间间隔小于或者等于第一时长时,所述第三数据报文的第二字段的取值与所述第一数据报文的第二字段的取值不同。
- 如权利要求9所述的方法,其特征在于,所述第二数据报文还包括第二字段,所述第二数据报文包括的第二字段的取值用于指示所述第二数据报文的负载分担因子;其中,所述第二数据报文的第二字段的取值与所述第三数据报文的第二字段的取值不同。
- 如权利要求6所述的方法,其特征在于,所述第二数据报文还包括第二字段,所述第二数据报文包括的第二字段的取值用于指示所述第二数据报文的负载分担因子;所述第二负载分担规则为:基于所述负载分担因子在到达所述第二接收端的至少一条传输路径中选择用于转发所述第二数据报文的转发路径。
- 如权利要求11所述的方法,其特征在于,所述第二接收端不具备重组乱序报文的能力,所述方法还包括:向转发设备发送第四数据报文,所述第四数据报文属于所述第二数据流,所述第四数据报文包括的第一字段的取值为所述第二值,所述第四数据报文还包括第二字段,所述第四数据报文包括的第二字段的取值用于指示所述第四数据报文的负载分担因子;其中,所述第四数据报文的第二字段的取值与所述第二数据报文的第二字段的取值相同;或者,当所述第四数据报文与所述第二数据报文相邻且所述第四数据报文与所述第二数据报文的发送时间间隔大于第二时长时,所述第四数据报文的第二字段的取值与所述第二数据报文的第二字段的取值不同;当所述第四数据报文与所述第二数据报文相邻且所述第四数据报文与所述第二数据报文的发送时间间隔小于或者等于第二时长时,所述第四数据报文的第二字段的取值与所述第二数据报文的第二字段的取值相同。
- 如权利要求11所述的方法,其特征在于,所述第二接收端具备重组乱序报文的能力;所述方法还包括:向所述转发设备发送第五数据报文,所述第五数据报文属于所述第二数据流,所述第五数据报文包括的第一字段的取值为所述第二值,所述第五数据报文还包括第二字段,所述第五数据报文包括的第二字段的取值用于指示所述第五数据报文的负载分担因子;其中,所述第五数据报文的第二字段的取值与所述第二数据报文的第二字段的取值不同;或者,当所述第五数据报文与所述第二数据报文的发送时间间隔大于第二时长时,所述第五数据报文的第二字段的取值与所述第二数据报文的第二字段的取值不同,当所述第五数据报文与所述第二数据报文的发送时间间隔小于或者等于第二时长时,所述第五数据报文的第二字段的取值与所述第二数据报文的第二字段的取值相同;或者,当所述第五数据报文与所述第二数据报文间隔的报文数大于第二数量时,所述第五数据报文的第二字段的取值与所述第二数据报文的第二字段的取值不同,当所述第五数据报文与所述第二数据报文的间隔的报文数小于或者等于第二数量时,所述第五数据报文的第二字段的取值与所述第二数据报文的第二字段的取值相同。
- 一种负载分担方法,其特征在于,所述方法应用于转发设备,包括:接收第一数据报文,所述第一数据报文属于第一数据流,所述第一数据报文包括的第一字段的取值为第一值,根据所述第一值指示的第一负载分担规则转发所述第一数据报文;接收第二数据报文,所述第二数据报文属于第二数据流,所述第二数据报文包括的第一字段的取值为第二值,根据所述第二值指示的第二负载分担规则转发所述第二数据报文;所述第一数据流的流类型与所述第二数据流的流类型不同。
- 如权利要求14所述的方法,其特征在于,所述第一数据流的流类型为老鼠流,所述第二数据流的流类型为大象流。
- 如权利要求14或15所述的方法,其特征在于,所述第一数据流为发往第一接收端的数据流,根据所述第一值指示的第一负载分担规则转发所述第一数据报文,包括:根据到达所述第一接收端的传输路径的远近程度以及拥塞程度在所述传输路径中选择用于转发所述第一数据报文的第一转发路径;其中,所述第一转发路径为拥塞程度小于第一门限值的传输路径中到达所述第一接收端距离最短的传输路径。
- 如权利要求15所述的方法,其特征在于,所述第一数据流为发往第一接收端的数据流,所述第一数据报文还包括第二字段,所述第二字段用于指示负载分担因子;根据所述第一值指示的第一负载分担规则转发所述第一数据报文,包括:基于所述负载分担因子在到达所述第一接收端的至少一条最短路径中选择用于转发所述第一数据报文的转发路径。
- 如权利要求17所述的方法,其特征在于,所述第一数据报文包括第一目的地址,所述第一目的地址指示所述第一接收端;基于所述负载分担因子在到达所述第一接收端的至少一条最短路径中选择用于转发所述第一数据报文的转发路径,包括:根据路由表确定所述第一目的地址对应的代价值从小到大的至少一个出端口;路由表中包括第一目的地址对应的多个出端口以及每个出端口对应的代价值,所述代价值指示从所述代价值对应的出端口到达所述第一接收端的传输路径的远近程度;从所述至少一个出端口中选择第一出端口用于转发所述第一数据报文,所述第一出端口的拥塞程度小于第一门限值、且所述第一出端口为所述至少一个出端口中负载最低的出端口。
- 如权利要求15所述的方法,其特征在于,所述第二数据流为发往第二接收端的数据流,根据所述第二值指示的第二负载分担规则转发所述第二数据报文,包括:基于所述负载分担因子在到达所述第二接收端的至少一条传输路径中选择用于转发所述第二数据报文的转发路径。
- 一种负载分担装置,其特征在于,包括处理器和网卡,所述处理器用于接收所述网卡发送的数据报文,或向所述网卡发送数据报文;所述网卡用于实现如权利要求1至13或者14至19任一项所述的方法。
- 一种芯片,其特征在于,包括控制器和接口,所述控制器和所述接口相互配合,使得所述芯片执行如权利要求1至13或者14至19任一项所述的方法。
- 一种计算机可读存储介质,其特征在于,包括计算机程序,所述计算机程序在被计算设备执行时实现如权利要求1至13或者14至19任一项所述的方法。
- 一种计算机程序产品,其特征在于,包括计算机指令,当所述计算机指令被计算设备执行时,实现如权利要求1至13或者14至19任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP22758815.9A EP4287588A4 (en) | 2021-02-24 | 2022-02-18 | LOAD SHARING METHOD AND DEVICE AND CHIP |
US18/454,188 US20230396549A1 (en) | 2021-02-24 | 2023-08-23 | Load sharing method and apparatus, and chip |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110209432.3A CN114979005A (zh) | 2021-02-24 | 2021-02-24 | 一种负载分担方法、装置及芯片 |
CN202110209432.3 | 2021-02-24 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/454,188 Continuation US20230396549A1 (en) | 2021-02-24 | 2023-08-23 | Load sharing method and apparatus, and chip |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022179451A1 true WO2022179451A1 (zh) | 2022-09-01 |
Family
ID=82972813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2022/076919 WO2022179451A1 (zh) | 2021-02-24 | 2022-02-18 | 一种负载分担方法、装置及芯片 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230396549A1 (zh) |
EP (1) | EP4287588A4 (zh) |
CN (1) | CN114979005A (zh) |
WO (1) | WO2022179451A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230336401A1 (en) * | 2022-04-19 | 2023-10-19 | Dell Products L.P. | Slow drain and congestion spreading detection service |
CN117579543B (zh) * | 2024-01-16 | 2024-04-05 | 苏州元脑智能科技有限公司 | 一种数据流分割方法、装置、设备和计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1758632A (zh) * | 2005-11-11 | 2006-04-12 | 杭州华为三康技术有限公司 | 流量选择出口链路的方法及转发流量的路由设备 |
CN102404229A (zh) * | 2011-12-14 | 2012-04-04 | 华为技术有限公司 | 负载均衡系统、装置及方法 |
CN107864101A (zh) * | 2017-12-26 | 2018-03-30 | 杭州迪普科技股份有限公司 | 负载均衡方法和装置 |
US10505849B1 (en) * | 2015-07-02 | 2019-12-10 | Cisco Technology, Inc. | Network traffic load balancing |
CN111147598A (zh) * | 2019-12-30 | 2020-05-12 | 杭州迪普科技股份有限公司 | Http报文处理方法及装置 |
CN111490944A (zh) * | 2020-03-31 | 2020-08-04 | 新华三信息安全技术有限公司 | 一种信息处理方法、装置、设备及机器可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10476803B2 (en) * | 2017-12-18 | 2019-11-12 | Mellanox Technologies, Ltd. | Elephant flow detection in network access |
US10855604B2 (en) * | 2018-11-27 | 2020-12-01 | Xaxar Inc. | Systems and methods of data flow classification |
US20210119930A1 (en) * | 2019-10-31 | 2021-04-22 | Intel Corporation | Reliable transport architecture |
CN111277467B (zh) * | 2020-01-23 | 2021-12-28 | 华为技术有限公司 | 一种通信装置、数据流识别方法及相关设备 |
-
2021
- 2021-02-24 CN CN202110209432.3A patent/CN114979005A/zh active Pending
-
2022
- 2022-02-18 WO PCT/CN2022/076919 patent/WO2022179451A1/zh active Application Filing
- 2022-02-18 EP EP22758815.9A patent/EP4287588A4/en active Pending
-
2023
- 2023-08-23 US US18/454,188 patent/US20230396549A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1758632A (zh) * | 2005-11-11 | 2006-04-12 | 杭州华为三康技术有限公司 | 流量选择出口链路的方法及转发流量的路由设备 |
CN102404229A (zh) * | 2011-12-14 | 2012-04-04 | 华为技术有限公司 | 负载均衡系统、装置及方法 |
US10505849B1 (en) * | 2015-07-02 | 2019-12-10 | Cisco Technology, Inc. | Network traffic load balancing |
CN107864101A (zh) * | 2017-12-26 | 2018-03-30 | 杭州迪普科技股份有限公司 | 负载均衡方法和装置 |
CN111147598A (zh) * | 2019-12-30 | 2020-05-12 | 杭州迪普科技股份有限公司 | Http报文处理方法及装置 |
CN111490944A (zh) * | 2020-03-31 | 2020-08-04 | 新华三信息安全技术有限公司 | 一种信息处理方法、装置、设备及机器可读存储介质 |
Non-Patent Citations (1)
Title |
---|
See also references of EP4287588A4 * |
Also Published As
Publication number | Publication date |
---|---|
CN114979005A (zh) | 2022-08-30 |
EP4287588A1 (en) | 2023-12-06 |
EP4287588A4 (en) | 2024-04-03 |
US20230396549A1 (en) | 2023-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12058035B2 (en) | System and method for facilitating data-driven intelligent network | |
US10771389B2 (en) | Virtual tunnel endpoints for congestion-aware load balancing | |
US8085778B1 (en) | Voltage regulator | |
WO2022179451A1 (zh) | 一种负载分担方法、装置及芯片 | |
US10785145B2 (en) | System and method of flow aware resilient ECMP | |
US9807035B1 (en) | Using available bandwidths of an IP fabric to intelligently distribute data | |
CN111585911B (zh) | 数据中心网络流量负载的均衡方法 | |
CN102075437B (zh) | 一种通信方法、网关及网络 | |
WO2020192358A1 (zh) | 一种转发报文的方法和网络设备 | |
WO2021244450A1 (zh) | 一种通信方法及装置 | |
WO2011095017A1 (zh) | 一种实现负荷分担的方法和路由设备 | |
WO2023116580A1 (zh) | 路径切换方法、装置、网络设备、以及网络系统 | |
CN111224888A (zh) | 发送报文的方法及报文转发设备 | |
Subedi et al. | OpenFlow-based in-network Layer-2 adaptive multipath aggregation in data centers | |
US20210092058A1 (en) | Transmission of high-throughput streams through a network using packet fragmentation and port aggregation | |
WO2015039616A1 (zh) | 一种报文处理方法及设备 | |
WO2023011153A1 (zh) | 负载均衡的哈希算法信息的确定方法、装置及存储介质 | |
Kaymak et al. | Per-packet load balancing in data center networks | |
Li et al. | VMS: Traffic balancing based on virtual switches in datacenter networks | |
Kheirkhah Sabetghadam | Mmptcp: a novel transport protocol for data centre networks | |
TWI757887B (zh) | 用以促進一資料流從一發送端透過多路徑傳輸至一接收端的方法、網路控制器以及電腦程式產品 | |
CN111224884A (zh) | 拥塞控制的处理方法、报文转发装置及报文接收装置 | |
US12068963B1 (en) | Method and apparatus for source flow slicing for improving the load balancing | |
WO2024114361A1 (zh) | 一种数据传输方法和节点 | |
CN117714378A (zh) | 数据传输方法、装置、节点及系统 |
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: 22758815 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2022758815 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2022758815 Country of ref document: EP Effective date: 20230829 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |