The Internet which exists today can be viewed as a number of diverse networks, each of which is capable of communicating with every other network to transfer information, messages, etc. (collectively referred to as “information”). When information needs to be transferred between nodal elements in different networks within the Internet, a device known as a “router” must compute an appropriate routing path between the elements. In particular, certain routers, using a protocol known as “Border Gateway Protocol” (BGP), are assigned the task of computing these paths. These routers are referred to as BGP “speaker nodes”. BGP speaker nodes must compute routing paths to every nodal element within every network.
This means that each BGP speaker node must have the ability to compute a path to every nodal element throughout the Internet. It also means that, when a single change is made to a network (e.g., a nodal element is added or deleted), each BGP speaker node must re-compute routing paths to every nodal element within every network.
In addition, as the number of new networks containing thousands of new nodal elements are added to the Internet the number of nodal elements that a given BGP speaker node must be capable of computing (and re-computing) a path to, will increase.
It is desirable, therefore, to provide a new Internet structure that reduces the number of paths which must be computed by a given nodal element, such as a BGP speaker node.
We have recognized that the number of paths that must be computed by a given nodal element can be significantly reduced by generating a new hierarchical structure for the Internet. In one example of the present invention, this structure can be constructed by organizing one or more nodal elements into at least one nodal cluster, and then designating one of the nodal elements as a supernode. For example, a group of BGP speaker nodes may be grouped into a cluster where one of the speaker nodes is designated as a supernode.
Once designated, a supernode is responsible for computing routing paths to one or more other supernodes outside the cluster. It is no longer necessary to compute routing paths to every nodal element; only paths to other supernodes outside a given cluster need be computed.
Similarly, so-designated supernodes may themselves be arranged in clusters and a lead supernode may be designated for each supernodal cluster. The lead supernodes carry out routing path computations to other lead supernodes outside their cluster.
This process can be repeated until a number of layers are created, where within each layer, it is only necessary for designated nodal elements to compute routing paths to other similarly designated nodal elements outside of a given cluster within the same layer.
Referring to
In one embodiment of the present invention, each original NE may comprise a BGP speaker node. Instead of requiring a BGP speaker node to compute routing paths and forwarding tables to all NEs, the present invention generates a hierarchical structure which only requires a designated “supernode” to compute paths to other, similarly designated supernodes.
More particularly, in one embodiment of the present invention, one or more NEs are organized into an associated nodal cluster.
In
Instead of requiring an SE to compute paths to every NE, the present invention only requires an SE to compute paths to other SEs outside a given cluster. It is believed by the present inventors that this greatly reduces the number of paths that must be computed by a designated nodal element.
For example, NE1 (e.g., BGP speaker node) within cluster CL1, may wish to route information to NE21 within cluster CL2. To do so, NE1 may request that SE1 compute a path to SE2. In accordance with one embodiment of the present invention, SE1 is operable to so compute the paths and forwarding tables associated with routing information to SE2. It is the responsibility of SE2 to compute a routing path to NE21 within cluster CL2. Alternatively, NE1 need not send an explicit request on to SE1. Instead, NE1 may just forward a packet on to SE1 , it being understood that SE1 is the only element within the cluster capable of routing the packet on further.
One advantage of the hierarchical structure provided by the present invention can be illustrated by considering how SEs provided by the present invention operate when changes are made to a network topology. For example, if additional nodal elements are added to CL1, it is only necessary for the SE1 associated with CL1 to compute new routing paths and forwarding tables to allow information to be routed between the newly added nodal elements and SEs outside the cluster. In contrast, existing techniques would require each BGP speaker node (e.g., each NE in
As for the NEs within a cluster, in an additional embodiment of the invention, they need not compute paths to any nodal elements outside the cluster, not even to an SE outside the cluster. Instead, they need only compute a path to their associated SE or, alternatively, to other NEs within their cluster that are then responsible for transferring information to the designated SE.
In sum, the present invention only requires each identified SE to re-compute paths and forwarding tables when changes occur to the network topology of its associated nodal cluster.
In an additional embodiment of the present invention, the present invention envisions a number of layers. For example, within a first layer there may exist all of the nodal elements which have not been designated as supernodes. Within a second layer, there exist all of the SEs which have been so designated. In yet a further embodiment of the invention, one or more of the designated SEs may also be grouped into clusters designated as “SCL1, . . . n” in
In turn, LSEs can also be organized into clusters from which a “super lead” SE or “SLSE” may be designated. These SLSEs may be viewed as forming a fourth layer. As will be appreciated by those skilled in the art, this process may continue until a number of layers have been created according to a given design. Within each layer, it is only necessary for designated cluster leaders to compute routing paths to other cluster leaders within the same layer, etc. . . . .
Backtracking somewhat, the present invention provides for a number of ways to designate a nodal element as a supernode (or a supernode as a lead supernode., etc.).
In one embodiment of the present invention, if the nodal elements form a so-called “tree structure” (a term known by those skilled in the art), then one nodal cluster layer may be formed by selecting the nodal element which forms the “root” of the tree (an SLSE, for example).
Similarly, the next nodal cluster layer may then be formed from so-called “children” of the root. For example, two LSEs may be children of an SLSE. These LSEs are themselves roots of their own nodal element trees. In sum, supernodes, lead supernodes, and super lead super nodes, etc. may be designated by determing the roots of tree-like nodal element formations.
In an alternative embodiment of the present invention, when nodal elements do not form a tree-like structure, the present invention provides for generating a virtual tree-like structure in order to designate supernodes, etc. For example, in one embodiment of the present invention, for any arbitrary network topology (that is connected), a subset of links can be selected to form a tree. This set of selected links may be referred to as a “spanning tree” structure. As is known in the art, there are many so-called spanning tree techniques, each designed to meet different constraints. For example, techniques exist which: (a) find a spanning tree such that the total cost (e.g., link delay) of all links that are selected is as small as possible; (b) find a spanning tree in which the maximum root length from a root to a nodal element is as small as possible; and (c) find a spanning tree in which the maximum number of children is as small as possible.
These and other spanning tree techniques may be used to form tree-like nodal element structures. Once the tree-like structures are formed, supernodes, etc. may be designated using the techniques described before. It should be understood that, depending on the desired objective or routing design, an appropriate spanning tree can be selected. For example, if a particular design requires that the number of nodal elements served by any supernode be as small as possible, then using the spanning tree technique described in (c) may be advantageous. However, if another design requires that a maximum root length between any pair of nodal elements be as small as possible, then the technique described in (b) may be advantageously used.
Referring again to
It should be further understood that a controller may also be operable to organize the nodal elements into one or more nodal clusters from which a supernode, lead supernode, or super lead supernode will be designated.
The above discussion has attempted to set forth some examples of the present invention. The true scope of the present invention, however, is reflected by the claims which follow.