IP Library Granted Patent US 9,252,963
Granted Patent B2
US 9,252,963 · App. 14/140,502 · Granted Feb 2, 2016

Performing multicast communication in computer networks by using overlay routing

Inventor: Steven McCanne (Berkeley, CA)
Assignee: Google Inc.
H04L12/1836H04L29/06027H04L45/04H04L45/16H04L65/403H04L65/4076H04L12/185H04L12/1886
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,252,963
App. No.
14/140,502
Granted
Feb 2, 2016
Kind
B2
Abstract

An overlay protocol and system for allowing multicast routing in the Internet to be performed at the application level. The overlay protocol uses “native” Internet multicast and multicast routing protocols to route information, according to overlay routing tables. Overlay groups are mapped to native multicast groups to exploit native multicasting in regional or local forwarding domains. Use of the overlay protocol allows overlay distribution to be handled in a more intelligent and bandwidth-managed fashion. Overlay routers are placed at each of several local area networks, Internet service provider's point of presence, enterprise, or other cohesively-managed locations. The overlay computers are configured according to bandwidth and security policies, and perform application-level multicast distribution across the otherwise disjoint multicast networks by using the overlay routing. The result is an overlay multicast network that is effectively managed according to local network management policies. Application-level control can be applied to the transferred data at the overlay routers.

Claims (71)

1. A computer-executed method comprising:

a router device receiving data packets comprising a particular multicast data flow;

receiving bandwidth information about bandwidth for a network link over which the particular multicast data flow is to be sent;

based, at least in part, on one or more policies for the particular multicast data flow, transforming the particular multicast data flow to fit a bandwidth indicated in the bandwidth information to produce a transformed multicast data flow; and

transmitting the transformed multicast data flow over the network link.

2. The computer-executed method of claim 1 , further comprising:

determining that the particular multicast data flow includes data for a particular application class;

wherein the one or more policies are associated with the particular application class; and

in response to determining that the particular multicast data flow includes data for the particular application class, selecting the one or more policies for the particular multicast data flow based, at least in part, on the particular application class of the particular multicast data flow.

3. The computer-executed method of claim 1 , wherein:

the one or more policies are application-level policies; and

transforming the particular multicast data flow to fit the bandwidth comprises:

identifying one or more cues in audio information in the particular multicast data flow, and

in response to identifying the one or more cues in the audio information, dedicating a particular portion of the bandwidth to current speaker audio information of the audio information.

4. A computer-executed method comprising:

a router device maintaining, for each application class of a plurality of application classes, a distinct set of one or more policies;

the router device receiving data packets comprising a particular multicast data flow;

determining that the particular multicast data flow includes data for a particular application class of the plurality of application classes;

transforming the particular multicast data flow based, at least in part, on a set of one or more policies, maintained at the router device for the particular application class, to produce a transformed multicast data flow; and

transmitting the transformed multicast data flow over a network link.

5. The computer-executed method of claim 4 , wherein transforming the particular multicast data flow comprises reducing data from the particular multicast data flow based on bandwidth available at the network link.

6. The computer-executed method of claim 4 , wherein transforming the particular multicast data flow comprises reducing data from the particular multicast data flow based on application level information for the particular multicast data flow.

7. The computer-executed method of claim 6 , further comprising:

receiving a message indicating application-level attributes for the particular multicast data flow;

wherein the application-level information for the particular multicast data flow comprises the application-level attributes.

8. The computer-executed method of claim 4 , further comprising:

the router device maintaining a set of two or more traffic processing agents;

wherein a particular traffic processing agent, of the set of two or more traffic processing agents, is configured to process data flows that include data for the particular application class;

prior to transforming the particular multicast data flow and in response to determining that the particular multicast data flow includes data for the particular application class, selecting the particular traffic processing agent, of the set of two or more traffic processing agents, that is configured to process data flows that include data for the particular application class;

wherein transforming the particular multicast data flow is performed by the particular traffic processing agent.

9. The computer-executed method of claim 8 , further comprising, prior to selecting the particular traffic processing agent:

the router device receiving information for the particular traffic processing agent;

wherein prior to receiving information for the particular traffic processing agent, the particular traffic processing agent is not part of the set of two or more traffic processing agents maintained by the router device; and

in response to receiving the information for the particular traffic processing agent, the router device adding the particular traffic processing agent to the set of two or more traffic processing agents.

10. The computer-executed method of claim 8 , wherein the one or more policies, maintained for the particular application class, are maintained in connection with the particular traffic processing agent.

11. A non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause performance of the steps of:

a router device receiving data packets comprising a particular multicast data flow;

receiving bandwidth information about bandwidth for a network link over which the particular multicast data flow is to be sent;

based, at least in part, on one or more policies for the particular multicast data flow, transforming the particular multicast data flow to fit a bandwidth indicated in the bandwidth information to produce a transformed multicast data flow; and

transmitting the transformed multicast data flow over the network link.

12. The one or more non-transitory computer-readable media of claim 11 , further comprising instructions for:

determining that the particular multicast data flow includes data for a particular application class;

wherein the one or more policies are associated with the particular application class; and

in response to determining that the particular multicast data flow includes data for the particular application class, selecting the one or more policies for the particular multicast data flow based, at least in part, on the particular application class of the particular multicast data flow.

13. The one or more non-transitory computer-readable media of claim 11 , wherein:

the one or more policies are one or more application-level policies; and

transforming the particular multicast data flow to fit the bandwidth comprises:

identifying one or more cues in audio information in the particular multicast data flow, and

in response to identifying the one or more cues in the audio information, dedicating a particular portion of the bandwidth to current speaker audio information of the audio information.

14. A non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause performance of the steps of:

a router device maintaining, for each application class of a plurality of application classes, a distinct set of one or more policies;

the router device receiving data packets comprising a particular multicast data flow;

determining that the particular multicast data flow includes data for a particular application class of the plurality of application classes;

transforming the particular multicast data flow based, at least in part, on a set of one or more policies, maintained at the router device for the particular application class, to produce a transformed multicast data flow; and

transmitting the transformed multicast data flow over a network link.

15. The one or more non-transitory computer-readable media of claim 14 , wherein transforming the particular multicast data flow comprises reducing data from the particular multicast data flow based on bandwidth available at the network link.

16. The one or more non-transitory computer-readable media of claim 14 , wherein transforming the particular multicast data flow comprises reducing data from the particular multicast data flow based on application-level information for the particular multicast data flow.

17. The one or more non-transitory computer-readable media of claim 16 , further comprising instructions for:

receiving a message indicating one or more application-level attributes for the particular multicast data flow;

wherein the application-level information for the particular multicast data flow comprises the one or more application-level attributes.

18. The one or more non-transitory computer-readable media of claim 14 , further comprising instructions for:

the router device maintaining a set of two or more traffic processing agents;

wherein a particular traffic processing agent, of the set of two or more traffic processing agents, is configured to process data flows that include data for the particular application class;

prior to transforming the particular multicast data flow and in response to determining that the particular multicast data flow includes data for the particular application class, selecting the particular traffic processing agent, of the set of two or more traffic processing agents, that is configured to process data flows that include data for the particular application class;

wherein transforming the particular multicast data flow is performed by the particular traffic processing agent.

19. The one or more non-transitory computer-readable media of claim 18 , further comprising instructions for:

prior to selecting the particular traffic processing agent:

the router device receiving information for the particular traffic processing agent;

wherein prior to receiving information for the particular traffic processing agent, the particular traffic processing agent is not part of the set of two or more traffic processing agents maintained by the router device; and

in response to receiving the information for the particular traffic processing agent, the router device adding the particular traffic processing agent to the set of two or more traffic processing agents.

20. The one or more non-transitory computer-readable media of claim 18 , wherein the one or more policies, maintained for the particular application class, are maintained in connection with the particular traffic processing agent.

Assignments (4)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2014
From: MCCANNE, STEVEN
To: FASTFORWARD NETWORKS, INC.
Reel/Frame 034220/0296 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2014
From: FASTFORWARD NETWORKS, INC.
To: YAHOO! INC.
Reel/Frame 034148/0991 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2014
From: YAHOO! INC.
To: GOOGLE INC.
Reel/Frame 033868/0257 →
Continuity (7)
Continuation 13758608 · Feb 4, 2013
Continuation 12426185 · Apr 17, 2009
Continuation 11544792 · Oct 5, 2006
Continuation 10600142 · Jun 19, 2003
Continuation 09323869 · Jun 1, 1999
Provisional Application 60115454 · Jan 11, 1999
Related Publication 20140105209A1 · Apr 17, 2014