Message forwarding method and device, network equipment and storage medium

In the data center Ethernet forwarding model, the reception and forwarding capability information of the network device is obtained based on the destination address of the packet, and the optimal outgoing interface is determined, which solves the blocking problem caused by self-decision of the forwarding path and improves the performance of the entire network.

CN119155250AActive Publication Date: 2024-12-17CHINA MOBILE COMM LTD RES INST +1
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
CN202310709021.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-06-14
Publication Date
2024-12-17
Estimated Expiration
2043-06-14

AI Technical Summary

Technical Problem

In the existing data center Ethernet forwarding model, due to the self-decision of each forwarding node, the distributed forwarding structure is prone to blockage, and the overall network performance is low.

Method used

By sending a request to the second network device according to the destination address of the message in the first network device, obtaining its reception capability information, and sending a request to all third network devices to obtain forwarding capability information, determine the optimal outgoing interface to send the message , ensure that the link status of message forwarding is optimal, the queue depth is maximum, the load is minimum, and the congestion is lowest.

Benefits of technology

It effectively reduces the probability of link congestion or outgoing port congestion in downstream network devices, and improves the packet forwarding performance of the entire network.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119155250A_ABST
    Figure CN119155250A_ABST
Patent Text Reader

Abstract

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

Description

Technical Field

[0001] The present application relates to the field of communication technology, and in particular to a message forwarding method, device, network equipment and storage medium. Background Art

[0002] For the existing traditional data center Ethernet forwarding model, although the industry has built a large-scale distributed forwarding structure through the Clos architecture to meet large-scale forwarding needs, since each forwarding node self-determines the forwarding path, congestion is prone to occur within the distributed forwarding structure, resulting in low performance of the entire network. Summary of the invention

[0003] To solve related technical problems, the embodiments of the present application provide a message forwarding method, apparatus, network device and storage medium.

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

[0005] The present application provides a message forwarding method, which is applied to a first network device of a first network, and the method includes:

[0006] Sending a first request to a second network device according to a destination address carried by the first message; 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, where the first response carries first information.

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

[0009] 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, the second information represents relevant information of the forwarding capability of the first outbound interface of the third network device; the third network device represents the next hop device of the first network device;

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

[0011] In the above solution, sending the second request to all third network devices includes:

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

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

[0014] Determine a second output interface according to all the second information and the third information;

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

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

[0017] In the above solution, the second outbound interface satisfies at least one of the following:

[0018] The link status is optimal;

[0019] The maximum available queue depth;

[0020] The queue depth is minimal;

[0021] Minimum load;

[0022] Minimum congestion.

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

[0024] Determine the virtual container that carries the first message according to the number of bytes of the first message and the number of available bytes of the virtual container; wherein,

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

[0026] In the above solution, the determining of the virtual container carrying the first message includes one of the following:

[0027] When the number of bytes of the first message is less than or equal to the number of available bytes of the first virtual container, determining that the virtual container carrying the first message is the first virtual container;

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

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

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

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

[0032] When at least one of the following conditions is met, the first message is cached in a first virtual queue, and the first request and / or the second request is periodically sent:

[0033] The first information representation exceeds the maximum receiving capability of the second network device;

[0034] The first outbound interfaces of all third network devices do not have the capability of forwarding the virtual container;

[0035] 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.

[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 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 and / or corresponding priority of the destination egress routing device.

[0037] In the above solution, the first message carries the 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] A first identifier, where the first identifier is used to indicate a network device for creating a virtual container;

[0039] The second identifier: 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] Add sixth information to the second message to obtain a first message.

[0043] The embodiment of the present application also provides a message forwarding method, which is applied to a second network device of a first network, and the method includes:

[0044] 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 by the 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] A first response is returned to the first network device, where the first response carries first information.

[0046] In the above solution, the method further comprises: receiving a virtual container; wherein,

[0047] All first messages 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 a 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 message in the virtual container, obtaining a second message, and sending the second message to the second computing node;

[0050] The different virtual containers are sorted, and the first message in the sorted virtual container is sent to the second computing node.

[0051] 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 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 and / or corresponding priority of the destination egress routing device.

[0052] The embodiment itself also provides a message forwarding method, which is 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, the second information represents relevant information of the forwarding capability of the first outbound interface of the third network device; and the first network device represents a previous hop device of the third network device;

[0054] A second response is returned to the first network device, where the second response carries 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 first messages 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 a virtual container; and the second identifier is used to sort different virtual containers.

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

[0059] Sending a third request to all fourth network devices according to the destination address carried by the first message, wherein the third request is used to request to obtain seventh information, and the seventh information represents relevant information of the forwarding capability of the fourth outbound interface of the fourth network device; the fourth network device represents the next hop device of the third network device;

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

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

[0062] Determine a fifth outgoing interface according to all the seventh information and the third information;

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

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

[0065] In the above solution, the fifth outbound interface satisfies at least one of the following:

[0066] The link status is optimal;

[0067] The maximum available queue depth;

[0068] The queue depth is minimal;

[0069] Minimum load;

[0070] Minimum congestion.

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

[0072] When the fourth outbound interfaces of all the fourth network devices do not have the capability of forwarding the virtual container, the message container is cached in the 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 the 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 by the first message.

[0074] 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 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 and / or corresponding priority of the destination egress routing device.

[0075] The embodiment of the present application also provides a message forwarding device, including:

[0076] A first sending unit, configured to send a first request to a second network device according to a destination address carried by the first message; 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;

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

[0078] The embodiment of the present application also provides a message forwarding device, including:

[0079] A second receiving unit is used 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 by the 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;

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

[0081] The embodiment of the present application also provides a message forwarding device, including:

[0082] A third receiving unit is used to receive 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 relevant information of the forwarding capability of the first outbound interface of the third network device; the first network device represents the previous hop device of the third network device;

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

[0084] The embodiment of the present application further provides a first network device, including a first processor and a first communication interface, wherein:

[0085] The first communication interface is used to send a first request to the second network device according to the destination address carried in the 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 obtain first information, and the first information represents a receiving capability of the second network device; and the first response carries the first information.

[0087] The embodiment of the present application further provides a second network device, including a second processor and a second communication interface, wherein:

[0088] The second communication interface is used 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 the destination network device determined by the first network device according to the destination address carried by the first message, the first request is used to request to obtain first information, and the first information represents the receiving capability of the second network device; the first response carries the first information.

[0090] The embodiment of the present application further provides a third network device, including a third processor and a third communication interface, wherein:

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

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

[0093] The embodiment of the present application further provides a network device, including a processor and a memory for storing a computer program that can be run on the processor.

[0094] Wherein, when the processor is used to run the computer program, it executes the steps of any method on the first network device, the second network device or the third network device side.

[0095] An embodiment of the present application further provides a storage medium having a computer program stored thereon, wherein when the computer program is executed by a processor, the steps of any one of the above-mentioned methods on the first network device, the second network device or the third network device side are implemented.

[0096] The message forwarding method, device, network device and storage medium provided by the embodiments of the present application are as follows: first, a first network device of a first network sends a first request to a second network device according to a destination address carried by a first message, 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, 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 a next-hop device of the first network device; the second request is used to request to obtain second information, and the second information represents relevant information of the forwarding capability of the first output interface of the third network device; the third network device and the corresponding first output interface are determined according to the destination address, and the second response carries the second information. In the above scheme, after the first network device obtains the receiving capacity of the destination network device, it can decide whether to forward the received message and / or how many bytes of the message to forward according to the receiving capacity of the destination network device; and when the destination network device can continue to receive messages, the first network device requests to obtain the forwarding capacity of the first output interface of the third network device, so as to forward the message according to the forwarding capacity of the first output interface of the third network device. In this way, the number of messages entering the first network can be controlled to be less than or equal to the forwarding flow of the entire network, reducing the probability of link congestion or port congestion in the downstream network device, and improving the performance of the entire network, such as the message forwarding performance of the entire network. BRIEF DESCRIPTION OF THE DRAWINGS

[0097] Figure 1 A schematic diagram of the implementation flow of a message forwarding method according to an embodiment of the present application;

[0098] Figure 2 This is an example diagram of a virtual container according to an embodiment of the present application;

[0099] Figure 3 This is an example diagram of forwarding virtual containers between network devices in an embodiment of the present application;

[0100] Figure 4 A schematic diagram of the implementation flow of a message forwarding method according to an embodiment of the present application;

[0101] Figure 5 A schematic diagram of the implementation flow of a message forwarding method according to an embodiment of the present application;

[0102] Figure 6 A schematic diagram of an interactive process of a message forwarding method according to an embodiment of the present application;

[0103] Figure 7This is a diagram showing an example structure of a message forwarding system applicable to an embodiment of the present application;

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

[0105] Fig. 9 This is a schematic diagram of the structure of a message forwarding device according to an embodiment of the present application;

[0106] Fig.10 This is a schematic diagram of the structure of a message forwarding device according to an embodiment of the present application;

[0107] Fig.11 This is a schematic diagram of the structure of the first network device in the embodiment of the present application;

[0108] Fig.12 This is a schematic diagram of the structure of the second network device in the embodiment of the present application;

[0109] Fig.13 This is a schematic diagram of the third network device structure of an embodiment of the present application. DETAILED DESCRIPTION

[0110] In the Ethernet forwarding model of the traditional data center, the information carried by the message is used as the forwarding table. The next hop Internet Protocol (IP) address and the outbound interface of the destination address are found by querying the routing table hop by hop to guide the message forwarding. Traffic scheduling is performed by using the equal cost multi-path routing (ECMP) mechanism based on flow. A data flow refers to a group of data packets with the same characteristic fields. In terms of the internal forwarding mechanism of the switch, when a data packet is transmitted from the input port to the output port of the destination end inside the switch, if the output port is performing a data packet forwarding operation, the data packet of the input port must be temporarily waited. At this time, a new data packet may arrive at the input port. Since there is only one waiting queue for the input port, if the data packet in the waiting state has not been processed, the later data packet will remain in the waiting queue until the output port has processed all the previous data packets before forwarding the later data packet. Among them, each forwarding node operates in a distributed manner, and the relevant information of the outbound interface comes from the device and the adjacent device. The device self-determines the forwarding path to meet the continuous increase in network scale.

[0111] For the existing traditional data center Ethernet forwarding model, although the industry has built a large-scale distributed forwarding structure through the CLOS architecture to meet large-scale forwarding needs, it is impossible to achieve the optimal performance of the entire network because each forwarding node self-determines the forwarding path; among them, the CLOS architecture is a network architecture that mainly describes the structure of a multi-level circuit switching network. The current Ethernet forwarding model has the following main defects:

[0112] (1) The switch has head-of-line blocking (HoL): Since the switch input port has only one waiting queue, if the previously waiting data packet is not processed, the later data packets will remain in the waiting state, causing congestion at the input port;

[0113] (2) Each forwarding node in the distributed forwarding structure cannot fully perceive global information: Since switches forward data packets by looking up routing tables, when sending data packets from one network node to another, they cannot perceive the network conditions of downstream nodes, resulting in traffic congestion downstream.

[0114] (3) ECMP has limitations in sending data packets: When using ECMP to load balance network traffic, traffic is only sent through hash routing from its own perspective, which can easily lead to problems such as link congestion, port congestion, and low switching network utilization.

[0115] Based on this, in each embodiment of the present application, first, the first network device of the first network sends a first request to the second network device according to the destination address carried by the first message, and the second network device returns a first response to the first network device; wherein, the second network device represents the destination network device determined according to the destination address, the first request is used to request to obtain the first information, 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 the second information, and the second information represents the relevant information of the forwarding capability of the first output interface of the third network device; the third network device and the corresponding first output interface are determined according to the destination address, and the second response carries the second information. In the above scheme, after the first network device obtains the receiving capacity of the destination network device, it can decide whether to forward the received message and / or how many bytes of the message to forward according to the receiving capacity of the destination network device; and when the destination network device can continue to receive messages, the first network device requests to obtain the forwarding capacity of the first output interface of the third network device, so as to forward the message according to the forwarding capacity of the first output interface of the third network device. In this way, the number of messages entering the first network can be controlled to be less than or equal to the forwarding flow of the entire network, reducing the probability of link congestion or port congestion in the downstream network device, and improving the performance of the entire network, such as the message forwarding performance of the entire network.

[0116] The present application is further described in detail below in conjunction with the accompanying drawings and embodiments.

[0117] An embodiment of the present application provides a message forwarding method, which is applied to a first network device of a first network; the first network represents a message 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 the network card that receives the original message. When the network architecture of the first network is a leaf-spine network architecture, the source routing device includes a leaf switch. Figure 1 As shown, the method includes:

[0118] Step 101: Send a first request to a second network device according to a destination address carried in a first message.

[0119] 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.

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

[0121] For example, the first network device can query the forwarding table according to the destination address carried by the first message, determine that the destination address carried by the first message is at the final outgoing interface of the first network, and determine that the network device to which the final outgoing interface belongs is 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 message.

[0122] It should be noted that the first message refers to any message in the virtual container, and the first message refers to any message carried by the virtual container, or any message sent in the form of a 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 scheduling of traffic. The first request can carry at least one of the following: the destination address carried by the first message, the message length of the first message, and the maximum capacity of the virtual container.

[0123] The virtual container can be understood as a virtual container logically composed based on messages, and can be called a message container (PKTC, Packet Container) or a virtual message container, etc.

[0124] In order to overcome the random influence of message length, it is necessary to normalize the basic forwarding unit of load balancing and establish a fixed-length message container. Based on this, in one embodiment, 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 inlet 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 and / or corresponding priority of the destination egress routing device.

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

[0126] A virtual container can accommodate at least one longest service message, and the maximum capacity of the virtual container is as small as possible within the forwarding capacity and de-ordering capacity of the network device, so as to achieve the purpose of finely segmenting the data flow and fully improving the instantaneous load balancing. Since all the first messages in the same virtual container are sent from the same inlet 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 to ensure that different messages in the same virtual container are no longer out of order, which can reduce the de-ordering pressure of the destination routing device or the destination network card.

[0127] A virtual queue corresponds to an outbound interface of a network device and / or a priority corresponding to the outbound interface. The virtual queue can be a dynamic global scheduling queue (DGSQ) or a virtual output queue (VOQ). The outbound 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 called the destination routing device. The destination routing device 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 outbound interface (final outbound interface) corresponding to the destination address in the forwarding table belongs. The inbound routing device is also called the source routing device.

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

[0129] In order to facilitate the destination routing device or the destination network card to reassemble the received virtual containers out of order, in one embodiment, the first message carries the 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:

[0130] A first identifier, where the first identifier is used to indicate a network device for creating a virtual container;

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

[0132] Here, the first identifier may be an identifier or number of a virtual container. The second identifier may be understood as a sequence number of a virtual container, which is used by a destination routing device or a destination network card to sort different received virtual containers so as to send first messages in different virtual containers in the correct order. Different virtual containers have different sequence numbers, 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 this, in one embodiment, the method further includes:

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

[0135] Add sixth information to the second message to obtain a 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 generally 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 called a virtual container Header. The Header can be a standard extension header added outside the second message, or it can be a media access control layer (MAC) header in the second message. The Header can also be located after the MAC header or Internet Protocol (IP) header of the second message.

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

[0138] Step 102: Receive a first response returned by the second network device, where the first response carries first information.

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

[0140] In order to reduce the probability of link congestion or port congestion in the third network device, the first network device can forward the message according to the forwarding capability of the output interface of the third network device. Therefore, before forwarding the message, the first network device needs to obtain the forwarding capability of the output interface of the third network device. Based on this, in one embodiment, the method further includes:

[0141] 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, the second information represents relevant information of the forwarding capability of the first outbound interface of the third network device; the third network device represents the next hop device of the first network device;

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

[0143] Here, the third network device represents the next-hop device of the first network device. The first network device determines all the next-hop devices of the first network device according to the destination address carried by the first message and the topological structure of the first network, and obtains all the third network devices; the first network device can determine whether the second network device can continue to receive messages according to the first information, and / or determine the length of the message that the second network device can receive; if the second network device can continue to receive messages, send a second request to all third network devices, and receive a second response returned by the third network device. The second request can carry the destination address of the first message, so that the third network device can determine the first output interface of the third network device.

[0144] It should be noted that, when the first information representation exceeds the maximum receiving capacity of the second network device, the first network device does not send the second request to save resources of the first network device.

[0145] In one embodiment, sending the second request to all third network devices includes:

[0146] When the first message is the first message of the virtual container, a second request is sent to all third network devices.

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

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

[0149] The length of the message receivable by the second network device is greater than or equal to the maximum capacity of the virtual container.

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

[0151] In actual application, there may be a situation where the outbound interface of the second network device and / or the third network device is congested. At this time, the first network device cannot forward the first message in time, and needs to cache the first message locally and wait for an opportunity to send it. Based on this, in one embodiment, the method further includes:

[0152] When at least one of the following conditions is met, the first message is cached in a first virtual queue, and the first request and / or the second request is periodically sent:

[0153] The first information representation exceeds the maximum receiving capability of the second network device;

[0154] The first outbound interfaces of all third network devices do not have the capability of forwarding the virtual container;

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

[0156] Here, when the first information representation exceeds the maximum receiving capacity of the second network device, the first message is cached in the first virtual queue of the first network device, and the first request is periodically sent to the second network device. Exceeding the maximum receiving capacity of the second network device can be understood as congestion on the outbound interface of the second network device, or the message length that can be sent by the second network device is less than the message length of the first message.

[0157] In the case that the first outbound interfaces of all third network devices do not have the ability to forward the virtual container, the first message is cached in the first virtual queue of the first network device, and the second request is periodically sent to all third network devices. The first outbound interface of the third network device does not have the ability to forward the virtual container, which can be understood as congestion in the outbound interface of the third network device, or the length of the message that can be sent by the third network device is less than the length of the first message.

[0158] It should be noted that the first network device can locally establish a virtual queue corresponding to each outbound interface of each routing device in the first network except the first network device, and cache the first message to the first virtual queue in the first network device to simulate traffic scheduling from the first network device to the outbound interface of the second network device.

[0159] When the first information indicates that the maximum receiving capacity of the second network device is not currently exceeded, the first network device forwards the message according to the message length that the second network device can receive, and before forwarding the message, first determines a forwarding path with a better link status to reduce the probability of congestion on the outbound interface of the third network device. Based on this, in one embodiment, the method further includes:

[0160] Determine a second output interface according to all the second information and the third information;

[0161] According to the second outbound 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 outbound interface represents the first outbound interface that can forward the virtual container.

[0163] Here, the first network device determines the first output interface of the forwardable virtual container among the first output interfaces of all the third network devices based on all the second information and the third information, and obtains the second output interface. Since all the first messages in the same virtual container are transmitted through the same physical link, the forwarding capacity of the second output interface is greater than or equal to the maximum capacity of the virtual container to avoid congestion in the first output interface of the third network device. In actual application, the second information may include at least one of the following: the link load degree and / or port occupancy of the output interface of the second network device, and the queue depth of the virtual queue corresponding to the third output interface of the second network device in the third network device.

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

[0165] Sending a virtual container carrying the first message can be understood as sending the first message in a virtual container. Figure 3 As shown, the first network device can send different first messages through the same virtual container at different times; that is, when the first network device detects a first message, it sends the first message in the form of a virtual container, rather than storing multiple first messages in the virtual container and then sending it. The first message is generated by the first network device according to the received original message (second message), and the virtual container is generated or created by the first network device; the virtual container is forwarded between different network devices. Among them, when the total number of bytes of the first messages sent through the same virtual container at different times is close to or equal to the maximum capacity of the virtual container, the state of the virtual container is switched from available to unavailable. At this time, the first network device needs to create a new virtual container to send the first message.

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

[0167] The link status is optimal;

[0168] The maximum available queue depth;

[0169] The queue depth is minimal;

[0170] Minimum load;

[0171] Minimum congestion.

[0172] Here, the queue depth can be understood as the queue depth of the virtual queue, and the available queue depth is the largest when the queue depth is the smallest. The available queue depth is determined based on the total number of bytes that can be cached by the virtual queue and the total number of bytes occupied. In this embodiment, the first network device can select the link with the best link status to send the virtual container to reduce the probability of traffic congestion in the third network device.

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

[0174] Determine the virtual container that carries the first message according to the number of bytes of the first message and the number of available bytes of the virtual container; wherein,

[0175] The number of available bytes of the virtual container is determined according to fourth information and fifth information, wherein the fourth information represents a maximum capacity or threshold of the virtual container, and the fifth information represents a total number of bytes of all first messages sent through the virtual container at different times.

[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, then 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, then 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 number of available bytes of the virtual container corresponding to the first message. If the virtual container corresponding to the first message can accommodate the first message, then 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, then 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 bytes (B, Byte), and the number of bytes can be understood as the number of bytes. The threshold is a set value that is less than or equal to the maximum capacity.

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

[0178] Method 1: The first network device determines the virtual container corresponding to the first message based on the first identifier and / or destination address carried by the first message. Specifically, the comparison result can be 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, and the virtual container to which the first message belongs can be determined based on the comparison result. The destination address carried by the first message can be compared with the destination address of the first first message sent through the virtual container, and the virtual container corresponding to the first message can be determined based on the comparison result. Among them, the destination address of the first first message sent through the virtual container is recorded by the first network device and stored in the local database.

[0179] Method 2: The first network device calculates the second hash value of the first identifier carried by the first message, compares the second hash value with the first hash value corresponding to the first 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 first message sent through the virtual container is recorded by the first network device and stored in the local database.

[0180] In one embodiment, determining the virtual container that carries the first message includes:

[0181] When the number of bytes of the first message is less than or equal to the number of available bytes of the first virtual container, determining that the virtual container carrying the first message is the first virtual container;

[0182] In the case where at least one of the following conditions is met, a second message container is newly created, and a 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 number of available 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 is less than or equal to the number of available bytes of the first virtual container, indicating that the first virtual container can accommodate the first message; the number of bytes of the first message is greater than the number of available bytes of the first virtual container, indicating that the first virtual container cannot accommodate the first message.

[0186] Based on the relevant description of the above embodiment, correspondingly, the embodiment of the present application also provides a message forwarding method, which is applied to the second network device of the first network. Figure 4 , the method comprising:

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

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

[0189] Step 402: Return a first response to the first network device, where the first response carries first information.

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

[0191] receiving a virtual container; wherein,

[0192] All first messages 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 a virtual container; and the second identifier is used to sort different virtual containers.

[0193] Here, the virtual container is sent by the previous hop device of the second network device. The previous hop device of the second network device is the third network device or the fourth network device, and the fourth network device is the 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 previous hop device of the second network device is the third network device mentioned above.

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

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

[0196] The different virtual containers are sorted, and the first message in the sorted virtual container is sent to the second computing node.

[0197] Here, in the case of receiving the virtual container, the first message in the virtual container is sent to the second computing node. The specific implementation of sending the first message in the virtual container to the second computing node is as follows:

[0198] Since different first messages of the same virtual container can arrive in order, the second network device does not need to sort the different first messages in the same virtual container. If the second network device receives different first messages of the same virtual container, the second network device decapsulates the first message to remove the Head used to carry the sixth information in the first message, and discards the Head, thereby discarding the sixth information carried by the first message, obtaining the second message, and sending the second message to the second computing node.

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

[0200] In actual application, when the second network device receives all the first messages in each virtual container, it sorts all the virtual containers according to the second identifiers carried in the first messages to obtain a virtual container sequence.

[0201] In one embodiment, 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 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 and / or corresponding priority of the destination egress routing device.

[0202] Based on the relevant description of the above embodiment, correspondingly, the embodiment of the present application also provides a message forwarding method, which is applied to the third network device of the first network. Figure 5 , the method comprising:

[0203] Step 501: Receive 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, where the second information represents relevant information of the forwarding capability of the first outbound interface of the third network device; and the first network device represents the previous hop device of the third network device.

[0205] Here, the second request may carry the destination address of the first message, so that the third network device determines the first outbound interface of the third network device according to the destination address carried in the second request.

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

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

[0208] In order to reduce the probability of congestion on the first outbound interface of the third network device, the first network device sends the message container to the third network device when it determines that the first outbound interface of the third network device can forward the message container based on the second information. Based on this, in one embodiment, the method further includes:

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

[0210] All first messages 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 a virtual container; and the second identifier is used to sort different virtual containers.

[0211] In one embodiment, 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 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 and / or corresponding priority of the destination egress routing device.

[0212] In order to reduce the probability of congestion on the outbound interface of the fourth network device, before the third network device forwards the message container, it is necessary to first determine the forwarding capability of the corresponding outbound interface of the next-hop device of the third network device to determine whether the fourth network device can forward the virtual container, thereby deciding whether to send the virtual container to the fourth network device. Based on this, in one embodiment, the method further includes:

[0213] Sending a third request to all fourth network devices according to the destination address carried by the first message, wherein the third request is used to request to obtain seventh information, and the seventh information represents relevant information of the forwarding capability of the fourth outbound interface of the fourth network device; the fourth network device represents the next hop device of the third network device;

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

[0215] Here, the destination address carried by the first message of the third network device determines all next-hop devices of the third network device, obtains all fourth network devices, and sends a third request to all fourth network devices. The third request carries the destination address carried by the first message in the received virtual container, so that the fourth network device determines the fourth outbound 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 output interface of the fourth network device is the third output 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. The method of forwarding the virtual container by the fourth network device is similar to that of forwarding the virtual container by the third network device, which will not be repeated here.

[0217] In the case where the fourth network device can forward the virtual container, a forwarding path with a better link status is determined according to the forwarding capability of the fourth outbound interface of the fourth network device. Based on this, in one embodiment, the method further includes:

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

[0219] According to the fifth outbound interface, the virtual container is sent; wherein,

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

[0221] Here, the method for the third network device to determine the fifth outbound interface and forward the virtual container is similar to the method for the first network device to determine the second outbound interface and forward the virtual container. For the specific implementation process, please refer to the above related description, which is not repeated here.

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

[0223] The link status is optimal;

[0224] The maximum available queue depth;

[0225] The queue depth is minimal;

[0226] Minimum load;

[0227] Minimum congestion.

[0228] Here, the third network device may select the link with the best link status to send the virtual container, so as to reduce the probability of traffic congestion occurring in the fourth network device.

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

[0230] When the fourth outbound interfaces of all the fourth network devices do not have the capability of forwarding the virtual container, the message container is cached in the second virtual queue, and the third request is periodically sent;

[0231] The second virtual queue represents a virtual queue corresponding to a third outgoing interface of the 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 by the first message.

[0232] The following takes the first network as a distributed switching network with a leaf-spine network architecture as an example, and further describes the present application in detail in combination with application examples.

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

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

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

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

[0237] The first message carries the 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:

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

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

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

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

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

[0243] Step 5: When the first information representation does not exceed the maximum receiving capacity of the destination switch, 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 relevant information about the forwarding capability of the first output interface of the spine switch.

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

[0246] In one embodiment, when at least one of the following conditions is met, the source switch caches the first message to the first virtual queue and periodically sends the first request and / or the second request:

[0247] The first information representation exceeds the maximum receiving capability of the second network device;

[0248] The first outbound interfaces of all third network devices do not have the capability of forwarding virtual containers;

[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 outbound interface according to all the second information and the third information.

[0251] The third information represents the maximum capacity of the virtual container; and the second outbound interface represents the first outbound interface that can forward the virtual container.

[0252] Step 8: The source switch sends the virtual container carrying the first message to the spine switch to which the second outbound interface belongs.

[0253] The third information represents the maximum capacity of the virtual container; and the second outbound interface represents the first outbound interface that can forward the virtual container.

[0254] 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 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 and / or corresponding priority of the destination egress routing device.

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

[0256] The link status is optimal;

[0257] The maximum available queue depth;

[0258] The queue depth is minimal;

[0259] Minimum load;

[0260] Minimum congestion.

[0261] In one embodiment, the source switch may also determine the virtual container that carries the first message according to the number of bytes of the first message and the number of available bytes of the virtual container; wherein,

[0262] The number of available bytes of the virtual container is determined according to fourth information and fifth information, wherein the fourth information represents a maximum capacity or threshold of the virtual container, and the fifth information represents a total number of bytes of all first messages sent through the virtual container at different times.

[0263] In one embodiment, determining the virtual container that carries the first message includes one of the following:

[0264] When the number of bytes of the first message is less than or equal to the number of available bytes of the first virtual container, determining that the virtual container carrying the first message is the first virtual container;

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

[0266] The number of bytes of the first message is greater than the number of available bytes of the first virtual container;

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

[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 in the first message.

[0270] The third request is used to request to obtain seventh information, and the seventh information represents relevant information of the forwarding capability of the third outbound 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 outbound interface based on 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 outbound interface belongs.

[0274] The third information represents the maximum capacity of the virtual container; and the fifth outbound interface represents the fourth outbound 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 message in the virtual container, obtaining a second message, and sending the second message to the second computing node;

[0277] The different virtual containers are sorted, and the first message in the sorted virtual container is sent to the second computing node.

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

[0279] Figure 7 A diagram showing an example structure of a message forwarding system applicable to an embodiment of the present application is provided. Figure 7 In the figure, SW1 is the source switch, SW2 and SW3 are both spine switches, SW4 is the destination switch, compute card 1 is the first compute node, and compute card 2 is the second compute node.

[0280] SW1 receives the second message sent by computing card 1 through network card 1, and the second message is sent to computing card 2. SW1 queries the forwarding table according to the destination address carried by the second message. The destination switch of the second message is SW4, and the third outbound interface of the destination switch is D1. SW1 stores / caches the second message in the DGSQ corresponding to D1 in SW1 for scheduling. Among them, SW1 has established a DGSQ corresponding to each outbound interface of SW2, SW3 and SW4 locally, SW2 has established a DGSQ corresponding to each outbound interface of SW1, SW3 and SW4 locally, SW3 has established a DGSQ corresponding to each outbound interface of SW1, SW2 and SW4 locally, and SW4 has established a DGSQ corresponding to each outbound interface of SW1, SW2 and SW3 locally.

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

[0282] Based on the destination address carried in the second message, SW1 determines that the next-hop device of SW1 is SW2 or SW3, the first outbound interface through which SW2 can reach the destination address is A1, and the first outbound interface through which SW3 can reach the destination address is B1; when the first information indicates that SW4 has not exceeded the maximum receiving capacity, SW1 sends a second request to SW2 to request the forwarding capability of the first outbound interface A1, and SW1 sends a second request to SW3 to request the forwarding capability of the first outbound interface B1.

[0283] SW1 determines the second outbound interface that can forward the virtual container, such as A1, among the first outbound interfaces A1 and B1 according to the forwarding capabilities of the first outbound interfaces A1 and B1. SW1 takes out the second message from the DGSQ corresponding to D1 in SW1, adds the sixth information to the second message, and obtains the first message, that is, loads the second message into the virtual container; SW1 determines the outbound interface with the lowest load (such as A1) among A1 and B1 according to the maximum capacity of the virtual container, the forwarding capabilities of A1, and the forwarding capabilities of B1 to forward the virtual container; SW1 sends the virtual container to SW2.

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

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

[0286] Based on the above embodiment, after the first network device obtains the receiving capacity of the destination network device, it can decide whether to forward the received message and / or how many bytes of the message to forward according to the receiving capacity of the destination network device; and when the destination network device can continue to receive messages, the first network device requests to obtain the forwarding capacity of the first output interface of the third network device, so as to forward the message according to the forwarding capacity of the first output interface of the third network device. In this way, the number of messages entering the first network can be controlled to be less than or equal to the forwarding flow of the entire network, reducing the probability of link congestion or port congestion in the downstream network device, and improving the performance of the entire network, such as the message forwarding performance of the entire network.

[0287] In order to implement the message forwarding method of the embodiment of the present application, the embodiment of the present application also provides a message forwarding device, which is arranged on a first network device, and the first network device includes a source routing device and / or a source network card, such as Figure 8 As shown, the device comprises:

[0288] The first sending unit 801 is used to send a first request to a second network device according to a destination address carried by the first message; 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;

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

[0290] In one embodiment, the device further comprises:

[0291] a fourth sending unit, 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, the second information represents relevant information of the forwarding capability of the first outbound interface of the third network device; and the third network device represents a next-hop device of the first network device;

[0292] The fourth receiving unit is used to receive a second response returned by the third network device, where the second response carries second information.

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

[0294] When the first message is the first message of the virtual container, a second request is sent to all third network devices.

[0295] In one embodiment, the device further comprises:

[0296] A first determining unit, configured to determine a second outgoing 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 outbound interface; wherein:

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

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

[0300] The link status is optimal;

[0301] The maximum available queue depth;

[0302] The queue depth is minimal;

[0303] Minimum load;

[0304] Minimum congestion.

[0305] In one embodiment, the device further comprises:

[0306] The second determining unit is configured to determine the virtual container carrying the first message according to the number of bytes of the first message and the number of available bytes of the virtual container; wherein,

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

[0308] In one embodiment, the second determining unit is specifically used for one of the following:

[0309] When the number of bytes of the first message is less than or equal to the number of available bytes of the first virtual container, determining that the virtual container carrying the first message is the first virtual container;

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

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

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

[0313] In one embodiment, the device further comprises:

[0314] A sixth sending unit, configured to cache the first message 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 representation exceeds the maximum receiving capability of the second network device;

[0316] The first outbound interfaces of all third network devices do not have the capability of forwarding the virtual container;

[0317] 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.

[0318] In one embodiment, 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 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 and / or corresponding priority of the destination egress routing device.

[0319] In one embodiment, the first message carries the 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:

[0320] A first identifier, where the first identifier is used to indicate a network device for creating a virtual container;

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

[0322] In one embodiment, the device further comprises:

[0323] A fifth receiving unit, configured to receive a second message sent by the first computing node;

[0324] A generating unit is used to add sixth information to the second message to obtain a first message.

[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 the message forwarding device, the first determination unit, the second determination unit and the generation unit can be implemented by a processor in the message 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 a processor in the message forwarding device in combination with a communication interface.

[0326] In order to implement the message forwarding method of the embodiment of the present application, the embodiment of the present application also provides a message forwarding device, which is arranged on a second network device, and the second network device includes a destination routing device and / or a destination network card, such as Fig. 9 As shown, the device comprises:

[0327] The second receiving unit 901 is used 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 by the 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;

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

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

[0330] The sixth receiving unit is used to receive the virtual container; wherein,

[0331] All first messages 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 a virtual container; and the second identifier is used to sort different virtual containers.

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

[0333] discarding the sixth information carried by the first message in the virtual container, obtaining a second message, and sending the second message to the second computing node;

[0334] The different virtual containers are sorted, and the first message in the sorted virtual container is sent to the second computing node.

[0335] In one embodiment, 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 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 and / or corresponding priority of the destination egress routing device.

[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 message forwarding device, and the first processing unit can be implemented by a processor in the message forwarding device.

[0337] In order to implement the message forwarding method of the embodiment of the present application, the embodiment of the present application also provides a message forwarding device, which is arranged on a third network device, such as Fig.10 As shown, the device comprises:

[0338] The third receiving unit 1001 is used to receive 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 relevant information of the forwarding capability of the first outbound interface of the third network device; the first network device represents the previous hop device of the third network device;

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

[0340] In one embodiment, the device further comprises:

[0341] A seventh receiving unit is configured to receive the virtual container sent by the first network device, wherein:

[0342] All first messages 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 a virtual container; and the second identifier is used to sort different virtual containers.

[0343] In one embodiment, the device further comprises:

[0344] an eighth sending unit, configured to send a third request to all fourth network devices according to the destination address carried by the first message, wherein the third request is used to request to obtain seventh information, and the seventh information represents relevant information of the forwarding capability of the fourth outbound interface of the fourth network device; the fourth network device represents a next hop device of the third network device;

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

[0346] In one embodiment, the device further comprises:

[0347] A third determining unit, configured to determine a fifth outgoing interface according to all the seventh information and the third information;

[0348] The ninth sending unit is used to send the virtual container according to the fifth output interface; wherein,

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

[0350] In one embodiment, the fifth outbound interface satisfies at least one of the following:

[0351] The link status is optimal;

[0352] The maximum available queue depth;

[0353] The queue depth is minimal;

[0354] Minimum load;

[0355] Minimum congestion.

[0356] In one embodiment, the device further comprises:

[0357] a tenth sending unit, configured to cache the message container to the second virtual queue and periodically send the third request when the fourth outbound interfaces of all the fourth network devices do not have the ability to forward the virtual container;

[0358] The second virtual queue represents a virtual queue corresponding to a third outgoing interface of the 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 by the first message.

[0359] In one embodiment, 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 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 and / or corresponding priority of the destination egress routing device.

[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 device, and the third determining unit can be implemented by a processor in the message forwarding device. 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 device in combination with a communication interface.

[0361] It should be noted that: the message forwarding device provided in the above embodiment only uses the division of the above program modules as an example when forwarding messages. In actual applications, the above processing can be assigned to different program modules as needed, that is, the internal structure of the device is divided into different program modules to complete all or part of the processing described above. In addition, the message forwarding device provided in the above embodiment and the message forwarding method embodiment belong to the same concept. The specific implementation process is detailed in the method embodiment, which will not be repeated here.

[0362] Based on the hardware implementation of the above program module, and in order to implement the method of the first network device side of the embodiment of the present application, the embodiment of the present application also provides a first network device, such as Fig.11 As shown, the first terminal 1100 includes:

[0363] The first communication interface 1101 is capable of exchanging information with other network nodes;

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

[0365] Specifically, the first communication interface 1101 is used to send a first request to the second network device according to the destination address carried by the first message, and to receive a first response returned by the second network device; wherein the second network device represents the 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.

[0366] In one embodiment, the first communication interface 1101 is also used to send a second request to all third network devices based on the first information and the destination address, and to receive a second response returned by the third network device; wherein the second request is used to request to obtain second information, and the second information represents relevant information of the forwarding capability of the first output interface of the third network device; the third network device represents the next hop device of the first network device; and the second response carries the second information.

[0367] In one embodiment, the first communication interface 1101 is specifically used for:

[0368] When the first message is the first message of the virtual container, a second request is sent to all third network devices.

[0369] In one embodiment, the device further comprises:

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

[0371] The first communication interface 1101 is further used to send a virtual container carrying the first message according to the second output interface; wherein,

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

[0373] In one embodiment, the second outbound interface satisfies at least one of the following:

[0374] The link status is optimal;

[0375] The maximum available queue depth;

[0376] The queue depth is minimal;

[0377] Minimum load;

[0378] Minimum congestion.

[0379] In one embodiment, the first processor 1102 is configured to determine the virtual container carrying the first message according to the number of bytes of the first message and the number of available bytes of the virtual container; wherein

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

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

[0382] When the number of bytes of the first message is less than or equal to the number of available bytes of the first virtual container, determining that the virtual container carrying the first message is the first virtual container;

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

[0384] The number of bytes of the first message is greater than the number of available bytes of the first virtual container;

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

[0386] In one embodiment, the first communication interface 1101 is further configured to cache the first message 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:

[0387] The first information representation exceeds the maximum receiving capability of the second network device;

[0388] The first outbound interfaces of all third network devices do not have the capability of forwarding the virtual container;

[0389] 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.

[0390] In one embodiment, 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 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 and / or corresponding priority of the destination egress routing device.

[0391] In one embodiment, the first message carries the 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:

[0392] A first identifier, where the first identifier is used to indicate a network device for creating a virtual container;

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

[0394] In one embodiment, the first communication interface 1101 is further used to receive a second message sent by the first computing node;

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

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

[0397] Of course, in actual application, the 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 these 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, for the sake of clarity, Fig.11 Various buses are labeled as bus system 1104 .

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

[0399] The method disclosed in the above embodiment of the present application can be applied to the first processor 1102, or implemented by the first processor 1102. The first processor 1102 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by an integrated logic circuit of the hardware in the first processor 1102 or an instruction in the form of software. The above-mentioned first processor 1102 may be a general-purpose processor, a digital signal processor (DSP, Digital Signal Processor), or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc. The first processor 1102 can implement or execute the various methods, steps and logic block diagrams disclosed in the embodiments of the present application. A general-purpose processor may be a microprocessor or any conventional processor, etc. In combination with the steps of the method disclosed in the embodiment of the present application, it can be directly embodied as a hardware decoding processor to execute, or it can be executed by a combination of hardware and software modules in the decoding processor. The software module may 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, and completes the steps of the above method in combination with its hardware.

[0400] In an exemplary embodiment, the first network device 1100 may be implemented by one or more application specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers (MCUs), microprocessors, or other electronic components to execute the aforementioned method.

[0401] Based on the hardware implementation of the above program module, and in order to implement the method of the second network device side of the embodiment of the present application, the embodiment of the present application also provides a second network device, such as Fig.12 As shown, the second network device 1200 includes:

[0402] The second communication interface 1201 is capable of exchanging information with other network nodes;

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

[0404] Specifically, the second communication interface 1201 is used 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 determined by the first network device according to a destination address carried by the 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; and the first response carries the first information.

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

[0406] All first messages 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 a virtual container; and the second identifier is used to sort different virtual containers.

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

[0408] discarding the sixth information carried by the first message in the virtual container, obtaining a second message, and sending the second message to the second computing node;

[0409] The different virtual containers are sorted, and the first message in the sorted virtual container is sent to the second computing node.

[0410] In one embodiment, 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 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 and / or corresponding priority of the destination egress routing device.

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

[0412] Of course, in actual application, the various components in the second network device 1200 are 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. In addition to the data bus, the bus system 1204 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, Fig.12Various buses are labeled as bus system 1204.

[0413] The second memory 1203 in the embodiment of the present application is used to store various types of data to support the operation of the second network device 1200. Examples of such data include: any computer program used to operate on the second network device 1200.

[0414] The method disclosed in the above embodiment of the present application can be applied to the second processor 1202, or implemented by the second processor 1202. The second processor 1202 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit or software instructions in the second processor 1202. The above-mentioned second processor 1202 may be a general-purpose processor, DSP, or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc. The second processor 1202 can implement or execute the various methods, steps and logic block diagrams disclosed in the embodiments of the present application. A general-purpose processor may be a microprocessor or any conventional processor, etc. In combination with the steps of the method disclosed in the embodiment of the present application, it can be directly embodied as a hardware decoding processor to execute, or it can be executed by a combination of hardware and software modules in the decoding processor. The software module may be located in a storage medium, which is located in the second memory 1203, and the second processor 1202 reads the information in the second memory 1203 and completes the steps of the above method in combination with its hardware.

[0415] In an exemplary embodiment, the second network device 1200 may be implemented by one or more ASICs, DSPs, PLDs, CPLDs, FPGAs, general processors, controllers, MCUs, Microprocessors, or other electronic components to perform the aforementioned methods.

[0416] Based on the hardware implementation of the above program module, and in order to implement the method on the third network device side of the embodiment of the present application, the embodiment of the present application also provides a third network device, such as Fig.13 As shown, the third network device 1300 includes:

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

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

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

[0420] In one embodiment, the third communication interface 1301 is further used to receive the virtual container sent by the first network device, wherein:

[0421] All first messages 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 a virtual container; and the second identifier is used to sort different virtual containers.

[0422] In one embodiment, the third communication interface 1301 is also used to send a third request to all fourth network devices according to the destination address carried by the first message, and to receive a third response returned by the fourth network device; wherein the third request is used to request to obtain seventh information, and the seventh information represents relevant information about the forwarding capability of the fourth output interface of the fourth network device; the fourth network device represents the next hop device of the third network device; and the third response carries the seventh information.

[0423] In one embodiment, the third processor 1302 is configured to determine a fifth outgoing interface according to all the seventh information and the third information;

[0424] The third communication interface 1301 is further used to send the virtual container according to the fifth output interface;

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

[0426] In one embodiment, the fifth outbound interface satisfies at least one of the following:

[0427] The link status is optimal;

[0428] The maximum available queue depth;

[0429] The queue depth is minimal;

[0430] Minimum load;

[0431] Minimum congestion.

[0432] In one embodiment, the third communication interface 1301 is further used to cache the message container to the second virtual queue and periodically send the third request when the fourth outbound interfaces of all fourth network devices do not have the ability to forward the virtual container;

[0433] The second virtual queue represents a virtual queue corresponding to a third outgoing interface of the 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 by the first message.

[0434] In one embodiment, 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 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 and / or corresponding priority of the destination egress routing device.

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

[0436] Of course, in actual application, the 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 these components. In addition to the data bus, the bus system 1304 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, Fig.13 Various buses are labeled as bus system 1304.

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

[0438] The method disclosed in the above embodiment of the present application can be applied to the third processor 1302, or implemented by the third processor 1302. The third processor 1302 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit or software instructions in the third processor 1302. The above-mentioned third processor 1302 may be a general-purpose processor, DSP, or other programmable logic devices, discrete gates 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. A general-purpose processor may be a microprocessor or any conventional processor, etc. In combination with the steps of the method disclosed in the embodiment of the present application, it can be directly embodied as a hardware decoding processor to execute, or it can be executed by a combination of hardware and software modules in the decoding processor. The software module may be located in a storage medium, which is located in the third memory 1303, and the third processor 1302 reads the information in the third memory 1303 and completes the steps of the above method in combination with its hardware.

[0439] In an exemplary embodiment, the third network device 1300 may be implemented by one or more ASICs, DSPs, PLDs, CPLDs, FPGAs, general processors, controllers, MCUs, Microprocessors, or other electronic components to perform the aforementioned methods.

[0440] It can be understood that the memory (first memory 1103, second memory 1203, third memory 1303) of the embodiment of the present application can be a volatile memory or a non-volatile memory, and can also include both volatile and non-volatile memories. Among them, 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 magnetic random access memory (FRAM), a ferromagnetic random access memory, 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), which is used as an external cache.By way of example but not limitation, many forms of RAM are available, 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 (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), direct memory bus random access memory (DRRAM). The memory described in the embodiments of the present application is intended to include but is not limited to these and any other suitable types of memory.

[0441] In an exemplary embodiment, the embodiment of the present application further provides a storage medium, namely a computer storage medium, specifically a computer-readable storage medium, for example, including a first memory 1103 storing a computer program, and the computer program can be executed by the first processor 1102 of the first network device 1100 to complete the steps of the first network device side method. For another example, a second memory 1203 storing a computer program is included, and the computer program can be executed by the second processor 1202 of the second network device 1200 to complete the steps of the second network device side method. For another example, a third memory 1303 storing a computer program is included, and the computer program can be executed by the third processor 1302 of the third network device 1300 to complete the steps of the third network device side method. The computer-readable storage medium can be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface memory, optical disk, or CD-ROM.

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

[0443] The term "and / or" herein is only a description of the association relationship of the associated objects, indicating that there may be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the term "at least one" herein represents any combination of at least two of any one or more of a plurality of. For example, including at least one of A, B, and C can represent 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 description is only a preferred embodiment of the present application and is not intended to limit the protection scope of the present application.

Claims

1. A message forwarding method, It is characterized in that A first network device applied to a first network, the method comprising: Sending a first request to a second network device according to a destination address carried by the first message; 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; A first response returned by the second network device is received, where the first response carries first information.

2. The method according to claim 1, It is characterized in that The method further comprises: 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, the second information represents relevant information of the forwarding capability of the first outbound interface of the third network device; the third network device represents the next hop device of the first network device; A second response returned by the third network device is received, where the second response carries second information.

3. The method according to claim 2, It is characterized in that The sending the second request to all third network devices comprises: When the first message is the first message of the virtual container, a second request is sent to all third network devices.

4. The method according to claim 2, It is characterized in that The method further comprises: Determine a second output interface according to all the second information and the third information; According to the second outbound interface, a virtual container carrying the first message is sent; wherein, The third information represents the maximum capacity of the virtual container; the second outbound interface represents the first outbound interface that can forward the virtual container.

5. The method according to claim 4, It is characterized in that The second outbound interface satisfies at least one of the following: The link status is optimal; The maximum available queue depth; The queue depth is minimal; Minimum load; Minimum congestion.

6. The method according to claim 4 or 5, It is characterized in that The method further comprises: Determine the virtual container that carries the first message according to the number of bytes of the first message and the number of available bytes of the virtual container; wherein, The number of available bytes of the virtual container is determined according to fourth information and fifth information, wherein the fourth information represents a maximum capacity or threshold of the virtual container, and the fifth information represents a total number of bytes of all first messages sent through the virtual container at different times.

7. The method according to claim 6, It is characterized in that The determining of the virtual container carrying the first message includes one of the following: When the number of bytes of the first message is less than or equal to the number of available bytes of the first virtual container, determining that the virtual container carrying the first message is the first virtual container; In the case where at least one of the following conditions is met, a second message container is newly created, and a virtual container carrying the first message is determined to be the second virtual container: The number of bytes of the first message is greater than the number of available bytes of the first virtual container; The lifetime of the first virtual container is reached.

8. The method according to any one of claims 1 to 5, It is characterized in that The method further comprises: When at least one of the following conditions is met, the first message is cached in a first virtual queue, and the first request and / or the second request is periodically sent: The first information representation exceeds the maximum receiving capability of the second network device; The first outbound interfaces of all third network devices do not have the capability of forwarding the virtual container; 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.

9. The method according to any one of claims 3 to 5 and 7, It is characterized in that 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 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 and / or corresponding priority of the destination egress routing device.

10. The method according to any one of claims 1 to 5 and 7, It is characterized in that The first message carries the 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: A first identifier, where the first identifier is used to indicate a network device for creating a virtual container; The second identifier: The second identifier is used to sort different virtual containers.

11. The method according to claim 10, It is characterized in that The method further comprises: Receiving a second message sent by the first computing node; Add sixth information to the second message to obtain a first message.

12. A message forwarding method, It is characterized in that A second network device applied to a first network, the method comprising: 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 by the 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; A first response is returned to the first network device, where the first response carries first information.

13. The method according to claim 12, It is characterized in that The method further comprises: receiving a virtual container; wherein, All first messages 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 a virtual container; and the second identifier is used to sort different virtual containers.

14. The method according to claim 13, It is characterized in that The method further comprises at least one of the following: discarding the sixth information carried by the first message in the virtual container, obtaining a second message, and sending the second message to the second computing node; The different virtual containers are sorted, and the first message in the sorted virtual container is sent to the second computing node.

15. The method according to claim 13 or 14, It is characterized in that 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 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 and / or corresponding priority of the destination egress routing device.

16. A message forwarding method, It is characterized in that A third network device applied to a first network, 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 represents relevant information of the forwarding capability of the first outbound interface of the third network device; and the first network device represents a previous hop device of the third network device; A second response is returned to the first network device, where the second response carries second information.

17. The method according to claim 16, It is characterized in that The method further comprises: receiving a virtual container sent by the first network device, wherein: All first messages 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 a virtual container; and the second identifier is used to sort different virtual containers.

18. The method according to claim 17, It is characterized in that The method further comprises: Sending a third request to all fourth network devices according to the destination address carried by the first message, wherein the third request is used to request to obtain seventh information, and the seventh information represents relevant information of the forwarding capability of the fourth outbound interface of the fourth network device; the fourth network device represents the next hop device of the third network device; A third response returned by the fourth network device is received, where the third response carries seventh information.

19. The method according to claim 18, It is characterized in that The method further comprises: Determine a fifth outgoing interface according to all the seventh information and the third information; According to the fifth outbound interface, the virtual container is sent; wherein, The third information represents the maximum capacity of the virtual container; and the fifth outbound interface represents a fourth outbound interface that can forward the virtual container.

20. The method according to claim 19, It is characterized in that The fifth outbound interface satisfies at least one of the following: The link status is optimal; The maximum available queue depth; The queue depth is minimal; Minimum load; Minimum congestion.

21. The method according to any one of claims 17 to 20, It is characterized in that The method further comprises: When the fourth outbound interfaces of all the fourth network devices do not have the capability of forwarding the virtual container, the message container is cached in the second virtual queue, and the third request is periodically sent; The second virtual queue represents a virtual queue corresponding to a third outgoing interface of the 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 by the first message.

22. The method according to any one of claims 17 to 20, It is characterized in that 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 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 and / or corresponding priority of the destination egress routing device.

23. A message forwarding device, It is characterized in that include: A first sending unit, configured to send a first request to a second network device according to a destination address carried by the first message; 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; The first receiving unit is configured to receive a first response returned by the second network device, where the first response carries first information.

24. A message forwarding device, It is characterized in that include: A second receiving unit is used 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 by the 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; The second sending unit is used to return a first response to the first network device, where the first response carries first information.

25. A message forwarding device, It is characterized in that include: A third receiving unit is used to receive 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 relevant information of the forwarding capability of the first outbound interface of the third network device; the first network device represents the previous hop device of the third network device; The third sending unit is used to return a second response to the first network device, where the second response carries second information.

26. A first network device, It is characterized in that comprising a first processor and a first communication interface, wherein: The first communication interface is used to send a first request to the second network device according to the destination address carried in the first message; and receive a first response returned by the 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; and the first response carries the first information.

27. A second network device, It is characterized in that comprising a second processor and a second communication interface, wherein: The second communication interface is used 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 the destination network device determined by the first network device according to the destination address carried by the first message, the first request is used to request to obtain first information, and the first information represents the receiving capability of the second network device; the first response carries the first information.

28. A third network device, It is characterized in that comprising a third processor and a third communication interface, wherein: The third communication interface is used to receive a second request sent by the first network device of the first network, and return a second response to the first network device; wherein, The first network device represents the previous hop device of the third network device; the second request is used to request to obtain second information, and the second information represents the relevant information of the forwarding capability of the first output interface of the third network device; the second response carries the second information.

29. A network device, It is characterized in that comprising a processor and a memory for storing a computer program capable of being executed on the processor, When the processor is used to run the computer program, it executes the steps of the method described in any one of claims 1 to 11, or executes the steps of the method described in any one of claims 12 to 15, or executes the steps of the method described in any one of claims 16 to 22.

30. A storage medium having a computer program stored thereon, It is characterized in that When the computer program is executed by a processor, the computer program implements the steps of the method described in any one of claims 1 to 11, or implements the steps of the method described in any one of claims 12 to 15, or implements the steps of the method described in any one of claims 16 to 22.

Citation Information

Patent Citations

  • SNMP simulator for network management capacity testing and testing method thereof

    CN105515825A

  • Data transmission method and network equipment

    CN108259383A

  • Method for generating label forwarding table, message sending method, device and equipment

    CN110661711A

  • Flow control method, apparatus and system and storage medium

    CN111385223A

  • Method for generating label forwarding table, message sending method, device and equipment

    CN112702266A