CN108123878B - Routing method, routing device and data forwarding equipment - Google Patents

Routing method, routing device and data forwarding equipment Download PDF

Info

Publication number
CN108123878B
CN108123878B CN201611086242.2A CN201611086242A CN108123878B CN 108123878 B CN108123878 B CN 108123878B CN 201611086242 A CN201611086242 A CN 201611086242A CN 108123878 B CN108123878 B CN 108123878B
Authority
CN
China
Prior art keywords
data forwarding
forwarding device
ports
port
destination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201611086242.2A
Other languages
Chinese (zh)
Other versions
CN108123878A (en
Inventor
严金丰
袁峰
颜清华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201611086242.2A priority Critical patent/CN108123878B/en
Publication of CN108123878A publication Critical patent/CN108123878A/en
Application granted granted Critical
Publication of CN108123878B publication Critical patent/CN108123878B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities

Landscapes

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

Abstract

The invention provides a routing method, a routing device and data forwarding equipment, wherein the method comprises the following steps: the data forwarding equipment acquires a data packet; the data forwarding equipment determines whether a next hop-out port of the data packet is matched in a preset routing table or not; wherein, the output ports in the preset routing table are all uncongested output ports; if the next hop-out port of the data packet is not matched in a preset routing table, the data forwarding device determines a first port as the next hop-out port from the data packet to a destination data forwarding device in other ports of the data forwarding device except for a congestion output port recorded in a congestion information table to the destination data forwarding device of the data packet; and the data forwarding equipment sends the data packet through the first port. The method can provide a routing method with strong expansibility and is suitable for a network with a multi-level close architecture.

Description

Routing method, routing device and data forwarding equipment
Technical Field
The present invention relates to the field of communications technologies, and in particular, to a routing method, a routing device, and a data forwarding device.
Background
With the development of network technology, data centers have become an infrastructure for providing internet network services, distributed parallel computing, and the like. Designing an extensible network architecture and an efficient routing algorithm for a data center is a research hotspot of the current academic community. The industry typically builds data centers using clos architecture. With the rapid development of services such as spider web (web) application, big data analysis, cloud computing and the like, the demand for the capacity of a data center switching network is increasing. Two-stage close architecture based on leaf-spine (leaf-spine) is far from meeting the requirement of business on capacity, and more stages of close architecture are needed to construct a large-scale data center in the future.
In the prior art, a distributed processing scheme is proposed to perform load scheduling on data center traffic, where the quality of a load balancing effect of a data center directly affects user experience, and the method specifically includes: and in the process of transmitting the data message from the source node to the destination node, encapsulating the selected path identifier and the congestion metric value of each link in the path in the data message and transmitting the data message to the destination node. When a message needs to be sent from a destination node to a source node, a path identifier and the congestion condition corresponding to the path are encapsulated in the data message and are reported to the source node. In this way, the source node can know which of the different paths to the destination node is the least congested. When there is a data packet to be sent to the destination node, the path with the least congestion is preferred to send the data packet.
In the routing scheme, as the close hierarchy expands, the number of end-to-end paths grows exponentially, and the size of the table entry required by the scheme also grows exponentially, for example, the number of the table entries required by a three-level close architecture is more than 100 ten thousand, and the existing switch cannot support such a large number of table entries. In addition, because end-to-end paths grow exponentially, the time required to maintain real-time congestion information for all end-to-end paths on the switch also grows exponentially. Under a 2-level clos architecture based on leaf-spine, the number of end-to-end paths is 24, and the time required for acquiring congestion information of all end-to-end paths can be accepted. However, the number of end-to-end paths in the 3-level clos architecture is 576, and the number of end-to-end paths in the 4-level clos architecture is as high as 13824, so that it takes a long time to obtain real-time congestion information on all paths for traffic scheduling. Therefore, the routing scheme has a poor effect in a multi-level close architecture, that is, the routing scheme has poor expansibility.
Disclosure of Invention
The embodiment of the invention provides a routing method, a routing device and data forwarding equipment, which are used for solving the technical problem of poor expansibility of a routing mode in the prior art.
In a first aspect, an embodiment of the present invention provides a routing method, which is described in terms of data forwarding devices on a data packet transmission path. In the method, a data forwarding device obtains a data packet. For example, if the data forwarding device is a source data forwarding device, the data packet may be generated, and if the data forwarding device is a non-source data forwarding device, the data packet may be received from a data forwarding device of an upper layer. Then the data forwarding equipment determines whether a next hop-out port of the data packet is matched in a preset routing table; and all the output ports in the preset routing table are non-congested output ports. If the next hop-out port of the data packet is not matched in the preset routing table, the data forwarding device determines that the first port is used as the next hop-out port from the data packet to the destination data forwarding device in other ports of the data forwarding device except the congestion output port recorded in the congestion information table to the destination data forwarding device of the data packet. The data forwarding device then sends the data packet through the first port. In the embodiment of the invention, on one hand, the port with congestion is recorded in the congestion information table, so the number of required table entries is less; on the other hand, the data forwarding device selects one of the ports that are not congested as a next hop port according to the congested port in the congestion record table, that is, the data forwarding device selects an available next hop for a packet hop-by-hop, and does not need to select an end-to-end optimal path like the method in the prior art, so that it is not necessary to wait for feeding back the use conditions of all end-to-end paths, and it is not necessary to wait for a long time. In summary, the routing method in the embodiment of the present invention has strong scalability, and is suitable for a network with a multi-level close architecture.
In one possible design, the data forwarding device further determines congested ports to each destination data forwarding device among all ports of the data forwarding device; and the data forwarding equipment records the port numbers of the congestion ports of each destination data forwarding equipment and the congestion ports corresponding to each destination data forwarding equipment in the congestion information table. In the embodiment of the invention, each data forwarding device establishes and maintains the congestion information table, so that the method is convenient and convenient to implement.
In one possible design, described from the perspective of a non-source data forwarding device, the method further includes: the data forwarding equipment determines whether all ports from the data forwarding equipment to each destination data forwarding equipment are in a congestion state or not; if all ports from the data forwarding device to a first destination data forwarding device in the destination data forwarding devices are in a congestion state, the data forwarding device sends first notification information to an upper layer data forwarding device, where the first notification information is used to notify the upper layer data forwarding device, and the data forwarding device cannot serve as a next hop from the upper layer data forwarding device to the first destination data forwarding device; if all ports from the data forwarding device to a second destination data forwarding device in the destination data forwarding devices are not in a congestion state, the data forwarding device sends second notification information to an upper layer data forwarding device, where the second notification information is used to notify the upper layer data forwarding device, and the data forwarding device can be used as a next hop from the upper layer data forwarding device to the second destination data forwarding device. By the method, the congestion state of the data forwarding equipment of the upper layer can be informed, so that the data forwarding equipment of the upper layer can determine the congested port.
In one possible design, the description is made from the perspective of a non-destination data forwarding device and a data forwarding device on a layer higher than the non-destination data forwarding device, where the data forwarding device determines a congested port to each destination data forwarding device among all ports of the data forwarding device, and the method includes: the data forwarding equipment receives third notification information sent by each lower-layer data forwarding equipment connected with a port of the data forwarding equipment; wherein, each lower layer data forwarding device is a data forwarding device on a path to each destination data forwarding device; the third notification information is used for representing whether each lower layer data forwarding device can be used as a next hop of the data forwarding device to reach each destination data forwarding device; and the data forwarding equipment determines congested ports to each destination data forwarding equipment in all the ports of the data forwarding equipment according to the third notification information. By the method, the data forwarding equipment can acquire the congestion condition from the lower layer data forwarding equipment to the target data forwarding equipment, further determine the unavailable next hop-out port of the data forwarding equipment, and acquire the congestion point number of the unavailable next hop-out port.
In combination with any of the above possible designs, the method further comprises: if the non-congested output port of the data forwarding device is changed into a congested output port, the data forwarding device further determines whether the preset routing table includes the congested output port; and if the preset routing table contains the congested output port, the data forwarding equipment deletes the table entry containing the congested output port from the preset routing table. By the method, the preset routing table can be updated according to the congestion state of the port, so that the output port in the preset routing table is always the available next hop-out port.
In combination with any of the above possible designs, after the determining the first port as a next hop-out port of the packet to the destination forwarding device, the method further includes: and the data forwarding equipment establishes a new table entry for the data flow corresponding to the data packet in the preset routing table, wherein an output port of the new table entry is the first port. By the method, the data packet of the subsequent data stream can be sent according to the first port, and the data packet forwarding time is saved.
In a second aspect, an embodiment of the present invention provides a data forwarding device. The data forwarding apparatus includes: at least two ports, a transmitter, a receiver, and a processor. The transmitter may be configured to perform the steps of transmitting in the routing method of the first aspect. The receiver may perform the steps of receiving or obtaining in the routing method of the aforementioned first aspect. The processor may perform the steps of establishing, deleting, recording or determining in the routing method of the first aspect described above.
In a third aspect, an embodiment of the present invention provides a routing device, where the routing device includes a functional module configured to implement the method in the first aspect.
In a fourth aspect, an embodiment of the present invention further provides a computer storage medium having program code stored thereon, where the program code includes instructions for implementing any possible implementation manner of the method of the first aspect.
Drawings
Fig. 1a is a structural diagram of a switching network according to an embodiment of the present invention;
FIGS. 1 b-1 c are block diagrams of a data center according to an embodiment of the present invention;
fig. 2 is a structural diagram of a data forwarding device according to an embodiment of the present invention;
fig. 3 is a flowchart of a routing method according to an embodiment of the present invention;
fig. 4 is a functional block diagram of a routing device according to an embodiment of the present invention.
Detailed Description
The embodiment of the invention provides a routing method, a routing device and data forwarding equipment, which are used for solving the technical problem of poor expansibility of a routing mode in the prior art.
The term "and/or" herein is merely an association describing an associated object, meaning that three relationships may exist, e.g., a and/or B, may mean: a exists alone, A and B exist simultaneously, and B exists alone. In addition, the character "/" herein generally indicates that the former and latter related objects are in an "or" relationship.
Hereinafter, the embodiments of the present invention will be described in detail with reference to the accompanying drawings.
The routing method provided by the embodiment of the invention can be applied to a data center of an m-level close architecture, wherein m is an integer greater than or equal to 2. The method can also be applied to a switching network as shown in fig. 1 a.
In the method, on the architecture of the existing data center and in a switching network, data forwarding equipment detects the congestion state of a port, and when a link corresponding to the port is congested, the port is deleted from an available next hop reaching target data forwarding equipment. After deleting, if the available next hop to the destination data forwarding device is 0, the data forwarding device notifies all the upper layer data forwarding devices that the destination data switching device cannot be reached by itself. The upper layer data forwarding equipment updates the available next hop table entry corresponding to the target data forwarding equipment. And when the flow is scheduled, the data forwarding equipment selects the available next hop for the data packet hop by hop according to the congestion information fed back in real time. Therefore, the method has strong expansibility and is suitable for a network with a multi-level close architecture.
Specifically, in the switching network shown in fig. 1a, a plurality of paths from a source switch to a destination switch are simply shown, and the switches on the paths are referred to as intermediate switches, for example, intermediate switch 1 to intermediate switch 4. It should be understood that in practical applications, the switching network may also include more paths, and the number of intermediate switches on each path may also be greater.
Specifically, referring to fig. 1b, a network structure diagram of a data center with a 3-level clos architecture according to an embodiment of the present invention is shown. In the embodiment, the 3-level clos architecture is exemplified by a 3-way fat tree (fat-tree) topology. The network structure is divided into three layers from top to bottom. The three layers from top to bottom are respectively a core layer, a convergence layer and an edge layer. The switches of the core layer are called core switches, the switches of the aggregation layer are called aggregation switches, and the switches of the edge layer are called edge switches. The hosts or servers are connected directly to the edge switches. In practical applications, the devices distributed in the three layers may be other devices for data forwarding, such as routers, and are collectively referred to herein as data forwarding devices for convenience of description.
It should be noted that, in a clos architecture with different topologies or in different scenarios, the naming of each stage of data forwarding device may be slightly different, for example, an edge switch may also be referred to as a leaf switch in a 2-stage leaf-spine clos architecture, and a core switch may also be referred to as a spine switch in a 2-stage leaf-spine clos architecture. Also for example, an edge switch may be functionally referred to as an access switch. From the switch structure, the edge switch may also be called a Top-of-Rack (TOR) switch. For ease of description, collectively referred to herein as data forwarding devices.
Referring still to fig. 1b, the n-ary fat tree network includes 2n Performance optimization data centers (Pod), and each data forwarding device has 2n ports. Therefore, in this embodiment, the network structure of the data center with n being 3 includes 6 Pod, the number of the edge switch and the aggregation switch in each Pod is 3, and the core switch has 3 core groups, which are core group 0 to core group 2 respectively. There are 3 core switches per core group. Each one of which isThe number of hosts or servers connected by Pod is n2I.e. 9, the total number of hosts that the network can support is (2n)3And/4, i.e. 54. Each switch has 6 ports. The 6 ports of 1 aggregation switch in each Pod are connected with 3 core switches in 1 core group, and are connected with 3 edge switches in the same Pod, and the core groups connected with each aggregation switch are different. The 6 ports of each edge switch are connected to 3 aggregation switches and 3 hosts in the same Pod, respectively. For example, as shown in fig. 1b, aggregation switch 0 within Pod0 is connected to three core switches of core group 0, respectively, and to 3 edge switches within Pod 0. Aggregation switch 1 within Pod0 is connected to 3 core switches of core group 1 and to 3 edge switches within Pod 0. Aggregation switch 2 within Pod0 is connected to 3 core switches of core group 2 and to 3 edge switches within Pod 0. The connection of the switches in other Pod is similar and will not be described herein.
In fig. 1b, Pod0 to Pod6 represent Pod numbers, and in practical use, different pods may be identified by other identifiers. The numbers 0 to 2 of the switches in the core layer are used to uniquely identify the core switches in the same core group, and similarly, the numbers 0 to 2 of the switches in the aggregation layer are used to uniquely identify the aggregation switches in the same Pod, and the numbers 0 to 2 of the switches in the edge layer are used to uniquely identify the edge switches in the same Pod.
Referring to fig. 1c again, another mode of showing the 3-stage close architecture in fig. 1b is shown, in this embodiment, n is 3, each access switch has 2n ports, and the number of access switches is 2n2Respectively from access switch 1 to access switch n +1 and then to access switch 2n2. The aggregation switch and the core switch form a layer, and there are n layers in total, which are layer 1 to layer n respectively. Each layer comprises 2n aggregation switches, namely aggregation switch 1 to aggregation switch 2 n. Each aggregation switch has 2n ports. Wherein n ports of each aggregation switch are respectively connected with eachThe n core switches included in the layer are connected, and the n core switches are respectively a core switch 1 to a core switch n. The other n ports of each aggregation switch are connected to n access switches. Each core switch has 2n ports. Each aggregation switch is connected with each core switch. The n ports of each access switch are connected to one aggregation switch of n levels. The other n ports of each access switch may be connected to hosts or servers. 2n of2The number of hosts or servers to which each access switch can be connected is 2n3. Corresponding to the structure in fig. 1b, the core switches 0 to 2 of the core group 0 and the aggregation switches 0 in each Pod form a first layer, the core switches 0 to 2 of the core group 1 and the aggregation switches 1 in each Pod form a second layer, and the core switches 1 to 2 of the core group 2 and the aggregation switches 2 in each Pod form a third layer.
Some technical terms in the present disclosure are described by taking terms in the network structure of the existing data center as examples, and may change with the evolution of the network, and the specific evolution may refer to descriptions in the corresponding standards.
Referring next to fig. 2, fig. 2 is a block diagram of a possible structure of a data forwarding device according to an embodiment of the present invention. Such as the aforementioned edge switches, access switches, aggregation switches, and core switches. As shown in fig. 2, the data forwarding apparatus includes: a processor 10, a transmitter 20, a receiver 30, a memory 40 and a port 50. The memory 40, the transmitter 20 and the receiver 30, and the processor 10 may be connected by a bus. Of course, in practical applications, the memory 40, the transmitter 20, the receiver 30 and the processor 10 may be not in a bus structure, but may be in other structures, such as a star structure, and the present application is not limited in particular.
Optionally, the processor 10 may be a central processing unit, an Application Specific Integrated Circuit (ASIC), one or more Integrated circuits for controlling program execution, a hardware Circuit developed by using a Field Programmable Gate Array (FPGA), or a baseband processor.
Optionally, the processor 10 may include at least one processing core.
Alternatively, the Memory 40 may include a Read Only Memory (ROM), a Random Access Memory (RAM), and a disk Memory. The memory 40 is used to store data required by the processor 10 during operation. The number of the memory 40 is one or more.
Optionally, the number of the ports 50 is one or more, and the ports are used for connecting with data forwarding devices of an upper layer or a lower layer. The port 50 is also used to connect to a host or server if the data forwarding device is a data forwarding device connected to the host or server, such as an access switch or edge switch as described above.
Alternatively, the transmitter 20 and the receiver 30 may be physically independent of each other or may be integrated together. Transmitter 20 may transmit data to an adjacent data forwarding device through port 50. Receiver 30 may receive data transmitted by an adjacent data forwarding device through port 50.
Referring to fig. 3, a flow chart of a routing method according to an embodiment of the invention is shown. As shown in fig. 3, the method includes:
step 101: the data forwarding equipment acquires a data packet;
step 102: the data forwarding equipment determines whether a next hop-out port of the data packet is matched in a preset routing table or not; wherein, the output ports in the preset routing table are all uncongested output ports;
step 103: if the next hop-out port of the data packet is not matched in the preset routing table, the data forwarding device determines the first port as the next hop-out port from the data packet to the destination data forwarding device in other ports of the data forwarding device except the congestion output port recorded in the congestion information table to the destination data forwarding device of the data packet;
step 104: and the data forwarding equipment sends the data packet through the first port.
It should be noted that, in the embodiment of the present invention, congestion and non-congestion are relatively speaking, a congestion condition and a non-congestion condition may be set by a user according to actual needs, and congestion standards of different network structures may also be different, and may be specifically set according to actual situations. The decision thresholds or criteria for congestion and non-congestion are only examples and are not intended to limit the present invention.
In step 101, the data forwarding device may obtain the data packet in, but not limited to, two ways, one is to generate the data packet by itself, and the other is to receive the data packet from the upper layer device. For example, when the data forwarding device is a source data forwarding device, the data packet may be generated by the data forwarding device. If the data forwarding device is a non-source data forwarding device, the data forwarding device may receive a data packet from an upper layer data forwarding device.
Regardless of the manner in which the data packet is obtained, after obtaining the data packet, step 102 is executed next, that is, the data forwarding apparatus determines whether the next hop-out port of the data packet is matched in the preset routing table. And all the output ports in the preset routing table are uncongested output ports, namely available output ports.
Optionally, it may be ensured that all the egress ports in the preset routing table are non-congested egress ports when the step 102 is executed in the preset routing table by a real-time updating manner, which will be described in detail later.
Optionally, the preset routing table may be a routing table established by a method in the prior art, or the routing table may be updated by a method in the prior art. For example, the predetermined routing table includes entries including two fields, a first field is a hash value of a packet five-tuple, and a second field is a next hop port number. The quintuple of the data packet may include a source network Protocol (IP) address, a source port number, a destination IP address, a destination port number, and a transport layer Protocol. The hash value of the quintuple can be obtained by performing hash calculation on the quintuple.
Optionally, the quintuple of all packets of each data flow is the same, so the next hop-out port in the preset routing table entry is for each data flow. Therefore, packets of the same data flow are all matched to the same next hop-out port.
In the above description, the scheduling is performed based on data flow, so the routing table is based on data flow, but in practical application, the scheduling may also be based on flow cluster (flow) scheduling, correspondingly, the preset routing table may be a flow routing table, the flow is divided by a minimum time interval, the time interval of adjacent data packets in a flow is smaller than the minimum time interval, as long as the minimum time interval is larger than the maximum time delay difference of equivalent multipath, multiple flows can be scheduled to different paths without disorder. The flowlet forwarding mechanism is well known to those skilled in the art and will not be described in detail herein.
For example, in step 102, the data forwarding device may calculate a hash value of a five-tuple of the data packet, match the hash value in a preset routing table, and then determine whether the matching is successful, if the matching is successful, a next hop-out port corresponding to the hash value of the successfully matched five-tuple is a next hop-out port of the data packet; the data forwarding device may send the data packet through the matched next hop-out port. If the next hop-out port of the packet is not successfully matched in the preset routing table, the data forwarding apparatus executes step 103.
It should be noted that, according to the difference of the matching fields in the entries of the preset routing table, in the determination process in step 102, the contents of matching are also different. For example, if the first field included in the entry of the preset routing table is the flow identifier of the data flow, and the second field is the corresponding next hop port number, in step 102, the data forwarding device may obtain the flow identifier of the packet, and then perform matching in the preset routing table according to the flow identifier to determine whether there is a next hop port corresponding to the packet in the preset routing table. This part of the disclosure is well known to those skilled in the art and will not be described further herein.
In step 103, the data forwarding apparatus determines the first port as a next hop-out port of the packet to the destination data forwarding apparatus, from other ports of the data forwarding apparatus except the congested output port of the destination data forwarding apparatus to the packet recorded in the congestion information table.
To facilitate understanding of the routing method in the embodiment of the present invention, a process of acquiring the congestion information table by the data forwarding device will be described below.
One possible implementation of obtaining the congestion information table is as follows: the data forwarding equipment determines congested ports to each destination data forwarding equipment in all ports of the data forwarding equipment; recording the port numbers of each destination data forwarding device and the congested port corresponding to each destination data forwarding device in a congestion information table, wherein the congestion information table further comprises the congestion point number of each congested port. In other words, the congestion record table maintained by the data forwarding device records the next hop-out port of the data forwarding device, which is unavailable to the respective destination data forwarding devices. Further, the congestion information table may also record the number of congestion points for each unavailable next hop-out port.
Generally, there are two main reasons why the next hop egress port is unavailable, namely that the data forwarding device is congested to the next hop data forwarding device, and that the next hop data forwarding device is congested to the destination data forwarding device. Thus, the number of congestion points may reflect the number of congestion points from the present data forwarding device to the destination forwarding device.
Therefore, for the above two reasons, the data forwarding device determines the congested port to each destination data forwarding device among all the ports of the data forwarding device, and determines whether the data forwarding device is congested to the next-hop data forwarding device on the one hand and the next-hop data forwarding device on the other hand.
The determining whether the data forwarding device is congested to the next hop data forwarding device may be by determining whether the number of data streams scheduled to a port connected to the next hop data forwarding device exceeds a threshold, and if the number of data streams exceeds the threshold, indicating that the port is congested, otherwise, indicating that the port is not congested. Or, it may be determined whether a packet sending rate of a port scheduled to a port connected to the next hop data forwarding device exceeds a threshold, and if the packet sending rate exceeds the threshold, it indicates that the port is congested, otherwise, it indicates that the port is not congested. The scheme is suitable for the upper layer data forwarding equipment from the source data forwarding equipment to the target data forwarding equipment.
For example, in a network configuration such as that shown in fig. 1c, an access switch 1 has 2n ports, where n ports are used to connect hosts or servers, and n other ports are used to connect upstream aggregation switches, such as aggregation switch 1 connected to n levels. Irrespective of which access switch the destination data forwarding device is left, e.g. access switch 2n2The access switch 1 is, for example, a source switch, and then the aggregation switches 1 on n layers are all reachable next-hop switches, so that n ports connected to the aggregation switch 1 may be referred to as uplink ports. Furthermore, the access switch 1 may determine whether the aggregation switch 1 of the access switch 1 to the n layers is congested, for example, 20 data flows currently scheduled to the aggregation switch 1 on the layer 1 exceed the threshold 10, which indicates that the path is congested and is unavailable, so that the port of the aggregation switch 1 connected to the layer 1 may be recorded in the congestion information table. And 5 data flows currently scheduled to the aggregation switch 1 on the layer n do not exceed the threshold 10, which indicates that the path is not congested and can be used as an available next hop-out port.
Optionally, please refer to table one to show a possible format of the congestion record table.
Destination data forwarding apparatus Unavailable next hop out port
1 { port No.: number of congestion points }
2 { port No.: number of congestion points }
k { port No.: number of congestion points }
Watch 1
In table one, the congestion record table may include two fields, namely a "destination data forwarding device" field and an "unavailable next hop out port" field. The "destination data forwarding device" may either fill the identification of the destination data forwarding device or fill the address, e.g. the IP address, of the destination data forwarding device. In practical applications, the content filled in the field is only required to be able to uniquely identify the destination data forwarding device, and the embodiment of the present invention is not particularly limited. The "unavailable next hop port" field may be filled with the port number of the congestion (content before the colon) and the congestion point number of the congested port (content after the colon). Of course, in practical applications, the congestion record table may further include other fields, and the embodiment of the present invention is not limited in particular.
Taking the foregoing example as an example, assume that the port number of aggregation switch 1 on connection layer 1 of access switch 1 is 1, the port number of aggregation switch 1 on connection layer n is 3, and assume that the destination data forwarding device is access switch 2. From table one, the congestion record table maintained at the access switch 1 can be as shown in table two.
Destination data forwarding apparatus Unavailable next hop out port
IP address of access switch 2 {1:1}
Watch two
As can be seen from table two, because port 1 is congested, port 1 is recorded in the "unavailable next hop port" field, and the number of congestion points of port 1 is incremented by 1, and also recorded in the "unavailable next hop port". Port 3 is not congested and is therefore not recorded in table two.
Optionally, if the data forwarding device is an upper layer data forwarding device, that is, an upper layer data forwarding device that is not a destination data forwarding device and a destination data forwarding device, determining whether the next hop data forwarding device is congested to the destination data forwarding device may specifically include: the data forwarding equipment receives third notification information sent by each lower-layer data forwarding equipment connected with a port of the data forwarding equipment; each lower layer data forwarding device is a data forwarding device on a path reaching each destination data forwarding device; the third notification information is used for representing whether each lower layer data forwarding device can be used as a next hop of the data forwarding device to reach each target data forwarding device; and the data forwarding equipment determines the congested ports to each destination data forwarding equipment in all the ports of the data forwarding equipment according to the third notification information.
It should be noted that the upper layer data forwarding device and the lower layer data forwarding device mentioned herein are defined by the flow direction of the data packet, the upper layer data forwarding device is the source of the data packet, and the lower layer data forwarding device is the destination of the data packet. Taking the network structure in fig. 1c as an example, the access switch 1 is to send a data packet to the aggregation switch 1 of the layer n, so that the aggregation switch 1 of the layer n is a lower layer switch of the access switch 1, and the access switch 1 is an upper layer switch of the aggregation switch 1 of the layer n.
Optionally, the lower data forwarding device may encapsulate the third notification information and send the encapsulated third notification information to the upper data forwarding device together with the data packet, for example, encapsulate the third notification information by using a Virtual eXtensible Local Area Network (VXLAN) technology.
Optionally, the lower layer data forwarding device may construct a new packet to send the third notification information. One possible new message format is shown in table three.
Marker bit Destination data forwarding apparatus
Watch III
As shown in table one, the new packet format, that is, the format of the third notification message, may include two fields, which are a "flag bit" field and a "destination data forwarding device" field. In practical applications, other fields may also be included, and the embodiments of the present invention are not particularly limited.
Alternatively, the "flag" field may be represented by 0 and 1, e.g., 1 indicates unavailable for use as the next hop and 0 indicates available for use as the next hop. Of course, in practical use, the "flag bit" field may also be filled with other values, such as "true" and "false" indicating availability and unavailability as a next hop, respectively.
Optionally, the "destination data forwarding device" field may fill in the identifier of the destination data forwarding device, or may fill in the address of the destination data forwarding device, such as an IP address. In practical applications, the content filled in the field is only required to be able to uniquely identify the destination data forwarding device, and the embodiment of the present invention is not particularly limited.
Regardless of the sending method, when the data forwarding device receives the third notification information sent by each lower data forwarding device, it may be determined whether the lower data forwarding device can be used as the next hop to reach the destination data forwarding device identified in the field of the "destination data forwarding device" according to the content in the field of the "flag bit" in the third notification information, and then it may be determined which port is congested to each destination data forwarding device among all ports of the data forwarding device.
Optionally, the "destination data forwarding device" field may identify one destination data forwarding device, or may identify a group of destination data forwarding devices.
For example, please continue to refer to the network structure shown in FIG. 1 c. Assuming that the aggregation switch 1 on the layer n finds that all core switches from itself to the layer n are in a congested state according to the determination of the foregoing two aspects, the aggregation switch 1 on the layer n cannot reach the access switch n +1 to the access switch 2n2At this time, the aggregation switch 1 on the layer n may send third notification information to the access switch 1, the "flag bit" field in the third notification information may be filled with 1, and the "destination data forwarding device" field may be filled with the fields from the access switch n +1 to the access switch 2n2Then the access switch 1 receives the third notification information, and may update table two to obtain table four.
Figure BDA0001167691070000141
Figure BDA0001167691070000151
Watch four
Optionally, when a certain port changes from the congestion state to the non-congestion state, the number of congestion points may be decreased by 1 in the congestion record table, and when the number of congestion points is decreased by 0, the port may be deleted from the congestion record table.
Optionally, if the data forwarding device is a non-source data forwarding device, that is, a lower-layer data forwarding device, the data forwarding device further determines whether all ports from the data forwarding device to each destination data forwarding device are in a congestion state; if all ports from the data forwarding device to a first destination data forwarding device in each destination data forwarding device are in a congestion state, the data forwarding device sends first notification information to the upper layer data forwarding device, wherein the first notification information is used for notifying the upper layer data forwarding device and cannot be used as a next hop for the upper layer data forwarding device to reach the first destination data forwarding device; and if all ports from the data forwarding equipment to second destination data forwarding equipment in each destination data forwarding equipment are not in a congestion state, the data forwarding equipment sends second notification information to the upper layer data forwarding equipment, wherein the second notification information is used for notifying the upper layer data forwarding equipment, and the data forwarding equipment can be used as the next hop from the upper layer data forwarding equipment to the second destination data forwarding equipment.
The first notification information and the second notification information are similar to the third notification information, but different from the third notification information, the third notification information includes two cases, that is, the case that the third notification information can be used as a next hop and the case that the third notification information cannot be used as the next hop, the first notification information only includes the case that the first notification information cannot be used as the next hop, and the second notification information only includes the case that the second notification information can be used as the next hop, but the first notification information, the second notification information, the third notification information and the third notification information can adopt the same sending mode and format, for example, a message structure shown.
For example, the data forwarding device in step 103 is the aggregation switch 1 on the layer n, and the aggregation switch 1 determines that all ports to the access switch 2 are in the congestion state according to the methods in the foregoing two aspects, and then may send the first notification information to the access switch 1. Assuming that the aggregation switch 1 determines according to the methods of the two aforementioned aspects that all ports to the access switch 3 are not in a congested state, that is, all ports can reach the access switch 3, the aggregation switch 1 can send a second notification message to the access switch 1.
In the above description, each data forwarding device records and maintains a congestion record table by itself, but in practical applications, a controller in a network structure may interact congestion information with each data forwarding device to establish and maintain a congestion record table, and in step 103, the data forwarding device may obtain its own congestion record table from the controller.
In addition, although the congestion information table is taken as an example for description in the above description, in practical use, a non-congestion information table may be created and maintained, that is, a non-congestion port may be recorded in the non-congestion information table. The congestion information table and the non-congestion information are two opposite expression modes of the same thing, so the effect achieved by the two is the same, and the difference is that generally speaking, the number of the congested ports is less than that of the uncongested ports, so the congestion information table can reduce the recorded data volume, and save the storage space and the maintenance cost.
Optionally, in order to ensure that all output ports in the preset routing table are available next hop-out ports, and because the congestion record table changes with time, the method in the embodiment of the present invention further includes: if the non-congestion output port of the data forwarding device is changed into the congestion output port, the data forwarding device also determines whether a preset routing table contains the congestion output port; and if the preset routing table contains the congestion output port, deleting the table entry containing the congestion output port from the preset routing table by the data forwarding equipment. By the method, the output port in the preset routing table can be ensured to be the available next hop-out port all the time.
For example, in the above-mentioned table two to table four, if port 3 is changed from a non-congested output port to a congested output port, the access switch 1 checks whether its local routing table contains port 3, and if so, deletes the entry containing port 3 from the routing table. This avoids that in step 102, port 3 is matched, but port 3 is congested, resulting in a delay or failure in sending the data packet. For the data flow corresponding to port 3, if there is a data packet of the data flow to be sent, the updated routing table may be used for matching in step 102, and because the data packet is deleted, the matching fails, and the data packet continues to be selected again by step 103, and then is sent out by step 104.
After the introduction of the congestion record table, the introduction of step 103 is continued.
Because the next hop-out port of the data packet is not matched in the preset routing table, the data forwarding device may first check the congestion exit port of the destination data forwarding device of the data packet recorded in the congestion information table, and then determine the first port as the next hop-out port of the data packet to the destination data forwarding device in the other ports except the congestion exit port.
Optionally, the first port may be a port selected at random from other ports except the congested port, or may be a port selected by a certain rule, for example, the first port is selected by an Equal Cost Multi Path (ECMP) mechanism, or the first port is selected by a random Load Balancing (VLB) mechanism.
For example, the destination data forwarding device of the data packet is an access switch 2, and according to the congestion information table shown in table two, the access switch 1 determines that the port 1 to the access switch 2, i.e. the port 1 of the aggregation switch 1 connected to the layer 1, is congested, so that one port, e.g. the port 3, i.e. the port connected to the aggregation switch 1 of the layer n, can be randomly selected from the remaining n-1 ports as a first port, in other words, the port 3 is selected as a next hop-out port where the data packet arrives at the access switch 2.
After determining the next hop-out port, step 104 may be performed next, i.e. the data forwarding device sends the data packet through the first port. For example, access switch 1 sends out a packet through port 3.
On the transmission path of the data packet, except for the destination data forwarding device, the data forwarding devices on the upper layer from the source data forwarding device to the destination data forwarding device may all be executed according to steps 101 to 104.
Optionally, after step 104, the method further includes: and establishing a new table entry for the data flow corresponding to the data packet in a preset routing table, wherein an output port of the new table entry is a first port. For example, the first field of the new entry is the flow identification and the egress port of the second field is port 3. By the method, the subsequent messages of the data flow can be forwarded according to the first port, and the data packet forwarding time is saved.
Optionally, when the data packet reaches a certain data forwarding device, if the data forwarding device is a single path to the destination data forwarding device, the data packet may be directly forwarded from the single path, and an output port of the single path may be recorded in a preset routing table. This saves forwarding time.
The complete process of sending a data packet from the source data forwarding device to the destination data forwarding device will be described next, please continue to refer to fig. 1c, assuming that the access switch 1 is the source data forwarding device and the access switch 2n is the source data forwarding device2The destination data forwarding device. As the source data forwarding device, the access switch 1 may first query the routing table stored in itself, determine whether the next hop-out port of the data packet can be matched, for example, if the next hop-out port of the data packet cannot be matched, then determine the congested port in the congestion information table shown in table two, and find the access switch 2n2The currently uncongested port is then available on all reachable access switches 2n2For example, port 3, i.e. the port of aggregation switch 1 connected to layer n, is selected as the next hop-out port, and then the packet is sent from port 3 to aggregation switch 1 on layer n (in fig. 1c, the solid arrow indicates the transmission path of the packet). Optionally, the access switch 1 may establish a new entry of the data flow corresponding to the data packet in a preset routing table, where a next hop-out port corresponding to the new entry is the port 3.
When a data packet arrives at the aggregation switch 1 on the layer n, the aggregation switch 1 may also perform matching in the routing table stored in the aggregation switch 1 itself, and as a result, the data packet is matched to a next hop port, for example, a core switch n on the connection layer n, so that the aggregation switch 1 sends the data packet to the core switch n.
When the data packet reaches the core switch n, because in the network structure of fig. 1c, the aggregation switch on each layer has only one path to a certain access switch, there is only one path from the core switch to a certain access switch, so the core switch can directly forward the packet according to the next hop-out port recorded in the preset routing table. Therefore, in this embodiment, the core switch n forwards the packet according to the next hop-out port in the locally stored routing table, and the packet is sent to the aggregation switch 2n on the layer n.
When the data packet reaches the aggregation switch 2n on the layer n, because the lower layer of the aggregation switch 2n is the destination data forwarding device, i.e. the access switch 2n2Therefore, the aggregation switch 2n also performs single-path forwarding, that is, the data packet is forwarded through the next hop-out port in the locally stored routing table, and the data packet is sent to the access switch 2n2. To this end, the data packet is transmitted from the source data forwarding device, i.e. the access switch 1, to the destination data forwarding device, i.e. the access switch 2n2
The implementation of the switching network shown in fig. 1a is similar to the previously described example and will not be described in detail here.
As can be seen from the above description, in the first aspect, in the embodiment of the present invention, the data forwarding device feeds back information about whether a link from itself to the destination data forwarding device is available, unlike a routing scheme in the prior art, which needs to feed back a usage rate condition of each path from the source data forwarding device to the destination data forwarding device; in a second aspect, in the embodiment of the present invention, the feedback is not from the destination data forwarding device to the source data forwarding device, but from the congested data forwarding device to the upper layer data forwarding device; in the third aspect, when the data forwarding device performs traffic scheduling, it only needs to select an available next hop-out port, that is, it selects a route hop by hop, instead of selecting an optimal path in the prior art, so that an end-to-end path is selected at a time. Therefore, the scheme in the embodiment of the invention has strong expansibility and is easy to expand into a multilevel close framework. Further, because congested ports are recorded, there are few occupied entries, and the prior art routing scheme has an order of magnitude difference in occupied entries, and this advantage is getting larger as the level of clos increases. Specifically, please refer to table five, which shows the table entry gap comparison between the routing scheme described in the background art and the scheme in the embodiment of the present invention.
Figure BDA0001167691070000191
Watch five
Further, regardless of the level of the close, the congestion information is real-time, because when a certain data forwarding device detects that a certain port is congested, only the port needs to be deleted from the available next hop of the destination data forwarding device. In addition, when a certain data forwarding device does not have an available next hop to a destination data forwarding device, or when the next hop is changed from no available next hop to an available next hop, the data forwarding device will notify an upper layer data forwarding device, so the method in the embodiment of the present invention has short time consumption for feeding back congestion information.
Based on the same inventive concept, an embodiment of the present invention further provides a data forwarding device (as shown in fig. 2), which is configured to implement the foregoing method.
Specifically, the processor 10 is configured to obtain a data packet, and determine whether a next hop-out port of the data packet is matched in a preset routing table; all the output ports in the preset routing table are non-congested output ports and are all ports in the port 50; if the next hop-out port of the data packet is not matched in the preset routing table, the processor 10 is further configured to determine, in other ports of the data forwarding device except for the congestion output port of the destination data forwarding device of the data packet recorded in the congestion information table, that the first port is used as the next hop-out port from the data packet to the destination data forwarding device; the egress port and the other ports in the congestion information table are all ports in port 50; a transmitter 20 for transmitting the data packet through the first port.
Optionally, the processor 10 is further configured to: determining congested ports to each destination data forwarding device in the at least two ports; and recording the port numbers of the congestion ports of the destination data forwarding devices and the congestion ports corresponding to the destination data forwarding devices in the congestion information table.
Optionally, if the data forwarding device is a non-source data forwarding device, the processor 10 is further configured to: determining whether all ports from the data forwarding device to each destination data forwarding device are in a congestion state;
the transmitter 20 is also configured to: if all ports from the data forwarding device to a first destination data forwarding device in the destination data forwarding devices are in a congestion state, sending first notification information to an upper layer data forwarding device, where the first notification information is used to notify the upper layer data forwarding device, and the data forwarding device cannot be used as a next hop from the upper layer data forwarding device to the first destination data forwarding device; and if all ports from the data forwarding device to a second destination data forwarding device in the destination data forwarding devices are not in a congestion state, sending second notification information to an upper layer data forwarding device, where the second notification information is used to notify the upper layer data forwarding device, and the data forwarding device can be used as a next hop from the upper layer data forwarding device to the second destination data forwarding device.
Optionally, the receiver 30 is configured to receive third notification information sent by each lower layer data forwarding device connected to a port of the data forwarding device; wherein, each lower layer data forwarding device is a data forwarding device on a path to each destination data forwarding device; the third notification information is used for representing whether each lower layer data forwarding device can be used as a next hop of the data forwarding device to reach each destination data forwarding device; the processor 10 is further configured to: and determining the congested port to each destination data forwarding device in the at least two ports according to the third notification information.
Optionally, the processor 10 is further configured to: if the non-congestion output port of the data forwarding device is changed into a congestion output port, determining whether the preset routing table contains the congestion output port; and if the preset routing table contains the congested output port, deleting the table entry containing the congested output port from the preset routing table.
Optionally, the processor 10 is further configured to: after the first port is determined to be the next hop-out port from the data packet to the destination forwarding device, establishing a new entry for the data flow corresponding to the data packet in the preset routing table, where an output port of the new entry is the first port.
Based on the same inventive concept, the embodiment of the invention also provides a routing device. The routing device is used for implementing the routing method shown in fig. 3. Referring next to fig. 4, the routing apparatus includes: a processing unit 201, configured to obtain a data packet; determining whether a next hop-out port of the data packet is matched in a preset routing table; wherein, all the output ports in the preset routing table are non-congested output ports; if the next hop-out port of the data packet is not matched in the preset routing table, determining a first port as the next hop-out port from the data packet to a destination data forwarding device of the data packet in other ports of the data forwarding device except the congestion exit port recorded in a congestion information table to the destination data forwarding device of the data packet; a sending unit 202, configured to send the data packet through the first port.
Optionally, the processing unit 201 is further configured to: determining congested ports to each destination data forwarding device in all ports of the data forwarding device; and recording the port numbers of the congestion ports of the destination data forwarding devices and the congestion ports corresponding to the destination data forwarding devices in the congestion information table.
Optionally, if the data forwarding device is a non-source data forwarding device, the processing unit 201 further uses: determining whether all ports from the data forwarding device to each destination data forwarding device are in a congestion state; the sending unit 202 is further configured to: if all ports from the data forwarding device to a first destination data forwarding device in the destination data forwarding devices are in a congestion state, sending first notification information to an upper layer data forwarding device, where the first notification information is used to notify the upper layer data forwarding device, and the data forwarding device cannot serve as a next hop from the upper layer data forwarding device to the first destination data forwarding device; and if all ports from the data forwarding device to a second destination data forwarding device in the destination data forwarding devices are not in a congestion state, sending second notification information to an upper layer data forwarding device, where the second notification information is used to notify the upper layer data forwarding device, and the data forwarding device can be used as a next hop from the upper layer data forwarding device to the second destination data forwarding device.
Optionally, the routing apparatus further includes a receiving unit 203, where the receiving unit 203 is configured to: receiving third notification information sent by each lower-layer data forwarding device connected with a port of the data forwarding device; wherein, each lower layer data forwarding device is a data forwarding device on a path to each destination data forwarding device; the third notification information is used for representing whether each lower layer data forwarding device can be used as a next hop of the data forwarding device to reach each destination data forwarding device; the processing unit 201 is further configured to: and determining congested ports to each destination data forwarding device in all the ports of the data forwarding device according to the third notification information.
Optionally, the processing unit 201 is further configured to: if the non-congestion output port of the data forwarding device is changed into a congestion output port, determining whether the preset routing table contains the congestion output port; and if the preset routing table contains the congested output port, deleting the table entry containing the congested output port from the preset routing table.
Optionally, the processing unit 201 is further configured to: after the first port is determined to be the next hop-out port from the data packet to the destination forwarding device, establishing a new entry for the data flow corresponding to the data packet in the preset routing table, where an output port of the new entry is the first port.
Various changes and specific examples in the routing method in the foregoing embodiment in fig. 3 are also applicable to the routing device and the data forwarding apparatus in this embodiment, and through the foregoing detailed description of the routing method, those skilled in the art can clearly know the implementation method of the routing device and the data forwarding apparatus in this embodiment, so for brevity of the description, detailed description is not repeated here.
As will be appreciated by one skilled in the art, embodiments of the present invention may be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, optical storage, and the like) having computer-usable program code embodied therein.
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
It will be apparent to those skilled in the art that various changes and modifications may be made in the present invention without departing from the spirit and scope of the invention. Thus, if such modifications and variations of the present invention fall within the scope of the claims of the present invention and their equivalents, the present invention is also intended to include such modifications and variations.

Claims (18)

1. A routing method, comprising:
the data forwarding equipment acquires a data packet;
the data forwarding equipment determines whether a next hop-out port of the data packet is matched in a preset routing table; wherein, all the output ports in the preset routing table are non-congested output ports;
if the next hop-out port of the data packet is not matched in the preset routing table, the data forwarding device determines that the first port is used as the next hop-out port from the data packet to the destination data forwarding device in other ports of the data forwarding device except for the congestion output port of the destination data forwarding device of the data packet recorded in the congestion information table; the congestion information table is used for recording congestion ports to each destination data forwarding device in all ports of the data forwarding device, and is determined according to whether each lower layer data forwarding device connected to the ports of the data forwarding device can serve as a next hop of the data forwarding device to reach each destination data forwarding device;
and the data forwarding equipment sends the data packet through the first port.
2. The method of claim 1, wherein the method further comprises:
the data forwarding equipment determines congested ports to each destination data forwarding equipment in all ports of the data forwarding equipment;
and the data forwarding equipment records the port numbers of the congestion ports of each destination data forwarding equipment and the congestion ports corresponding to each destination data forwarding equipment in the congestion information table.
3. The method of claim 2, wherein if the data forwarding device is a non-source data forwarding device, the method further comprises:
the data forwarding equipment determines whether all ports from the data forwarding equipment to each destination data forwarding equipment are in a congestion state;
if all ports from the data forwarding device to a first destination data forwarding device in the destination data forwarding devices are in a congestion state, the data forwarding device sends first notification information to an upper layer data forwarding device, where the first notification information is used to notify the upper layer data forwarding device, and the data forwarding device cannot serve as a next hop from the upper layer data forwarding device to the first destination data forwarding device;
if all ports from the data forwarding device to a second destination data forwarding device in the destination data forwarding devices are not in a congestion state, the data forwarding device sends second notification information to an upper layer data forwarding device, where the second notification information is used to notify the upper layer data forwarding device, and the data forwarding device can be used as a next hop from the upper layer data forwarding device to the second destination data forwarding device.
4. The method of claim 2 or 3, wherein the data forwarding device determining a congested port to a respective destination data forwarding device among all ports of the data forwarding device, comprises:
the data forwarding equipment receives third notification information sent by each lower-layer data forwarding equipment connected with a port of the data forwarding equipment; wherein, each lower layer data forwarding device is a data forwarding device on a path to each destination data forwarding device; the third notification information is used for representing whether each lower layer data forwarding device can be used as a next hop of the data forwarding device to reach each destination data forwarding device;
and the data forwarding equipment determines congested ports to each destination data forwarding equipment in all the ports of the data forwarding equipment according to the third notification information.
5. The method of any one of claims 1-4, further comprising:
if the non-congested output port of the data forwarding device is changed into a congested output port, the data forwarding device further determines whether the preset routing table includes the congested output port;
and if the preset routing table contains the congested output port, the data forwarding equipment deletes the table entry containing the congested output port from the preset routing table.
6. The method of any of claims 1-5, wherein after the determining the first port as a next hop-out port for the packet to the destination forwarding device, the method further comprises:
and the data forwarding equipment establishes a new table entry for the data flow corresponding to the data packet in the preset routing table, wherein an output port of the new table entry is the first port.
7. A data forwarding device, comprising:
at least two ports;
the processor is used for acquiring a data packet and determining whether a next hop-out port of the data packet is matched in a preset routing table; wherein, all the output ports in the preset routing table are non-congested output ports and are all ports in the at least two ports; if the next hop-out port of the data packet is not matched in the preset routing table, the processor is further configured to determine, in other ports of the data forwarding device except for a congestion output port of a destination data forwarding device of the data packet recorded in a congestion information table, that the first port is used as the next hop-out port from the data packet to the destination data forwarding device; the congestion information table is used for recording congestion ports to each destination data forwarding device in all ports of the data forwarding device, and is determined according to whether each lower layer data forwarding device connected to the ports of the data forwarding device can serve as a next hop for the data forwarding device to reach each destination data forwarding device, and an output port and the other ports in the congestion information table are ports of the at least two ports;
a transmitter to transmit the data packet through the first port.
8. The data forwarding device of claim 7 wherein the processor is further configured to: determining congested ports to each destination data forwarding device in the at least two ports; and recording the port numbers of the congestion ports of the destination data forwarding devices and the congestion ports corresponding to the destination data forwarding devices in the congestion information table.
9. The data forwarding device of claim 8 wherein if the data forwarding device is a non-source data forwarding device, the processor is further configured to: determining whether all ports from the data forwarding device to each destination data forwarding device are in a congestion state;
the transmitter is further configured to: if all ports from the data forwarding device to a first destination data forwarding device in the destination data forwarding devices are in a congestion state, sending first notification information to an upper layer data forwarding device, where the first notification information is used to notify the upper layer data forwarding device, and the data forwarding device cannot be used as a next hop from the upper layer data forwarding device to the first destination data forwarding device; and if all ports from the data forwarding device to a second destination data forwarding device in the destination data forwarding devices are not in a congestion state, sending second notification information to an upper layer data forwarding device, where the second notification information is used to notify the upper layer data forwarding device, and the data forwarding device can be used as a next hop from the upper layer data forwarding device to the second destination data forwarding device.
10. The data forwarding device of claim 8 or 9 wherein the data forwarding device further comprises a receiver,
the receiver is used for receiving third notification information sent by each lower-layer data forwarding device connected with the port of the data forwarding device; wherein, each lower layer data forwarding device is a data forwarding device on a path to each destination data forwarding device; the third notification information is used for representing whether each lower layer data forwarding device can be used as a next hop of the data forwarding device to reach each destination data forwarding device;
the processor is further configured to: and determining the congested port to each destination data forwarding device in the at least two ports according to the third notification information.
11. The data forwarding device of any one of claims 7-10 wherein the processor is further configured to: if the non-congestion output port of the data forwarding device is changed into a congestion output port, determining whether the preset routing table contains the congestion output port; and if the preset routing table contains the congested output port, deleting the table entry containing the congested output port from the preset routing table.
12. The data forwarding device of any of claims 7-11 wherein the processor is further configured to: after the first port is determined to be the next hop-out port from the data packet to the destination forwarding device, establishing a new entry for the data flow corresponding to the data packet in the preset routing table, where an output port of the new entry is the first port.
13. A routing device, comprising:
a processing unit for acquiring a data packet; determining whether a next hop-out port of the data packet is matched in a preset routing table; wherein, all the output ports in the preset routing table are non-congested output ports; if the next hop-out port of the data packet is not matched in the preset routing table, determining a first port as the next hop-out port from the data packet to a destination data forwarding device of the data packet in other ports of the data forwarding device except the congestion exit port recorded in a congestion information table to the destination data forwarding device of the data packet, wherein the congestion information table is used for recording congestion ports from all ports of the data forwarding device to each destination data forwarding device and is determined according to whether each lower layer data forwarding device connected with the port of the data forwarding device can serve as the next hop from the data forwarding device to each destination data forwarding device;
and the sending unit is used for sending the data packet through the first port.
14. The routing device of claim 13, wherein the processing unit is further to: determining congested ports to each destination data forwarding device in all ports of the data forwarding device; and recording the port numbers of the congestion ports of the destination data forwarding devices and the congestion ports corresponding to the destination data forwarding devices in the congestion information table.
15. The routing apparatus of claim 14, wherein if the data forwarding device is a non-source data forwarding device, the processing unit is further configured to: determining whether all ports from the data forwarding device to each destination data forwarding device are in a congestion state;
the sending unit is further configured to: if all ports from the data forwarding device to a first destination data forwarding device in the destination data forwarding devices are in a congestion state, sending first notification information to an upper layer data forwarding device, where the first notification information is used to notify the upper layer data forwarding device, and the data forwarding device cannot serve as a next hop from the upper layer data forwarding device to the first destination data forwarding device; and if all ports from the data forwarding device to a second destination data forwarding device in the destination data forwarding devices are not in a congestion state, sending second notification information to an upper layer data forwarding device, where the second notification information is used to notify the upper layer data forwarding device, and the data forwarding device can be used as a next hop from the upper layer data forwarding device to the second destination data forwarding device.
16. The routing apparatus according to claim 14 or 15, wherein the routing apparatus further comprises a receiving unit,
the receiving unit is used for: receiving third notification information sent by each lower-layer data forwarding device connected with a port of the data forwarding device; wherein, each lower layer data forwarding device is a data forwarding device on a path to each destination data forwarding device; the third notification information is used for representing whether each lower layer data forwarding device can be used as a next hop of the data forwarding device to reach each destination data forwarding device;
the processing unit is further to: and determining congested ports to each destination data forwarding device in all the ports of the data forwarding device according to the third notification information.
17. The routing device of any one of claims 13-16, wherein the processing unit is further to: if the non-congestion output port of the data forwarding device is changed into a congestion output port, determining whether the preset routing table contains the congestion output port; and if the preset routing table contains the congested output port, deleting the table entry containing the congested output port from the preset routing table.
18. The routing device of any one of claims 13-17, wherein the processing unit is further to: after the first port is determined to be the next hop-out port from the data packet to the destination forwarding device, establishing a new entry for the data flow corresponding to the data packet in the preset routing table, where an output port of the new entry is the first port.
CN201611086242.2A 2016-11-30 2016-11-30 Routing method, routing device and data forwarding equipment Expired - Fee Related CN108123878B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611086242.2A CN108123878B (en) 2016-11-30 2016-11-30 Routing method, routing device and data forwarding equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611086242.2A CN108123878B (en) 2016-11-30 2016-11-30 Routing method, routing device and data forwarding equipment

Publications (2)

Publication Number Publication Date
CN108123878A CN108123878A (en) 2018-06-05
CN108123878B true CN108123878B (en) 2020-12-15

Family

ID=62226313

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611086242.2A Expired - Fee Related CN108123878B (en) 2016-11-30 2016-11-30 Routing method, routing device and data forwarding equipment

Country Status (1)

Country Link
CN (1) CN108123878B (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109246231B (en) * 2018-09-29 2022-11-18 北京深度奇点科技有限公司 Intelligent routing method and intelligent routing equipment
CN111147386B (en) * 2018-11-02 2023-06-30 伊姆西Ip控股有限责任公司 Method, electronic device and computer readable medium for handling data transmission congestion
CN109802879B (en) * 2019-01-31 2021-05-28 新华三技术有限公司 Data stream routing method and device
CN110460537B (en) * 2019-06-28 2023-01-24 天津大学 Packet set-based data center asymmetric topology flow scheduling method
CN114007152B (en) * 2022-01-05 2022-06-07 北京国科天迅科技有限公司 Port convergence processing method and device for optical fiber switch
CN117082014B (en) * 2023-10-17 2024-01-23 苏州元脑智能科技有限公司 CLOS network, construction method, transmission method, system, device and medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286930B (en) * 2008-05-30 2010-12-08 华南理工大学 Self-adapting routing method for congestion of multi-hop wireless self-organizing network
US20140219090A1 (en) * 2013-02-04 2014-08-07 Telefonaktiebolaget L M Ericsson (Publ) Network congestion remediation utilizing loop free alternate load sharing
US20160154756A1 (en) * 2014-03-31 2016-06-02 Avago Technologies General Ip (Singapore) Pte. Ltd Unordered multi-path routing in a pcie express fabric environment
WO2015161409A1 (en) * 2014-04-21 2015-10-29 华为技术有限公司 Load balance implementation method, device and system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A Hop-by-Hop Routing Mechanism for Green Internet;Yuan Yang等;《IEEE Transactions on Parallel and Distributed Systems》;20150121;全文 *

Also Published As

Publication number Publication date
CN108123878A (en) 2018-06-05

Similar Documents

Publication Publication Date Title
CN108123878B (en) Routing method, routing device and data forwarding equipment
EP3259885B1 (en) Traffic engineering feeder for packet switched networks
EP2911348B1 (en) Control device discovery in networks having separate control and forwarding devices
KR101866174B1 (en) System and method for software defined routing of traffic within and between autonomous systems with enhanced flow routing, scalability and security
CN102763380B (en) For the system and method for routing packets
US8976697B2 (en) Network status mapping
US9338096B2 (en) Multicast tree packing for multi-party video conferencing under SDN environment
US20150312132A1 (en) METHOD TO CHECK HEALTH OF AUTOMATICALLY DISCOVERED CONTROLLERS IN SOFTWARE DEFINED NETWORKS (SDNs)
EP3399703B1 (en) Method for implementing load balancing, apparatus, and network system
US20200120020A1 (en) Stateless multicast in label switched packet networks
EP3232607B1 (en) Method and apparatus for establishing multicast group in fat-tree network
US20150309894A1 (en) Fast Failover for Application Performance Based WAN Path Optimization with Multiple Border Routers
US11228524B1 (en) Methods and apparatus for efficient use of link aggregation groups
US9800508B2 (en) System and method of flow shaping to reduce impact of incast communications
CN108234320A (en) Message transmitting method and interchanger
CN105376292A (en) Explicit strategy feedback in name-based forwarding
CN106375355B (en) Load balancing processing method and device
US20240267324A1 (en) Packet forwarding method and apparatus
EP3474504B1 (en) Leaf-to-spine uplink bandwidth advertisement to leaf-connected servers
US11968113B1 (en) Computing power routing methods, apparatus, electronic devices and storage media
EP3257228B1 (en) Software defined network (sdn) control signaling for traffic engineering to enable multi-type transport in data plane
EP2517422B1 (en) Grid router and network
Saifullah et al. Open flow-based server load balancing using improved server health reports
CN106131914B (en) Service request processing method and processing device
CN115208829A (en) Message processing method and network equipment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20201215