1. Field of the Invention
This invention relates to a data communication network.
2. Description of the Related Art
A simple data communication network is illustrated in
Any of the nodes N0.1 to N0.10 can be used to connect to a host machine or machines (not shown), possibly themselves interconnected by means of a LAN (local area network).
As is well known, in such networks data to be transmitted is segmented, and each segment is encapsulated in a packet, frame or cell (depending on the protocol being used) for transfer across the network. Each packet, frame or cell will contain, as well as the data to be transmitted, control data, which will generally comprise such information as the source and destination address and may also include such information as a circuit identifier or label that corresponds to a connection between two nodes in the network. Various different methods are used for routing the packets, frames or cells across the network. Generally speaking the switching device at each node includes a storage device, which stores a routing table, which is accessed according to the control data contained within the packet, frame or cell in order to forward the packet, frame or cell to its destination by a preferred path. The manner in which the table is populated and acted upon gives rise to the different methods of routing. The software associated with populating these tables is controlled by a routing algorithm. The primary purpose of the routing algorithm, of which there are several in common use, is to determine the preferred path to the destination, based on one or more parameters, and to populate the routing table in each node to give effect to the result of this determination. Then, when a packet, frame or cell arrives at a particular node, the contents of the table will dictate the next hop of the path upon which it is transmitted from the node. Although the present invention is connected with routing, it is in fact transparent to the particular method of switching that is used.
Thus it will be seen that where each node contains routing information, the routing information is used to forward the packet, frame or cell on a specific path to its destination. The type of information stored will depend upon the sophistication of the network and the particular routing method that is used. The routing information in each node may also take into account the performance of the network—for example whether there are any congestion problems or link failures ahead. In order to keep the routing information at each node up-to-date, it is normally provided that the information is updated periodically to cater for any changes in the network. This update may be achieved through packets, frames or cells that are purely control messages. Although the present invention is connected with the use of performance information updates, it is in fact transparent to the particular method of update that is used.
The present invention is directed to what is considered to be a new way of looking at networks, by basing the routing algorithms, which in turn control the content of the information in the routing tables, on a recursive abstraction of the physical network into a series of logical levels.
According to a first aspect of the present invention, there is provided a method of generating a routing table of destinations for a first physical node of a data communication network which network consists of a plurality of nodes, links interconnecting said nodes and a plurality of destinations associated with respective nodes, comprising the steps of:
a) collecting topological information on at least a part of the data communication network in terms of physical nodes and links between physical nodes;
b) embedding the collected topological information in a plane corresponding to a first network level;
c) identifying one or more closed loops of interconnected nodes lying in the plane of said network level;
d) for a first further network level, assigning a virtual node for each closed loop of interconnected nodes in the previous network level, each virtual node being representative at the further network level of the nodes of the corresponding closed loop in the previous network level and any destinations associated with those nodes;
e) identifying links between said virtual nodes, the links corresponding to nodes in the previous network level that are common to two or more virtual nodes in the further network level;
whereby the route between said first physical node and a destination associated with a further physical node of the data communication network is defined for each further physical node in relation to a network level at which said first physical node and the further physical node are interconnected by a single path; and
f) populating the routing table of the first physical node for each destination with the set of paths that belong to the previous network level corresponding to the single path at the network level at which the first physical node and said destination are interconnected.
Ideally, the collected topological information is used to generate a subnetwork and the subnetwork is embedded in the plane corresponding to the first network level to produce a planar embedded graph from which faces are identified corresponding to the closed loops.
Moreover, the above steps may be repeated for additional further network levels.
It will, of course, be apparent that whilst it is necessary, in accordance with the present invention for the first physical node and the further physical node to be interconnected by a single path, for the purposes of populating the routing table it may not be necessary, in all cases, to continue the recursive abstraction to the level at which a virtual node is allocated that is representative of the single path between the first and further physical nodes. Instead identification of the set of paths between the first and further nodes at the previous network level may be all that is required.
Destination address information may be collected together with the topological information or may be advertised across the data communication network separately.
According to a second aspect of the present invention, there is provided a network node suitable for use in a data communication network which network consists of a plurality of nodes, links interconnecting said nodes and a plurality of destinations associated with respective nodes, the network node comprising:
an input/output interface for data input to and output from the network node;
data storage adapted to store a routing table;
a processor for populating said routing table;
a selector for selecting a path across said data communication network to a destination on the basis of information contained in said routing table; and
program storage means in which is stored a set of instructions for populating said routing table, the set of instructions comprising instructions for:
a) collecting topological information on at least a part of the data communication network in terms of physical nodes and links between physical nodes;
b) embedding the collected topological information in a plane corresponding to a first network level;
c) identifying one or more closed loops of interconnected nodes lying in the plane of said network level;
d) for a first further network level, assigning a virtual node for each closed loop of interconnected nodes in the previous network level, each virtual node being representative at the further network level of the nodes of the corresponding closed loop in the previous network level and any destinations associated with those nodes;
e) identifying links between said virtual nodes, the links corresponding to nodes in the previous network level that are common to two or more virtual nodes in the further network level;
whereby the route between said first physical node and a destination associated with a further physical node of the data communication network is defined in relation to a network level at which said first physical node and the further physical node are interconnected by a single path; and
f) populating the routing table of the first physical node for each destination with the set of paths that belong to the previous network level corresponding to the single path at the network level at which the first physical node and said destination are interconnected.
The present invention is also directed to a network of such nodes.
In a third aspect the present invention provides a method of operating a network node as described above in a data communication network, the method comprising the steps of: when data to be transmitted to a destination on the data communication network is input to the network node, the selector accesses the routing table to identify the route for the required node associated with the destination of the data; where the required node is linked at a network level to the network node by a single path, the selector determines a direction of circulation of the data around the underlying closed loops at each previous level in which the network node participates in order to achieve deterministic routing of the data across the network.
Ideally, a path for the destination of input data is adaptively selected with respect to a closed loop at a particular network level, based on available information on the network state at that level.
Moreover, address and network performance information may be distributed at each network level with the nodes themselves as the destinations.
Within each closed ring at every level in the architecture, each node may exchange address and performance information with the other node or nodes in the closed ring. Typically, the address and performance information at level n is a summary of the corresponding information at the preceding network level n−1. The process of distributing address and performance information across the network is referred to as advertising and examples of how it can be achieved are described in detail below.
The invention, unlike other methods in common use that seek to determine for each route a unique or limited number of paths based on optimising a particular set of one or more parameters, is able to retain a rich set of paths for each route and to exploit them at each logical level as appropriate, based on the performance information available. This routing decision is made in accordance with the routing information stored at each node and this routing information is created by running a routing algorithm which is based on a recursive abstraction of the network into logical levels, as described above. When a packet, frame or cell arrives at, or is originated at, a node, the node is expected to forward the packet, frame or cell onwards through an appropriate output port in accordance with the information contained in the routing table. This process is repeated at each node as the packet, frame or cell travels across the network.
The choice of paths that may be utilized at each node in order to achieve deterministic routing across the network is specified by a routing algorithm that is based on a recursive abstraction of the network into logical levels. The selection of a specific path from the choice of paths being made at each node may be based on the currently available performance information. The node then forwards the packet, frame or cell onwards through the output port that corresponds to the specific path that has been selected. The overall process of successively forwarding data node-by-node across the network is referred to as routing and examples of how it can be achieved are described in detail below.
The concepts described herein are independent of the particular method of switching used, of the particular method of advertising used, of the particular type of addressing used, and of the particular type of performance information used. Examples of particular techniques for advertising and routing as well as a number of other issues associated with the correct functioning of the network are described below.
In order that the invention may be better understood, several embodiments thereof will now be described by way of example only and with reference to the accompanying drawings in which:
Referring firstly to
The switching fabric 37 receives packets, frames or cells from one of interfaces 31, 32 or 33 and forwards them to another of the interfaces 31, 32 or 33 for onward transmission. The memories 34, 35 and 36, which may be in the form of buffers, provide a queuing facility in the event that the node receives more data within a particular time frame than it can handle.
The decision as to which interface the incoming data is forwarded by the switching fabric 37 is taken on the basis of routing information contained in a routing table 38 which is maintained by a processor and associated circuitry 39. The processor 39 is linked to the table 38 by an input/output interface 40. Associated with the processor 39 is a memory 41, which contains the software, which controls the processor, and may also contain a copy of the current contents of the routing table. The software is based on intelligent algorithms which essentially comprise a set of rules which dictate how any particular packet, frame or cell received by or originated at the node is to be forwarded, bearing in mind such factors as its required destination address, any label or circuit identification that is present and the state of the network. The processor also updates the information contained in the routing table on the basis of network status information advertised across the network.
All packets, frames or cells are examined on arrival to ascertain whether they are control messages which contain purely control information—for example, changes in address and performance information which may be used to update the routing table. Any such packets, frames or cells are forwarded by the switching fabric 37 to the processor 39 via a queuing memory 42 and input/output interface 43. These control messages are used to set up the node in the first place, and to keep it up to date with any changes in the network, which require changes in the routing table, or indeed in the algorithms themselves.
Reference is now made to FIGS. 4 to 32, which illustrate the manner in which a physical network may be recursively abstracted into a series of logical levels and consider the processes of advertising and routing in connection with this recursive abstraction.
Before discussing a typical real life network example, such as that shown in
The first level of abstraction is the planar physical network of
Ring R1.1 at Level 1 in
In going from
Two example scenarios are now considered of how advertising and routing may be achieved across a data communication network which utilises routing algorithms based on logical network abridgement as described above.
In the first example scenario, conventional link-state routing protocols can be used to obtain information on the topology of a network, which can then be recursively abstracted into a series of logical levels. Conventional link-state routing protocols can also be used to advertise address information that together with the abstracted logical levels are used to enter destinations and their associated set of paths into the routing table as described below. Conventional link-state routing protocols can also be used as described later to advertise performance information in order to enable optimisation of the traffic distribution across the alternative paths that make up each route. Data can then be routed across the network by dynamically linking together connections that correspond to the paths across the logical levels derived from the recursive abstraction of the network. An example of how this might be implemented would be through using the destination address information in an IP packet together with path information present in one or more multi-protocol label switch headers, or one or more Ethernet VLAN headers.
As an existing link-state routing protocol has been used to communicate both topology and address information across the network, each node is able to construct a complete view of the physical topology of the network and the addresses of the destinations associated with each node in the physical network as shown in
The logical network abridgement process can then be used to establish the recursive abstraction of the physical network into a series of logical levels as shown in
Each ring at each level can be correlated with the addresses of destinations that are reachable on that ring by reversing the abstraction process and identifying the physical nodes that are associated with that part of the abstracted network. It can therefore be seen that as you move up the levels increasing proportions of the addresses on the network are reachable, until at the highest level of abstraction all addresses on the network are reachable.
The virtual node corresponding to the closed ring at the lowest level that the destination address is first reachable therefore describes the route to the destination. The choice of circulation vectors on the corresponding closed ring, together with all the circulation vectors that belong to lower levels within that part of the abstracted network, represent the path diversity that is possible in following this route.
Performance information describing the status of each ring at each level can then be used to make informed choices of how best to distribute the offered traffic against the available resources in the network. Performance information concerning each ring is therefore advertised to each member of a ring for each ring at all levels in the abstracted network. One example of how this can be achieved is through an enhancement to the traditional flooding mechanism used in link-state routing protocols. The enhancement is termed restricted flooding. In restricted flooding, each piece of performance information is associated with a specific ring at a specific level. The performance information is flooded through the network until it reaches a node that is not a member of the ring with which the performance information is associated. This node simply discards the performance information specific to the ring of which the node is not a member, but continues to flood any other relevant performance information to its neighbours.
Thus, in order to populate the routing table of each individual network node topological information is first collected and then used to form a subnetwork which is embedded in a plane to form a planar embedded graph from which faces can be identified corresponding to the closed loops referred to earlier. The analysis of the network proceeds in the manner described above generating increasingly higher network levels until preferably a wholly deterministic path to all points of the network is identified. This information is then used to populate the routing table by identifying for each potential data destination its associated physical node and the network level at which that physical node is interconnected by a single path with the particular network node whose routing table is being populated. This single path is entered into the routing table as the route to that destination, and the set of circulation vectors around the underlying closed loops at each previous level in which the network node participates are entered into the routing table as the alternative paths that can be used in order to follow this route.
As mentioned earlier the information contained in the routing table can be updated by the processor in response to network status information advertised over the network in order to optimise the distribution of traffic over the available paths.
Reference is now made to
As a general rule, nodes must always maintain the direction of circulation until the data reaches the destinations specified by all circulation vectors that are present. So when node N0.2 receives the data it looks at the outer header indicating that it is travelling on R1.1+ to N0.10. Node N0.2 knows that it is not the destination and that to leave on R1.1+ it must send the data on the link to node N0.10. The forwarding decision has therefore been reached and node N0.2 sends the data complete with the existing header information to node N0.10.
When node N0.10 receives the data it looks at the outer header indicating that it is travelling on R1.1+ to N0.10. Node N0.10 knows it is the destination at level 1 and therefore removes the outer header and looks at the next header indicating that it is travelling on R2.4+ to N1.4. Node N0.10 knows that it is not the level 2 destination and that to leave on R2.4+it must send the data on the link from N1.5 to N1.4. N0.10 also knows that the link from N1.5 to N1.4 is the pair of gateway nodes N0.9 and N0.12. The level 1 paths to follow R2.4+are therefore defined by the circulation vector R1.5+ to N0.12 and R1.5− to N0.9. Based on the level 1 performance information, node N0.10 selects R1.5+ to N0.12. N0.10 therefore adds a new outer header to the data packet identifying the circulation vector R1.5+ to N0.12. Node N0.10 also knows that for the data to leave on R1.5+the data must be sent on the link to node N0.11. The forwarding decision has therefore been reached and node N0.10 sends the data complete with the header information to node N0.11.
When node N0.11 receives the data it looks at the outer header indicating that it is travelling on R1.5+ to N0.12. Node N0.11 knows that it is not the destination and that to leave on R1.5+ it must send the data on the link to node N0.12. The forwarding decision has been reached and node N0.11 sends the data complete with the existing header information to node N0.12.
When node N0.12 receives the data it looks at the outer header indicating that it is travelling on R1.5+ to N0.12. Node N0.12 knows that it is the destination at level 1 and therefore removes the outer header and looks at the next header indicating that it is travelling on R2.4+ to N1.4. Node N0.12 knows that it is also the level 2 destination address and therefore also removes this header. As there is no further header, node N0.12 treats the data as if it had originated locally and considers the destination address xyz. The lowest level that node N0.12 is aware of destination xyz is the route based on node N1.4. The level 1 paths to destination address xyz are therefore defined by the circulation vectors R1.4+ to N0.6 and R1.4− to N0.6. Based on level 1 performance information, node N0.12 selects R1.4+ to N0.6. Node N0.12 therefore adds a header to the data identifying the circulation vector R1.4+ to N0.6. Node N0.12 also knows that to leave on R1.4+ it must send the data on the link to node N0.6. The forwarding decision has therefore been reached and node N0.12 sends the data complete with the header information to node N0.6.
When node N0.6 receives the data it looks at the outer header indicating that it is travelling on R1.4+ to N0.6. Node N0.6 knows it is the destination at level 1 and therefore removes the header. As there is no further header, node N0.6 treats the data as if it had originated locally and considers the destination address xyz. Node N0.6 recognises that it is the address of a locally attached host and delivers the data.
As with existing multi-protocol label switching solutions, it is also possible to remove a circulation vector, corresponding to a particular level, at the penultimate node at that level. This is the because the next node at that level will be the destination node, and its first action will be to recognise that it is the destination at that level and remove the circulation vector. This can reduce the circulation vector overhead required to manage the flow of data on the network. However, circulation vector information should not be removed if the network is to support backtracking.
Reference is now made to
Reference is now made to
Reference is now made to
The above capabilities would, for example, find application in advanced disruption tolerant networking, as they in effect allow the data to repeatedly retrace its steps back towards the source until a node is able to successfully find an operational path to the destination.
Instead of backtracking, it is possible to also simply discard all of the circulation vector information and restart the routing process as if the data had originated at the node where it became halted.
All of the above approaches differ from traditional routing solutions, which would have to wait for the network to re-converge on a set of new paths before data could be successfully routed around the failure.
In a second example scenario, we now consider how the recursive abstraction of the network into a series of logical levels can be used to enable the advertisement of address and performance information across the network, and then the subsequent routing of data across the network based solely on the destination address information of the control data within for example Ethernet frames or IP packets.
We first consider, for this second scenario, how the topology of the network can be discovered. Existing methods, such as those used by link-state routing protocols, are used to communicate the topology across the network enabling each node to construct a complete view of the physical topology of the network as shown in
The logical network abridgement process can then be used to establish the recursive abstraction of the physical network into a series of logical levels as shown in
We next consider the advertising of address and performance information from a node in level 1. As an example, take the ring R1.1 of level 1 of the network, as shown in
Each node on the logical ring R1.1 advertises any hosts (not shown) attached to it by sending announcement control messages around the ring R1.1. The control messages themselves are addressed to their adjacent neighbours using either a specific address for that neighbour that was identified during the topology discovery or by using a generic address that all nodes will accept. The messages are routed appropriately around the network by including within them a circulation vector (CV). The messages are associated with a particular ring by using the CV to identify the ring (R1.1 in the example). The announcement messages are circulated around the logical ring, maintaining either a positive or negative direction of rotation by using the CV to identify the direction of rotation (R1.1+ or R1.1− in the example). To prevent infinite looping of the announcement messages the destination of the circulation vector is set equal to the originating node so that they can be recognised upon their return to the originating node and dropped (R1.1+ to N0.1 or R1.1− to N0.1 in the example). Announcement messages should be sent in both a positive and negative rotation, so that the system is able to withstand any single link or node failures. The level 1 source of the advertisements is also identified within the announcement message to assist with the subsequent routing of data (N0.1 in the example). When announcement messages are received, they are used to update the routing tables with the destination addresses that are reachable by that route (in this case N1.1) and the associated diverse paths on the underlying closed ring (in this case R1.1) to the destination node for the route.
We now consider the next higher logical level, referred to as level 2, by reference to
We next consider the advertising of address and performance information from a node in level 2. As an example, take the ring R2.1 of the level 2 network, as shown in
Each node on the logical ring R2.1 advertises any hosts attached to its associated ring by sending announcement control messages around the ring R2.1. The messages are associated with ring R2.1 by a CV set equal to R2.1. The announcement messages are circulated around the logical ring, maintaining either a positive (shown) or negative (not shown) direction of rotation. To prevent infinite looping of the announcement messages the destination of the circulation vector is set equal to the originating node N1.1 in the example in
At logical level 2, the link between the level 2 nodes is by way of shared nodes in level 1. To this end, the shared nodes act as level 2 gateways. At logical level 2, the level 2 nodes are level 1 rings. Delivery of information to a level 2 node is therefore achieved by circulating it into the associated level 1 ring using the mechanism described above. As a matter of course this will distribute the information to those nodes in the ring that are acting as the level 2 gateway to the next level 1 neighbouring ring, and so the process repeats itself.
We now consider the next higher logical level, referred to as level 3, by reference to
We next consider the advertising of address and performance information from a node in level 3. Considering ring R3.1, as shown in
Each node on the logical ring R3.1 advertises any hosts attached to its associated ring of rings by sending announcement control messages around the ring R3.1. The messages are associated with ring R3.1 by a CV set equal to R3.1. The announcement messages are circulated around the logical ring maintaining either a positive (shown) or negative (not shown) direction of rotation. To prevent infinite looping of the announcement messages the destination of the circulation vector is set equal to the originating node N2.1 in the example in
At logical level 3, the link between the level 3 nodes is by way of shared rings in level 2. To this end, the shared rings act as level 3 gateways. At logical level 3, the level 3 nodes are level 2 rings. Delivery of information to a level 3 node is therefore achieved by circulating it into the associated level 2 ring using the mechanism described above. As a matter of course this will distribute the information to those nodes in the ring that are acting as the level 3 gateway to the next level 2 neighbouring ring and so the process repeats itself.
The subsequent flow of level 3 advertisements around R3.1 in a positive direction from ring R2.3 into ring R2.4 is achieved in an equivalent manner. Finally the flow of level 3 advertisements around R3.1 in a positive direction comes to a halt as the level 3 advertisements are dropped when they return to the originating level 3 node N2.1.
We now consider the next higher logical level, referred to as level 4, by reference to
We next consider the example of data being routed across a network without the addition of any circulation vector information as in the first scenario. The lack of any explicit circulation information on each packet of data creates potential for ambiguity and therefore may place restrictions on the types of network that it can be used on.
Reference is now made to
Each node will have learnt of many possible paths for each route in the network based on the advertisements it has received at many different levels. Each possible path can be considered to have a level that corresponds to the level of the advertisement that defined it. To avoid routing loops when using these multiple paths across the network, each node must follow three general rules:
Without explicit circulation vector information it is not possible to unambiguously follow rules 1 & 2. However, it is possible to form a good approximation to rules 1 & 2 by these alternative rules which do not require explicit circulation vector information:
Do not forward data back out over the incoming port.
Use the incoming port to determine the one or more implicit level 1 circulation vectors that the data is following and use this information when considering rules 1 & 2 above.
Without explicit circulation vector information it is not possible to reliably take advantage of level 2 and above performance information. However, by using the implicit level 1 circulation vector information of the incoming port it is possible to take advantage of level 1 performance information.
Although there are limitations from using data without explicit circulation vector information being added (as in the first scenario), this approach to routing is useful for many network scenarios and will be described in the example below.
We next consider
We next consider
We next consider
We next consider
When the data arrives at node N0.6, it recognises that it is the destination for the locally attached host and delivers the data.
Reference is now made to
Thus, in
It can be seen from
The three logical nodes N1.1, N1.2 and N1.3 in
Thus, at the highest level shown in
It will be clear from the above explanations that any planar network, which can be decomposed into closed rings, can be treated in this way, by using recursion to create ever-higher levels of abstraction until a loop-free higher-level topology is achieved. The process for abstracting a non-planar network is described below.
The process of recursive abstraction into a series of logical levels may also be optionally terminated at any level greater than the first level and less than the loop-free higher-level topology. In this instance, the topology at the terminating level, which will correspond to a graph with at least one ring, can be decimated, either arbitrarily, or using any suitable algorithm until it is loop-free. Such an approach will restrict the number of diverse paths through the network to a number, smaller than the physical topology permits. However, this restricted set of paths can reduce the complexity of the implementation by limiting the degree of path diversity supported.
We will now consider how the early termination of the abstraction process may, for example, be used in order to introduce a hierarchy into the network architecture.
If two parts of the network interact with each other as peers, then the two parts of the network are said to have a flat relationship with respect to each other. Such a flat relationship creates the maximum opportunity for path diversity and performance management but requires that both parts be of a similar sophisticated capability.
By contrast, if two parts of the network have a hierarchical relationship to one another, then one part will be defined as being superior in the hierarchy than the other, and the nodes in the superior part will play a full part in the network, but the nodes, other than the common nodes, in the subordinate part will be able to play a simplified role in the network and will have a slave-master interaction with the superior part of the network.
Reference is now made to
Reference is now made to FIGS. 36 to 41 which illustrate the incorporation of non-planar links into the architecture by first considering a general algorithm and then illustrating this by an example.
From a given arbitrary network we construct a maximal planar sub-network, by which we mean a network containing all the nodes as the original one but with some set of links (hereafter called the set of non-planar links) excluded from it. Addition of any link from this set to the maximal planar sub-network makes it non-planar. This set can be chosen to satisfy some additional criteria (e.g. to minimise the number of non-planar links, to minimise the overall cost of non-planar links if costs are assigned to links, combination of these two criteria, etc.).
Every non-planar link is assigned a number (L1, L2, etc). Each of two nodes (say N0.x and N0.y) attached to a non-planar link (say Lz) are assigned point of connection numbers (PCz.x and PCz.y) which are carried throughout. By definition non-planar links cannot be embedded into the plane without crossing but not intersecting another link.
The following steps are then repeated recursively until all non-planar links are embedded: When going to the next level, the point of connection numbers are transferred to all rings that contain the node with the corresponding number. Then, at that next level, we look for all possible planar connections for the non-planar links. If there are conflicting possible planar connections (i.e. they cross) the conflict is resolved according to some criteria (e.g. by keeping the numbers of possible connections for different non-planar links according to their assigned costs). If at least one possible connection of a non-planar link has been embedded then, the point of connection numbers for that link is not carried to the next level. Connections that have been embedded carry implicitly point of connection numbers for the purpose of routing. Point of connection numbers of non-planar links that have not been embedded are carried to the next level.
Consider now the representative network from
After all non-planar links have been implemented we can continue the procedure of recursive abstraction into higher levels as usual. This is illustrated by
The insertion of non-planar links therefore introduces new routes and increases diversity into the routing table from the logical level that it is inserted.
With the present invention a method of generating novel routing tables for a data communication network is provided. The method enables deterministic routing to be achieved whilst providing a rich set of diverse paths across the network for each route. The method is also particularly suited to both responding quickly to congestion or failure at a local part of the network as well as responding progressively to congestion or failure in distant parts of the network.
Number | Date | Country | Kind |
---|---|---|---|
0306855.8 | Mar 2003 | GB | national |
This application is related to and claims priority to United Kingdom of Great Britain Patent Application Serial No. GB 0306855.8, filed Mar. 25, 2003, inventors Kevin Baughan, Constantinos Christofi Constantinou, Alexander Sergeevich Stepanenko, and Theodoros Arvanitis, entitled “Data Communication Network”, which is commonly assigned herewith, the contents of which are incorporated herein by reference, and with priority claimed for all commonly disclosed subject matter, and further is related and claims priority to PCT International Patent Application Serial PCT/EP2004/050195, filed Feb. 24, 2004, inventors Kevin Baughan, Constantinos Christofi Constantinou, Alexander Sergeevich Stepanenko, and Theodoros Arvanitis, entitled “Topology Aggregation For Hierarchical Routing”, which is commonly assigned herewith, the contents of which are incorporated herein by reference, and with priority claimed for all commonly disclosed subject matter.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP04/50195 | 2/24/2004 | WO | 1/28/2006 |