Packet forwarding method and device, network equipment and storage medium

By obtaining the receiving and forwarding capabilities of network devices in the data center Ethernet forwarding model, determining the optimal forwarding path, and using virtual containers for packet forwarding, the problems of congestion and low performance in the distributed forwarding structure are solved, achieving more efficient traffic scheduling and load balancing.

CN119155250BActive Publication Date: 2026-03-27CHINA MOBILE COMM LTD RES INST +1
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-06-14
Publication Date
2026-03-27

AI Technical Summary

Technical Problem

Existing traditional data center Ethernet forwarding models suffer from congestion and low overall network performance in large-scale distributed forwarding structures, especially head-of-switch congestion, the inability of distributed forwarding nodes to perceive global information, and link congestion and outgoing port congestion caused by ECMP.

Method used

The first network device sends requests to the second and third network devices to obtain information on receiving and forwarding capabilities, determine the optimal forwarding path and queue depth, control the number of packets, avoid congestion on downstream device links and outgoing ports, and use virtual containers for packet forwarding.

Benefits of technology

It improves the overall packet forwarding performance of the network, reduces the probability of link congestion or outgoing port congestion in downstream network devices, and achieves more efficient traffic scheduling and load balancing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119155250B_ABST
    Figure CN119155250B_ABST
Patent Text Reader

Abstract

The application discloses a message forwarding method and device, network equipment and a storage medium. The method comprises the following steps: a first network equipment of a first network sends a first request to a second network equipment according to a destination address carried in a first message; the second network equipment represents a destination network equipment determined according to the destination address; the first request is used for requesting to acquire first information, and the first information represents the receiving capacity of the second network equipment; and a first response returned by the second network equipment is received, and the first response carries the first information.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of communication, and particularly relates to a message forwarding method and device, network equipment and storage medium. BACKGROUND

[0002] For the existing traditional data center Ethernet forwarding model, although the industry builds a large-scale distributed forwarding structure through a Clos architecture to meet the large-scale forwarding demand, due to self-determination of the forwarding path by each forwarding node, congestion is prone to occur in the distributed forwarding structure, and the overall network performance is low. SUMMARY

[0003] To solve the problems in the related art, the present application provides a message forwarding method and device, network equipment and storage medium.

[0004] The technical scheme of the present application is implemented as follows:

[0005] The present application provides a message forwarding method, applied to a first network device of a first network, and the method comprises the following steps:

[0006] According to a destination address carried by a first message, a first request is sent to a second network device, wherein the second network device represents a destination network device determined according to the destination address; the first request is used to request to obtain first information, and the first information represents a receiving capability of the second network device;

[0007] A first response returned by the second network device is received, and the first response carries the first information.

[0008] In the above scheme, the method further comprises the following steps:

[0009] According to the first information and the destination address, a second request is sent to all third network devices, wherein the second request is used to request to obtain second information, and the second information represents related information of a forwarding capability of a first outgoing interface of the third network device; the third network device represents a next-hop device of the first network device;

[0010] A second response returned by the third network device is received, and the second response carries the second information.

[0011] In the above scheme, the sending of the second request to all third network devices comprises the following steps:

[0012] In a case where the first message is a first message of a virtual container, the second request is sent to all third network devices.

[0013] In the above scheme, the method further comprises the following steps:

[0014] determine a second out-interface according to all the second information and the third information;

[0015] send a virtual container carrying the first message according to the second out-interface; wherein,

[0016] the third information represents a maximum capacity of the virtual container; and the second out-interface represents a first out-interface capable of forwarding the virtual container.

[0017] In the above scheme, the second out-interface satisfies at least one of the following:

[0018] a link state is optimal;

[0019] a queue depth is maximum;

[0020] a queue depth is minimum;

[0021] a load is minimum;

[0022] a congestion degree is minimum.

[0023] In the above scheme, the method further comprises:

[0024] determine a virtual container carrying the first message according to a byte number of the first message and an available byte number of the virtual container; wherein,

[0025] the available byte number of the virtual container is determined according to fourth information and fifth information, the fourth information represents a maximum capacity or a threshold of the virtual container, and the fifth information represents a total byte number of all first messages sent through the virtual container at different time instants.

[0026] In the above scheme, the determination of the virtual container carrying the first message comprises one of the following:

[0027] in a case where the byte number of the first message is less than or equal to the available byte number of the first virtual container, the virtual container carrying the first message is determined as the first virtual container;

[0028] in a case where at least one of the following is satisfied, a second virtual container is newly created, and the virtual container carrying the first message is determined as the second virtual container:

[0029] the byte number of the first message is greater than the available byte number of the first virtual container;

[0030] a survival time of the first virtual container is reached.

[0031] In the above scheme, the method further comprises:

[0032] in a case where at least one of the following is satisfied, the first message is cached to a first virtual queue, and the first request and / or the second request is periodically sent:

[0033] The first information represents a maximum receiving capability of the second network device;

[0034] The first out-interface of all third network devices does not have the capability of forwarding the virtual container;

[0035] The first virtual queue represents a virtual queue corresponding to a third out-interface of the second network device in the first network device, and the third out-interface is determined according to the destination address.

[0036] In the above scheme, the maximum capacity of the virtual container is a set value, and all first messages in the same virtual container are sent from the same entry routing device of the first network to the same virtual queue of the destination exit routing device; one virtual queue corresponds to one out-interface of the destination exit routing device and / or corresponds to a priority.

[0037] In the above scheme, the first message carries sixth information, and the sixth information of all first messages in the same virtual container is the same; the sixth information includes at least one of the following:

[0038] The first identifier is used to indicate a network device that creates a virtual container.

[0039] The second identifier is used to sort different virtual containers.

[0040] In the above scheme, the method further includes:

[0041] Receiving a second message sent by the first computing node;

[0042] Adding sixth information to the second message to obtain a first message.

[0043] Embodiments of the present application also provide a message forwarding method applied to a second network device of a first network, and the method includes:

[0044] Receiving a first request sent by a first network device of the first network; wherein the second network device represents a destination network device determined by the first network device according to a destination address carried by a first message, the first request is used to request to obtain first information, and the first information represents a receiving capability of the second network device;

[0045] Returning a first response to the first network device, and the first response carries the first information.

[0046] In the above scheme, the method further includes receiving a virtual container; wherein,

[0047] All the first packets in the virtual container carry the same sixth information, and the sixth information includes a first identifier and / or a second identifier; the first identifier is used to indicate a network device that creates the virtual container; and the second identifier is used to sort different virtual containers.

[0048] In the above scheme, the method further includes at least one of the following:

[0049] Discarding the sixth information carried by the first packet in the virtual container to obtain a second packet, and sending the second packet to the second computing node;

[0050] Sorting different virtual containers, and sending the first packet in the sorted virtual container to the second computing node.

[0051] In the above scheme, the maximum capacity of the virtual container is a set value, and all the first packets in the same virtual container are sent from the same ingress routing device of the first network to the same virtual queue of the destination egress routing device; one virtual queue corresponds to one egress interface of the destination egress routing device and / or corresponds to a priority.

[0052] The embodiment itself also provides a packet forwarding method applied to a third network device of the first network, and the method includes:

[0053] Receiving a second request sent by a first network device of the first network, wherein the second request is used to request to obtain second information, and the second information represents information related to the forwarding capability of a first egress interface of the third network device; and the first network device represents a previous hop device of the third network device;

[0054] Returning a second response to the first network device, and the second response carries the second information.

[0055] In the above scheme, the method further includes:

[0056] Receiving a virtual container sent by the first network device, wherein,

[0057] All the first packets in the virtual container carry the same sixth information, and the sixth information includes a first identifier and / or a second identifier; the first identifier is used to indicate a network device that creates the virtual container; and the second identifier is used to sort different virtual containers.

[0058] In the above scheme, the method further includes:

[0059] According to a destination address carried in the first packet, a third request is sent to all fourth network devices, wherein the third request is used to request to obtain seventh information, and the seventh information represents related information of a forwarding capability of a fourth outgoing interface of a fourth network device; the fourth network device represents a next-hop device of the third network device;

[0060] A third response returned by the fourth network device is received, and the third response carries the seventh information.

[0061] In the foregoing solution, the method further comprises:

[0062] According to all the seventh information and the third information, a fifth outgoing interface is determined;

[0063] According to the fifth outgoing interface, a virtual container is sent; wherein,

[0064] The third information represents a maximum capacity of the virtual container; and the fifth outgoing interface represents a fourth outgoing interface capable of forwarding the virtual container.

[0065] In the foregoing solution, the fifth outgoing interface satisfies at least one of the following conditions:

[0066] A link state is optimal;

[0067] A queue depth is maximum;

[0068] A queue depth is minimum;

[0069] A load is minimum;

[0070] A congestion degree is minimum.

[0071] In the foregoing solution, the method further comprises:

[0072] In a case where the fourth outgoing interface of all the fourth network devices does not have a capability of forwarding the virtual container, the packet container is cached to a second virtual queue, and the third request is periodically sent;

[0073] The second virtual queue represents a virtual queue corresponding to a third outgoing interface of a second network device in the third network device, and the second network device represents a destination network device determined according to the destination address carried in the first packet.

[0074] In the foregoing solution, the maximum capacity of the virtual container is a set value, and all the first packets in a same virtual container are sent from a same ingress routing device of the first network to a same virtual queue of a destination egress routing device; one virtual queue corresponds to one outgoing interface of the destination egress routing device and / or corresponds to a priority.

[0075] Embodiments of the present application further provide a packet forwarding device, comprising:

[0076] The first sending unit is configured to send a first request to a second network device according to a destination address carried in the first message, wherein the second network device represents a destination network device determined according to the destination address, and the first request is used to request to acquire first information representing a receiving capability of the second network device.

[0077] The first receiving unit is configured to receive a first response returned by the second network device, and the first response carries the first information.

[0078] Embodiments of the present application further provide a message forwarding device, comprising:

[0079] The second receiving unit is configured to receive a first request sent by a first network device of the first network, wherein the second network device represents a destination network device determined by the first network device according to a destination address carried in the first message, and the first request is used to request to acquire first information representing a receiving capability of the second network device.

[0080] The second sending unit is configured to return a first response to the first network device, and the first response carries the first information.

[0081] Embodiments of the present application further provide a message forwarding device, comprising:

[0082] The third receiving unit is configured to receive a second request sent by a first network device of the first network, wherein the second request is used to request to acquire second information representing related information of a forwarding capability of a first outgoing interface of the third network device, and the first network device represents a previous hop device of the third network device.

[0083] The third sending unit is configured to return a second response to the first network device, and the second response carries the second information.

[0084] Embodiments of the present application further provide a first network device, comprising a first processor and a first communication interface, wherein

[0085] The first communication interface is configured to send a first request to a second network device according to a destination address carried in a first message, and receive a first response returned by the second network device, wherein

[0086] The second network device represents a destination network device determined according to the destination address, the first request is used to request to acquire first information representing a receiving capability of the second network device, and the first response carries the first information.

[0087] Embodiments of the present application further provide a second network device, comprising a second processor and a second communication interface, wherein

[0088] The second communication interface is configured to receive a first request sent by a first network device of the first network and return a first response to the first network device, wherein

[0089] The second network device represents a destination network device determined by the first network device according to a destination address carried in a first packet, the first request is used to request to obtain first information, and the first information represents a receiving capability of the second network device; and the first response carries the first information.

[0090] Embodiments of the present application further provide a third network device, comprising a third processor and a third communication interface, wherein

[0091] The third communication interface is configured to receive a second request sent by a first network device of the first network and return a second response to the first network device, wherein

[0092] The first network device represents a previous hop device of the third network device; the second request is used to request to obtain second information, and the second information represents related information of a forwarding capability of a first out interface of the third network device; and the second response carries the second information.

[0093] Embodiments of the present application further provide a network device, comprising a processor and a memory for storing a computer program capable of running on the processor,

[0094] When the processor is used to run the computer program, the processor is configured to perform steps of any one of the above-mentioned methods on the side of the first network device, the second network device or the third network device.

[0095] Embodiments of the present application further provide a storage medium having a computer program stored thereon, and the computer program is configured to perform steps of any one of the above-mentioned methods on the side of the first network device, the second network device or the third network device when executed by a processor.

[0096] The packet forwarding method, device, network equipment and storage medium provided by the embodiments of the present application first, the first network equipment of the first network sends a first request to the second network equipment according to the destination address carried by the first packet, and the second network equipment returns a first response to the first network equipment; wherein the second network equipment represents the destination network equipment determined according to the destination address, the first request is used to request to obtain first information, and the first information represents the receiving capacity of the second network equipment, and the first response carries the first information; then, the first network equipment sends a second request to all third network equipment according to the first information and the destination address, and the third network equipment returns a second response to the first network equipment; wherein the third network equipment represents the next hop device of the first network equipment; the second request is used to request to obtain second information, and the second information represents the related information of the forwarding capacity of the first out interface of the third network equipment; the third network equipment and the corresponding first out interface are determined according to the destination address, and the second response carries the second information. The above scheme, after the first network equipment obtains the receiving capacity of the destination network equipment, whether to forward the received packet can be determined according to the receiving capacity of the destination network equipment, and / or how many bytes of the packet are determined to be forwarded; and in the case that the destination network equipment can continue to receive the packet, the first network equipment requests to obtain the forwarding capacity of the first out interface of the third network equipment, so as to forward the packet according to the forwarding capacity of the first out interface of the third network equipment. Therefore, the number of packets entering the first network can be controlled to be less than or equal to the forwarding traffic of the whole network, the probability of link congestion or out port congestion of the downstream network equipment is reduced, the whole network performance is improved, for example, the packet forwarding performance of the whole network. BRIEF DESCRIPTION OF DRAWINGS

[0097] Figure 1 An implementation flow diagram of a packet forwarding method of an embodiment of the present application is provided;

[0098] Figure 2 An example diagram of a virtual container of an embodiment of the present application is provided;

[0099] Figure 3 An example diagram of a virtual container of an embodiment of the present application is provided;

[0100] Figure 4 An implementation flow diagram of a packet forwarding method of an embodiment of the present application is provided;

[0101] Figure 5 An implementation flow diagram of a packet forwarding method of an embodiment of the present application is provided;

[0102] Figure 6 An implementation flow diagram of a packet forwarding method of an embodiment of the present application is provided;

[0103] Figure 7A message forwarding system structure example applicable to the embodiments of the present application;

[0104] Figure 8 A message forwarding device structure schematic diagram according to an embodiment of the present application;

[0105] Figure 9 A message forwarding device structure schematic diagram according to an embodiment of the present application;

[0106] Figure 10 A message forwarding device structure schematic diagram according to an embodiment of the present application;

[0107] Figure 11 A first network device structure schematic diagram according to an embodiment of the present application;

[0108] Figure 12 A second network device structure schematic diagram according to an embodiment of the present application;

[0109] Figure 13 A third network device structure schematic diagram according to an embodiment of the present application. DETAILED DESCRIPTION

[0110] In the traditional Ethernet forwarding model of a data center, the information carried by a message is the main body of a forwarding table, and the next hop Internet Protocol (IP) address, egress interface and other information to a destination address are found by querying a routing table hop by hop to guide message forwarding. Traffic scheduling adopts an Equal Cost Multi Path (ECMP) mechanism based on per-flow (data flow) for scheduling, and a data flow refers to a group of data packets with the same characteristic field. In terms of internal forwarding mechanism of a switch, when a data packet is transmitted from an input port to an output port of a destination in a switch, if the output port is performing a data packet forwarding operation, the data packet of the input port must be temporarily put on hold, at this time, a new data packet may arrive at the input port, and since the waiting queue of the input port has only one, if the previously held data packet is not processed, the later-arriving data packet will be in the waiting queue until the output port processes all the previous data packets and then forwards the later-arriving data packet. In which, each forwarding node is distributedly run, the related information of the egress interface comes from the device itself and adjacent devices, the device self-determines a forwarding path, and the network scale is continuously increased.

[0111] For the existing traditional data center Ethernet forwarding model, although the industry builds large-scale distributed forwarding structure through CLOS architecture to meet the large-scale forwarding demand, due to the self-determination of each forwarding node, the optimal network performance cannot be achieved; wherein the CLOS architecture is a network architecture, mainly describing the structure of a multi-stage circuit switching network. The current Ethernet forwarding model mainly has the following defects:

[0112] (1) There is a head-of-line blocking (HoL) in the switch: because the waiting queue of the input port of the switch has only one, if the previously waiting data packet is not processed, the later arriving data packet will be in the waiting state, causing congestion of the input port;

[0113] (2) Each forwarding node in the distributed forwarding structure cannot fully perceive the global information: because the switch forwards the data packet by looking up the routing table, when sending the data packet from one network node to another network node, because it cannot perceive the network situation of the downstream node, it leads to congestion of the downstream traffic;

[0114] (3) There are limitations in the perspective of ECMP method for sending data packets: when using ECMP to load balance network traffic, only from the perspective of itself, the traffic is sent through HASH routing, which is easy to cause link congestion, out port congestion, low utilization of switching network and other problems.

[0115] Based on this, in the embodiments of the present application, first, the first network device of the first network sends a first request to a second network device according to a destination address carried by a first packet, and the second network device returns a first response to the first network device; wherein the second network device represents a destination network device determined according to the destination address, the first request is used to request to obtain first information, and the first information represents the receiving capability of the second network device, and the first response carries the first information; then, the first network device sends a second request to all third network devices according to the first information and the destination address, and the third network device returns a second response to the first network device; wherein the third network device represents the next hop device of the first network device; the second request is used to request to obtain second information, and the second information represents the related information of the forwarding capability of the first out interface of the third network device; the third network device and the corresponding first out interface are determined according to the destination address, and the second response carries the second information. The above scheme, after the first network device obtains the receiving capability of the destination network device, it can determine whether to forward the received packet according to the receiving capability of the destination network device, and / or determine how many bytes of packets to forward; and in the case that the destination network device can continue to receive packets, the first network device requests to obtain the forwarding capability of the first out interface of the third network device, so as to forward the packet according to the forwarding capability of the first out interface of the third network device. Thus, the number of packets entering the first network can be controlled to be less than or equal to the forwarding traffic of the whole network, the probability of link congestion or out port congestion of the downstream network device is reduced, the whole network performance, such as the packet forwarding performance of the whole network, is improved.

[0116] The present application will be further described in detail below with reference to the accompanying drawings and embodiments.

[0117] The embodiments of the present application provide a packet forwarding method, applied to a first network device of a first network; the first network represents a packet forwarding network or a switching network, such as a distributed forwarding network or a distributed switching network; the first network device includes a source routing device and / or a source network card, the source routing device can be understood as the first hop routing device of the first network, the routing device includes a router and / or a switch, and the source network card can be understood as a network card that receives an original packet. When the network architecture of the first network is a leaf-spine network architecture, the source routing device includes a leaf switch (leaf switch). As shown in the figure, the method includes: Figure 1

[0118] Step 101: sending a first request to a second network device according to a destination address carried by a first packet.

[0119] ​The second network device is determined according to the destination address; and the first request is used to request to obtain first information, and the first information is used to represent the receiving capability of the second network device.

[0120] Here, the first network device determines the second network device in the first network according to the destination address carried in the first packet, and sends the first request to the second network device.

[0121] For example, the first network device can query a forwarding table according to the destination address carried in the first packet, determine the final outgoing interface of the first network of the destination address carried in the first packet, and determine the network device to which the final outgoing interface belongs as the second network device. Since there are other network devices between the first network device and the second network device, the first network device sends the first request to the second network device through other network devices on the forwarding path corresponding to the first packet.

[0122] It should be noted that the first packet refers to any packet in the virtual container, the first packet refers to any packet carried by the virtual container, or any packet sent in the manner of the virtual container. The second network device includes a destination routing device and / or a destination network card. The first request can be understood as an authorization request to request to schedule traffic. The first request can carry at least one of the following: the destination address carried in the first packet, the packet length of the first packet, and the maximum capacity of the virtual container.

[0123] The virtual container can be understood as a virtual container logically composed based on a packet, which can be referred to as a packet container (PKTC) or a virtual packet container.

[0124] In order to overcome the influence of random generation of the packet length, it is necessary to normalize the basic forwarding unit of load balancing and establish a fixed-length packet container. Based on this, in an embodiment, the maximum capacity of the virtual container is a set value, and all first packets in the same virtual container are sent from the same ingress routing device of the first network to the same virtual queue of the destination egress routing device; one virtual queue corresponds to one outgoing interface of the destination egress routing device and / or corresponds to a priority.

[0125] Here, the maximum capacity of the virtual container can be set according to the length of the longest service packet, and the maximum capacities of all virtual containers are the same. The network devices transmit in the minimum unit of the fixed-length virtual container, so that the first network supports packet-by-packet load balancing, and the traffic of the outgoing interfaces of different network devices is basically balanced, and the traffic on each physical link is also balanced.

[0126] The virtual container can accommodate at least one longest service message, and the maximum capacity of the virtual container is as small as possible in the case that the forwarding capability and the out-of-order reassembly capability of the network device allow, so as to finely split the data flow and fully improve the instantaneous load balancing. Since all the first messages in the same virtual container are sent from the same ingress routing device of the first network to the same virtual queue of the destination egress routing device, all the first messages in the same virtual container are transmitted through the same physical link, so as to ensure that the different messages in the same virtual container are not out of order, and the out-of-order reassembly pressure of the destination routing device or the destination network card can be reduced.

[0127] The virtual queue corresponds to an egress interface of the network device and / or a priority corresponding to the egress interface, and the virtual queue can be a dynamic global scheduling queue (DGSQ) or a virtual output queue (VOQ). The egress interface of the destination egress routing device is determined according to the destination address carried by the first message in the virtual container. The destination egress routing device is also referred to as a destination routing device, which can be understood as the last hop routing device of the first network determined according to the destination address carried by the first message in the message container. For example, the destination routing device is the routing device to which the egress interface (final egress interface) corresponding to the destination address in the forwarding table belongs. The ingress routing device is also referred to as a source routing device.

[0128] It should be noted that any network device in the first network can locally establish a virtual queue for each egress interface of all other network devices in the first network, so as to simulate the traffic scheduling of the egress interface from the local device to the other network devices.

[0129] In order to facilitate the out-of-order reassembly of the destination routing device or the destination network card on the received virtual container, in an embodiment, the first message carries sixth information, and the sixth information of all the first messages in the same virtual container is the same; the sixth information includes at least one of the following:

[0130] The first identifier is used to indicate the network device that creates the virtual container.

[0131] The second identifier is used to sort different virtual containers.

[0132] Here, the first identifier can be the identifier or number of the virtual container. The second identifier can be understood as the serial number of the virtual container, which is used to sort different virtual containers received by the destination routing device or the destination network card, so as to send the first messages in different virtual containers in the correct order. The serial numbers of different virtual containers are different, and the second identifiers contained in the sixth information carried by the first messages in different virtual containers are different.

[0133] Before sending the first request, the first network device needs to obtain the first message first, based on which, in an embodiment, the method further includes:

[0134] receiving a second message sent by the first computing node;

[0135] adding sixth information to the second message to obtain the first message.

[0136] Here, adding the sixth information to the second message to obtain the first message can be understood as loading the second message into a virtual container. The second message refers to the original message received by the first network device, and the second message can be an Ethernet message. The sixth information is carried in the Header of the second message, which can be referred to as a virtual container Header. The Header can be a standard extension header added outside the second message, or a media access control (MAC) header in the second message. The Header can also be located after the MAC header or the Internet Protocol (IP) header of the second message.

[0137] The sixth information in the Header of all the first messages in the same virtual container is the same, as shown in Figure 2 The first messages with the same sixth information logically form a virtual container.

[0138] Step 102: receiving a first response returned by the second network device, the first response carrying first information.

[0139] Here, the first information fed back by the second network device can indicate whether the current exceeds the maximum receiving capacity of the second network device, for example, the first information indicates whether the second network device can continue to receive messages, and / or the length of the messages that can be received by the second network device. When the current exceeds the maximum receiving capacity of the second network device, the second network device cannot continue to receive messages.

[0140] In order to reduce the probability of link congestion or out-port congestion of the third network device, the first network device can forward messages according to the forwarding capacity of the out-interface of the third network device, therefore, the first network device needs to obtain the forwarding capacity of the out-interface of the third network device before forwarding the messages. Based on this, in an embodiment, the method further includes:

[0141] According to the first information and the destination address, a second request is sent to all third network devices, wherein the second request is used to request to obtain second information, and the second information represents information related to a forwarding capability of a first out interface of the third network device; the third network device represents a next hop device of the first network device;

[0142] A second response returned by the third network device is received, and the second response carries the second information.

[0143] Here, the third network device represents a next hop device of the first network device. According to the destination address carried by the first packet and a topology structure of the first network, the first network device determines all next hop devices of the first network device, and obtains all third network devices; the first network device can determine whether the second network device can continue to receive the packet according to the first information, and / or determine a length of the packet that can be received by the second network device; in the case that the second network device can continue to receive the packet, the second request is sent to all third network devices, and the second response returned by the third network device is received. The second request can carry the destination address of the first packet, so that the third network device determines the first out interface of the third network device.

[0144] It should be noted that in the case that the first information represents that the second network device exceeds the maximum receiving capability, the first network device does not send the second request, so as to save resources of the first network device.

[0145] In an embodiment, the sending of the second request to all third network devices comprises:

[0146] In the case that the first packet is a first packet of a virtual container, the second request is sent to all third network devices.

[0147] Here, in the case that at least one of the following conditions is met, if the first packet is a first packet of a virtual container, the first network device sends the second request to all third network devices:

[0148] All first packets in the same virtual container are transmitted through the same physical link;

[0149] The length of the packet that can be received by the second network device is greater than or equal to a maximum capacity of the virtual container.

[0150] It should be noted that if the first packet is not a first packet of a virtual container, the first network device does not send the second request, so as to save resources of the first network device. The maximum capacity can be understood as a maximum length or a total byte number.

[0151] In actual application, the out interface of the second network device and / or the third network device can be congested, and the first network device cannot timely transmit the first packet out, and needs to buffer the first packet locally and wait for an opportunity to transmit the first packet. Based on this, in an embodiment, the method further includes:

[0152] In a case that at least one of the following conditions is met, the first packet is buffered to the first virtual queue, and the first request and / or the second request is periodically transmitted:

[0153] The first information indicates that the maximum receiving capacity of the second network device is exceeded;

[0154] All first out interfaces of the third network device do not have the capability of forwarding the virtual container;

[0155] The first virtual queue indicates a virtual queue corresponding to a third out interface of the destination network device in the first network device, and the third out interface is determined according to the destination address.

[0156] Here, in a case that the first information indicates that the maximum receiving capacity of the second network device is exceeded, the first packet is buffered to the first virtual queue in the first network device, and the first request is periodically transmitted to the second network device. The maximum receiving capacity of the second network device is exceeded, which can be understood as that the out interface of the second network device is congested, or the length of the packet that can be transmitted by the second network device is less than the length of the first packet.

[0157] In a case that all first out interfaces of the third network device do not have the capability of forwarding the virtual container, the first packet is buffered to the first virtual queue in the first network device, and the second request is periodically transmitted to all third network devices. The first out interface of the third network device does not have the capability of forwarding the virtual container, which can be understood as that the out interface of the third network device is congested, or the length of the packet that can be transmitted by the third network device is less than the length of the first packet.

[0158] It should be noted that the first network device can locally establish a virtual queue corresponding to each out interface of each routing device in the first network except the first network device. The first packet is buffered to the first virtual queue in the first network device, which is used to simulate the traffic scheduling of the out interface of the first network device to the second network device.

[0159] In a case that the first information indicates that the maximum receiving capacity of the second network device is not currently exceeded, the first network device performs packet forwarding according to the length of the packet that can be received by the second network device, and determines a forwarding path with better link state before forwarding the packet, so as to reduce the probability that the out interface of the third network device is congested. Based on this, in an embodiment, the method further includes:

[0160] Based on all the second and third information, determine the second output interface;

[0161] According to the second output interface, a virtual container carrying the first message is sent; wherein,

[0162] The third information represents the maximum capacity of the virtual container; the second output interface represents the first output interface of the virtual container that can forward data.

[0163] Here, based on all the second and third information, the first network device determines the first outgoing interface of the virtual container that can be forwarded among all the first outgoing interfaces of the third network devices, thus obtaining the second outgoing interface. Since all first packets in the same virtual container are transmitted through the same physical link, the forwarding capacity of the second outgoing interface is greater than or equal to the maximum capacity of the virtual container to avoid congestion on the first outgoing interface of the third network device. In practical applications, the second information may include at least one of the following: the link load level and / or port occupancy rate of the outgoing interface of the second network device, and the queue depth of the virtual queue corresponding to the third outgoing interface of the second network device in the third network device.

[0164] Once the second outgoing interface is determined, the first network device sends a virtual container carrying the first message to the third network device to which the second outgoing interface belongs. Specifically, the first network device determines the outgoing interface to which the second outgoing interface is connected based on the topology of the first network, and sends the virtual container carrying the first message through that outgoing interface.

[0165] Sending the virtual container carrying the first message can be understood as sending the first message using a virtual container. For example... Figure 3 As shown, the first network device can send different first packets through the same virtual container at different times; that is, when the first network device detects a first packet, it sends the first packet through a virtual container, instead of storing multiple first packets in the virtual container before sending. The first packet is generated by the first network device based on the received original packet (second packet), and the virtual container is generated or created by the first network device; the virtual container is forwarded between different network devices. Specifically, when the total number of bytes of the first packets sent through the same virtual container at different times approaches or equals the maximum capacity of the virtual container, the state of the virtual container switches from available to unavailable. At this time, the first network device needs to create a new virtual container to send the first packet.

[0166] In one embodiment, the second output interface satisfies at least one of the following:

[0167] The link status is optimal.

[0168] the maximum available queue depth;

[0169] the minimum queue depth;

[0170] the minimum load;

[0171] the minimum congestion level.

[0172] Here, the queue depth can be understood as the queue depth of the virtual queue, and the maximum available queue depth is obtained when the queue depth is the minimum. The available queue depth is determined according to the total number of bytes that can be cached by the virtual queue and the total number of bytes that have been occupied. In this embodiment, the first network device can preferably select the link with the best link state to send the virtual container, so as to reduce the probability of traffic congestion of the third network device.

[0173] Before sending the virtual container carrying the first message, it is necessary to determine the virtual container carrying the first message. Based on this, in an embodiment, the method further comprises:

[0174] determining the virtual container carrying the first message according to the number of bytes of the first message and the available number of bytes of the virtual container; wherein,

[0175] The available number of bytes of the virtual container is determined according to the fourth information and the fifth information, the fourth information representing the maximum capacity or threshold of the virtual container, and the fifth information representing the total number of bytes of all first messages that have been sent through the virtual container at different time points.

[0176] Here, the virtual container carrying the first message can be understood as the virtual container to which the first message belongs, or the virtual container corresponding to the first message. When the first network device obtains the first message, if the virtual container created by the first network device is empty and the first message is the first message of the virtual container, the first message belongs to the virtual container. If the virtual container created by the first network device is not empty and the first message is not the first message of the virtual container, the first network device determines the virtual container corresponding to the first message, and determines whether the virtual container corresponding to the first message can accommodate the first message according to the number of bytes of the first message and the available number of bytes of the virtual container corresponding to the first message. If the virtual container corresponding to the first message can accommodate the first message, the virtual container corresponding to the first message is determined as the virtual container carrying the first message; if the virtual container corresponding to the first message cannot accommodate the first message, the first network device needs to create a new virtual container to send the first message. The number of bytes of the first message refers to the total number of bytes of the first message. The maximum capacity of the virtual container is in units of bytes (B, Byte), and the number of bytes can be understood as the number of bytes. The threshold is a set value and is less than or equal to the maximum capacity.

[0177] The specific process of determining the virtual container corresponding to the first message by the first network device is as follows:

[0178] Manner one: The first network device determines the virtual container corresponding to the first message according to the first identifier and / or destination address carried by the first message. Specifically, the virtual container to which the first message belongs can be determined according to a comparison result obtained by comparing the first identifier carried by the first message with the first identifier of each virtual container recorded by the first network device. The virtual container corresponding to the first message can be determined by comparing the destination address carried by the first message with the destination address of the first message sent through the virtual container, according to the comparison result. The destination address of the first message sent through the virtual container is recorded by the first network device and saved in a local database.

[0179] Manner two: The first network device calculates a second hash value of the first identifier carried by the first message, compares the second hash value with a first hash value corresponding to the first message sent through the virtual container, and determines the virtual container corresponding to the first message according to the comparison result. The first hash value corresponding to the first message sent through the virtual container is recorded by the first network device and saved in a local database.

[0180] In an embodiment, the determining the virtual container carrying the first message comprises:

[0181] In the case that the number of bytes of the first message is less than or equal to the available number of bytes of the first virtual container, the virtual container carrying the first message is determined to be the first virtual container.

[0182] In the case that at least one of the following conditions is met, a second message container is newly created, and the virtual container carrying the first message is determined to be the second virtual container:

[0183] The number of bytes of the first message is greater than the available number of bytes of the first virtual container.

[0184] The lifetime of the first virtual container is reached.

[0185] Here, the number of bytes of the first message being less than or equal to the available number of bytes of the first virtual container indicates that the first virtual container can accommodate the first message; and the number of bytes of the first message being greater than the available number of bytes of the first virtual container indicates that the first virtual container cannot accommodate the first message.

[0186] Based on the related description of the above embodiments, the embodiments of the present application also provide a message forwarding method applied to a second network device of a first network. Referring to Figure 4 The method comprises:

[0187] Step 401: receiving a first request sent by a first network device of the first network.

[0188] The second network device represents a destination network device determined by the first network device according to a destination address carried in the first packet. The first request is used to request the first information, and the first information represents a receiving capability of the second network device.

[0189] Step 402: returning a first response to the first network device, the first response carrying the first information.

[0190] In a case where the first information represents that the first network device does not exceed the maximum receiving capability of the second network device, in an embodiment, the method further includes:

[0191] receiving a virtual container; wherein,

[0192] All the first packets in the virtual container carry the same sixth information, and the sixth information includes a first identifier and / or a second identifier. The first identifier is used to indicate a network device that creates the virtual container, and the second identifier is used to sort different virtual containers.

[0193] Here, the virtual container is sent by an upper hop device of the second network device. The upper hop device of the second network device is a third network device or a fourth network device, and the fourth network device is a next hop device of the third network device. For example, when the network architecture of the first network is a leaf-spine network architecture, the upper hop device of the second network device is the third network device as described above.

[0194] In an embodiment, the method further includes at least one of the following:

[0195] discarding the sixth information carried in the first packet in the virtual container to obtain a second packet, and sending the second packet to the second computing node;

[0196] sorting different virtual containers, and sending the first packet in the sorted virtual container to the second computing node.

[0197] Here, in a case where the virtual container is received, the first packet in the virtual container is sent to the second computing node. The specific implementation manner of sending the first packet in the virtual container to the second computing node is as follows:

[0198] Since different first packets of the same virtual container can arrive in sequence, the second network device does not need to sort different first packets in the same virtual container. If the second network device receives different first packets of the same virtual container, the second network device decapsulates the first packet to remove the Head used to carry the sixth information in the first packet and discards the Head, so as to discard the sixth information carried in the first packet to obtain a second packet, and send the second packet to the second computing node.

[0199] If the second network device receives the first packet of a different virtual container, the second network device sorts all the virtual containers according to the second identifier carried by the first packet in the virtual container, to obtain a virtual container sequence; for the first packet in each virtual container in the virtual container sequence, the first packet is decapsulated according to the above method, to obtain a corresponding second packet, and the second packet is sent to the second computing node.

[0200] In actual application, the second network device sorts all the virtual containers according to the second identifier carried by the first packet, to obtain a virtual container sequence, in a case that the second network device receives all the first packets in each virtual container.

[0201] In an embodiment, the maximum capacity of the virtual container is a set value, and all the first packets in the same virtual container are sent from the same ingress routing device of the first network to the same virtual queue of the destination egress routing device; one virtual queue corresponds to one egress interface of the destination egress routing device and / or corresponds to a priority.

[0202] Based on the related description of the above embodiment, correspondingly, the embodiment of the present application also provides a packet forwarding method applied to a third network device of a first network. Referring to Figure 5 , the method comprises:

[0203] Step 501: receiving a second request sent by a first network device of the first network.

[0204] The second request is used to request to obtain second information, and the second information represents the related information of the forwarding capability of a first egress interface of the third network device; the first network device represents the previous hop device of the third network device.

[0205] Here, the second request can carry the destination address of the first packet, so that the third network device determines the first egress interface of the third network device according to the destination address carried by the second request.

[0206] Step 502: returning a second response to the first network device, and the second response carries the second information.

[0207] Here, the third network device obtains the second information and returns the second response to the first network device.

[0208] In order to reduce the probability of congestion of the first egress interface of the third network device, the first network device sends a packet container to the third network device in a case that the first network device determines that the first egress interface of the third network device can forward the packet container according to the second information. Based on this, in an embodiment, the method further comprises:

[0209] receiving a virtual container sent by the first network device, wherein,

[0210] All the first packets in the virtual container carry the same sixth information, the sixth information comprising the first identifier and / or the second identifier; the first identifier is used to indicate the network device creating the virtual container; the second identifier is used to sort between different virtual containers.

[0211] In an embodiment, the maximum capacity of the virtual container is a set value, and all the first packets in the same virtual container are sent from the same ingress routing device of the first network to the same virtual queue of the destination egress routing device; one virtual queue corresponds to one egress interface of the destination egress routing device and / or corresponds to a priority.

[0212] In order to reduce the probability of congestion of the egress interface of the fourth network device, before the third network device forwards the packet container, it is necessary to determine the forwarding capability of the corresponding egress interface of the next hop device of the third network device, to determine whether the fourth network device can forward the virtual container, so as to decide whether to send the virtual container to the fourth network device. Based on this, in an embodiment, the method further comprises:

[0213] sending a third request to all fourth network devices according to the destination address carried by the first packet, wherein the third request is used to request to obtain seventh information, the seventh information representing the related information of the forwarding capability of the fourth egress interface of the fourth network device; the fourth network device represents the next hop device of the third network device;

[0214] receiving the third response returned by the fourth network device, the third response carrying the seventh information.

[0215] Here, the destination address carried by the first packet of the third network device determines all the next hop devices of the third network device, obtains all the fourth network devices, and sends the third request to all the fourth network devices. The third request carries the destination address carried by the first packet in the received virtual container, so that the fourth network device determines the fourth egress interface of the fourth network device.

[0216] It should be noted that when the network structure of the first network is a leaf-spine network structure, the fourth network device is the second network device described above, and the fourth egress interface of the fourth network device is the third egress interface of the second network. In the case where the fourth network device is not the second network device, the fourth network device also needs to forward the received virtual container to the next hop device of the fourth network device, and the fourth network device forwards the virtual container in a similar manner to the third network device. Here, it is not described in detail.

[0217] In the case where the fourth network device can forward the virtual container, according to the forwarding capability of the fourth egress interface of the fourth network device, a forwarding path with better link state is determined, and based on this, in an embodiment, the method further comprises:

[0218] determining the fifth outgoing interface according to all the seventh information and the third information;

[0219] sending the virtual container according to the fifth outgoing interface; wherein,

[0220] the third information represents a maximum capacity of the virtual container; and the fifth outgoing interface represents a fourth outgoing interface capable of forwarding the virtual container.

[0221] Here, the method for the third network device to determine the fifth outgoing interface and forward the virtual container is similar to the method for the first network device to determine the second outgoing interface and forward the virtual container. For details, refer to the relevant description above, which will not be repeated here.

[0222] In an embodiment, the fifth outgoing interface satisfies at least one of the following:

[0223] optimal link state;

[0224] maximum available queue depth;

[0225] minimum queue depth;

[0226] minimum load;

[0227] lowest congestion level.

[0228] Here, the third network device can preferably send the virtual container through the link with the best link state to reduce the probability of traffic congestion in the fourth network device.

[0229] In an embodiment, the method further comprises:

[0230] in the case where all the fourth outgoing interfaces of the fourth network device do not have the capability of forwarding the virtual container, buffering the message container to a second virtual queue, and periodically sending the third request;

[0231] wherein the second virtual queue represents a virtual queue corresponding to a third outgoing interface of a second network device in the third network device, and the second network device represents a destination network device determined according to the destination address carried by the first message.

[0232] The first network is taken as a distributed switching network with a leaf-spine network architecture as an example, and the application will be further described in detail in combination with application examples.

[0233] Figure 6 The message forwarding method shown comprises:

[0234] Step 1: The first computing node sends a second message to a source switch.

[0235] Here, the first computing node sends the second packet to the source switch through a network card. The source switch is a leaf switch.

[0236] Step 2: The source switch receives the second packet, adds sixth information to the second packet, and obtains the first packet.

[0237] The first packet carries the sixth information, and the sixth information of all the first packets in the same virtual container is the same; the sixth information includes at least one of the following:

[0238] A first identifier, the first identifier being used to indicate a network device creating a virtual container;

[0239] A second identifier, the second identifier being used to sort different virtual containers.

[0240] Step 3: The source switch sends a first request to the destination switch according to a destination address carried by the second packet / first packet.

[0241] The first request is used to request to obtain first information, and the first information represents a receiving capability of the destination switch.

[0242] Step 4: The source switch receives a first response returned by the destination switch, and the first response carries the first information.

[0243] Step 5: In a case where the first information represents that a maximum receiving capability of the destination switch is not exceeded, the source switch sends a second request to all spine switches connected to the source switch according to the first information and the destination address.

[0244] The second request is used to request to obtain second information, and the second information represents information related to a forwarding capability of a first outgoing interface of the spine switch.

[0245] Step 6: The source switch receives a second response returned by the spine switch, and the second response carries the second information.

[0246] In an embodiment, the source switch caches the first packet to a first virtual queue and periodically sends the first request and / or the second request in a case where at least one of the following is met:

[0247] The first information represents that a maximum receiving capability of the second network device is exceeded;

[0248] All first outgoing interfaces of the third network device do not have a capability of forwarding the virtual container;

[0249] The first virtual queue represents a virtual queue corresponding to a third outgoing interface of the second network device in the first network device, and the third outgoing interface is determined according to the destination address.

[0250] Step 7: The source switch determines the second out-interface according to all the second information and the third information.

[0251] The third information represents a maximum capacity of the virtual container; and the second out-interface represents a first out-interface of the virtual container.

[0252] Step 8: The source switch sends the virtual container carrying the first packet to a spine switch to which the second out-interface belongs.

[0253] The third information represents a maximum capacity of the virtual container; and the second out-interface represents a first out-interface of the virtual container.

[0254] The maximum capacity of the virtual container is a set value, and all the first packets in the same virtual container are sent from a same ingress routing device of the first network to a same virtual queue of a destination egress routing device; one virtual queue corresponds to one out-interface of the destination egress routing device and / or corresponds to a priority.

[0255] The second out-interface satisfies at least one of the following:

[0256] Optimal link state;

[0257] Maximum available queue depth;

[0258] Minimum queue depth;

[0259] Minimum load;

[0260] Lowest congestion degree.

[0261] In an embodiment, the source switch can further determine the virtual container carrying the first packet according to a byte number of the first packet and an available byte number of the virtual container; wherein

[0262] The available byte number of the virtual container is determined according to fourth information representing a maximum capacity or a threshold of the virtual container and fifth information representing a total byte number of all the first packets sent through the virtual container at different time instants.

[0263] In an embodiment, the determining the virtual container carrying the first packet comprises one of the following:

[0264] In a case where the byte number of the first packet is less than or equal to the available byte number of the first virtual container, the virtual container carrying the first packet is determined as the first virtual container;

[0265] In a case where at least one of the following is satisfied, a second virtual container is newly created, and the virtual container carrying the first packet is determined as the second virtual container:

[0266] The number of bytes of the first packet is greater than the available number of bytes of the first virtual container.

[0267] The time to live of the first virtual container.

[0268] Step 9: The spine switch receives the virtual container.

[0269] Step 10: The spine switch sends a third request to all destination switches connected to the spine switch according to the destination address carried by the first packet.

[0270] The third request is used to request the seventh information, and the seventh information represents the related information of the forwarding capability of the third outgoing interface of the destination switch.

[0271] Step 11: The spine switch receives the third response returned by the destination switch, and the third response carries the seventh information.

[0272] Step 12: The spine switch determines the fifth outgoing interface according to all the seventh information and the third information.

[0273] Step 13: The spine switch sends the virtual container to the destination switch to which the fifth outgoing interface belongs.

[0274] The third information represents the maximum capacity of the virtual container; and the fifth outgoing interface represents the fourth outgoing interface that can forward the virtual container.

[0275] Step 14: The destination switch receives the virtual container and performs at least one of the following:

[0276] Discarding the sixth information carried by the first packet in the virtual container to obtain a second packet, and sending the second packet to the second computing node;

[0277] Sorting different virtual containers and sending the first packet in the sorted virtual container to the second computing node.

[0278] The application will be described in further detail below with reference to specific examples.

[0279] Figure 7 An example of a packet forwarding system structure to which the embodiments of the application are applicable is given, Figure 7 In the figure, SW1 is a source switch, SW2 and SW3 are spine switches, SW4 is a destination switch, computing card 1 is a first computing node, and computing card 2 is a second computing node.

[0280] The SW1 receives the second packet sent by the computing card 1 through the network card 1, and the second packet is sent to the computing card 2. The SW1 queries the forwarding table according to the destination address carried by the second packet, the destination switch of the second packet is the SW4, and the third outgoing interface of the destination switch is D1. The SW1 stores / buffers the second packet in the DGSQ corresponding to D1 in the SW1 for scheduling. Wherein, the SW1 locally establishes the DGSQ corresponding to each outgoing interface in the SW2, the SW3 and the SW4, the SW2 locally establishes the DGSQ corresponding to each outgoing interface in the SW1, the SW3 and the SW4, the SW3 locally establishes the DGSQ corresponding to each outgoing interface in the SW1, the SW2 and the SW4, and the SW4 locally establishes the DGSQ corresponding to each outgoing interface in the SW1, the SW2 and the SW3.

[0281] The SW1 sends a first request to the SW4 to request first information, and receives a first response returned by the SW4, where the first information represents the receiving capability of the SW4, and the first response carries the first information.

[0282] The SW1 determines that the next hop device of the SW1 is the SW2 or the SW3 according to the destination address carried by the second packet, the first outgoing interface A1 of the SW2 that can reach the destination address, and the first outgoing interface B1 of the SW3 that can reach the destination address; in the case that the first information represents that the SW4 does not exceed the maximum receiving capability, the SW1 sends a second request to the SW2 to request the forwarding capability of the first outgoing interface A1, and sends a second request to the SW3 to request the forwarding capability of the first outgoing interface B1.

[0283] The SW1 determines the second outgoing interface that can forward the virtual container in the first outgoing interfaces A1 and B1 according to the forwarding capabilities of the first outgoing interfaces A1 and B1, for example, A1. The SW1 takes out the second packet from the DGSQ corresponding to D1 in the SW1, adds the sixth information to the second packet to obtain the first packet, that is, loads the second packet into the virtual container; the SW1 determines the outgoing interface with the lowest load degree (for example, A1) in A1 and B1 according to the maximum capacity of the virtual container, the forwarding capability of A1 and the forwarding capability of B1 to forward the virtual container; and the SW1 sends the virtual container to the SW2.

[0284] The SW2 receives the virtual container, buffers the virtual container in the DGSQ corresponding to the third outgoing interface D1 of the SW4 in the SW2 for scheduling. The SW2 sends a third request to the SW4 to request the forwarding capability of the third outgoing interface C1 of the SW4; the SW4 returns a third response to the SW2; and the SW2 determines the third outgoing interface with the lowest load degree in all third outgoing interfaces of the SW4 according to the maximum capacity of the virtual container and the forwarding capability of the third outgoing interface of the SW4 carried by the second response to forward the virtual container in the DGSQ corresponding to D1.

[0285] The SW4 receives the virtual container sent by the SW2, unpackages the first packet in the virtual container to obtain a second packet, and sends the second packet to the computing card 2 through the network card 2.

[0286] Based on the above embodiment, after the first network device obtains the receiving capability of the destination network device, whether to forward the received packet and / or how many bytes of the packet to forward can be determined according to the receiving capability of the destination network device; and in the case that the destination network device can continue to receive the packet, the first network device requests to obtain the forwarding capability of the first out-interface of the third network device, so as to forward the packet according to the forwarding capability of the first out-interface of the third network device. In this way, the number of packets entering the first network can be controlled to be less than or equal to the forwarding traffic of the whole network, the probability of link congestion or out-port congestion of the downstream network device is reduced, and the whole network performance, such as the packet forwarding performance of the whole network, is improved.

[0287] In order to implement the packet forwarding method of the embodiments of the present application, the embodiments of the present application further provide a packet forwarding device arranged on a first network device, wherein the first network device includes a source routing device and / or a source network card, as shown in Figure 8 The device includes:

[0288] A first sending unit 801 is configured to send a first request to a second network device according to a destination address carried by a first packet, wherein the second network device represents a destination network device determined according to the destination address; and the first request is used to request to obtain first information, and the first information represents a receiving capability of the second network device.

[0289] A first receiving unit 802 is configured to receive a first response returned by the second network device, and the first response carries the first information.

[0290] In an embodiment, the device further includes:

[0291] A fourth sending unit is configured to send a second request to all third network devices according to the first information and the destination address, wherein the second request is used to request to obtain second information, and the second information represents information related to a forwarding capability of a first out-interface of a third network device; and the third network device represents a next-hop device of the first network device.

[0292] A fourth receiving unit is configured to receive a second response returned by the third network device, and the second response carries the second information.

[0293] In an embodiment, the fourth sending unit is specifically configured to:

[0294] In the case that the first packet is the first packet of a virtual container, the second request is sent to all third network devices.

[0295] In an embodiment, the apparatus further comprises:

[0296] a first determining unit, configured to determine a second out-interface according to all the second information and the third information;

[0297] a fifth sending unit, configured to send a virtual container carrying the first message according to the second out-interface; wherein,

[0298] the third information represents a maximum capacity of the virtual container; and the second out-interface represents a first out-interface capable of forwarding the virtual container.

[0299] In an embodiment, the second out-interface satisfies at least one of the following:

[0300] optimal link state;

[0301] maximum available queue depth;

[0302] minimum queue depth;

[0303] minimum load;

[0304] minimum congestion degree.

[0305] In an embodiment, the apparatus further comprises:

[0306] a second determining unit, configured to determine a virtual container carrying the first message according to a byte number of the first message and an available byte number of the virtual container; wherein,

[0307] the available byte number of the virtual container is determined according to fourth information and fifth information, the fourth information represents a maximum capacity or a threshold of the virtual container, and the fifth information represents a total byte number of all the first messages sent through the virtual container at different time instants.

[0308] In an embodiment, the second determining unit is specifically configured to perform one of the following:

[0309] in a case where the byte number of the first message is less than or equal to the available byte number of the first virtual container, determining the virtual container carrying the first message as the first virtual container;

[0310] in a case where at least one of the following is satisfied, newly creating a second virtual container and determining the virtual container carrying the first message as the second virtual container:

[0311] the byte number of the first message is greater than the available byte number of the first virtual container;

[0312] a survival time of the first virtual container is reached.

[0313] In an embodiment, the apparatus further comprises:

[0314] The sixth sending unit is configured to cache the first packet to a first virtual queue and periodically send the first request and / or the second request when at least one of the following conditions is met:

[0315] The first information represents that the maximum receiving capability of the second network device is exceeded.

[0316] All first out-interfaces of the third network device do not have the capability of forwarding the virtual container.

[0317] The first virtual queue represents a virtual queue corresponding to a third out-interface of the second network device in the first network device, and the third out-interface is determined according to the destination address.

[0318] In an embodiment, the maximum capacity of the virtual container is a set value, and all first packets in the same virtual container are sent from the same ingress routing device of the first network to the same virtual queue of the destination egress routing device; one virtual queue corresponds to one out-interface of the destination egress routing device and / or corresponds to a priority.

[0319] In an embodiment, the first packet carries sixth information, and the sixth information of all first packets in the same virtual container is the same; the sixth information includes at least one of the following:

[0320] The first identifier is used to indicate the network device that creates the virtual container.

[0321] The second identifier is used to sort different virtual containers.

[0322] In an embodiment, the apparatus further includes:

[0323] The fifth receiving unit is configured to receive the second packet sent by the first computing node.

[0324] The generating unit is configured to add the sixth information to the second packet to obtain the first packet.

[0325] In actual application, the first receiving unit 802, the fourth receiving unit and the fifth receiving unit can be implemented by a communication interface in a packet forwarding device, the first determining unit, the second determining unit and the generating unit can be implemented by a processor in the packet forwarding device, and the first sending unit 801, the fourth sending unit, the fifth sending unit and the sixth sending unit can be implemented by the processor in the packet forwarding device in combination with the communication interface.

[0326] To implement the packet forwarding method of the embodiments of the present application, the embodiments of the present application further provide a packet forwarding device arranged on a second network device, wherein the second network device comprises a destination routing device and / or a destination network card, as shown in Figure 9 The device comprises:

[0327] A second receiving unit 901 is configured to receive a first request sent by a first network device of a first network, wherein the second network device represents a destination network device determined by the first network device according to a destination address carried in a first packet, and the first request is used to request to obtain first information, and the first information represents a receiving capability of the second network device.

[0328] A second sending unit 902 is configured to return a first response to the first network device, and the first response carries the first information.

[0329] In an embodiment, the device further comprises:

[0330] A sixth receiving unit is configured to receive a virtual container, wherein:

[0331] All the first packets in the virtual container carry the same sixth information, and the sixth information comprises a first identifier and / or a second identifier; the first identifier is used to indicate a network device creating the virtual container; and the second identifier is used to sort different virtual containers.

[0332] In an embodiment, the device further comprises a first processing unit configured to perform at least one of the following:

[0333] Discard the sixth information carried in the first packet in the virtual container to obtain a second packet, and send the second packet to a second computing node;

[0334] Sort different virtual containers, and send the first packet in the sorted virtual container to a second computing node.

[0335] In an embodiment, the maximum capacity of the virtual container is a set value, and all the first packets in the same virtual container are sent from a same ingress routing device of the first network to a same virtual queue of a destination egress routing device; one virtual queue corresponds to one egress interface of the destination egress routing device and / or corresponds to a priority.

[0336] In actual application, the second receiving unit 901, the second sending unit 902 and the sixth receiving unit can be implemented by a communication interface in the packet forwarding device, and the first processing unit can be implemented by a processor in the packet forwarding device.

[0337] To implement the packet forwarding method of the embodiments of the present application, the embodiments of the present application further provide a packet forwarding device arranged on a third network device, as shown inFigure 10 The apparatus includes:

[0338] The third receiving unit 1001 is configured to receive a second request sent by a first network device of the first network, where the second request is used to request to obtain second information, and the second information represents information about forwarding capability of a first out-interface of the third network device; and the first network device represents a previous hop device of the third network device.

[0339] The third sending unit 1002 is configured to return a second response to the first network device, where the second response carries the second information.

[0340] In an embodiment, the apparatus further includes:

[0341] The seventh receiving unit is configured to receive a virtual container sent by the first network device, where

[0342] All first packets in the virtual container carry the same sixth information, and the sixth information includes a first identifier and / or a second identifier; the first identifier is used to indicate a network device that creates the virtual container; and the second identifier is used to sort different virtual containers.

[0343] In an embodiment, the apparatus further includes:

[0344] The eighth sending unit is configured to send a third request to all fourth network devices according to a destination address carried by the first packet, where the third request is used to request to obtain seventh information, and the seventh information represents information about forwarding capability of a fourth out-interface of the fourth network device; and the fourth network device represents a next hop device of the third network device.

[0345] The eighth receiving unit is configured to receive a third response returned by the fourth network device, where the third response carries the seventh information.

[0346] In an embodiment, the apparatus further includes:

[0347] The third determining unit is configured to determine a fifth out-interface according to all the seventh information and third information.

[0348] The ninth sending unit is configured to send the virtual container according to the fifth out-interface, where

[0349] The third information represents a maximum capacity of the virtual container; and the fifth out-interface represents a fourth out-interface that can forward the virtual container.

[0350] In an embodiment, the fifth out-interface satisfies at least one of the following conditions:

[0351] Optimal link state

[0352] maximum queue depth available;

[0353] minimum queue depth;

[0354] minimum load;

[0355] lowest level of congestion.

[0356] In an embodiment, the apparatus further comprises:

[0357] a tenth sending unit, configured to cache the message container to the second virtual queue and periodically send the third request in a case that the fourth outgoing interface of all the fourth network devices does not have the capability of forwarding the virtual container.

[0358] The second virtual queue represents a virtual queue corresponding to a third outgoing interface of a second network device in the third network device, and the second network device represents a destination network device determined according to a destination address carried in the first message.

[0359] In an embodiment, the maximum capacity of the virtual container is a set value, and all the first messages in the same virtual container are sent from a same ingress routing device of the first network to a same virtual queue of a destination egress routing device; one virtual queue corresponds to one outgoing interface of the destination egress routing device and / or corresponds to a priority.

[0360] In actual application, the third receiving unit 1001, the third sending unit 1002, the seventh receiving unit and the eighth receiving unit can be implemented by a communication interface in the message forwarding apparatus, and the third determining unit can be implemented by a processor in the message forwarding apparatus. The eighth sending unit, the seventh receiving unit, the ninth sending unit and the tenth sending unit can be implemented by a processor in the message forwarding apparatus in combination with a communication interface.

[0361] It should be noted that: the message forwarding apparatus provided in the above embodiments is only used for example to illustrate the division of the above program modules when forwarding the message, and in actual application, the above processing can be completed by different program modules according to needs, that is, the internal structure of the apparatus is divided into different program modules to complete all or part of the above processing. In addition, the message forwarding apparatus and the message forwarding method provided in the above embodiments belong to the same concept, and the specific implementation process is described in the method embodiments, which will not be repeated here.

[0362] Based on the hardware implementation of the above program modules, and in order to implement the method on the side of the first network device, the embodiment of the present application further provides a first network device, as shown in Figure 11 The first terminal 1100 includes:

[0363] The first communication interface 1101 is capable of interacting with other network nodes.

[0364] The first processor 1102 is connected with the first communication interface 1101 to realize information interaction with other network nodes, and is used for running a computer program to execute the method provided by one or more technical solutions of the first network device. The computer program is stored on the first memory 1103.

[0365] Specifically, the first communication interface 1101 is configured to send a first request to a second network device according to a destination address carried in a first packet, and receive a first response returned by the second network device; the second network device represents a destination network device determined according to the destination address; the first request is used to request to obtain first information, and the first information represents a receiving capability of the second network device; and the first response carries the first information.

[0366] In an embodiment, the first communication interface 1101 is further configured to send a second request to all third network devices according to the first information and the destination address, and receive a second response returned by the third network device; the second request is used to request to obtain second information, and the second information represents information related to a forwarding capability of a first out-interface of the third network device; the third network device represents a next-hop device of the first network device; and the second response carries the second information.

[0367] In an embodiment, the first communication interface 1101 is specifically configured to:

[0368] In a case where the first packet is a first packet of a virtual container, the second request is sent to all third network devices.

[0369] In an embodiment, the apparatus further includes:

[0370] The first processor 1102 is configured to determine a second out-interface according to all the second information and third information.

[0371] The first communication interface 1101 is further configured to send a virtual container carrying the first packet according to the second out-interface; wherein

[0372] The third information represents a maximum capacity of the virtual container; and the second out-interface represents the first out-interface that can forward the virtual container.

[0373] In an embodiment, the second out-interface satisfies at least one of the following conditions:

[0374] The link state is optimal;

[0375] The available queue depth is maximum;

[0376] a queue depth is minimum;

[0377] a load is minimum;

[0378] a congestion level is lowest.

[0379] In an embodiment, the first processor 1102 is configured to determine the virtual container carrying the first packet according to the number of bytes of the first packet and the available number of bytes of the virtual container.

[0380] The available number of bytes of the virtual container is determined according to fourth information and fifth information, the fourth information representing a maximum capacity or a threshold of the virtual container, and the fifth information representing a total number of bytes of all first packets sent through the virtual container at different time instants.

[0381] In an embodiment, the first processor 1102 is specifically configured to perform one of the following:

[0382] In a case where the number of bytes of the first packet is less than or equal to the available number of bytes of the first virtual container, the virtual container carrying the first packet is determined as the first virtual container.

[0383] In a case where at least one of the following conditions is met, a second packet container is newly created, and the virtual container carrying the first packet is determined as the second virtual container:

[0384] The number of bytes of the first packet is greater than the available number of bytes of the first virtual container.

[0385] The first virtual container reaches a survival time.

[0386] In an embodiment, the first communication interface 1101 is further configured to, in a case where at least one of the following conditions is met, cache the first packet to a first virtual queue and periodically send the first request and / or the second request:

[0387] The first information represents that a maximum receiving capability of the second network device is exceeded.

[0388] All first out-interfaces of the third network device do not have the capability of forwarding the virtual container.

[0389] The first virtual queue represents a virtual queue corresponding to a third out-interface of the second network device in the first network device, and the third out-interface is determined according to the destination address.

[0390] In an embodiment, the maximum capacity of the virtual container is a set value, and all the first packets in the same virtual container are sent from the same ingress routing device of the first network to the same virtual queue of the destination egress routing device; one virtual queue corresponds to one egress interface of the destination egress routing device and / or corresponds to a priority.

[0391] In an embodiment, the first packet carries sixth information, and the sixth information of all the first packets in the same virtual container is the same; the sixth information includes at least one of the following:

[0392] a first identifier, the first identifier being used to indicate a network device creating the virtual container;

[0393] a second identifier, the second identifier being used to sort different virtual containers.

[0394] In an embodiment, the first communication interface 1101 is further configured to receive a second packet sent by the first computing node.

[0395] The first processor 1102 is further configured to add sixth information to the second packet to obtain a first packet.

[0396] It should be noted that the specific processing process of the first processor 1102 and the first communication interface 1101 can be understood with reference to the above method.

[0397] Of course, in actual application, various components in the first network device 1100 are coupled together through the bus system 1104. It can be understood that the bus system 1104 is used to realize the connection and communication between the components. In addition to the data bus, the bus system 1104 also includes a power bus, a control bus and a status signal bus. However, in order to clearly illustrate the application, all kinds of buses are marked as the bus system 1104 in the Figure 11 .

[0398] The first memory 1103 in the embodiment of the application is used to store various types of data to support the operation of the first network device 1100. Examples of these data include: any computer programs used to operate on the first network device 1100.

[0399] The method disclosed by the embodiments of the present application can be applied to the first processor 1102 or implemented by the first processor 1102. The first processor 1102 can be an integrated circuit chip with signal processing capability. In the implementation process, each step of the above method can be completed by integrated logic circuits of hardware in the first processor 1102 or instructions in the form of software. The first processor 1102 described above can be a general processor, a digital signal processor (DSP), or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc. The first processor 1102 can implement or execute the methods, steps and logic block diagrams disclosed in the embodiments of the present application. The general processor can be a microprocessor or any conventional processor. In combination with the steps of the method disclosed in the embodiments of the present application, the hardware decoding processor can be directly embodied to execute the steps, or the combination of hardware and software modules in the decoding processor can be executed. The software module can be located in a storage medium, which is located in the first memory 1103, and the first processor 1102 reads the information in the first memory 1103 to combine the hardware to complete the steps of the above method.

[0400] In the exemplary embodiments, the first network device 1100 can be implemented by one or more application specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field programmable gate arrays (FPGAs), general-purpose processors, controllers, micro controllers (MCUs), microprocessors (Microprocessors), or other electronic elements, for executing the above method.

[0401] Based on the hardware implementation of the above program module, and in order to implement the method on the second network device side according to the embodiments of the present application, the embodiments of the present application further provide a second network device, as shown in the following figure: Figure 12 The second network device 1200 includes:

[0402] The second communication interface 1201 can interact with other network nodes.

[0403] The second processor 1202 is connected with the second communication interface 1201 to realize information interaction with other network nodes, and is used to execute a computer program to implement the method provided by one or more technical solutions of the second network device. The computer program is stored in the second memory 1203.

[0404] Specifically, the second communication interface 1201 is configured to receive a first request sent by a first network device of a first network, and return a first response to the first network device; wherein the second network device is a destination network device determined by the first network device according to a destination address carried in a first packet, the first request is used to request to obtain first information, and the first information represents a receiving capability of the second network device; and the first response carries the first information.

[0405] In an embodiment, the second communication interface 1201 is further configured to receive a virtual container; wherein,

[0406] All the first packets in the virtual container carry the same sixth information, and the sixth information includes a first identifier and / or a second identifier; the first identifier is used to indicate a network device that creates the virtual container; and the second identifier is used to sort different virtual containers.

[0407] In an embodiment, the second processor 1202 is configured to perform at least one of the following:

[0408] Discard the sixth information carried in the first packet in the virtual container to obtain a second packet, and send the second packet to the second computing node;

[0409] Sort different virtual containers, and send the first packet in the sorted virtual container to the second computing node.

[0410] In an embodiment, the maximum capacity of the virtual container is a set value, and all the first packets in the same virtual container are sent from the same ingress routing device of the first network to the same virtual queue of the destination egress routing device; one virtual queue corresponds to one egress interface of the destination egress routing device and / or corresponds to a priority.

[0411] It should be noted that the specific processing process of the second processor 1202 and the second communication interface 1201 can be understood with reference to the above method.

[0412] Of course, in actual application, each component in the second network device 1200 is coupled together through the bus system 1204. It can be understood that the bus system 1204 is used to realize the connection and communication between these components. The bus system 1204 includes not only a data bus, but also a power bus, a control bus and a status signal bus. However, for the purpose of clear illustration, only the data bus is shown in the figure. Figure 12The various buses are labeled as bus system 1204.

[0413] The second memory 1203 in the embodiments of the present application is configured to store various types of data to support the operation of the second network device 1200. Examples of the data include any computer programs used for operating the second network device 1200.

[0414] The method disclosed in the embodiments of the present application can be applied to the second processor 1202 or implemented by the second processor 1202. The second processor 1202 can be an integrated circuit chip with signal processing capability. In the implementation process, each step of the above method can be completed by the integrated logic circuit of hardware or the instruction in the form of software in the second processor 1202. The second processor 1202 described above can be a general processor, a DSP, or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The second processor 1202 can implement or execute the methods, steps and logic block diagrams disclosed in the embodiments of the present application. The general processor can be a microprocessor or any conventional processor, etc. In combination with the steps of the method disclosed in the embodiments of the present application, the hardware decoding processor can be directly embodied to execute the completion, or the combination of hardware and software modules in the decoding processor can be executed to complete. The software module can be located in the storage medium, which is located in the second memory 1203, and the second processor 1202 reads the information in the second memory 1203 to complete the steps of the above method in combination with the hardware.

[0415] In the exemplary embodiments, the second network device 1200 can be implemented by one or more ASICs, DSPs, PLDs, CPLDs, FPGAs, general-purpose processors, controllers, MCUs, microprocessors, or other electronic elements, for executing the above method.

[0416] Based on the hardware implementation of the above program module, and in order to implement the method on the third network device side in the embodiments of the present application, the embodiments of the present application further provide a third network device, as shown in the following figure: Figure 13 The third network device 1300 includes:

[0417] The third communication interface 1301 is capable of interacting with other network nodes to exchange information;

[0418] The third processor 1302 is connected with the third communication interface 1301 to realize the information interaction with other network nodes, and is used to run the computer program to execute the method provided by one or more technical solutions of the third network device side. The computer program is stored in the third memory 1303.

[0419] Specifically, the third communication interface 1301 is configured to receive a second request sent by a first network device of the first network, and return a second response to the first network device; the second request is used to request to obtain second information, and the second information represents information related to forwarding capability of a first out-interface of the third network device; the first network device represents a previous hop device of the third network device; and the second response carries the second information.

[0420] In an embodiment, the third communication interface 1301 is further configured to receive a virtual container sent by the first network device, wherein,

[0421] All the first packets in the virtual container carry the same sixth information, and the sixth information includes a first identifier and / or a second identifier; the first identifier is used to indicate a network device that creates the virtual container; and the second identifier is used to sort different virtual containers.

[0422] In an embodiment, the third communication interface 1301 is further configured to send a third request to all fourth network devices according to a destination address carried by the first packet, and receive a third response returned by the fourth network device; the third request is used to request to obtain seventh information, and the seventh information represents information related to forwarding capability of a fourth out-interface of the fourth network device; the fourth network device represents a next hop device of the third network device; and the third response carries the seventh information.

[0423] In an embodiment, the third processor 1302 is configured to determine a fifth out-interface according to all the seventh information and third information.

[0424] The third communication interface 1301 is further configured to send the virtual container according to the fifth out-interface.

[0425] The third information represents a maximum capacity of the virtual container; and the fifth out-interface represents the fourth out-interface that can forward the virtual container.

[0426] In an embodiment, the fifth out-interface satisfies at least one of the following conditions:

[0427] Optimal link state;

[0428] Maximum available queue depth;

[0429] Minimum queue depth;

[0430] Minimum load;

[0431] Lowest congestion degree.

[0432] In an embodiment, the third communication interface 1301 is further configured to cache the message container to a second virtual queue in a case that all fourth network device fourth out interfaces do not have the capability of forwarding the virtual container, and periodically send the third request.

[0433] The second virtual queue is corresponding to a third out interface of a second network device of the third network device, and the second network device is determined according to a destination address carried in the first message.

[0434] In an embodiment, the maximum capacity of the virtual container is a set value, and all the first messages in the same virtual container are sent from the same ingress routing device of the first network to the same virtual queue of the destination egress routing device; one virtual queue corresponds to one out interface of the destination egress routing device and / or corresponds to a priority.

[0435] It should be noted that the specific processing process of the third processor 1302 and the third communication interface 1301 can be understood with reference to the above method.

[0436] Of course, in actual application, various components in the third network device 1300 are coupled together through the bus system 1304. It can be understood that the bus system 1304 is used to realize the connection and communication between the components. The bus system 1304 includes not only a data bus, but also a power bus, a control bus and a status signal bus. However, in order to clearly illustrate, all kinds of buses are marked as the bus system 1304 in the Figure 13 .

[0437] The third memory 1303 in the embodiment of the application is used to store various types of data to support the operation of the third network device 1300. Examples of these data include: any computer programs used to operate on the third network device 1300.

[0438] The method disclosed by the embodiments of the present application can be applied to the third processor 1302 or implemented by the third processor 1302. The third processor 1302 can be an integrated circuit chip with signal processing capability. In the implementation process, each step of the above method can be completed by the integrated logic circuit of hardware in the third processor 1302 or the instruction in the form of software. The third processor 1302 can be a general processor, a DSP, or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The third processor 1302 can implement or execute the methods, steps and logic block diagrams disclosed in the embodiments of the present application. The general processor can be a microprocessor or any conventional processor, etc. In combination with the steps of the method disclosed in the embodiments of the present application, the hardware decoding processor can be directly embodied to execute the steps of the foregoing method, or the hardware and software modules in the decoding processor can be combined to execute the steps of the foregoing method. The software module can be located in the storage medium, and the storage medium is located in the third memory 1303. The third processor 1302 reads the information in the third memory 1303 and combines the hardware to complete the steps of the foregoing method.

[0439] In the exemplary embodiments, the third network device 1300 can be implemented by one or more ASICs, DSPs, PLDs, CPLDs, FPGAs, general-purpose processors, controllers, MCUs, microprocessors, or other electronic elements, for executing the foregoing method.

[0440] It can be understood that the memory (the first memory 1103, the second memory 1203, and the third memory 1303) of the embodiments of the present application can be a volatile memory or a non-volatile memory, and can also include both volatile and non-volatile memories. The non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a ferromagnetic random access memory (FRAM), a flash memory, a magnetic surface memory, an optical disc, or a compact disc read-only memory (CD-ROM). The magnetic surface memory can be a disk memory or a tape memory. The volatile memory can be a random access memory (RAM) used as an external cache.By way of example, and not limitation, many forms of RAM can be used, such as Static Random Access Memory (SRAM), Synchronous Static Random Access Memory (SSRAM), Dynamic Random Access Memory (DRAM), Synchronous Dynamic Random Access Memory (SDRAM), Double Data Rate Synchronous Dynamic Random Access Memory (DDR SDRAM), Enhanced Synchronous Dynamic Random Access Memory (ESDRAM), Sync Link Dynamic Random Access Memory (SLDRAM), Direct Rambus Random Access Memory (DRRAM). The memory described herein is intended to include, without being limited to, these and any other suitable types of memory.

[0441] In an example embodiment, the present embodiment also provides a storage medium, i.e., a computer storage medium, specifically a computer readable storage medium, such as a first memory 1103 storing a computer program executable by the first processor 1102 of the first network device 1100 to perform the steps of the aforementioned first network device side method. For example, a second memory 1203 storing a computer program executable by the second processor 1202 of the second network device 1200 to perform the steps of the aforementioned second network device side method. For example, a third memory 1303 storing a computer program executable by the third processor 1302 of the third network device 1300 to perform the steps of the aforementioned third network device side method. The computer readable storage medium can be a FRAM, a ROM, a PROM, an EPROM, an EEPROM, a Flash Memory, a magnetic surface memory, an optical disc, or a CD-ROM, etc.

[0442] It should be noted that "first", "second", etc. are used to distinguish similar objects, and do not necessarily mean a specific order or sequence.

[0443] The term "and / or", merely describes an associated relationship, which means that there can be three relationships, for example, A and / or B, which can represent: A alone, A and B exist at the same time, B alone. In addition, the term "at least one" herein means any combination of at least two of any one or more of a plurality, for example, at least one of A, B, C, which can mean including any one or more elements selected from the set consisting of A, B and C.

[0444] In addition, the technical solutions described in the embodiments of the present application can be combined arbitrarily without conflict.

[0445] The above is only a preferred embodiment of the present application, and is not intended to limit the scope of protection of the present application.

Claims

1. A packet forwarding method, characterized by, A first network device applied to a first network, the method comprising: sending a first request to a second network device of the first network according to a destination address carried by a first packet, wherein the second network device represents a destination network device to which a final outgoing interface corresponding to the destination address in the first network belongs; the first request is used to request to obtain first information representing a receiving capability of the second network device; receiving a first response returned by the second network device, the first response carrying the first information; The method further comprises: in a case where the second network device can continue to receive packets, sending a second request to all third network devices according to the first information and the destination address, wherein the second request is used to request to obtain second information representing related information of a forwarding capability of a first outgoing interface of the third network device; the third network device represents a next-hop device of the first network device in the first network; receiving a second response returned by the third network device, the second response carrying the second information.

2. The method of claim 1, wherein, The sending of the second request to all third network devices comprises: in a case where the first packet is a first packet of a virtual container, sending the second request to all third network devices.

3. The method of claim 1, wherein, The method further comprises: determining a second outgoing interface according to all second information and third information; sending a virtual container carrying the first packet according to the second outgoing interface, wherein the third information represents a maximum capacity of the virtual container; and the second outgoing interface represents a first outgoing interface capable of forwarding the virtual container.

4. The method of claim 3, wherein, The second outgoing interface satisfies at least one of the following conditions: optimal link state; maximum available queue depth; minimum queue depth; minimum load; lowest congestion level.

5. The method according to claim 3 or 4, characterized in that, The method further comprises: determining a virtual container carrying the first packet according to a byte number of the first packet and an available byte number of the virtual container, wherein the available byte number of the virtual container is determined according to fourth information representing a maximum capacity or a threshold of the virtual container and fifth information representing a total byte number of all first packets sent through the virtual container at different time instants.

6. The method of claim 5, wherein, The determination of the virtual container carrying the first packet comprises one of the following: in a case where the byte number of the first packet is less than or equal to the available byte number of a first virtual container, determining the virtual container carrying the first packet as the first virtual container; in a case where at least one of the following conditions is satisfied, creating a second virtual container and determining the virtual container carrying the first packet as the second virtual container: the byte number of the first packet is greater than the available byte number of the first virtual container; or a survival time of the first virtual container is reached.

7. The method according to any one of claims 2 to 4, characterized in that, The method further comprises: in a case where at least one of the following conditions is satisfied, buffering the first packet to a first virtual queue and periodically sending the first request and / or the second request: the first information represents exceeding the maximum receiving capability of the second network device; the first outgoing interfaces of all third network devices do not have the capability of forwarding the virtual container; The first virtual queue list represents a third outgoing interface of the second network device in the first network device, and the third outgoing interface is determined according to the destination address.

8. The method of any of claims 2-4 and 6, wherein a maximum capacity of the virtual container is a set value, and all the first packets in the same virtual container are sent to a same virtual queue of a destination egress routing device from a same ingress routing device of the first network; and one virtual queue corresponds to one outgoing interface of the destination egress routing device and / or corresponds to a priority. The first packet carries sixth information, and the sixth information of all the first packets in the same virtual container is the same; and the sixth information includes at least one of the following:

9. The method according to any of claims 1 to 4, 6, characterized in that, A first identifier, the first identifier being used to indicate a network device that creates the virtual container; A second identifier, the second identifier being used to sort different virtual containers. The method further includes:

10. The method of claim 9, wherein, receiving a second packet sent by the first computing node; adding the sixth information to the second packet to obtain the first packet. The method applied to a second network device of the first network includes:

11. A method of forwarding a packet, the method comprising: receiving a first request sent by a first network device of the first network; wherein the second network device represents a destination network device to which a final outgoing interface of the first network belongs, which is determined by the first network device according to a destination address carried by a first packet; the first request is used to request to obtain first information, the first information representing a receiving capability of the second network device; and the first request carries a maximum capacity of a virtual container; returning a first response to the first network device, the first response carrying the first information; The maximum capacity of the virtual container is a set value, and all the first packets in the same virtual container are sent to a same virtual queue of a destination egress routing device from a same ingress routing device of the first network; and one virtual queue corresponds to one outgoing interface of the destination egress routing device and / or corresponds to a priority. The method further includes:

12. The method of claim 11, wherein, receiving a virtual container; wherein All the first packets in the virtual container carry the same sixth information, and the sixth information includes a first identifier and / or a second identifier; the first identifier is used to indicate a network device that creates the virtual container; and the second identifier is used to sort different virtual containers. The method further includes at least one of the following:

13. The method of claim 12, wherein, discarding the sixth information carried by the first packet in the virtual container to obtain a second packet, and sending the second packet to a second computing node; sorting different virtual containers, and sending the first packet in the sorted virtual container to a second computing node. The method applied to a third network device of the first network includes:

14. A method of forwarding a packet, the method comprising: receiving a second request sent by a first network device of the first network, wherein the second request is used to request to obtain second information, the second information representing information related to a forwarding capability of a first outgoing interface of the third network device; and the first network device represents a previous hop device of the third network device in the first network; returning a second response to the first network device, the second response carrying the second information; The method further includes: ​ According to a destination address carried in the first packet, a third request is sent to all fourth network devices, wherein the third request is used to request to obtain seventh information, and the seventh information represents related information of a forwarding capability of a fourth out interface of the fourth network device; and the fourth network device represents a next hop device of the third network device in the first network; A third response returned by the fourth network device is received, and the third response carries the seventh information.

15. The method of claim 14, wherein, The method further comprises: A virtual container sent by the first network device is received, wherein All first packets in the virtual container carry same sixth information, and the sixth information comprises a first identifier and / or a second identifier; the first identifier is used to indicate a network device creating the virtual container; and the second identifier is used to sort different virtual containers.

16. The method of claim 15, wherein, The method further comprises: According to all seventh information and third information, a fifth out interface is determined; According to the fifth out interface, the virtual container is sent; wherein The third information represents a maximum capacity of the virtual container; and the fifth out interface represents a fourth out interface capable of forwarding the virtual container.

17. The method of claim 16, wherein, The fifth out interface satisfies at least one of the following conditions: Optimal link state; Maximum available queue depth; Minimum queue depth; Minimum load; Lowest congestion degree.

18. The method according to any one of claims 15 to 17, characterized in that, The method further comprises: In a case where the fourth out interface of all fourth network devices does not have a capability of forwarding the virtual container, the packet container is cached to a second virtual queue, and the third request is periodically sent; The second virtual queue represents a virtual queue corresponding to a third out interface of a second network device in the third network device, and the second network device represents a destination network device to which a final out interface corresponding to the destination address in the first network belongs.

19. The method according to any one of claims 15 to 17, wherein The maximum capacity of the virtual container is a set value, and all first packets in a same virtual container are sent from a same ingress routing device of the first network to a same virtual queue of a destination egress routing device; and one virtual queue corresponds to one out interface of the destination egress routing device and / or corresponds to a priority.

20. A packet forwarding device, comprising: The apparatus applied to a first network device of a first network, the apparatus comprises: A first sending unit, configured to send a first request to a second network device of the first network according to a destination address carried in a first packet; wherein the second network device represents a destination network device to which a final out interface corresponding to the destination address in the first network belongs; and the first request is used to request to obtain first information representing a receiving capability of the second network device; A first receiving unit, configured to receive a first response returned by the second network device, and the first response carries the first information. The first sending unit is further configured to send a second request to all third network devices according to the first information and the destination address, where the second request is used to request to obtain second information, and the second information represents information related to the forwarding capability of the first out-interface of the third network device; and the third network device represents a next-hop device of the first network device in the first network. The first receiving unit is further configured to receive a second response returned by the third network device, where the second response carries the second information.

21. A packet forwarding device, comprising: The second network device applied to the first network comprises: The second receiving unit is configured to receive a first request sent by a first network device of the first network, where the second network device represents a destination network device to which a final out-interface corresponding to the first network is determined by the first network device according to a destination address carried in a first packet; the first request is used to request to obtain first information, and the first information represents a receiving capability of the second network device; and the first request carries a maximum capacity of a virtual container. The second sending unit is configured to return a first response to the first network device, where the first response carries the first information. The maximum capacity of the virtual container is a set value, and all first packets in a same virtual container are sent from a same ingress routing device of the first network to a same virtual queue of a destination egress routing device; one virtual queue corresponds to one out-interface of the destination egress routing device and / or corresponds to a priority.

22. A packet forwarding device, comprising: The third network device applied to the first network comprises: The third receiving unit is configured to receive a second request sent by a first network device of the first network, where the second request is used to request to obtain second information, and the second information represents information related to the forwarding capability of the first out-interface of the third network device; and the first network device represents a previous-hop device of the third network device in the first network. The third sending unit is configured to return a second response to the first network device, where the second response carries the second information. The third sending unit is further configured to send a third request to all fourth network devices according to a destination address carried in a first packet, where the third request is used to request to obtain seventh information, and the seventh information represents information related to the forwarding capability of a fourth out-interface of the fourth network device; and the fourth network device represents a next-hop device of the third network device in the first network. The third receiving unit is further configured to receive a third response returned by the fourth network device, where the third response carries the seventh information.

23. A first network device, comprising: The first network device applied to the first network comprises a first processor and a first communication interface, where The first communication interface is configured to send a first request to a second network device according to a destination address carried in a first packet; and receive a first response returned by the second network device; The second network device represents a destination network device to which a final outgoing interface of the first network corresponds; the first request is used to request first information representing a receiving capability of the second network device; and the first response carries the first information. In a case where the second network device can continue to receive the packet, the first communication interface is further configured to send a second request to all third network devices according to the first information and the destination address, wherein the second request is used to request second information representing related information of a forwarding capability of a first outgoing interface of the third network device; the third network device represents a next-hop device of the first network device in the first network; and the first communication interface is further configured to receive a second response returned by the third network device, wherein the second response carries the second information.

24. A second network device, comprising: The second network device comprises a second processor and a second communication interface, and is applied to the first network, wherein The second communication interface is configured to receive a first request sent by a first network device of the first network, and return a first response to the first network device; wherein The second network device represents a destination network device to which a final outgoing interface of the first network corresponds, the first request is used to request first information representing a receiving capability of the second network device, and the first response carries the first information; and the first request carries a maximum capacity of a virtual container. The maximum capacity of the virtual container is a set value, and all first packets in a same virtual container are sent from a same ingress routing device of the first network to a same virtual queue of a destination egress routing device; one virtual queue corresponds to one outgoing interface of the destination egress routing device and / or corresponds to a priority.

25. A third network device, comprising: The third network device comprises a third processor and a third communication interface, and is applied to the first network, wherein The third communication interface is configured to receive a second request sent by a first network device of the first network, and return a second response to the first network device; wherein The first network device represents a previous-hop device of the third network device in the first network; the second request is used to request second information representing related information of a forwarding capability of a first outgoing interface of the third network device; and the second response carries the second information. The third communication interface is further configured to send a third request to all fourth network devices according to a destination address carried in a first packet, wherein the third request is used to request seventh information representing related information of a forwarding capability of a fourth outgoing interface of the fourth network device; the fourth network device represents a next-hop device of the third network device in the first network; and the third communication interface is further configured to receive a third response returned by the fourth network device, wherein the third response carries the seventh information.

26. A network device, comprising: The computer program is stored in the memory and can be run on the processor, The computer program is executed by the processor to implement the steps of the method of any one of claims 1 to 10, or the steps of the method of any one of claims 11 to 13, or the steps of the method of any one of claims 14 to 19.

27. A storage medium having stored thereon a computer program, characterized in that The computer program is executed by the processor to implement the steps of the method of any one of claims 1 to 10, or the steps of the method of any one of claims 11 to 13, or the steps of the method of any one of claims 14 to 19.

Citation Information

Patent Citations

  • Flow control method, device and system and storage medium

    CN113300983A

  • Congestion control method and related equipment

    CN116260773A