IP Library Granted Patent US 9,998,291
Granted Patent B1
US 9,998,291 · App. 13/789,618 · Granted Jun 12, 2018

Multicast routing based on a unicast transport network

Inventors: Atif Khan (San Jose, CA); Venugopal Hemige (San Ramon, CA); Rameshbabu Prabagaran (Los Gatos, CA)
H04L12/18
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,998,291
App. No.
13/789,618
Granted
Jun 12, 2018
Kind
B1
Abstract

A method for routing a multicast stream is disclosed. The method comprises providing an overlay network comprising at least one controller; and a plurality of routers communicatively coupled to the at least one controller; receiving by the controller, multicast control information from each of the plurality of routers; creating by the controller, a routing tree based on the multicast control information; receiving by a first router, a request to join a multicast stream from a first receiver; locating a route to a replication point for the stream within the overlay network based on the routing tree; creating a secure communications path between the first router and the replication point over a unicast transport network; receiving, by the first receiver, a multicast stream from the replication point via the secure communications path; and de-encapsulating the multicast stream and forward it to the first receiver.

Claims (65)

1. A method for routing a multicast stream, comprising:

providing an overlay network comprising at least one controller, and a plurality of multicast-enabled routers communicatively coupled to the at least one controller;

receiving, by the controller, multicast control information from each of the plurality of multicast-enabled routers;

tracking, by the controller, replication points for the multicast stream from a source of the multicast stream, each replication point corresponding to a router of the plurality of multicast-enabled routers;

creating, by the controller, a routing structure based on the multicast control information and the replication points;

receiving, by the controller from a first router of the plurality of multicast-enabled routers, a request for a replication point for the multicast stream, the request generated in response to a request from a first receiver to the first router of the plurality of multicast-enabled routers to join the multicast stream;

processing, by the controller, the request for the replication point by performing a selection operation to select at least one replication point for the multicast stream from the tracked replication points, each selected replication point corresponding to a second router of the plurality of multicast-enabled routers, wherein performing the selection operation includes sending a probe message to each replication point of the tracked replication points to identify at least one closest replicator to the first router of the plurality of multicast-enabled routers based on round trip delays;

transmitting, by the controller to the first router of the plurality of multicast-enabled routers, each selected replication point for the multicast stream;

creating a communications path between the first router of the plurality of multicast-enabled routers and each of the selected replication points over a unicast transport network;

receiving, by the first router of the plurality of multicast-enabled routers, an encapsulated multicast stream from the selected replication point via the communications path; and

de-encapsulating, by the first router of the plurality of multicast-enabled routers, the received encapsulated multicast stream and forwarding the de-encapsulated multicast stream to the first receiver.

2. The method of claim 1 , wherein the routing structure comprises a routing tree.

3. The method of claim 1 , wherein the communications path comprises a secure communications path.

4. The method of claim 1 , wherein performing the selection operation comprises identifying a router from a list of routers as the router that is identified as closest to the first router based on a probe.

5. A computer-implemented method, comprising:

performing, by a controller, a registration operation to register a plurality of multicast-enabled routers for routing a multicast stream from a source of the multicast stream, including receiving multicast control information from each of the plurality of multicast-enabled routers;

tracking, by the controller, replication points for the multicast stream from the source of the multicast stream, each replication point corresponding to a router of the plurality of multicast-enabled routers;

creating, by the controller, a routing structure based on the multicast control information and the replication points;

receiving, by the controller, a request for a replication point for the multicast stream from a first router of the plurality of multicast-enabled routers, the request generated in response to a request from a first receiver to the first router of the plurality of multicast-enabled routers to join the multicast stream;

responsive to the request for the replication point, performing a selection operation, by the controller, to select at least one replication point for the multicast stream from the tracked replication points, each selected replication point corresponding to a second router of the plurality of multicast-enabled routers, wherein performing the selection operation includes sending a probe message to each replication point of the tracked replication points to identify at least one closest replicator to the first router of the plurality of multicast-enabled routers based on round trip delays; and

providing, by the controller, each selected replication point to the first router of the plurality of multicast-enabled routers;

creating a communications path between the first router of the plurality of multicast-enabled routers and each of the selected replication points over a unicast transport network;

receiving, by the first router of the plurality of multicast-enabled routers, an encapsulated multicast stream from the selected replication point via the communications path; and

de-encapsulating, by the first router of the plurality of multicast-enabled routers, the received encapsulated multicast stream and forwarding the de-encapsulated multicast stream to the first receiver.

6. The method of claim 5 , wherein performing the selection operation comprises selecting a plurality of the replication points, and providing each selected replication point comprises providing the plurality of selected replication points to the first router.

7. The method of claim 6 , wherein providing the plurality of selected replication points comprises providing a transport location address for each selected replication point within a unicast transport network.

8. The method of claim 6 , further comprising providing encryption keys to the first router to enable creation of a secure tunnel between the first router and each of the selected replication points over a unicast transport network.

9. The method of claim 5 , wherein tracking the replication points comprises creating a multicast routing tree to track each replication point for the multicast stream.

10. The method of claim 9 , further comprising periodically receiving multicast control information from each of the plurality of multicast-enabled routers; and updating the multicast routing tree based on the multicast control information.

11. A non-transitory computer-readable medium having stored thereon, a sequence of instructions which when executed by a controller, causes the controller to perform operations, the operations comprising:

performing a registration operation to register a plurality of multicast-enabled routers for routing a multicast stream from a source of the multicast stream, including receiving multicast control information from each of the plurality of multicast-enabled routers;

tracking replication points for the multicast stream from the source of the multicast stream, each replication point corresponding to a router of the plurality of multicast-enabled routers;

creating, by the controller, a routing structure based on the multicast control information and the replication points;

receiving a request for a replication point for the multicast stream from a first router of the plurality of multicast-enabled routers, the request generated in response to a request from a first receiver to the first router of the plurality of multicast-enabled routers to join the multicast stream;

responsive to the request for the replication point, performing a selection operation to select at least one replication point for the multicast stream from the tracked replication points, each selected replication point corresponding to a second router of the plurality of multicast-enabled routers, wherein performing the selection operation includes sending a probe message to each replication point of the tracked replication points to identify at least one closest replicator to the first router of the plurality of multicast-enabled routers based on round trip delays;

providing each selected replication point to the first router of the plurality of multicast-enabled routers;

creating a communications path between the first router of the plurality of multicast-enabled routers and each of the selected replication points over a unicast transport network;

receiving, by the first router of the plurality of multicast-enabled routers, an encapsulated multicast stream from the selected replication point via the communications path; and

de-encapsulating, by the first router of the plurality of multicast-enabled routers, the received encapsulated multicast stream and forwarding the de-encapsulated multicast stream to the first receiver.

12. The non-transitory computer-readable medium of claim 11 , wherein performing the selection operation comprises selecting a plurality of the replication points, and providing each selected replication point comprises providing the plurality of selected replication points to the first router.

13. The non-transitory computer-readable medium of claim 12 , wherein providing the plurality of selected replication points comprises providing a transport location address for each selected replication point within a unicast transport network.

14. The non-transitory computer-readable medium of claim 12 , wherein the operations further comprise providing encryption keys to the first router to enable creation of a secure tunnel between the first router and each of the selected replication points over a unicast transport network.

15. The non-transitory computer-readable medium of claim 11 , wherein tracking the replication points comprises creating a multicast routing tree to track each replication point for the multicast stream.

16. The non-transitory computer-readable medium of claim 15 , wherein the operations further comprise:

periodically receiving multicast control information from each of the plurality of multicast-enabled routers; and

updating the multicast routing tree based on the multicast control information.

17. A controller, comprising:

a processor; and

a memory coupled to the processor, the memory storing instructions which when executed by the processor causes the controller to perform operations, the operations comprising:

performing a registration operation to register a plurality of multicast-enabled routers for routing a multicast stream from a source of the multicast stream, including receiving multicast control information from each of the plurality of multi-cast enabled routers:

tracking replication points for the multicast stream from the source of the multicast stream, each replication point corresponding to a router of the plurality of multicast-enabled routers;

creating, by the controller, a routing structure based on the multicast control information and the replication points;

receiving a request for a replication point for the multicast stream from a first router of the plurality of multicast-enabled routers, the request generated in response to a request from a first receiver to the first router of the plurality of multicast-enabled routers to join the multicast stream;

responsive to the request for the replication point, performing a selection operation to select at least one replication point for the multicast stream from the tracked replication points, each selected replication point corresponding to a second router of the plurality of multicast-enabled routers, wherein performing the selection operation includes sending a probe message to each replication point of the tracked replication points to identify at least one closest replicator to the first router of the plurality of multicast-enabled routers based on round trip delays; and

providing each selected replication point to the first router of the plurality of multicast-enabled routers;

creating a communications path between the first router of the plurality of multicast-enabled routers and each of the selected replication points over a unicast transport network;

receiving, by the first router of the plurality of multicast-enabled routers, an encapsulated multicast stream from the selected replication point via the communications path; and

de-encapsulating, by the first router of the plurality of multicast-enabled routers, the received encapsulated multicast stream and forwarding the de-encapsulated multicast stream to the first receiver.

18. The controller of claim 17 , wherein performing the selection operation comprises selecting a plurality of the replication points, and providing each selected replication point comprises providing the plurality of selected replication points to the first router.

19. The controller of claim 18 , wherein providing the plurality of selected replication points comprises providing a transport location address for each selected replication point within a unicast transport network.

20. The controller of claim 18 , wherein the operations further comprise providing encryption keys to the first router to enable creation of a secure tunnel between the first router and each of the selected replication points over the unicast transport network.

21. The controller of claim 17 , wherein tracking the replication points comprises creating a multicast routing tree to track each replication point for the multicast stream.

22. The controller of claim 21 , wherein the operations further comprise:

periodically receiving multicast control information from each of the plurality of multicast-enabled routers; and

updating the multicast routing tree based on the multicast control information.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2018
From: VIPTELA LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 045967/0666 →
CHANGE OF NAME Recorded Mar 1, 2018
From: VIPTELA, INC.
To: VIPTELA LLC
Reel/Frame 045484/0110 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2017
From: KHAN, ATIF; HEMIGE, VENUGOPAL; PRABAGARAN, RAMESHBABU
To: VIPTELA INC.
Reel/Frame 041950/0082 →
Continuity (1)
Provisional Application 61731430 · Nov 29, 2012