In the following embodiments of the address registration and address resolution methods as well as embodiments of the network node and the scalable packet based network according to the present invention are described by way of non-limiting examples with reference to the enclosed figures.
As can be seen from
In S1, a source address SA of a data packet DP received at a port p of a network node 1 is learned as the address of a node within a network segment connected to the port p.
In S2, the learned association of node address SA to the port p information is stored in a forwarding table 4A.
In S3, if the network node 1 is an owning node for the node identified by SA, the learned association of node address SA to the port p information is stored in an owning table (4B);
In S4, a predetermined function F is calculated depending on the learned node address SA for each node address stored in a registrar table 4D of the network node 1. The registrar table stores addresses of nodes within the network that register addresses, i.e., of registrar nodes.
The calculation function F is in a preferred embodiment known to all network nodes 1 of the network, i.e., the calculation function F is a calculation function F common to all network nodes 1. In one embodiment, the network nodes 1 are configured with a selectable common calculation function.
In S5, from the calculated functions F, the node address is selected whose function F fulfils a predetermined selection criterion. The selection criterion is in a preferred embodiment also a common selection criterion known to all network nodes of the network and configurable.
Finally, in S6, the node address is registered in a registering table 4C of a registrar node identified by the selected network node address.
In one embodiment of the node address registering method according to the present invention, the calculation of the function F in S4 is performed by calculating the absolute difference between the learned node address SA and a node address stored in the registrar table 4D of the learning network node 1.
In one embodiment of the registering method as shown in
In an alternative embodiment, another selection criterion is used, such as a maximum value.
The node addresses are in one embodiment MAC addresses as used by an Ethernet network.
The registering process as shown in
In an alternative embodiment, the registering process as shown in
In the shown embodiment, the network node 1 receives in S1 a data packet DP from another transmitting node.
After reception of a data packet DP having a destination address DA at a port, the network node 1 extracts, e.g. filters, in S2 a destination address DA from the packet header of the received data packet DP.
In S3, the network node 1 performs a first look-up of the destination address DA in its forwarding table 4A which stores for each port of the network node 1 learned node addresses of nodes within a network segment connected to the respective port of the network node 1. If the network node 1 identifies that the destination address DA is present in the forwarding table, it decides in S4 that there is no cache-miss and forwards the received data packet DP to the found port in S5.
Contrary, if the look-up of S3 is unsuccessful, the network node 1 performs a look-up of the destination address in its owning table 4B in S6. If the look-up is successful, the data packet is forwarded to the indicated port. If this look-up is also unsuccessful, the network node 1 calculates in S8 the function F depending on the destination address DA and each node address stored in its registrar table 4D.
Then, in S9, the network node 1 selects from the calculated function F a registrar node address based on a predetermined selection criterion, for instance, a minimum or maximum value.
In S10, the network node 1 confirms whether the selected registrar address is its own address. If so, the network node 1 performs a look-up in its registering table 4C and forwards the data packet DP to the indicated port in S11. Otherwise, the network node 1 performs a look-up in its registrar table 4D and forwards the data packet to the indicated port in S12.
In S11, S12, the received data packet DP is forwarded by the network node 1 to the registrar node identified by the selected registrar node address. In S13, the selected registrar node sends a control packet back to network node 1 containing information about the network node that owns the destination address DA.
Network node 1 further comprises in a possible embodiment an owning table 4B that stores the nodes addresses of local nodes attached to ports of the network node 1. A bridge, i.e. network node 1, is a possible registrar node for any other node of the network and can possibly be also the owning network node of such a node if it is directly connected to a port of said network node or to a legacy segment of said network nodes.
The cache memory 4 further comprises a registering table 4C which stores learned node addresses registered in the network node 1 by other network nodes of the same network.
Furthermore, the cache memory 4 of the network node 1 comprises a registrar memory 4D which stores node addresses of registrar nodes of the same network.
The network node 1 as shown in
The computing means 5 calculates the predetermined function F depending on learned node addresses for each node address stored in the registrar table 4D of the network node 1.
The computing unit 5 selects from the calculated function values a node address whose function value fulfils a predetermined selection criterion, such as a maximum or minimum selection criterion.
The registering process and the address resolution process as shown in
In one embodiment of the network node 1 according to the present invention, the network node 1 further comprises a configuration interface 6 for configuring the network node 1. The network node 1 as shown in
In one embodiment of the network node 1 according to the present invention, the network node addresses stored in the registrar table 4D are addresses of network bridges within the network.
When a node 1-1 sends a data packet DP to a destination address DA 2# identifying node 1-2, such data packet DP arrives at port P1 of bridge 1A. In the given example, node 1-1 is not directly connected to port P1 of a network node 1-A, i.e. bridge 1-A, but indirectly, for instance, via conventional state-of-the-art bridges (legacy segment). Bridge 1A performs a look-up for DA in its forwarding table 4A and does not find a destination address DA 2# of node 1-2 as shown in
If the look-up of address DA in the owning table 4B of network node 1-A is also unsuccessful, the network node 1-A, i.e. bridge 1A, calculates a function value depending on a calculation function F and depending on the destination address DA of the received data packet DP as well as on the node addresses stored in the registrar table 4D, i.e., in the given example for network node addresses B# and C# of bridges 1-B, 1-C. For instance, bridge 1-A calculates the absolute difference between the destination address DA of the received data packet DP and the respective network node addresses stored in its registrar table 4D. In the given example, the bridge 1A relies on function F to calculate the sub-values FB=|2#−B#| and FC=|2#−C#| as indicated by S8 of
Then, the computing means 5 of the bridge 1-A select from the calculated function values F the registrar node address whose function value fulfils a predetermined selection criterion which forms, e.g. the minimum value. The minimum value {FB, FC} might be in the given example FC.
Accordingly, the bridge 1-A sends the data packet DP which it has received at its port P1 according to the respective entry of its forwarding table 4A via its port P3 to bridge 1-C as shown in
Bridge 1-C receives the data packet DP at its port P1 and performs a look-up in its own forwarding table 4A. In the shown example, such entry is in the forwarding table and thus bridge 1-C forwards the data packet DP via its port P2 to the port P3 of bridge 1-B. However, if that was not the case (due e.g. to ageing) then bridge 1-C computes function F for the address DA and realizes that it is the registrar node for this address. Therefore, bridge 1-C then performs a second lookup for an entry for address DA in its registering table 4C. The ageing time stored in the forwarding table 4A indicates a time period after which the respective entry is deleted when no data packet has been forwarded to the stored address within said time period.
Bridge 1-C also sends a control packet back to notify bridge 1-A that the owner of address DA is in fact bridge 1-B.
Bridge 1-B receives the data packet DP at its port P3, filters the destination address DA of the received data packet DP from the packet header as indicated in S2 of
The deterministic function F has an input value of an address of a node x, i.e. the result of F(x) uniquely identifies the registrar node for the address of x. The deterministic function F is known to all network nodes 1 within the network. Each network node 1 can therefore use the deterministic function F to determine the identity of the registrar node for any unknown (not in the forwarding table) address. Accordingly, when network node 1 receives a data packet DP whose destination address y is unknown (not in the forwarding table), the network node 1 computes F(y) to identify the registrar node R(y) for address y. It then sends packet DP addressed to destination address y to R(y). This way, the method according to the present invention avoids the state-of-the art broadcasting which wastes network resources.
The deterministic function F(x) is a function that computes the minimum between the address x and the identification address of the registrar node or bridge. In case that the computed minimum value is not unique, i.e., F(x) results in the same minimum value for more than one registered bridge node then one of the minimal values is chosen in a deterministic fashion. To give a specific example, assuming that the identifiers (in this case the address) are drawn from a linearly total ordered set number, such as R, e.g. the set of real numbers, then there are at least two minimal values and the network node bridge having a smaller ID is chosen. Thus, for a given address, the registrar node can be unambiguously identified.
A scalable packet-based network according to the present invention has the advantage that it avoids broadcasts in the event of a cache-miss in a forwarding table 4A of a network node. Accordingly, the present invention increases the scalability of an Ethernet implemented network.
With the mechanism according to the present invention, the storage requirement per network node 1 is only slightly increased, i.e. the network node acting as a registrar for a specific node address needs to store the location of the addresses for which it is the registrar node in addition to the addresses it owns itself.
The method according to the present invention decouples a forwarding mechanism from a learning mechanism for learning the location of an address. In a conventional Ethernet network, the forwarding process and the learning process are coupled which forces the existence of only one path between any pair of nodes, i.e. the Ethernet spanning tree that is used for packet forwarding. This is because, in the conventional Ethernet, allocations of addresses are learned based on a reply to an initial broadcast so that a node subsequently forwards data packets destined to said address on the link for which the reply was received by said node. With the method according to the present invention, such a constraint is lifted and, hence, a more flexible data packet forwarding is achieved.
A further advantage of the method according to the present invention is that it can be deployed in an incremental manner, i.e., the method and network node according to the present invention is backward compatible with current legacy Ethernet bridges.
Even when the invention was mostly described with reference to an Ethernet network, it has to be understood that the invention is applicable for any packet-based network consisting of network nodes, in particular, to any network employing a flat addressing scheme.
The present application claims the benefit of the provisional patent application filed on Sep. 15, 2006, and assigned application No. 60/845,231.
Number | Date | Country | |
---|---|---|---|
60845231 | Sep 2006 | US |