Method to route packets in a distributed direct interconnect network
The present invention provides a method and apparatus to route data packets across a torus or higher radix topology that has low latency, increased throughput and traffic distribution to avoid hot spots development. Disclosed is a method of routing packets in a distributed direct interconnect network from a source node to a destination node comprising the steps of: discovering all nodes and associated ports; updating the database to include the nodes and ports in the network topology; calculating the shortest path from every output port on each node to every other node in the topology; segmenting each packet into flits at the output port of the source node; as the flits are segmented, distributing said flits along the shortest path from each output port on the source node to the destination node using wormhole switching, whereby the packets are distributed along alternate maximum disjoint routes in the network topology; and re-assembling and re-ordering the packets at the destination node so that the packets accord with their original order/form.
Latest ROCKPORT NETWORKS INC. Patents:
The present invention relates to a computer network for data center and cloud data center servers interconnect. In particular, the present invention relates to a method for routing packets in a direct interconnect network implemented on a torus or higher radix topologies such as the “dragonfly” wiring structure.
BACKGROUND OF THE INVENTIONThe term Data Centers (DC) generally refers to facilities used to house large computer systems (often contained on racks that house the equipment) and their associated components, all connected by an enormous amount of structured cabling. Cloud Data Centers (CDC) is a term used to refer to large, generally off-premise facilities that similarly store an entity's data.
Network switches are computer networking apparatus that link network devices for communication/processing purposes. In other words, a switch is a telecommunication device that is capable of receiving a message from any device connected to it, and transmitting the message to a specific device for which the message is to be relayed. A network switch is also commonly referred to as a multi-port network bridge that processes and routes data. Here, by port, we are referring to an interface (outlet for a cable or plug) between the switch and the computer/server/CPU to which it is attached.
Today, DCs and CDCs generally implement data center networking using a set of layer two switches. Layer two switches process and route data at layer 2, the data link layer, which is the protocol layer that transfers data between nodes (e.g. servers) on the same local area network or adjacent nodes in a wide area network. A key problem to solve, however, is how to build a large capacity computer network that is able to carry a very large aggregate bandwidth (hundreds of TB) containing a very large number of ports (thousands), that requires minimal structure and space (i.e. minimizing the need for a large room to house numerous cabinets with racks of cards), and that is easily scalable, and that may assist in minimizing power consumption.
The traditional network topology implementation is based on totally independent switches organized in a hierarchical tree structure as shown in
Many attempts have been made, however, to improve switching scalability, reliability, capacity and latency in data centers. For instance, efforts have been made to implement more complex switching solutions by using a unified control plane (e.g. the QFabric System switch from Juniper Networks; see, for instance, http://www.juniper.net/us/en/productservices/switching/qfabric-system/), but such a system still uses and maintains the traditional hierarchical architecture. In addition, given the exponential increase in the number of system users and data to be stored, accessed and processed, processing power has become the most important factor when determining the performance requirements of a computer network system. While server performance has continually improved, one server is not powerful enough to meet the needs. This is why the use of parallel processing has become of paramount importance. As a result, what was predominantly north-south traffic flows, has now primarily become east-west traffic flows, in many cases up to 80%. Despite this change in traffic flows, the network architectures haven't evolved to be optimal for this model. It is therefore still the topology of the communication network (which interconnects the computing nodes (servers)) that determines the speed of interactions between CPUs during parallel processing communication.
This need for increased east-west traffic communications led to the creation of newer, flatter network architectures, e.g. toroidal/torus networks. A torus interconnect system is a network topology for connecting network nodes (servers) in a mesh-like manner in parallel computer systems. A torus topology can have nodes arranged in 2, 3, or more (N) dimensions that can be visualized as an array wherein processors/servers are connected to their nearest neighbor processors/servers, and wherein processors/servers on opposite edges of the array are connected. In this way, each node has 2N connections in a N-dimensional torus configuration (
The present invention deals more specifically with the important issue of data packet traverse and routing from node to node in torus or higher radix network structures. In this respect, it is the routing that determines the actual path that packets of data take to go from source to destination in the network. For the purposes herein, latency refers to the time it takes for a packet to reach the destination in the network, and is generally measured from when the head arrives at the input of the source node to when it arrives at the input of the destination node. Hop count refers to the number of links or nodes traversed between the source and the destination, and represents an approximation for determining latency. Throughput is the data rate that the network accepts per input port/node measured in bits/sec.
A useful goal when routing is to distribute the traffic evenly among the nodes (load balancing) so as to avoid hotspots development (a pathway or node region where usage/demand has exceeded a desired or acceptable threshold) and to minimize contention (when two or more nodes attempt to transmit a message or packet across the same wire or path at the same time), thereby improving network latency and throughput. The route chosen therefore affects the number of hops from node to node, and may potentially even thereby affect energy consumption when the route is not optimized.
The topology under which a network operates also clearly affects latency because topology impacts the average minimum hop count and the distance between nodes. For instance, in a torus, not only are there several paths that a packet can take to reach a destination (i.e. in a torus there is “path diversity”), but there are also multiple minimum length paths between any source and destination pair. As an example,
Routing methodologies that exploit path diversity have better fault tolerance and better load balancing in the network. Routing methodologies do not always achieve such goals, however, and can generally be divided into three classes: deterministic, oblivious and adaptive. Deterministic routing refers to the fact that the route(s) between a given pair of nodes is determined in advance without regard to the current state of the network (i.e. without regard to network traffic). Dimension Order Routing (DOR) is an example of deterministic routing, wherein all messages from node A to node B will always traverse the same path. Specifically a message traverses dimension-by-dimension (X-Y routing), thereby reaching the ordinate matching its destination in one dimension before switching to the next dimension. As an example,
Routing algorithms that are “oblivious” are those wherein routing decision are made randomly without regard to the current state of the network (deterministic routing is a subset of oblivious routing). Although this means oblivious routing can be simple to implement, it is also unable to adapt to traffic and network circumstances. An example of a well-known oblivious routing method is the Valiant algorithm (known to persons skilled in the art). In this method, a packet sent from node A to node B is first sent from A to a randomly chosen intermediate node X (one hop away), and then from X to B. With reference again to
If minimal routes are desired or necessary though, the Valiant algorithm can be modified to restrict its random decisions to minimal routes/shortest paths by specifying that the intermediate mode must lie within a minimal quadrant. As an example, with reference to
Adaptive routing algorithms are those wherein routing decisions are based on the state of the network or network traffic. They generally involve flow control mechanisms, and in this respect buffer occupancies are often used. Adaptive routing can employ global node information (which is costly performance-wise), or can use information from just local nodes, including, for instance, queue occupancy to gauge network congestion. The problem with using information solely from local nodes is that this can sometimes lead to suboptimal choices. Adaptive routing can also be restricted to minimal paths, or it can be fully adaptive (i.e. no restrictions on taking the shortest path) by employing non-minimal paths with the potential for livelock (i.e. a situation similar to deadlock where the packet travel is not progressing to destination; often the result of resource starvation). This can sometimes be overcome by allowing a certain number of misroutes per packet, and by giving higher priority to packets misrouted many times. Another problem with adaptive routing is that it may cause problems with preserving data packet ordering—the packets need to arrive at the destination in the same order or otherwise you need to implement packet reordering mechanisms.
Lastly, it is important to mention that routing can be implemented by source tables or local tables. With source tables, the entire route is specified at the source, and can be embedded into the packet header. Latency is thereby minimized since the route does not need to be locked up or routed hop by hop at each node. Source tables can also be made to specify multiple routes per destination to be able to manage faults, and, when routes are selected randomly (i.e. oblivious routing), to increase load balancing. With local node tables, on the other hand, smaller routing tables are employed. However, the next step a packet is to take is determined at each node, and this adds to per hope latency.
The present invention seeks to overcome deficiencies in the prior art and improve upon known methods of routing packets in torus or higher radix network topologies.
SUMMARY OF THE INVENTIONIn one aspect, the present invention provides a novel method to route data packets across a torus mesh or higher radix topologies to provide low latency, increased throughput, and hot spot and deadlock avoidance.
In yet another aspect, the present invention provides a method to implement traffic decorelation (randomization), increased efficiency in bandwidth allocation, load balancing and traffic engineering in a torus mesh or higher radix structures.
In one embodiment, the present invention provides a computer-implemented method of routing packets in a direct interconnect network from a source node to a destination node comprising the steps of: discovering all nodes and all output ports on each node in a network topology; including the discovered nodes and output ports in the network topology in a topology database in order to allow said nodes and ports to be included in shortest path routing computations; calculating the shortest path from every output port on each node to every other node in the network topology based on those nodes and output ports contained in the topology database; generating a source routing database on each node containing the shortest paths from every output port on said each node to all other nodes in the network topology; receiving packets at the source node; sending the received packets to the output ports of the source node in a round robin or weighted round robin manner, whereby each of said received packets is thereafter segmented into flits at the output port of the source node and distributed along the shortest path from the output port on the source node to the destination node, such that the packets are thereby distributed along alternate routes in the network topology; and re-assembling and re-ordering the packets at the destination node so that the packets accord with their original form and order.
In a further embodiment, the present invention provides a method of routing packets wherein the flits are forwarded to the destination node using wormhole switching.
The embodiment of the invention will now be described, by way of example, with reference to the accompanying drawings in which:
The present invention utilizes a torus mesh or higher radix wiring to implement direct interconnect switching for data center applications. In particular, the present invention is particularly useful with the torus system described in related PCT Patent application no. PCT/CA2014/000652 entitled, “Method and Apparatus to Manage the Direct Interconnect Switch Wiring and Growth in Computer Networks”, filed Aug. 29, 2014, the disclosure of which is incorporated herein by reference. Such architecture can provide a high performance network interconnect having tens of thousands of servers in a single switching domain.
The software that controls the switch follows the Software Defined Networks model. The switch control plane (Switch OS) preferably runs on a separate server but interacts closely with the distributed processing running on each PCIe card. With reference to
The present invention primarily relates to the novel topology discovery (TD component) and routing protocol (SR component) of the present invention—key functions particularly useful for implementation on the novel switch architecture disclosed in PCT Patent application no. PCT/CA2014/000652. While traditional implementations of routing data packets through a torus structure makes an implicit assumption, namely that the traffic is randomly distributed across the destination nodes, practical implementations have actually shown switch failures in the case of single source/single destination continuous packet flow at maximum capacity, due to hotspots development that propagates across the torus, and which has the capacity to completely disable the ability to transfer packets across the torus mesh.
The present invention is therefore referring more specifically to routing optimisation and implementation for direct interconnect network topologies such as torus and higher radix networks in order to address performance issues and hot spots development for any type of traffic (whether large flows from any source to any destination (highly correlated) or traffic to randomly distributed destinations (typical internet traffic)).
Contrary to the known methods of routing packets in a torus, as previously described above, the present invention describes a method of discovering and updating all nodes in the topology, and a method of routing packets wherein the shortest path(s) are calculated at each node on every output port (e.g. x+, x−, y+, y−, z+, z−, w+, and w−) to every destination node, and whereby the packets are distributed along paths from each output port in a round-robin manner or weighted round-robin manner (i.e. promoting multiple alternate paths) to increase bandwidth and traffic distribution to avoid hotspots. The flow control (FC) mechanism is used to adaptively change the output port selection for packet routing from a simple round-robin, consecutive, source node output port selection (i.e. first port x+, next x−, then y+, y−, z+, z−, w+, and w−) to a weighted round-robin where the links identified by FC as busy are skipped, or the traffic on those ports is reduced to a low percentage (e.g. 10%) of maximum link capacity.
Data packet reordering is implemented at the node destination. Such a method can take particular advantage of the novel method of node (server) discovery discussed in PCT Patent application no. PCT/CA2014/000652, and further discussed herein. The present invention therefore addresses the issue of packet routing optimization for direct interconnect network topologies such as torus or higher radix networks, in order to address performance issues and hotspots development for any type of traffic, whether that be large flows from any source to any destination (highly correlated) or traffic to randomly distributed destinations (typical internet traffic).
First of all,
With reference to
At the destination, flits are assembled into packets by stripping the torus header, and using the “Byte cnt” for offset of flit in the original packet. A person skilled in the art would know to implement for the destination node a per-source-packet-queue, create the ordered list of packet fragments, and release the packets once fully assembled, in original sequence.
As new packets are pushed into the output queue the packet transfer state machine initiates the transfer across the torus. In this respect, the output port “k” in question (ports 1 to 8 i.e. the output port discussed above: x+, y+, z+, w+, x−, y−, z− and w−) is used to transfer the flits following a wormhole model (as shown in
This essentially relates to the TD component, which is responsible for maintaining the complete image of the switch in each node, including all the interconnected servers and Input/Output links and connectivity status.
The traffic source is notified to send traffic avoiding the failed link 604. This triggers a topology update event 605
As a link recovery is detected 606, the pass-through block is programmed so that traffic destined for the CPU because of the failed link is rerouted back to the same link 607. The traffic source is notified to send traffic in the same way before the link failure 608. This triggers a topology update event 609. A similar process will occur in the case of a link cut.
One embodiment of the invention is the method for new node insertion. In order to insert a node the wiring interconnecting the existing nodes is interrupted (link cut). As the torus wiring interruption is detected 602, the traffic reroute API is invoked 604. The link cost is set to infinity and the topology is updated (computing the shortest (lower cost) path for all the switch nodes). This defines the routes that will be used to control the packet flows to reach any destination. The new node insertion triggers the neighbors discovery. The management software checks the new node ID and compares with the provisioned data base. If the node is valid, the software initiates the process of topology update and the routes computation. The management data base will be updated with the new node and the node status will be set as active.
Although specific embodiments of the invention have been described, it will be apparent to one skilled in the art that variations and modifications to the embodiments may be made within the scope of the following claims.
Claims
1. A computer-implemented method of routing packets in a direct interconnect network from a source node to a destination node comprising the steps of:
- discovering all nodes and all output ports on each node in the direct interconnect network topology;
- including the discovered nodes and output ports in the direct interconnect network topology in a topology database that is stored in all nodes in order to allow said nodes and ports to be included in path routing computations;
- calculating a path from every output port on each node to every other node in the direct interconnect network topology based on those nodes and output ports contained in the topology database, wherein each such path is disjoint from one another, and wherein said calculating the disjoint paths is performed independently by each node without the need for any centralized controller within the direct interconnect network topology to assist with same;
- generating a source routing database on each node containing said disjoint paths from every output port on each node to all other nodes in the direct interconnect network topology;
- receiving a packet at the source node;
- sending the received packet to one of the output ports of the source node as chosen in a round robin or weighted round robin manner, whereby the received packet is then distributed along the disjoint path from the chosen output port on the source node to the destination node.
2. The computer-implemented method of claim 1 wherein the step of calculating the path from every output port on each node to every other node in the direct interconnect network topology comprises calculating disjoint paths having no common nodes.
3. The computer-implemented method of claim 1 wherein the step of calculating the path from every output port on each node to every other node in the direct interconnect network topology comprises calculating disjoint paths having no common links.
4. A computer-implemented method of routing packets in a direct interconnect network from a source node to a destination node comprising the steps of: discovering all nodes and all output ports on each node in the direct interconnect network topology;
- including the discovered nodes and output ports in the direct interconnect network topology in a topology database that is stored in all nodes in order to allow said nodes and ports to be included in path routing computations;
- calculating a path from every output port on each node to every other node in the direct interconnect network topology based on those nodes and output ports contained in the topology database, wherein each such path is disjoint from one another, and wherein said calculating the disjoint paths is performed independently by each node without the need for any centralized controller within the direct interconnect network topology to assist with same;
- generating a source routing database on each node containing said disjoint paths from every output port on each node to all other nodes in the direct interconnect network topology;
- receiving packets at the source node;
- sending the received packets to the output ports of the source node in a round robin or weighted round robin manner, whereby the received packets are distributed along the disjoint paths from the output ports on the source node to the destination node, such that the received packets are thereby distributed along alternate routes in the direct interconnect network topology.
5. The computer-implemented method of claim 4 wherein the step of calculating the path from every output port on each node to every other node in the direct interconnect network topology comprises calculating disjoint paths having no common nodes.
6. The computer-implemented method of claim 4 wherein the step of calculating the path from every output port on each node to every other node in the direct interconnect network topology comprises calculating disjoint paths having no common links.
7. The computer-implemented method of claim 4 wherein the packets are further re-ordered at the destination node so that the packets accord with their original order as received at the source node.
8. A computer-implemented method of routing packets in a direct interconnect network from a source node to a destination node comprising the steps of: including the discovered nodes and output ports in the direct interconnect network topology in a topology database that is stored in all nodes in order to allow said nodes and ports to be included in path routing computations;
- discovering all nodes and all output ports on each node in the direct interconnect network topology;
- calculating a path from every output port on each node to every other node in the direct interconnect network topology based on those nodes and output ports contained in the topology database, wherein each such path is disjoint from one another, and wherein said calculating the disjoint paths is performed independently by each node without the need for any centralized controller within the direct interconnect network topology to assist with same;
- generating a source routing database on each node containing said disjoint paths from every output port on each node to all other nodes in the direct interconnect network topology;
- receiving packets at the source node;
- sending the received packets to the output ports of the source node in a round robin or weighted round robin manner, whereby each of said received packets is thereafter segmented into flits at the output ports of the source node and distributed along the disjoint paths from the output ports on the source node to the destination node, such that the packets are thereby distributed along alternate routes in the direct interconnect network topology.
9. The computer-implemented method of claim 8 wherein the step of calculating the path from every output port on each node to every other node in the direct interconnect network topology comprises calculating disjoint paths having no common links or nodes.
10. The computer-implemented method of claim 9 wherein the flits are forwarded to the destination node using wormhole switching.
11. The computer-implemented method of claim 10 wherein the flits are further re-assembled into packets and re-ordered at the destination node so that the packets accord with their original form and order as received at the source node.
5550815 | August 27, 1996 | Cloonan |
7457303 | November 25, 2008 | Blumrich et al. |
20020049901 | April 25, 2002 | Carvey |
20090059913 | March 5, 2009 | Duato Marin |
20100329120 | December 30, 2010 | Zhang |
20110128913 | June 2, 2011 | Chowdhury |
20130223277 | August 29, 2013 | DeCusatis |
20150100725 | April 9, 2015 | Ganapathy |
20150236945 | August 20, 2015 | Michael |
20160026558 | January 28, 2016 | Krishnan |
20160344618 | November 24, 2016 | Oprea |
20160344629 | November 24, 2016 | Gray |
20180123950 | May 3, 2018 | Garg |
20190068679 | February 28, 2019 | Subramaniam Natarajan |
20190146802 | May 16, 2019 | Kuramoto |
20190182117 | June 13, 2019 | Bower, III |
20190182180 | June 13, 2019 | Frankel |
2872831 | November 2012 | CA |
99/11033 | March 1999 | WO |
- Disjoint Paths in Networks; Farabi Iqbal and Fernando A. Kuipers; Network Architectures and Services, Delft University of Technology, Mekelweg 4, 2628 CD Delft, The Netherlands (Year: 2015).
- Disjoint Paths in Networks; Farabi Iqbal and Fernando A. Kuipers; Network Architectures and Services, Delft University of Technology, (Year: 2015).
- International Search Report in International Application PCT/CA2015/000081.
- Written Opinion of the International Searching Authority for PCT/CA2015/000081, dated May 8, 2015.
Type: Grant
Filed: Oct 11, 2018
Date of Patent: Jun 23, 2020
Patent Publication Number: 20190068484
Assignee: ROCKPORT NETWORKS INC. (Ottawa)
Inventors: Dan Oprea (Kanata), Andrei Catana (Ottawa), Udo Neustadter (Carp)
Primary Examiner: Hassan Kizou
Assistant Examiner: Deepa Belur
Application Number: 16/157,966
International Classification: H04L 12/707 (20130101); H04L 12/721 (20130101); H04L 12/863 (20130101);