Quantcast

Method and apparatus for scalable virtual private network multicasting

Imported: 17 Feb '17 | Published: 23 Sep '14

USPTO - Utility Patents

Abstract

In one embodiment, the present invention is a method and apparatus for scalable virtual private network multicasting. In one embodiment a service network builds a new data multicast distribution tree for each high-bandwidth multicast data flow (e.g., multicast data flows that require an amount bandwidth meeting or exceeding a predefined threshold). However, if the multicast data flow is a low-bandwidth flow (e.g., if the required amount of bandwidth falls below the predefined threshold), the multicast data flow is routed over an existing multicast distribution tree in order to minimize an amount of state information that must be maintained by service provider core routers in the backbone network.

Description

This application is a continuation of U.S. patent application Ser. No. 12/626,058, filed Nov. 25, 2009, now U.S. Pat. No. 8,306,048, which is a continuation of U.S. patent application Ser. No. 11/017,987, filed Dec. 21, 2004, now U.S. Pat. No. 7,626,995. The aforementioned related patent applications are herein incorporated by reference.

FIELD OF THE INVENTION

The present invention relates generally to service networks, and relates more particularly to the scaling of multicast virtual private networks.

BACKGROUND OF THE INVENTION

FIG. 1 is a schematic diagram illustrating an exemplary service network 100. The service network 100 comprises a multiprotocol label switching (MPLS) service provider backbone network 112 supporting a plurality of individual private network sites 1021-102n (hereinafter collectively referred to as “sites 102”). A subset of these sites 102 forms a virtual private network (VPN). The backbone network 112 comprises a plurality of provider edge (PE) routers 1061-106n (hereinafter collectively referred to as “PE routers 106”) and a plurality of provider core routers 1081-108n (hereinafter collectively referred to as “P routers 108”) for receiving and forwarding data (e.g., received from sites 102). Each of the sites 102 comprises at least one customer edge router 1041-104n (hereinafter collectively referred to as CE routers 104″) that connects the site 102 to the backbone network 112. If at least two of the sites 102 are multicast-enabled, they make up a “multicast domain”.

Each multicast domain has a default multicast distribution tree (MDT) through the backbone network 112 that defines the path used by PE routers 106 to send multicast data and control messages to every other PE router 106 connected to the multicast domain. In some cases, this default MDT may not be the most optimal means of forwarding data. For example, consider a multicast domain comprising sites 1021, 1022 and 1023. If a default MDT were used to send data to a subset of sites 102 in the multicast domain (e.g., from a sender in site 1021 to a receiver in site 1023), the data would also be forwarded to destinations in the multicast domain that are dead ends, i.e., not on the path to the intended receiver (e.g., PE router 1062). This is wasteful, especially for high-bandwidth multicast traffic, and makes the service network 100 very difficult to scale.

One solution to the bandwidth conservation problem is the implementation of individual MDTs for specific multicast groups, referred to as “data MDTs”. A data MDT (e.g., data MDT 110, illustrated as a dashed line) delivers VPN data traffic for a particular multicast group (e.g., comprising sites 1021 and 1023) only to those PE routers 106 that are on the path to receivers of the multicast group. This reduces the amount of multicast traffic on the backbone network 112 and reduces load on some PE routers 106. However, it also increases an amount of VPN-specific state knowledge (e.g., routing information) that must be maintained by the P routers 108, as a separate MDT must be maintained for each multicast source or multicast group. Therefore, the problem of scalability remains.

Thus, there is a need in the art for a method and apparatus for scalable virtual private network multicasting.

SUMMARY OF THE INVENTION

In one embodiment, the present invention is a method and apparatus for scalable virtual private network multicasting. In one embodiment a service network builds a new data multicast distribution tree for each high-bandwidth multicast data flow (e.g., multicast data flows that require an amount bandwidth meeting or exceeding a predefined threshold). However, if the multicast data flow is a low-bandwidth flow (e.g., if the required amount of bandwidth falls below the predefined threshold), the multicast data flow is routed over an existing multicast distribution tree in order to minimize an amount of state information that must be maintained by service provider core routers in the backbone network.

To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures.

DETAILED DESCRIPTION

In one embodiment, the present invention relates to the scaling of multicast virtual private networks (MVPNs). In one embodiment, a data MDT is created only for data transmissions requiring an amount of bandwidth that exceeds a predefined cumulative threshold. An aggregated data transmission that requires an amount of bandwidth falling below the predefined threshold may be sent over an existing MDT, substantially eliminating the need to create a discrete MDT for every data flow and reducing the amount of state information that must be maintained by service provider routers. An MVPN implementing such a scheme is therefore substantially more scalable than existing MVPNs.

Moreover, the re-use of existing MDTs as described above facilitates bandwidth optimization for MVPNs by maintaining the efficiency of bandwidth usage on P and PE routers. As will be discussed in greater detail below, exhausted data MDTs may be re-used based on a best match to the optimal tree for a given flow of multicast traffic. In some embodiments, a new data MDT is not even created for a given flow of multicast traffic until it can be determined whether an existing data MDT is optimal for the given flow.

FIG. 2 is a flow diagram illustrating one embodiment of a method 200 for sending MVPN traffic over a service provider backbone network (e.g., an MPLS network). The method 200 may be executed at, for example, a PE router 106 that is connected to a multicast domain comprising two or more customer sites 102. For the purposes of discussion, assume that the method 200 executes at PE router 1061 of FIG. 1. The method 200 is initialized at step 202 and proceeds to step 204, where the method 200 receives multicast traffic from a source in a first customer site (e.g., site 1021). The multicast traffic is intended for at least one receiver in at least a second site 102 connected to the backbone network 112. For example, the method 200 may receive multicast traffic from a source in site 1021 that is intended for a first receiver in site 1022 and second a third receivers in site 1023.

In step 206, the method 200 determines whether a predefined source bandwidth threshold for an MDT in the service network 100 is single-source based (e.g., such that the threshold applies to the source bandwidth for a single multicast traffic flow) or cumulative-source based (e.g., such that the threshold applies to a sum of source bandwidths for a plurality of multicast traffic flows flowing over a single MDT at one time). In one embodiment, the type and value of the threshold is user-definable and depends on an acceptable degree of extraneousness and/or a desired level of scalability for a particular network or application, as described in further detail below.

If the method 200 determines in step 206 that the threshold is single-source based, the method 200 proceeds to step 208 and determines whether the source bandwidth meets or exceeds the predefined threshold. If the source bandwidth does meet or exceed the predefined threshold, the method 200 proceeds to step 210 and builds a new data MDT for the received traffic, e.g., in accordance with known methods for building data MDTs.

Alternatively, if the method 200 determines in step 208 that the source bandwidth does not meet or exceed the predefined threshold, the method 200 proceeds to step 212 and routes the received multicast traffic over an existing data MDT. In one embodiment, the step 210 of routing the received multicast traffic over an existing data MDT includes identifying an existing data MDT that best matches an optimal distribution tree for the received multicast traffic. In one embodiment, the best-matching existing data MDT services every intended receiver of the received multicast traffic (e.g., by servicing the associated PE routers 106) and also services the least number of extraneous or uninterested receivers. In one embodiment, such a method is implemented where no more data MDTs can be built (e.g., the multicast addresses assigned to the data MDTs have been exhausted).

Referring back to step 206, if the method 200 determines that the bandwidth threshold is not single-source based (e.g., is cumulative-source based), the method 200 proceeds to step 214 and determines whether the source bandwidth meets or exceeds the cumulative-source based threshold. If the threshold has not yet been met, the method 200 proceeds to step 216 and routes the received traffic over an active new type of MDT, hereinafter referred to as a “super data MDT”. A super data MDT is an MDT that has a root at the receiving PE router (e.g., the PE router 1061 at which the method 200 is executing and which directly services the source of the received multicast traffic) and spans all other PE routers 106 in the MPLS VPN that service interested receivers for at least one flow of multicast traffic (including the received multicast traffic) having a source serviced by the root PE router 1061.

Alternatively, if the method 200 determines in step 214 that the source bandwidth does meet or exceed the cumulative-source based threshold, the method 200 proceeds to step 218 and either builds a new data MDT for the received traffic (e.g., in accordance with known methods for building data MDTs) or re-uses an existing data MDT for routing the received traffic (e.g., in a manner substantially similar to step 212). If the method 200 builds a new data MDT, this new data MDT will span all PE routers 106 that service interested receivers for the received multicast traffic. The method 200 then terminates in step 220.

A super data MDT will be active for as long as there is at least one multicast flow currently being received by the root PE router (e.g., PE router 1061) and at least one interested receiver for the received multicast flow. Moreover, if a given PE router 106 does not service any interested receivers for any multicast data flow sourced at the root PE router, traffic from the root PE router is not sent to the given PE router.

It will be apparent that in some cases, the routing of multicast traffic over an existing data MDT (e.g., in accordance with steps 212 or 218) will result in multicast traffic being sent to PE routers that do not service any interested receivers for a particular flow of multicast traffic. Thus, the predefined threshold that is assessed in steps 208 and 214 should define a threshold below which the required bandwidth is acceptably low for such extraneousness (e.g., the required bandwidth is low enough that the multicast traffic may be dropped by an extraneous, uninterested PE router with minimal concern or consequence). As discussed above, this level of acceptable extraneousness may depend on the particular application or on desired network performance or scalability (e.g., as defined by a service level agreement).

In this way, the amount of state information that must be maintained by the network's P routers 108 is minimized. Specifically, the amount of state information maintained by the P routers 108 according to the method 200 remains more proportional to the number of VPNs on the network 100, rather than proportional to a number of individual multicast groups or multicast traffic sources. This creates less churn in the backbone network 112, thereby substantially stabilizing the backbone network 112. Moreover, the reduced amount of state information that is maintained in the P routers 108 allows the service network 100 to be scaled more easily than a traditional MPLS VPN system.

Further, in one embodiment, the method 200 is implemented only to carry multicast traffic, and all control traffic is transported along the default MDT, thereby further stabilizing the default MDT.

FIG. 3 is a high level block diagram of the present VPN multicasting system that is implemented using a general purpose computing device 300. In one embodiment, a general purpose computing device 300 comprises a processor 302, a memory 304, a VPN multicasting module 305 and various input/output (I/O) devices 306 such as a display, a keyboard, a mouse, a modem, and the like. In one embodiment, at least one I/O device is a storage device (e.g., a disk drive, an optical disk drive, a floppy disk drive). It should be understood that the VPN multicasting module 305 can be implemented as a physical device or subsystem that is coupled to a processor through a communication channel.

Alternatively, the VPN multicasting module 305 can be represented by one or more software applications (or even a combination of software and hardware, e.g., using Application Specific Integrated Circuits (ASIC)), where the software is loaded from a storage medium (e.g., I/O devices 306) and operated by the processor 302 in the memory 304 of the general purpose computing device 300. Thus, in one embodiment, the VPN multicasting module 305 for scalably multicasting over VPN systems described herein with reference to the preceding Figures can be stored on a computer readable medium or carrier (e.g., RAM, magnetic or optical drive or diskette, and the like).

Thus, the present invention represents a significant advancement in the fields of service networks and VPN multicasting. A method is disclosed that not only optimizes bandwidth consumption in MVPN systems, but also enables such systems to be scaled in a feasible and stable manner.

While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.

Claims

1. A method for sending multicast data from a source to a plurality of receivers in a multicast group, comprising:
building, by a processor, a new data multicast distribution tree for sending the multicast data to the plurality of receivers when an amount of bandwidth required to send the multicast data reaches a predefined threshold that is associated with a bandwidth requirement for sending the multicast data, wherein the predefined threshold is defined based on a desired level of service, wherein the new data multicast distribution tree defines a path for delivering the multicast data to the plurality of receivers; and
sending, by the processor, the multicast data to the plurality of receivers over an existing multicast distribution tree when the amount of bandwidth required to send the multicast data falls below the predefined threshold, wherein the new multicast distribution tree and the existing multicast distribution tree are implemented to carry multicast traffic only, and control traffic is carried along a default multicast distribution tree, wherein the default multicast distribution tree and the existing multicast distribution tree are different.
building, by a processor, a new data multicast distribution tree for sending the multicast data to the plurality of receivers when an amount of bandwidth required to send the multicast data reaches a predefined threshold that is associated with a bandwidth requirement for sending the multicast data, wherein the predefined threshold is defined based on a desired level of service, wherein the new data multicast distribution tree defines a path for delivering the multicast data to the plurality of receivers; and
sending, by the processor, the multicast data to the plurality of receivers over an existing multicast distribution tree when the amount of bandwidth required to send the multicast data falls below the predefined threshold, wherein the new multicast distribution tree and the existing multicast distribution tree are implemented to carry multicast traffic only, and control traffic is carried along a default multicast distribution tree, wherein the default multicast distribution tree and the existing multicast distribution tree are different.
2. The method of claim 1, wherein the predefined threshold is cumulative such that when a sum of source bandwidths for a plurality of multicast data flows and the multicast data falls below the predefined threshold, the multicast data is sent over the existing multicast distribution tree.
3. The method of claim 1, wherein the existing multicast distribution tree serves a provider edge router servicing an interested receiver.
4. The method of claim 1, wherein the source resides on a first virtual private network site, and an intended receiver of the plurality of receivers resides on a second virtual private network site, the first virtual private network site and the second virtual private network site being connected to a common service provider backbone network.
5. The method of claim 4, wherein the common service provider backbone network is a multiprotocol label switching network.
6. The method of claim 1, wherein the existing multicast distribution tree is a super data multicast distribution tree.
7. The method of claim 6, wherein the super data multicast distribution tree is a multicast distribution tree having a root at a provider edge router servicing the source and spanning all other provider edge routers that service interested receivers for the multicast data, including the plurality of receivers.
8. A non-transitory computer readable medium storing a plurality of instructions which, when executed by a processor, cause the processor to perform operations for sending multicast data from a source to a plurality of receivers in a multicast group, the operations comprising:
building a new data multicast distribution tree for sending the multicast data to the plurality of receivers when an amount of bandwidth required to send the multicast data reaches a predefined threshold that is associated with a bandwidth requirement for sending the multicast data, wherein the predefined threshold is defined based on a desired level of service, wherein the new data multicast distribution tree defines a path for delivering the multicast data to the plurality of receivers; and
sending the multicast data to the plurality of receivers over an existing multicast distribution tree when the amount of bandwidth required to send the multicast data falls below the predefined threshold, wherein the new multicast distribution tree and the existing multicast distribution tree are implemented to carry multicast traffic only, and control traffic is carried along a default multicast distribution tree, wherein the default multicast distribution tree and the existing multicast distribution tree are different.
building a new data multicast distribution tree for sending the multicast data to the plurality of receivers when an amount of bandwidth required to send the multicast data reaches a predefined threshold that is associated with a bandwidth requirement for sending the multicast data, wherein the predefined threshold is defined based on a desired level of service, wherein the new data multicast distribution tree defines a path for delivering the multicast data to the plurality of receivers; and
sending the multicast data to the plurality of receivers over an existing multicast distribution tree when the amount of bandwidth required to send the multicast data falls below the predefined threshold, wherein the new multicast distribution tree and the existing multicast distribution tree are implemented to carry multicast traffic only, and control traffic is carried along a default multicast distribution tree, wherein the default multicast distribution tree and the existing multicast distribution tree are different.
9. The non-transitory computer readable medium of claim 8, wherein the predefined threshold is cumulative such that when a sum of source bandwidths for a plurality of multicast data flows and the multicast data falls below the predefined threshold, the multicast data is sent over the existing multicast distribution tree.
10. The non-transitory computer readable medium of claim 8, wherein the existing multicast distribution tree serves a provider edge router servicing an interested receiver.
11. The tangible non-transitory computer readable medium of claim 8, wherein the source resides on a first virtual private network site, and an intended receiver of the plurality of receivers resides on a second virtual private network site, the first virtual private network site and the second virtual private network site being connected to a common service provider backbone network.
12. The non-transitory computer readable medium of claim 11, wherein the common service provider backbone network is a multiprotocol label switching network.
13. The non-transitory computer readable medium of claim 8, wherein the existing multicast distribution tree is a super data multicast distribution tree.
14. The tangible non-transitory computer readable medium of claim 13, wherein the super data multicast distribution tree is a multicast distribution tree having a root at a provider edge router servicing the source and spanning all other provider edge routers that service interested receivers for the multicast data, including the plurality of receivers.
15. An apparatus for sending multicast data from a source to a plurality of receivers in a multicast group, comprising:
a processor of a provider edge router; and
a computer readable medium storing a plurality of instructions which, when executed by the processor, cause the processor to perform operations, the operations comprising:
building a new data multicast distribution tree for sending the multicast data to the plurality of receivers when an amount of bandwidth required to send the multicast data reaches a predefined threshold that is associated with a bandwidth requirement for sending the multicast data, wherein the predefined threshold is defined based on a desired level of service, wherein the new data multicast distribution tree defines a path for delivering the multicast data to the plurality of receivers; and
sending the multicast data to the plurality of receivers over an existing multicast distribution tree when the amount of bandwidth required to send the multicast data falls below the predefined threshold, wherein the new multicast distribution tree and the existing multicast distribution tree are implemented to carry multicast traffic only, and control traffic is carried along a default multicast distribution tree, wherein the default multicast distribution tree and the existing multicast distribution tree are different.
a processor of a provider edge router; and
a computer readable medium storing a plurality of instructions which, when executed by the processor, cause the processor to perform operations, the operations comprising:
building a new data multicast distribution tree for sending the multicast data to the plurality of receivers when an amount of bandwidth required to send the multicast data reaches a predefined threshold that is associated with a bandwidth requirement for sending the multicast data, wherein the predefined threshold is defined based on a desired level of service, wherein the new data multicast distribution tree defines a path for delivering the multicast data to the plurality of receivers; and
sending the multicast data to the plurality of receivers over an existing multicast distribution tree when the amount of bandwidth required to send the multicast data falls below the predefined threshold, wherein the new multicast distribution tree and the existing multicast distribution tree are implemented to carry multicast traffic only, and control traffic is carried along a default multicast distribution tree, wherein the default multicast distribution tree and the existing multicast distribution tree are different.
building a new data multicast distribution tree for sending the multicast data to the plurality of receivers when an amount of bandwidth required to send the multicast data reaches a predefined threshold that is associated with a bandwidth requirement for sending the multicast data, wherein the predefined threshold is defined based on a desired level of service, wherein the new data multicast distribution tree defines a path for delivering the multicast data to the plurality of receivers; and
sending the multicast data to the plurality of receivers over an existing multicast distribution tree when the amount of bandwidth required to send the multicast data falls below the predefined threshold, wherein the new multicast distribution tree and the existing multicast distribution tree are implemented to carry multicast traffic only, and control traffic is carried along a default multicast distribution tree, wherein the default multicast distribution tree and the existing multicast distribution tree are different.
16. The apparatus of claim 15, wherein the predefined threshold is cumulative such that when a sum of source bandwidths for a plurality of multicast data flows and the multicast data falls below the predefined threshold, the multicast data is sent over the existing multicast distribution tree.
17. The apparatus of claim 15, wherein the existing multicast distribution tree comprises a multicast distribution tree that spans another provider edge router that services an interested receiver.