IP Library Granted Patent US 11,601,295
Granted Patent B2
US 11,601,295 · App. 16/579,234 · Granted Mar 7, 2023

Content delivery with reliable multicast using a redundant unicast overlay network

Inventors: Ananda Kumar M R (Bangalore, IN); Sameer Seth (Bangalore, IN)
Assignee: Juniper Networks, Inc.
H04L12/185H04L5/0055H04L45/64H04L45/72H04L67/143H04L67/146H04L67/60H04L69/22
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 11,601,295
App. No.
16/579,234
Granted
Mar 7, 2023
Kind
B2
Abstract

In one example, a system comprises a plurality of non-last-hop routers (non-LHRs) of a network, the non-LHRs configured with a multicast distribution tree for a multicast group to transport first multicast packets of a multicast flow toward one or more LHRs, wherein a router of the non-LHR routers is configured to receive unicast packets for an application session associated with the multicast group, encapsulate the unicast packets in a multicast header to generate the first multicast packets for distribution using the multicast distribution tree, and output the first multicast packets; and the one or more LHRs, wherein the one or more LHRs are interested receivers of the multicast group, and wherein the one or more LHRs are configured to receive the first multicast packets of the multicast flow, extract the unicast packets for the application session, and send the unicast packets to one or more clients of the application session.

Claims (64)

1. A system comprising:

a plurality of non-last-hop routers (non-LHRs) of a network, the non-LHRs configured with a multicast distribution tree for a multicast group to transport first multicast packets of a multicast flow toward one or more last-hop routers (LHRs),

wherein a router of the non-LHRs is configured to send, to each of the one or more LHRs, a multicast group notification message including an association of the multicast group and a session identifier for an application session,

wherein each of the one or more LHRs is configured to store the association of the multicast group and the session identifier for the application session, and

wherein the router of the non-LHRs is configured to receive unicast packets for the application session associated with the multicast group, encapsulate the unicast packets in a multicast header to generate the first multicast packets for distribution using the multicast distribution tree, and output the first multicast packets; and

the one or more LHRs, wherein the one or more LHRs are interested receivers of the multicast group,

wherein an LHR of the one or more LHRs is configured to receive a content request from a client of one or more clients of the application session, and

wherein the LHR is configured to, in response to determining a session identifier for the content request matches the session identifier for the application session, based on the association of the multicast group and the session identifier for the application session, request to join the multicast group, and

wherein the one or more LHRs are configured to receive the first multicast packets of the multicast flow, extract the unicast packets for the application session, and send the unicast packets to the one or more clients of the application session.

2. The system of claim 1 ,

wherein a first LHR of the one or more LHRs is configured to, in response to receiving a different content request from a requester client of the one or more clients of the application session, send a multicast group request to the router of the non-LHRs, and

wherein the router of the non-LHRs is configured to, in response to receiving the multicast group request, create the multicast group.

3. The system of claim 2 ,

wherein the multicast group request includes the session identifier for the application session, and

wherein the router of the non-LHRs is configured to store the association of the session identifier and the multicast group.

4. The system of claim 3 , wherein the session identifier is based at least on a content identifier and a server identifier for a server that serves, by outputting the unicast packets, content associated with the content identifier.

5. The system of claim 2 ,

wherein to send the unicast packets to the requester client, the first LHR is configured to map, based at least on the association of the multicast group and the requester client, a destination group address of the first multicast packets to the requester client.

6. The system of claim 1 ,

wherein the router of the non-LHRs is configured to execute a multicast server to source the first multicast packets, and

wherein the multicast distribution tree is identified by a source address for the multicast server and a group address for the multicast group.

7. The system of claim 1 ,

where a first LHR of the LHRs is configured to terminate a transmission control protocol (TCP) session with a client of the one or more clients of the application session and send the unicast packets to the client using the TCP session.

8. The system of claim 1 ,

wherein the non-LHRs and the LHRs are configured with a parallel, connection-oriented distribution tree for the multicast distribution tree, the connection-oriented distribution tree for replicating second multicast packets of the multicast flow reliably and in order to the LHRs, wherein the connection-oriented distribution tree comprises one or more transmission control protocol (TCP) connections, and wherein each packet of the second multicast packets is a copy of a corresponding packet of the first multicast packets, and

wherein the LHR of the LHRs, in response to determining that the LHR has received a multicast packet of the first multicast packets via the multicast distribution tree out of order to create a gap of one or more packets of the first multicast packets for the multicast flow, forwards, to at least one of the interested receivers, the packets of the second multicast packets that are copies of the gap of one of more packets of the first multicast packets and that are received by the LHR via the connection-oriented distribution tree.

9. The system of claim 8 , wherein the router of the non-LHRs is configured to add a respective sequence number to each packet of the first and second multicast packets.

10. The system of claim 9 , wherein to add the respective sequence number to each packet of the first and second multicast packets, the router of the non-LHRs is configured to insert the respective sequence number between a respective header and a respective payload of each packet of the first and second multicast packets.

11. The system of claim 9 , wherein to determine that the LHR has received the multicast packet of the first multicast packets out of order to create the gap, the LHR is configured to determine that the respective sequence number of a last-received packet of the first multicast packets is greater than the respective sequence number of one or more unreceived packets of the first multicast packets.

12. The system of claim 8 ,

wherein a non-LHR of the non-LHRs is configured to buffer the second multicast packets in one or more local buffers,

wherein the LHR is configured to transmit, in response to determining that the LHR has received the multicast packet of the first multicast packets out of order to create the gap, a selective acknowledgement (SACK) message to the non-LHR, and

wherein the non-LHR is configured to retransmit packets of the second multicast packets that are copies of the gap to the LHR over a TCP connection of the connection-oriented distribution tree.

13. The system of claim 12 ,

wherein the LHR is configured to transmit, in response to determining that the LHR has received the retransmitted packets close the gap, an acknowledgment (ACK) message to the non-LHR, and

wherein the non-LHR is configured to purge the one or more local buffers of the second multicast packets in response to receiving the ACK message from the LHR.

14. The system of claim 1 , wherein each of the first multicast packets includes an Internet protocol (IP) header of the corresponding encapsulated unicast packet.

15. A system comprising:

a plurality of non-last-hop routers (non-LHRs) of a network, the non-LHRs configured with a multicast distribution tree for a multicast group to transport first multicast packets of a multicast flow toward one or more last-hop routers (LHRs),

wherein a router of the non-LHRs is configured to receive unicast packets for an application session associated with the multicast group, encapsulate the unicast packets in a multicast header to generate the first multicast packets for distribution using the multicast distribution tree, and output the first multicast packets; and

the one or more LHRs, wherein the one or more LHRs are interested receivers of the multicast group,

wherein the router of the non-LHRs is configured to store an association of the multicast group with a source address and a destination address for the application session,

wherein, to receive the unicast packets, the router of the non-LHRs is configured to intercept the unicast packets and identify, based at least on matching a source address and destination address of the unicast packets to the source address and the destination address for the application session, the multicast group,

wherein the router of the non-LHRs is configured to encapsulate the unicast packets in the multicast header based on the multicast group, and

wherein the one or more LHRs are configured to receive the first multicast packets of the multicast flow, extract the unicast packets for the application session, and send the unicast packets to one or more clients of the application session.

16. The system of claim 15 , wherein the destination address of the unicast packets is an address of one of the clients of the application session.

17. (Proposed - Amended): A router comprising: processing circuitry in communication with a memory, the processing circuitry being configured to:

implement a multicast distribution tree for a multicast group to transport first multicast packets of a multicast flow toward one or more last-hop routers (LHRs) of a network that includes the router operating as a non-LHR;

receive a multicast group request including a session identifier for an application session;

create, in response to receiving the multicast group request, a multicast group for the application session;

send, to each of the one or more LHRs, a multicast group notification message including an association of the multicast group and the session identifier for the application session;

receive a request to join the multicast group sent by an LHR of the one or more LHRs:

receive unicast packets for the application session associated with the multicast group;

encapsulate the unicast packets in a multicast header to generate first multicast packets for distribution using a multicast distribution tree; and

output the first multicast packets.

18. A router comprising:

processing circuitry in communication with a memory, the processing circuitry being configured to:

receive, from a non-last-hop router of a network that includes the router, a multicast group notification message that includes an association of a multicast group and a session identifier for an application session;

store, in response to receiving the multicast group notification message, the association of the multicast group and the session identifier for the application session;

receive a content request from a client of one or more clients of the application session;

in response to determining a session identifier for the content request matches the session identifier for the application session, based on the association of the multicast group and the session identifier for the application session, request to join the multicast group;

receive first multicast traffic for the multicast group;

extract unicast packets for the application session from the first multicast traffic; and

send the unicast packets to the client.

Assignments (2)
CONFIRMATORY ASSIGNMENT Recorded May 18, 2023
From: KUMAR M R, ANANDA; SETH, SAMEER
To: JUNIPER NETWORKS, INC.
Reel/Frame 063697/0186 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2019
From: M R, ANANDA KUMAR; SETH, SAMEER
To: JUNIPER NETWORKS, INC.
Reel/Frame 050463/0817 →
Continuity (1)
Related Publication 20210091968A1 · Mar 25, 2021
Cited By (3)
US 12,244,652 US 12,395,438 US 12,603,838