WO2002005485A2 - Apparatus and method for efficient hashing in networks - Google Patents

Apparatus and method for efficient hashing in networks Download PDF

Info

Publication number
WO2002005485A2
WO2002005485A2 PCT/US2001/020864 US0120864W WO0205485A2 WO 2002005485 A2 WO2002005485 A2 WO 2002005485A2 US 0120864 W US0120864 W US 0120864W WO 0205485 A2 WO0205485 A2 WO 0205485A2
Authority
WO
WIPO (PCT)
Prior art keywords
node
data
identifying
value
header
Prior art date
Application number
PCT/US2001/020864
Other languages
French (fr)
Other versions
WO2002005485A3 (en
Inventor
Ross W. Callon
James D. Carlson
Douglas C. Ehlert
Yuval Peduel
Original Assignee
Pluris Inc.
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=24444401&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=WO2002005485(A2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Pluris Inc. filed Critical Pluris Inc.
Priority to EP01950722A priority Critical patent/EP1297665B1/en
Priority to AU2001271689A priority patent/AU2001271689A1/en
Priority to DE60117554T priority patent/DE60117554T2/en
Publication of WO2002005485A2 publication Critical patent/WO2002005485A2/en
Publication of WO2002005485A3 publication Critical patent/WO2002005485A3/en

Links

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
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath

Definitions

  • Each packet of data typically includes a header portion and a data portion.
  • the header portion typically includes a 32-bit source identifying portion which identifies the source node that originated the packet and a 32-bit destination identifying portion which identifies the destination node to which the packet is ultimately to be transferred.
  • a packet header can also include other predefined fields such as a protocol field.
  • a router At each node, a router is used to forward the packet to the next node in the path toward the destination node.
  • a router When a router receives a packet, it examines the destination address in the packet header. It then searches its locally stored routing table to determine the next node to which the packet should be transferred in order to ensure that it will reach its destination, typically along the shortest possible path.
  • the router then forwards the packet to the next node identified in the routing table. This process continues at each successive node until the destination node is reached.
  • the next step or "hop" that the packet can take, i.e., the next node to which the packet is to be forwarded.
  • FIG. 1 contains a schematic block diagram of a conventional IP packet forwarding network 10.
  • the network 10 includes multiple nodes 12 connected by links 13. Referring to FIG. 1, the case in which IP packets are forwarded from node A to node F, for example, is considered. In this situation, node A will forward the packet to node B. Node B can forward the packet toward node E along a first path via node C or along a second path via node D.
  • multiple hosts 14 are coupled to each node A and F.
  • a host 14 coupled to node A may have a sequence of multiple IP packets destined for another host 14 attached to node F. It is desirable to keep the packets associated with any one host-to-host flow in order. This is important to improve the efficiency of communication.
  • the hosts 14 may be running Internet applications over the Transmission Control Protocol (TCP), and TCP may make use of "slow start.”
  • TCP Transmission Control Protocol
  • TCP Transmission Control Protocol
  • the TCP implementation assumes that the misordering of packets is caused by congestion in the network. In response, the rate of traffic transmitted may be reduced. If in fact there is no congestion in the network, then this will result in less efficient use of the network. In any case, it is often advisable if not critical that packets associated with the same source/destination node pair be transferred on the same series of links.
  • IP routers solve this problem by choosing between multiple equal- cost choices for the next hop for a particular packet.
  • the router typically performs an analysis of the packet header contents to assign each packet to a link.
  • this involves a hash function of the five-tuple of fields in the IP header, i.e., source IP address, destination IP address, protocol, source port number, destination port number, or a subset of these fields, such as source IP address and destination IP address.
  • a hash function is designed to perform a computation on one or more data words and return a unique data word of shorter length. For example, a hash function performed on two 32-bit IP addresses may divide the combined 64-bit word by a constant and return as a result the value of the reminder in fewer bits, e.g., five.
  • CRC cyclic redundancy check
  • node A send IP packets to multiple hosts 14 attached to router F.
  • packets from any one source/destination pair will always be transmitted over the same path.
  • Node B performs the hash function on each incoming packet.
  • the result of the hash function is used to select either node C or node D as the next node, i.e., the node to which the packet is to be forwarded.
  • all packets associated with that pair will be forwarded by node B to the same node, i.e., along the same path.
  • the packets averaged over all of the source/destination pairs will in general be split, with some being sent along the path that includes node C and some being sent along the path that includes node D. This allows more efficient loading of the network 10 by splitting traffic among multiple available paths.
  • FIG. 2 is a schematic block diagram of a network 100 which includes multiple links 113 between nodes 112. Specifically, the nodes B, C, D and E in the core of the network 100 are shown interconnected using two parallel links 113 rather than a single link. this case, the same technique as described above for forwarding packets can be used.
  • node B can perform a hash on the IP source and destination addresses. In this case, node B has four choices for possible links to use in forwarding a packet toward node F. Node B can therefore use a hash function with four possible output values.
  • Each of the four links is considered a possible choice for forwarding of the data packet, hi this case, as in the previous case, packets for any single source/destination pair will always go via the same link, i.e., via either one of the two links to C or one of the two links to D. However, the packets averaged over all of the source/destination pairs will generally be split, with some being sent via each of the four links. This allows for more efficient loading of the network by splitting traffic among multiple available paths as well as multiple available links within a path.
  • the same hashing function is used at every node in the network. Consequently, for a particular packet being forwarded along a path, the same hash function result is obtained at every node.
  • the packets that actually arrive at a particular node in the network are a function of the hash values that have been computed at other upstream nodes. This implies that the hash function, as implemented at any articular node, will not obtain all possible output values with the same probability. As a result of these factors, the conventional hashing function does not provide for utilization of the network resources in the most efficient fashion.
  • the present invention provides an approach to hashing which effectively performs a different hashing operation at each node along a path, such that the above drawbacks of prior approaches are avoided.
  • the invention is directed to an apparatus and method for transferring data on a network which includes a plurality of nodes connected by a plurality of links. At least one of the nodes is connected to multiple links over which data can be forwarded from the node onto the network toward another node.
  • the data includes an identifying portion which identifies a source node which originated the data and a destination node to which the data is to be transferred.
  • the at least one node is associated with a node identifying value which serves to identify the node and distinguish the node from other nodes on the network.
  • a link selection value which is used to identify the one of the links out of the node on which the data is to be transferred, is generated using the identifying portion of the data and the node identifying value. Because the selection value is generated using the node identifying value, which is unique to the particular node, the selection value will depend on the particular node generating the value and will be different at each node, even for the same data having the same data identifying portion.
  • the data can be a packet of data and, in particular, can be an Internet Protocol (IP) data packet.
  • IP Internet Protocol
  • the identifying portion of the packet can be at least a portion of the IP packet header.
  • the identifying portion can include the source node ID, the destination node ID and/or the protocol portion of the IP packet header.
  • the node identifying value can be a single constant value which is configured in each router or can be a portion, e.g., the low-order bits, of the IP address of the node router.
  • a logical operation for example, a hash operation, is performed on the identifying portion of the data and the node identifying value.
  • the identifying portion of the data can include the source ID, the destination ID and/or the protocol fields of the header portion of the data packet.
  • the hash operation can include a cyclic redundancy check (CRC) performed on the identifying portion of the data and the node identifying value.
  • CRC cyclic redundancy check
  • FIG. 1 is a schematic block diagram of a network having multiple paths between nodes.
  • FIG. 2 is a schematic block diagram of a network having plural links between nodes.
  • FIG. 3 is a schematic block diagram of a network having multiple paths between nodes and one path with plural links between nodes.
  • FIG. 4 is a schematic block diagram of a network having multiple paths between nodes.
  • FIG. 3 is a schematic block diagram of a configuration of a network 200 which is subject to one of the drawbacks of conventional hash functions.
  • the network 200 is similar to the network 10 of FIG. 1 , except that the network 200 uses a pair of parallel links 213a and 213b between nodes C and E.
  • router B may use multi-path, sending some packets via router C and some via router D.
  • all of the routers A-F are implemented with the same hashing function.
  • router B Given that the packets have various source addresses and/or various destination addresses, it is possible for router B to perform a hash function on the source and destination addresses in order to send some packets via node C and some via node D while sending all packets corresponding to a particular source/destination pair via the same path. This ensures that a good split of traffic is achieved on the B-C and B-D links, while preserving packet order within each individual host-to-host flow.
  • router C will forward all packets to node F via node E. However, it is noted that node C has two links to node E. Therefore, it is desirable to split the traffic equally across the two links.
  • router C will be an identical implementation to router B, or at least will implement the same hashing function to select paths for forwarding packets. As a result, router C will have the same output of the hashing function.
  • the hashing function in the routers in the network 200 consists of a cyclic redundancy check (CRC) function on the IP source and destination addresses of packets. It is also assumed that all packets with an even result are sent on one link, and all packets with an odd result are sent on the other link. For example, at node B, it is assumed that all packets with an even result are sent to node C, and all packets with an odd result are sent to node D. Also, at node C, all packets with an even result of the CRC are sent on the upper link 213a to E, and all packets with an odd result are sent on the lower link 213b to node E.
  • CRC cyclic redundancy check
  • FIG. 4 is a schematic block diagram of another configuration of a network 300 which experiences a drawback in connection with a conventional hashing approach.
  • the network 300 illustrated in FIG. 4
  • Node C uses a hash function to select one of the two links 313c and 313f used to forward data toward node G via node F or node E, respectively.
  • node B sends packets with an even hash value to node C and packets with an odd hash value to node D.
  • node C sends packets with an even hash value to node E and packets with an odd hash value to node F. hi this case, because of the hash operation performed at node B, node C receives only packets with even hash values.
  • node C When node C performs its hash operation on the packets, only even results will be obtained, and all packets will be forwarded on link 313f to node E and on link 313g to node G.
  • the links 313c to node F and 313h to node G would not be used at all, again resulting in very inefficient use of network resources.
  • a different hash operation is performed at each node along a path such that these problems in conventional hashing approaches are eliminated.
  • This approach ensures that a relatively equal splitting of traffic can be achieved at each node such that network resources are more efficiently utilized.
  • the hashing operation of the invention operates on both specific fields in the data packet and an additional input value that is unique to each router.
  • the additional input value can be a single constant value configured in each router, or can be a portion, e.g., the low-order bits, of the IP address of the router.
  • the hashing operation can be performed on the source ID and destination ID of the packet being transferred and the IP address of the router. The hash operation produces a result that is unique to each router, even though the operation is performed for the same packet. As a result, the problems described above with conventional hashing procedures are eliminated.
  • the particular hash operation performed at each node is a cyclic redundancy check (CRC) which includes the additional unique node-identifying input value.
  • CRC cyclic redundancy check
  • the CRC function behaves differently when the node-identifying unique value is used in accordance with the invention. To illustrate, it is assumed that a node is applying a CRC to a set of packets such that there are n possible outcomes. It is further assumed that there is a set of packets such that a CRC applied to those packets will result in only m unique values out of a space of n possible values, where m ⁇ n.
  • the CRC is instead applied to the same set of packets using another unique value, i.e., the node- unique value, then the CRC will now result in n unique values in the space of n possible values. This allows an effectively independent hash function to be applied at each node in a network.
  • the CRC operation in accordance with the invention has two operands, namely, the input data for which the CRC is to be calculated and a fixed operand, often referred to as the generator polynomial.
  • the generator polynomial is selected based on various characteristics of the CRC calculation, including the size of the CRC result.
  • the CRC calculation is considered to be a division of polynomials with binary coefficients.
  • the CRC calculation involves taking the input data represented by such a polynomial and dividing by the generator polynomial. The remainder of the division is the CRC result.
  • the input data to the CRC calculation includes the information used to identify the packet of data being transferred.
  • the input data can include the source address and destination address from the packet header.
  • the input data to the CRC also includes the node- identifying (node-specific) value. The two addresses as well as the node- specific value can be combined into a single long multiple-bit word.
  • the source address and destination address are each 32 bits long, and the node specific value can be 16 bits long.
  • the input data word to the CRC calculation is a single 80-bit word. This input data word is used to perform the CRC calculation with the preselected generator polynomial to produce the hash result.
  • the node-specific value is used as part of the CRC, the hash value is unique to the particular node router.
  • the node-specific value is not part of the input data word to the CRC. Instead, it is used as an initial value for the CRC computation. In the CRC computation, a temporary register is used to store the updated value of the CRC result as the computation is performed.
  • this register is updated with the latest value of the CRC result, hi accordance with this embodiment of the invention, the node-specific value is loaded into the temporary register before the calculation begins.
  • the calculation is then performed on the generator polynomial and the input data, which in this case includes only the information from the packet being transferred, for example, the source address and destination address for the packet.
  • the node-specific value is used in this case as an initial value for the CRC result which is updated as the calculation proceeds.
  • the hash produces a different result at each node for the same data packet.

Abstract

An apparatus and method for efficient hashing uses both an identifying portion of a data packet, e.g., source and destination ID, and an identifying value of the node, e.g., the IP address of the node, to generate a hash result. By inserting a unique value into the hash operation at each node, the invention effectively provides for a different hash implementation at each node. As a result, in situations where multiple paths or multiple links within a path are available to forward packets, traffic can be split over the multiple paths and links. Inefficient utilization of network links found in prior systems which use the same hash operation at each node are eliminated.

Description

APiPARATUS AND METHOD FOR EFFICIENT HASHING IN NETWORKS
Background of the Invention
In digital computer networks such as the Internet, collections of data, referred to as "datagrams", are typically transferred from node to node over the network in packets. Each packet of data typically includes a header portion and a data portion.
In accordance with the common Internet protocol (IP), the header portion typically includes a 32-bit source identifying portion which identifies the source node that originated the packet and a 32-bit destination identifying portion which identifies the destination node to which the packet is ultimately to be transferred. A packet header can also include other predefined fields such as a protocol field.
At each node, a router is used to forward the packet to the next node in the path toward the destination node. When a router receives a packet, it examines the destination address in the packet header. It then searches its locally stored routing table to determine the next node to which the packet should be transferred in order to ensure that it will reach its destination, typically along the shortest possible path.
The router then forwards the packet to the next node identified in the routing table. This process continues at each successive node until the destination node is reached. In many cases, in such a datagram IP network, when forwarding an IP packet, there are situations in which there are two or more choices for the next step or "hop" that the packet can take, i.e., the next node to which the packet is to be forwarded.
FIG. 1 contains a schematic block diagram of a conventional IP packet forwarding network 10. The network 10 includes multiple nodes 12 connected by links 13. Referring to FIG. 1, the case in which IP packets are forwarded from node A to node F, for example, is considered. In this situation, node A will forward the packet to node B. Node B can forward the packet toward node E along a first path via node C or along a second path via node D.
In general, multiple hosts 14 are coupled to each node A and F. A host 14 coupled to node A may have a sequence of multiple IP packets destined for another host 14 attached to node F. It is desirable to keep the packets associated with any one host-to-host flow in order. This is important to improve the efficiency of communication. For example, in many cases, the hosts 14 may be running Internet applications over the Transmission Control Protocol (TCP), and TCP may make use of "slow start." When applications are making use of TCP slow start, if packets are delivered out of order, the TCP implementation assumes that the misordering of packets is caused by congestion in the network. In response, the rate of traffic transmitted may be reduced. If in fact there is no congestion in the network, then this will result in less efficient use of the network. In any case, it is often advisable if not critical that packets associated with the same source/destination node pair be transferred on the same series of links.
Typically, IP routers solve this problem by choosing between multiple equal- cost choices for the next hop for a particular packet. The router typically performs an analysis of the packet header contents to assign each packet to a link. Usually, this involves a hash function of the five-tuple of fields in the IP header, i.e., source IP address, destination IP address, protocol, source port number, destination port number, or a subset of these fields, such as source IP address and destination IP address. A hash function is designed to perform a computation on one or more data words and return a unique data word of shorter length. For example, a hash function performed on two 32-bit IP addresses may divide the combined 64-bit word by a constant and return as a result the value of the reminder in fewer bits, e.g., five.
Other hash procedures include the use of a cyclic redundancy check (CRC) and/or the use of a checksum.
Each time a hash procedure is performed on the same initial values, the same result is obtained. This ensures that packets associated with any one source/destination pair always take the same path, while simultaneously allowing different packets to take different paths. As noted above, sometimes additional fields may be used for the hash. It is noted that any packets belonging to the same flow of packets, i.e., packets which should be kept in order, will also contain the same protocol field in the IP header. Packets which contain a different value in the protocol field may therefore be safely transmitted on a different path. Similiarly, if the protocol field indicates that the next higher level protocol is TCP, then packets which contain different TCP port numbers can be routed on different paths. For these reasons, it is common for the hash to also take account of the protocol and port fields. Thus, referring to FIG. 1, in general, multiple hosts 14 attached to node A send IP packets to multiple hosts 14 attached to router F. Under the technique described above, packets from any one source/destination pair will always be transmitted over the same path. Node B performs the hash function on each incoming packet. The result of the hash function is used to select either node C or node D as the next node, i.e., the node to which the packet is to be forwarded.
Because the hash operation is performed on information in the packet that uniquely identifies its associated source/destination pair, all packets associated with that pair will be forwarded by node B to the same node, i.e., along the same path. The packets averaged over all of the source/destination pairs will in general be split, with some being sent along the path that includes node C and some being sent along the path that includes node D. This allows more efficient loading of the network 10 by splitting traffic among multiple available paths.
As the demand for data network services increases, it is becoming increasingly common for the interconnection between any two nodes to include multiple parallel links. Using multiple links increases the total bandwidth available for data transmission. Also, using multiple links allows for the possibility that if one link fails, there will still be a path through the network between any two nodes.
FIG. 2 is a schematic block diagram of a network 100 which includes multiple links 113 between nodes 112. Specifically, the nodes B, C, D and E in the core of the network 100 are shown interconnected using two parallel links 113 rather than a single link. this case, the same technique as described above for forwarding packets can be used. In particular, node B can perform a hash on the IP source and destination addresses. In this case, node B has four choices for possible links to use in forwarding a packet toward node F. Node B can therefore use a hash function with four possible output values. Each of the four links is considered a possible choice for forwarding of the data packet, hi this case, as in the previous case, packets for any single source/destination pair will always go via the same link, i.e., via either one of the two links to C or one of the two links to D. However, the packets averaged over all of the source/destination pairs will generally be split, with some being sent via each of the four links. This allows for more efficient loading of the network by splitting traffic among multiple available paths as well as multiple available links within a path.
A problem occurs in conventional hashing which substantially reduces the effectiveness of the function. In a typical network, the same hashing function is used at every node in the network. Consequently, for a particular packet being forwarded along a path, the same hash function result is obtained at every node. Also, the packets that actually arrive at a particular node in the network are a function of the hash values that have been computed at other upstream nodes. This implies that the hash function, as implemented at any articular node, will not obtain all possible output values with the same probability. As a result of these factors, the conventional hashing function does not provide for utilization of the network resources in the most efficient fashion.
Summary of the Invention The present invention provides an approach to hashing which effectively performs a different hashing operation at each node along a path, such that the above drawbacks of prior approaches are avoided. The invention is directed to an apparatus and method for transferring data on a network which includes a plurality of nodes connected by a plurality of links. At least one of the nodes is connected to multiple links over which data can be forwarded from the node onto the network toward another node. The data includes an identifying portion which identifies a source node which originated the data and a destination node to which the data is to be transferred. The at least one node is associated with a node identifying value which serves to identify the node and distinguish the node from other nodes on the network. A link selection value, which is used to identify the one of the links out of the node on which the data is to be transferred, is generated using the identifying portion of the data and the node identifying value. Because the selection value is generated using the node identifying value, which is unique to the particular node, the selection value will depend on the particular node generating the value and will be different at each node, even for the same data having the same data identifying portion.
The data can be a packet of data and, in particular, can be an Internet Protocol (IP) data packet. The identifying portion of the packet can be at least a portion of the IP packet header. For example, the identifying portion can include the source node ID, the destination node ID and/or the protocol portion of the IP packet header. The node identifying value can be a single constant value which is configured in each router or can be a portion, e.g., the low-order bits, of the IP address of the node router.
In one embodiment, in generating the link selection value, a logical operation, for example, a hash operation, is performed on the identifying portion of the data and the node identifying value. Again, the identifying portion of the data can include the source ID, the destination ID and/or the protocol fields of the header portion of the data packet. The hash operation can include a cyclic redundancy check (CRC) performed on the identifying portion of the data and the node identifying value.
Brief Description of the Drawings
The foregoing and other objects, features, and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention.
FIG. 1 is a schematic block diagram of a network having multiple paths between nodes. FIG. 2 is a schematic block diagram of a network having plural links between nodes.
FIG. 3 is a schematic block diagram of a network having multiple paths between nodes and one path with plural links between nodes. FIG. 4 is a schematic block diagram of a network having multiple paths between nodes.
Detailed Description of Preferred Embodiments
FIG. 3 is a schematic block diagram of a configuration of a network 200 which is subject to one of the drawbacks of conventional hash functions. The network 200 is similar to the network 10 of FIG. 1 , except that the network 200 uses a pair of parallel links 213a and 213b between nodes C and E. Here, in general, there are multiple packets being transmitted from hosts 14 which are attached directly or indirectly to router A toward hosts 14 which are attached directly or indirectly to router F. h this case, router B may use multi-path, sending some packets via router C and some via router D. h a conventional hashing configuration, all of the routers A-F are implemented with the same hashing function. Given that the packets have various source addresses and/or various destination addresses, it is possible for router B to perform a hash function on the source and destination addresses in order to send some packets via node C and some via node D while sending all packets corresponding to a particular source/destination pair via the same path. This ensures that a good split of traffic is achieved on the B-C and B-D links, while preserving packet order within each individual host-to-host flow. In the network 200 of FIG. 3, router C will forward all packets to node F via node E. However, it is noted that node C has two links to node E. Therefore, it is desirable to split the traffic equally across the two links. However, in most situations, router C will be an identical implementation to router B, or at least will implement the same hashing function to select paths for forwarding packets. As a result, router C will have the same output of the hashing function.
To illustrate the problem, it is assumed that the hashing function in the routers in the network 200 consists of a cyclic redundancy check (CRC) function on the IP source and destination addresses of packets. It is also assumed that all packets with an even result are sent on one link, and all packets with an odd result are sent on the other link. For example, at node B, it is assumed that all packets with an even result are sent to node C, and all packets with an odd result are sent to node D. Also, at node C, all packets with an even result of the CRC are sent on the upper link 213a to E, and all packets with an odd result are sent on the lower link 213b to node E.
The problem here is that all of the packets that arrive at node C (from A to F) will be packets for which the CRC hash function in this example returns an even result. Given that node C will perform the exact same hash function on the exact same fields in the IP packet, the same result will occur, meaning that all packets will result in an even hash value when the function is evaluated at node C. As a result, all packets will take the upper link 213a to node E, and the lower link 213b will not be used at all. This is a very unequal and inefficient utilization of the links from node C to E. FIG. 4 is a schematic block diagram of another configuration of a network 300 which experiences a drawback in connection with a conventional hashing approach. In the network 300 illustrated in FIG. 4, data traffic is forwarded from hosts 14 attached to node A to hosts 14 attached to node G. Node C uses a hash function to select one of the two links 313c and 313f used to forward data toward node G via node F or node E, respectively. For illustration, it is again assumed that node B sends packets with an even hash value to node C and packets with an odd hash value to node D. It is also assumed that node C sends packets with an even hash value to node E and packets with an odd hash value to node F. hi this case, because of the hash operation performed at node B, node C receives only packets with even hash values. When node C performs its hash operation on the packets, only even results will be obtained, and all packets will be forwarded on link 313f to node E and on link 313g to node G. The links 313c to node F and 313h to node G would not be used at all, again resulting in very inefficient use of network resources.
In accordance with the invention, a different hash operation is performed at each node along a path such that these problems in conventional hashing approaches are eliminated. This approach ensures that a relatively equal splitting of traffic can be achieved at each node such that network resources are more efficiently utilized.
For general applications to networks, it would be difficult to implement a different hashing procedure at each node on a network, given the large number of nodes. Instead, the hashing operation of the invention operates on both specific fields in the data packet and an additional input value that is unique to each router. For example, the additional input value can be a single constant value configured in each router, or can be a portion, e.g., the low-order bits, of the IP address of the router. Hence, in one embodiment, the hashing operation can be performed on the source ID and destination ID of the packet being transferred and the IP address of the router. The hash operation produces a result that is unique to each router, even though the operation is performed for the same packet. As a result, the problems described above with conventional hashing procedures are eliminated.
In one embodiment, the particular hash operation performed at each node is a cyclic redundancy check (CRC) which includes the additional unique node-identifying input value. The CRC function behaves differently when the node-identifying unique value is used in accordance with the invention. To illustrate, it is assumed that a node is applying a CRC to a set of packets such that there are n possible outcomes. It is further assumed that there is a set of packets such that a CRC applied to those packets will result in only m unique values out of a space of n possible values, where m<n. If the CRC is instead applied to the same set of packets using another unique value, i.e., the node- unique value, then the CRC will now result in n unique values in the space of n possible values. This allows an effectively independent hash function to be applied at each node in a network.
Specifically, the CRC operation in accordance with the invention has two operands, namely, the input data for which the CRC is to be calculated and a fixed operand, often referred to as the generator polynomial. As known in the art, the generator polynomial is selected based on various characteristics of the CRC calculation, including the size of the CRC result. The CRC calculation is considered to be a division of polynomials with binary coefficients.
The CRC calculation involves taking the input data represented by such a polynomial and dividing by the generator polynomial. The remainder of the division is the CRC result. In practice, since a digital computer stores data as binary digits, polynomial arithmetic is implemented as binary arithmetic without carries between bit positions. h one embodiment, the input data to the CRC calculation includes the information used to identify the packet of data being transferred. For example, the input data can include the source address and destination address from the packet header. In addition, the input data to the CRC also includes the node- identifying (node-specific) value. The two addresses as well as the node- specific value can be combined into a single long multiple-bit word. For example, in this illustrative embodiment, the source address and destination address are each 32 bits long, and the node specific value can be 16 bits long. Hence, the input data word to the CRC calculation is a single 80-bit word. This input data word is used to perform the CRC calculation with the preselected generator polynomial to produce the hash result. Because, the node-specific value is used as part of the CRC, the hash value is unique to the particular node router. In another embodiment, the node-specific value is not part of the input data word to the CRC. Instead, it is used as an initial value for the CRC computation. In the CRC computation, a temporary register is used to store the updated value of the CRC result as the computation is performed. At each step of the calculation, this register is updated with the latest value of the CRC result, hi accordance with this embodiment of the invention, the node-specific value is loaded into the temporary register before the calculation begins. The calculation is then performed on the generator polynomial and the input data, which in this case includes only the information from the packet being transferred, for example, the source address and destination address for the packet. Hence, the node-specific value is used in this case as an initial value for the CRC result which is updated as the calculation proceeds. Once again, because the node- specific value is used in the CRC computation, the hash produces a different result at each node for the same data packet. While this invention has been particularly shown and described with references to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. What is claimed is:

Claims

CLAΓMS
1. A method of transferring data on a network, said network including a plurality of nodes connected by a plurality of links, at least one node being connected to more than one link over which the data can be transferred out of the at least one node, the method comprising: providing the data with an identifying portion which identifies a source node and a destination node for the data; associating the at least one node with a node identifying value to distinguish the at least one node from other nodes on the network; and using the identifying portion of the data and the node identifying value, generating a link selection value which identifies one of the more than one links connected to the at least one node to transfer the data out of the at least one node.
2. The method of claim 1 wherein the data is a packet of data.
3. The method of claim 2 wherein the packet is an Internet Protocol (IP) packet.
4. The method of claim 2 wherein the identifying portion of the data is at least a portion of a header of the packet.
5. The method of claim 4 wherein the identifying portion of the data includes a source node ID portion of the header.
6. The method of claim 4 wherein the identifying portion of the data includes a destination node ID portion of the header.
7. The method of claim 4 wherein the identifying portion of the data includes a protocol portion of the header.
8. The method of claim 1 wherein the node identifying value is an Internet Protocol (IP) address of the at least one node.
9. The method of claim 1 wherein generating the link selection value includes performing a logical operation on the identifying portion of the data and the node identifying value.
10. The method of claim 9 wherein the logical operation comprises a hash operation.
11. The method of claim 10 wherein the identifying portion of the data includes a source node ID portion of the header.
12. The method of claim 10 wherein the identifying portion of the data includes a destination node ID portion of the header.
13. The method of claim 10 wherein the identifying portion of the data includes a protocol portion of the header.
14. The method of claim 10 wherein the hash operation comprises performing a cyclic redundancy check (CRC) on the identifying portion of the data and the node identifying value.
15. An apparatus for transferring data on a network, said network including a plurality of nodes com ected by a plurality of links, at least one node being connected to a plurality of links over which the data can be transferred out of the at least one node, the data being provided with an identifying portion which identifies a source node and a destination node for the data, and the at least one node being associated with a node identifying value to distinguish the at least one node from other nodes on the network, the apparatus comprising: an output interface over which the data can be forwarded to one of the plurality of links; and a processing device for generating a link selection value using the identifying portion of the data and the node identifying value, said node selection value identifying one of the plurality of links connected to the at least one node to transfer the data out of the at least one node.
16. The apparatus of claim 15 wherein the data transferred by the apparatus is a packet of data.
17. The apparatus of claim 16 wherein the packet of data transferred by the apparatus is an Internet Protocol (IP) packet.
18. The apparatus of claim 16 wherein the identifying portion of the data used by the processing device to generate the link selection value is at least a portion of a header of the packet.
19. The apparatus of claim 18 wherein the identifying portion of the data used by the processing device to generate the link selection value includes a source node ID portion of the header.
20. The apparatus of claim 18 wherein the identifying portion of the data used by the processing device to generate the link selection value includes a destination node ID portion of the header.
21. The apparatus of claim 18 wherein the identifying portion of the data used by the processing device to generate the link selection value includes a protocol portion of the header.
22. The apparatus of claim 15 wherein the node identifying value used by the processing device to generate the link selection value is an Internet Protocol (IP) address of the at least one node.
23. The apparatus of claim 15 wherein the processing device performs a logical operation on the identifying portion of the data and the node identifying value to generate the link selection value.
24. The apparatus of claim 23 wherein the logical operation performed by the processing device includes a hash operation.
25. The apparatus of claim 24 wherein the identifying portion of the data used by the processing device to generate the link selection value includes a source node ID portion of the header.
26. The apparatus of claim 24 wherein the identifying portion of the data used by the processing device to generate the link selection value includes a destination node ID portion of the header.
27. The apparatus of claim 24 wherein the identifying portion of the data used by the processing device to generate the link selection value includes a protocol portion of the header.
28. The apparatus of claim 24 wherein the hash operation performed by the processing device comprises a cyclic redundancy check (CRC) on the identifying portion of the data and the node identifying value.
PCT/US2001/020864 2000-07-06 2001-07-02 Apparatus and method for efficient hashing in networks WO2002005485A2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP01950722A EP1297665B1 (en) 2000-07-06 2001-07-02 Apparatus and method for efficient hashing in networks
AU2001271689A AU2001271689A1 (en) 2000-07-06 2001-07-02 Apparatus and method for efficient hashing in networks
DE60117554T DE60117554T2 (en) 2000-07-06 2001-07-02 METHOD AND DEVICE FOR EFFICIENT HASHING IN NETWORKS

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/610,278 US6870849B1 (en) 2000-07-06 2000-07-06 Apparatus and method for efficient hashing in networks
US09/610,278 2000-07-06

Publications (2)

Publication Number Publication Date
WO2002005485A2 true WO2002005485A2 (en) 2002-01-17
WO2002005485A3 WO2002005485A3 (en) 2002-07-25

Family

ID=24444401

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/020864 WO2002005485A2 (en) 2000-07-06 2001-07-02 Apparatus and method for efficient hashing in networks

Country Status (6)

Country Link
US (1) US6870849B1 (en)
EP (1) EP1297665B1 (en)
AT (1) ATE319250T1 (en)
AU (1) AU2001271689A1 (en)
DE (1) DE60117554T2 (en)
WO (1) WO2002005485A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006079293A1 (en) 2005-01-29 2006-08-03 Huawei Technologies Co., Ltd. A data transmission method and system of label switching network

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7328349B2 (en) 2001-12-14 2008-02-05 Bbn Technologies Corp. Hash-based systems and methods for detecting, preventing, and tracing network worms and viruses
US20040073617A1 (en) 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
US7020713B1 (en) * 2000-10-10 2006-03-28 Novell, Inc. System and method for balancing TCP/IP/workload of multi-processor system based on hash buckets
US7200105B1 (en) * 2001-01-12 2007-04-03 Bbn Technologies Corp. Systems and methods for point of ingress traceback of a network attack
JP2002360937A (en) * 2001-06-08 2002-12-17 Konami Computer Entertainment Osaka:Kk Data delivery system, data delivery server, and video game device
US20030120932A1 (en) * 2001-12-21 2003-06-26 Koninklijke Philips Electronics N.V. Synchronizing source and destination systems via parallel hash value determinations
US7836295B2 (en) * 2002-07-29 2010-11-16 International Business Machines Corporation Method and apparatus for improving the resilience of content distribution networks to distributed denial of service attacks
US20060126625A1 (en) * 2003-06-03 2006-06-15 Gero Schollmeier Method for distributing traffic using hash-codes corresponding to a desired traffic distribution in a packet-oriented network comprising multipath routing
US8059551B2 (en) * 2005-02-15 2011-11-15 Raytheon Bbn Technologies Corp. Method for source-spoofed IP packet traceback
US8316416B2 (en) 2005-04-04 2012-11-20 Research In Motion Limited Securely using a display to exchange information
US9143323B2 (en) * 2005-04-04 2015-09-22 Blackberry Limited Securing a link between two devices
US7333430B2 (en) * 2005-07-06 2008-02-19 Fortinet, Inc. Systems and methods for passing network traffic data
US8670566B2 (en) * 2006-05-12 2014-03-11 Blackberry Limited System and method for exchanging encryption keys between a mobile device and a peripheral output device
CN101202746B (en) * 2006-12-15 2011-04-20 华为技术有限公司 Method for generating node identifier and method and device of load balancing
US9172756B2 (en) * 2013-03-12 2015-10-27 Cisco Technology, Inc. Optimizing application performance in a network environment
US9667543B2 (en) 2014-08-08 2017-05-30 Microsoft Technology Licensing, Llc Routing requests with varied protocols to the same endpoint within a cluster
US10681189B2 (en) 2017-05-18 2020-06-09 At&T Intellectual Property I, L.P. Terabit-scale network packet processing via flow-level parallelization

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734651A (en) * 1995-01-05 1998-03-31 International Business Machines Corporation Transaction message routing in digital communication networks
US6061712A (en) * 1998-01-07 2000-05-09 Lucent Technologies, Inc. Method for IP routing table look-up

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6091725A (en) * 1995-12-29 2000-07-18 Cisco Systems, Inc. Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network
US6044080A (en) * 1996-11-19 2000-03-28 Pluris, Inc. Scalable parallel packet router
US5978951A (en) * 1997-09-11 1999-11-02 3Com Corporation High speed cache management unit for use in a bridge/router
US6111877A (en) * 1997-12-31 2000-08-29 Cisco Technology, Inc. Load sharing across flows
US6853638B2 (en) * 1998-04-01 2005-02-08 Cisco Technology, Inc. Route/service processor scalability via flow-based distribution of traffic
US6397260B1 (en) * 1999-03-08 2002-05-28 3Com Corporation Automatic load sharing for network routers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734651A (en) * 1995-01-05 1998-03-31 International Business Machines Corporation Transaction message routing in digital communication networks
US6061712A (en) * 1998-01-07 2000-05-09 Lucent Technologies, Inc. Method for IP routing table look-up

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BELL P R ET AL: "REVIEW OF POINT-TO-POINT NETWORK ROUTING ALGORITHMS" IEEE COMMUNICATIONS MAGAZINE, IEEE SERVICE CENTER. PISCATAWAY, N.J, US, vol. 24, no. 1, January 1986 (1986-01), pages 34-38, XP000813570 ISSN: 0163-6804 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006079293A1 (en) 2005-01-29 2006-08-03 Huawei Technologies Co., Ltd. A data transmission method and system of label switching network
EP1843544A1 (en) * 2005-01-29 2007-10-10 Huawei Technologies Co., Ltd. A data transmission method and system of label switching network
EP1843544A4 (en) * 2005-01-29 2008-09-24 Huawei Tech Co Ltd A data transmission method and system of label switching network
US7787359B2 (en) 2005-01-29 2010-08-31 Huawei Technologies Co., Ltd. Method and system for data forwarding in label switching network

Also Published As

Publication number Publication date
US6870849B1 (en) 2005-03-22
AU2001271689A1 (en) 2002-01-21
DE60117554T2 (en) 2006-08-10
EP1297665A2 (en) 2003-04-02
WO2002005485A3 (en) 2002-07-25
DE60117554D1 (en) 2006-04-27
EP1297665B1 (en) 2006-03-01
ATE319250T1 (en) 2006-03-15

Similar Documents

Publication Publication Date Title
EP1297665B1 (en) Apparatus and method for efficient hashing in networks
US6643287B1 (en) Apparatus and method for forwarding encapsulated data packets on a network having multiple links between nodes
US6654701B2 (en) Method and apparatus for measuring protocol performance in a data communication network
EP1623557B1 (en) A bounded index extensible hash-based ipv6 address lookup method
EP3738277B1 (en) Segment routing network processing of packets
US6909713B2 (en) Hash-based data frame distribution for web switches
AU716133B2 (en) Hash-based translation method and apparatus with multiple level collision resolution
US6526055B1 (en) Method and apparatus for longest prefix address lookup
US5487064A (en) Network layer packet structure
US7542423B1 (en) Hardware load balancing through a single fabric
US20050171937A1 (en) Memory efficient hashing algorithm
US20090323535A1 (en) Distributing information across equal-cost paths in a network
Chandranmenon et al. Trading packet headers for packet processing
WO2018187049A1 (en) Digital signature systems and methods for network path trace
WO2001022658A2 (en) Apparatus and method for forwarding data on multiple label-switched data paths
JPH0824304B2 (en) How to drop unwanted data packets from the communication network
US20150095513A1 (en) Priority based anycast routing
JPH07240739A (en) Method and equipment for generating and inspecting frame inspection sequence for message
CN112087533A (en) Message processing method, device, equipment and storage medium
US6810501B1 (en) Single cycle cyclic redundancy checker/generator
WO2006063217A1 (en) Maskable content addressable memory
US6813273B2 (en) Method and apparatus for determining existence of an address in an address look-up table
US7103039B1 (en) Hardware load balancing through multiple fabrics
JP3239836B2 (en) Router device and transmission route setting method
US8660127B2 (en) Cascaded load balancing

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWE Wipo information: entry into national phase

Ref document number: 2001950722

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2001950722

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: JP

WWG Wipo information: grant in national office

Ref document number: 2001950722

Country of ref document: EP