The foregoing will be apparent from the following more particular description of example 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 embodiments of the present invention.
FIGS. 2A-1-2D-2 are network diagrams illustrating example communications paths through a network and nodes defined as branch points based on the communications paths;
A description of example embodiments of the invention follows.
Client layer services, such as Ethernet services, may be provided by networks that provide server layer services, such as Synchronous Optical Network/Synchronous Digital Hierarchy (SONET/SDH) services. Example embodiments of the present invention covers cases in which client layer services are provided among multiple points at the edge of a network that also provides server layer services, where client layer resources may be flexibly instantiated at nodes within the server layer services network. Some example cases include Ethernet services provided within SONET/SDH networks. Ethernet services provided within Multiprotocol Label Switching (MPLS) networks, low order SONET/SDH virtual private networks provided within SONET/SDH high order networks, etc. An issue that arises in such a situation is where to locate client layer resources to support the client layer services but not use the resources in a wasteful manner, since wasteful processing would use processing otherwise available for server layer resources. In such a network situation, example embodiments of the present invention may be (1) a method for identifying a need for client layer resources (e.g., Ethernet bridging or switching) and (2) a method for instantiating the client layer resources after usefulness at a given node has been identified.
A problem with offline optimization typically used to identify nodes to locate the client layer resources is that there is a dynamic nature of users subscribing to client layer services, such as Ethernet or Internet Protocol (IP) services. For example, Ethernet is generally not a service that a user subscribes to once and never subscribes to again. Of course, this static subscription behavior may occur for a small number of Ethernet subscribers, but that is not a dominant subscription behavior. As a result of dynamic subscriptions, a place in the network that the client layer resource should be appropriately located in order to provide client layer service may change over time. Accordingly, if a service provider has a slightly different deployment mode, such that there is, for example, unlimited client resource (e.g., Ethernet switching) available at every node in the network where one can interconnect server layer services (e.g., SONET/SDH), there is a possibility of bringing the Ethernet resource into use, thereby allowing the service provider to optimize Ethernet resource utilization. However, such broad use of Ethernet resources is wasteful.
It can be, though, that an Ethernet service provider is constrained in the number of service instances that it can support at a particular node in the server layer network. In this case, the service provider may not want to have the Ethernet resource enabled all the time. Instead, the service provider may want to enable and use the Ethernet resource on an as needed basis.
Ethernet service is an example of a client layer service used as an example throughout the example embodiments described herein. It should be understood that any client layer service (i.e., any service at a layer above the server layer) is within the scope of at least some embodiments of the present invention. Furthermore, SONET/SDH is an example of a server layer service used as an example throughout the example embodiments described herein. It should be understood that any server layer services (i.e., any service at a layer below the client layer) is within the scope of at least some embodiments of the present invention.
An example embodiment of the present invention determines where to locate client layer resources based on traffic demands. For example, a customer may say, “now I am interested in joining a Local Area Network (LAN) and having an Ethernet switching point established,” but does not want to wait for an offline tool to establish where the Ethernet switching location should be. The customer would rather have this established dynamically (i.e., in a substantially real-time manner).
Another example embodiment of the present invention treats this problem as a routing problem. This embodiment determines how to communicate from a source point to all the points in the Ethernet environment. To do so, a network node may calculate a tree representing paths, coming back towards the source point, from all the points with which the source point wants to communicate. This calculation is done not just for the source point, but for all the points that the source point can communicate within the LAN environment.
The tree may indicate that there are branches in the tree that are common for two different source or destination points. “Walking back” through those branches from the common point toward the source or destination points, the example embodiment of the present invention finds nodes where the branches start to diverge from one another, interchangeably referred to herein as “branch divergence points” or simply “branch points.” These branch points may be nodes where communication paths from a common source split to take different links towards different destinations or these branch points may be nodes where communication paths toward a common destination are merged from different sources. At a branch divergence point or at a node other than the branch divergence point, the example embodiment considers whether to place client layer resource(s) (e.g., Ethernet bridging) at the branch divergence point. So, this example embodiment of the present invention can generally be described as (1) identification of branch divergence points, optionally using trees, and (2) configuration, via signaling or provisioning, of client layer resources, after identifying a location for them, to support client layer services.
Another example embodiment of the present invention takes advantage of the fact that signaling messages are sent in both directions between sources and destinations involved in a service. Thus signaling messages can be used to identify both nodes where communications paths from a common source split to take different routes and nodes where communications paths from different sources merge to a take a common route. Signaling messages following branches of the tree from a common destination toward different sources can identify branch points at which communications paths merge toward that destination. Signaling messages following branches of the tree from a common source toward different destinations can identify branch points at which communication paths split toward different destinations. This allows the same approach of following branches in the tree to be used to identify both splitting and merging branch points in the network. A similar approach can be used by a provisioning server to identify branch points in the tree in cases in which provisioning is used to establish the client layer resources in the server layer network.
Identification of the branch divergence point (i.e., case (1) above) can be fine tuned because calculating all source trees for every point that exists in the network is a lot of work. But, an example embodiment of the invention achieves this by using a signaling protocol effectively to identify the branch points. For example, if a node in the network wants to join a LAN, it calculates a tree rooted at itself and sends signaling messages into the network in the direction of all the nodes it wants to reach. As the signaling messages are communicated, each of the network nodes recognizes if it happens to be one of the branch divergence points. If so, nodes determined to be branch divergence points instantiate a client layer resource (e.g., loads or enables software or other mechanism(s) to provide Ethernet switching or bridging services). If not, the example embodiment does not instantiate the client layer resource(s), and the network nodes that are determined not to be branch divergence points continue using the server layer network resources. Once a network node has instantiated a client layer resource, it can use the branches to establish connections with the other client layer resources to provide the client layer connectivity and service. Moreover, the signaling messages may be separate from or included with the client or server traffic in the network.
This example embodiment of the present invention can thus be described as (1) identification of branch divergence points using the trees or other equivalent mechanisms, and (2) using a signaling or provisioning mechanism to instantiate client layer resources after identifying use for them.
In an example network using SONET technology, an example embodiment of the present invention may be used to provide Ethernet over SONET, where the SONET infrastructure provides point-to-point connections, and Ethernet switching is used to go between point-to-point connections to get to a final destination.
Another aspect of the present invention is provided through use of signaling (or provisioning) to instantiate client layer resources with, for example, a minimum bandwidth to be supported on a link. As a result, Quality-of-Service (QOS) guarantees can be provided within capabilities of existing signaling (or provisioning) techniques.
An embodiment of the present invention can be considered a heuristic solution for accommodating a customer, who wants to establish a communications path through a network, in a substantially real-time manner. An individual service request (e.g., “create a given path with a selected bandwidth via a set of network nodes”) can be used to locate a client layer resource. In such an embodiment, there are no forecast models generated offline. Further, removal of the client layer resource(s) and redeployment of the client layer resource(s) to another network node can be performed in the same substantially real-time manner using signaling or provisioning techniques.
Server layer services, such as SONET/SDH services, that provide one-to-one connectivity, point-to-point connectivity, ring connectivity, and so forth, can be overlaid with client layer services, such as Ethernet services, to support personal computers (PCs), servers, and so forth, that use Ethernet services. The cost for SONET/SDH is high for multipoint-to-multipoint connectivity provided without network administration via Ethernet. For example, ten people may want to be connected to an email server, data server, or content server, and SONET/SDH has to support ten communications paths throughout the network, whereas multicasting using client layer services is a more efficient technique. Since SONET/SDH is already deployed in service provider networks and it provides server layer (e.g., layer 1) communications, tens of thousands of SONET/SDH equipment is already available. Therefore, embodiments of the present invention can take advantage of that equipment.
For example, an Ethernet switch is a layer 2 communications switch that can be instantiated at network nodes that are connected with other network nodes via the SONET/SDH communications links. But, it is useful to be selective about where to place the client layer resources to conserve network resources in each of the network nodes. Example embodiments for selecting where to place the client layer resources are disclosed herein. It should be understood that embodiments of the present invention support other client layer services, such as layer 3 services, e.g., IP communications services.
Various techniques for determining communications paths between customers via the nodes 1-16 to determine branch points in the network 200 may be employed according to an example embodiment of the present invention. For example, an Open Shortest Path First (OSPF) information gathering may be used to gather information to compute a tree. For example, an OSPF packet in an Internet Protocol (IP) network may provide information to all nodes the OSPF packet traverses sufficient for them to develop a complete topology map. The communication path trees may be computed from the topology map through use of a Dykstra shortest path algorithm, or other standard (or custom) algorithm, to identify a best path between any two points, such as customer A 210a and customer D 210d. The Dykstra algorithm is good for point-to-point path calculations, but not very good for multipoint-to-multipoint path calculations.
In accordance with embodiments of the present invention, a technique may be used to develop a tree map (“tree”) or other representation and to figure out where to instantiate client layer resources, such as an Ethernet bridge. A branch point is defined herein as a node in the tree where communications paths from one source or destination enters a node via one link and exit the same node via separate links. Although applicable to point-to-point path calculations, the example embodiments of the present invention presented herein add more value in point-to-multipoint or multipoint-to-multipoint environments.
Continuing to refer to
Various techniques may be used to define paths through the network 200. A list of point-to-point links 215 in the network 200 to support communications between source and destination nodes (e.g., customers A-D 210a-d) may be used. Vertices in a graph, trees, or hash tables may be used to determine where to place Ethernet bridges or other client layer resources. A storage mechanism of any type may be used to store the tree, and a processor, either application-specific or general, in an edge node, for example, may be employed to make a determination as to a path to configure via the network from a source node to a destination node. Nodes supporting the path may autonomously determine to instantiate client layer resource(s), or edge nodes or a third party node may determine node(s) along the path at which to instantiate client layer resources and cause the node(s) to instantiate the client layer resources.
Further referring to
Viewing the paths created among the customers 210a-d, a tree can be computed by any of the network nodes. In an example embodiment of the present invention, edge nodes 1, 4, 13, and 16205a-d compute trees in support of their respective customers for which they provide access to the network. Thus, edge node 1 may compute a communications tree (or other representations) of the network 200 to determine branch divergence points among the network nodes 1-16.
In one operations example, edge node 1205a may cause a communications path to be formed through the network 200, such as via signaling nodes 2, 6, 7, 11, and 15 to support a communications path to edge node 16205d. The communications path may be, for example, a layer 1 SONET/SDH path or a layer 2 Label Switched Path (LSP) or a Layer 3 Internet Protocol (IP) path. Nodes that support multiple communications paths may instantiate client layer communications at nodes along the path that are identified as branch points to support client layer communications. For example, a node that supports two communications paths with a common source or destination may be a branch point and a candidate node for instantiating client layer resources.
It is possible to instantiate client resources in nodes traversed by more than one communications path, regardless of whether the node is a branch point; however, this does not provide any benefit over simple server layer switching if no client communication paths are combined in server layer connections by either splitting or merging. Thus, it is useful to instantiate client layer resources at branch points. Furthermore, it may be practical to require more than two communications paths to traverse a branch point to reduce the number of nodes that instantiate only when three or more communications paths traverse a branch point. In this example, the third communications path may or may not share a source or destination with the other two paths that determine the branch point. In the following description, an example requirement for three communications paths at a branch point is used as the criterion for the instantiating client layer resource.
In the example network 200, the network nodes 1-16 have a rich set of server layer communications links 215 interconnecting each other, where the server layer communications links 215 may be optical communications links over which SONET/SDH communications travel between the nodes (e.g., between nodes 1 and 5, 1 and 2, 5 and 6, 2 and 6, and so forth). In an event a node supports, say, at least three server layer communications paths, illustrated at edge nodes 1, 4, 13, and 16205a-d, the nodes may instantiate or be caused to instantiate client layer resources, such as for customers A and D to use layer 1 communications (e.g., a SONET/SDH path), such as communications path 220a-2 across the network.
The individual nodes 1-16 may be configured with software, that instantiate client layer resources in an event its respective node is a branch point and has been signaled or provisioned to support multiple (e.g., at least three) communications paths. Thus, the individual nodes 1-16 can operate autonomously or under direction via signaling or provisioning and support communications according to example embodiments of the present invention.
In
In
In
It should be observed that, due to path changes of communications network paths 220a-1 and 220a-2 in
In
In
Instantiating client layer resources is defined herein as loading or executing software, optionally distributed via the server layer communications links 215, in a software embodiment, or enabling hardware or firmware in other embodiments, to support client layer services, such as Ethernet bridging services.
It should be further understood that the flow diagrams of
In one embodiment of the present invention, the edge node 505a may receive a link request 502 from a client node (not shown). Responsively, the request is provided to the tree computation unit 510 within edge node 505a to compute a tree representing the network, including determining a path to configure in the network to support communications between the client node (not shown), to which the edge node 505a is connected, and a destination node (not shown). The tree computation 510 utilizes the network topology known to node 505a. This topology information may have been developed using a routing protocol, for example, the OSPF routing protocol. The tree computation unit 510 may forward parameters or other information (not shown) to the signaling unit 515, which, in turn, generates communications path signaling 540 transmitted by the transmit/receive unit 520 to the internal node 505b, received by its transmit/receive unit 520.
Following receipt of the communications path signaling 540, the server layer/client layer communications instantiation unit 525 makes a determination as to whether, based on the communications path signaling 540, the internal node 505b has been selected to provide services for a communications path 545. If the internal node 505b has been selected, the server layer/client layer communications instantiation unit 525 may then determine whether to instantiate client layer resources or remain using or reverting to server layer resources. Instantiating client layer resources may be done if a branch point exists where the number of communications paths exceeds, for example, three. The given number, sometimes referred to as a threshold, may be set differently, but if set too high, there may be disconnected sets of nodes. In one embodiment, a preferred number is three to ensure there are few or no disconnected sets of nodes and also to reduce backhauling (i.e., bridges may be used to reduce backhauling capacity that is used in a network).
Once the server layer/client layer communications instantiation unit 525 has determined that client resources should be instantiated or de-instantiated, the action is communicated to the server layer/client layer execution unit 526.
After the communications path signaling 540 occurs and server layer or client layer resources are instantiated or de-instantiated, a communications path 545, such as a SONET/SDH path, is activated, and client layer communications 550 can flow in a uni- or bi-directional manner.
As understood in the art, the embodiment of
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 scope of the invention encompassed by the appended claims.
This application is a Continuation-in-Part of U.S. application Ser. No. 11/443,499, filed on May 30, 2006, entitled “Method and Apparatus for Managing Client Layer Communications Services.” The entire teachings of the above application are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | 11443499 | May 2006 | US |
Child | 11641303 | US |