IP Library › Granted Patent US 12,627,520
Granted Patent B2
US 12,627,520 · App. 18/656,305 · Granted May 12, 2026

Multicast data stream with improved user experience

Inventors: Tathagata Nandy (Bangalore, IN); Chethan Chavadibagilu Radhakrishnabhat (Bangalore, IN); Subramanian Muthukumar (Bangalore, IN); Mark A Pearson (Roseville, CA)
Assignee: Hewlett Packard Enterprise Development LP
H04L12/185H04L12/1822H04L47/15
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 12,627,520
App. No.
18/656,305
Granted
May 12, 2026
Kind
B2
Abstract

A network device receives multicast data originating from a source device, wherein the network device is in communication with at least one client device. The system identifies traffic patterns associated with the multicast data and classifies the multicast data into categories based on the traffic patterns. The network device stores an ordered list of multicast groups previously joined by the client device. Responsive to determining that the client device requests to join a first multicast group, the network device sends a first join request for the client device to join a highest-ranking multicast group in the ordered list. Responsive to determining that the client device requests to leave a current multicast group and to join a new multicast group, the network device selects a second multicast group from the ordered list and sends a second join request for the client device to join the second multicast group.

Claims (122)

1 . A method, comprising:

receiving, by a network device, multicast data originating from a source device, wherein the network device is in communication with at least one client device;

identifying traffic patterns associated with the multicast data;

classifying the multicast data into a number of traffic categories based on the traffic patterns by computing analytics associated with a control plane of the network device;

storing, by the network device, information associating the multicast data with a respective traffic category and a list of multicast groups previously joined by the client device, the list ordered based on the computed analytics;

prioritizing, by the network device, processing of the multicast data in a data plane based on the respective traffic category;

responsive to determining that the client device requests to join or leave a multicast group:

predicting, based on the computed analytics and the classified and processed multicast data, a next multicast group likely to be joined, the next multicast group comprising a highest ranking multicast group from the ordered list; and

preprogramming a join request for the predicted next multicast group;

storing the ordered list based on an identifier of the client device;

responsive to determining that the client device requests to join the highest-ranking multicast group, sending, based on the ordered list, the preprogrammed join request for the predicted next multicast group;

responsive to determining that the client device requests to leave the highest-ranking multicast group, sending, based on the ordered list, the preprogrammed join request for the predicted next multicast group, which comprises a second highest-ranking multicast group from the ordered list;

determining that the client device requests to join the multicast group by sending a first join request to join a new multicast group different from the highest ranking multicast group from the ordered list; and

sending a new join request for the client device to join the new multicast group, wherein the first join request times out or is replaced by the new join request.

2 . The method of claim 1 ,

wherein the multicast data is transmitted to the network device from the source device via a querier device operating based on Internet Group Management Protocol (IGMP), and

wherein the querier device receives and processes requests to join or leave a multicast group.

3 . The method of claim 1 , further comprising:

determining or reordering the ordered list of multicast groups based on at least one of:

a frequency or duration of joining a respective multicast group;

a frequency of leaving the respective multicast group;

a category determined by previously classified multicast data;

a hierarchy or combination of one or more multicast groups;

a weight, priority, or other score calculated for or assigned to the respective multicast group;

a predetermined time interval;

an addition of a new multicast group to the ordered list; or

a deletion of an existing multicast group from the ordered list.

4 . The method of claim 1 , wherein a respective category is associated with one or more of:

Internet Protocol television (IPTV);

closed-circuit television (CCTV);

Simple Service Discovery Protocol (SSDP)/Precision Time Protocol (PTP); and

reserved multicast data or multicast Domain Name System (mDNS).

5 . The method of claim 1 ,

wherein the ordered list corresponds to a first category associated with IPTV,

wherein a respective multicast group corresponds to an IPTV channel.

6 . The method of claim 1 , wherein classifying the multicast data is further based on at least one of:

a direction of a flow of the multicast data;

a volume of the flow of the multicast data; or

an amount of resources or bandwidth consumed by the flow of the multicast data.

7 . The method of claim 1 , wherein determining that the client device requests to join or leave the multicast group comprises:

receiving a gratuitous Address Resolution Protocol (ARP) packet or a standard ARP packet from the client device;

searching a data structure based on a client media access control (MAC) address learned from the gratuitous or standard ARP packet; and

returning the ordered list of multicast groups, wherein the ordered list is mapped to the learned client MAC address.

8 . The method of claim 1 , further comprising:

determining a first load of a processor associated with the network device;

determining a second load of one or more multicast traffic-processing modules associated with the network device; and

spawning one or more multicast worker threads in response to determining that a ratio of the first load to the second load exceeds a predetermined threshold.

9 . The method of claim 1 , further comprising:

identifying, based on Link Layer Discovery Protocol (LLDP) packets, a type and a capacity associated with one or more peer devices of the network device; and

adjusting traffic transmitted by the network device based on the type and capacity associated with the peer devices.

10 . The method of claim 9 , wherein adjusting the traffic comprises aggregating multiple join or leave requests into a single join or leave request based on at least one of:

a processing power associated with a respective peer device;

a capacity of a link connected to the respective peer device; or

whether the link connected to the respective peer device is based on a physical link or a link aggregation group.

11 . A non-transitory computer-readable storage medium associated with a network device and storing instructions to:

receive multicast data originating from a source device, wherein the network device is in communication with at least one client device;

classify and prioritize processing of the multicast data into a number of traffic categories based on identified traffic patterns by computing analytics associated with a control plane of the network device;

store information associating the multicast data with a respective traffic category and a list of multicast groups previously joined by the client device, the list ordered based on the computed analytics;

responsive to determining that the client device requests to join or leave a multicast group:

predict, based on the computed analytics and the classified and processed multicast data, a next multicast group likely to be joined, the next multicast group comprising a highest ranking multicast group from the ordered list; and

preprogram a join request for the predicted next multicast group store the ordered list based on an identifier of the client device;

responsive to determining that the client device requests to join the highest-ranking multicast group, send, based on the ordered list, the preprogrammed join request for the predicted next multicast group;

responsive to determining that the client device requests to leave the highest-ranking multicast group, send, based on the ordered list, the preprogrammed join request for the predicted next multicast group, which comprises a second highest-ranking multicast group from the ordered list;

determine that the client device requests to join the multicast group by sending a first join request to join a new multicast group different from the highest ranking multicast group from the ordered list; and

send a new join request for the client device to join the new multicast group, wherein the first join request times out or is replaced by the new join request.

12 . The non-transitory computer-readable storage medium of claim 11 , the instructions further to:

determine the ordered list of multicast groups based on one or more factors which include at least one of:

a frequency or duration of joining a respective multicast group;

a frequency of leaving the respective multicast group;

a category determined by previously classified multicast data;

a hierarchy or combination of one or more multicast groups; or

a weight, priority, or other score calculated for or assigned to the respective multicast group; and

reorder the ordered list of multicast groups based on at least one of:

the one or more factors;

a predetermined time interval;

an addition of a new multicast group to the ordered list; or

a deletion of an existing multicast group from the ordered list.

13 . The non-transitory computer-readable storage medium of claim 11 , the instructions further to:

identify, based on Link Layer Discovery Protocol (LLDP) packets, a type and a capacity associated with one or more peer devices of the network device; and

adjust traffic transmitted by the network device based on the type and capacity associated with the peer devices.

14 . A network device, comprising:

a plurality of ports;

a packet processor to receive multicast data originating from a source device, wherein the network device is in communication with at least one client device;

forwarding hardware;

categorization instructions to:

identify traffic patterns associated with the multicast data; and

classify the multicast data into a number of traffic categories based on the traffic patterns by computing analytics associated with a control plane of the network device; and

prioritization instructions to prioritize processing of the multicast data in a data plane based on the respective traffic category;

telemetry-tracking instructions to store information associating the multicast data with a respective traffic category and a list of multicast groups previously joined by the client device, the list ordered based on the computed analytics; and

predictive programming instructions to:

responsive to determining that the client device requests to join or leave a multicast group:

predict, based on the computed analytics and the classified and processed multicast data, a next multicast group likely to be joined, the next multicast group comprising a highest ranking multicast group from the ordered list; and

preprogram a join request for the predicted next multicast group store the ordered list based on an identifier of the client device;

responsive to determining that the client device requests to join the highest-ranking multicast group, send, based on the ordered list, the preprogrammed join request for the predicted next multicast group;

responsive to determining that the client device requests to leave the highest-ranking multicast group, send, based on the ordered list, the preprogrammed join request for the predicted next multicast group, which comprises a second highest-ranking multicast group from the ordered list;

determine that the client device requests to join the multicast group by sending a first join request to join a new multicast group different from the highest ranking multicast group from the ordered list; and

send a new join request for the client device to join the new multicast group, wherein the first join request times out or is replaced by the new join request.

15 . The network device of claim 14 ,

the categorization instructions further to classify the multicast data based on at least one of:

a direction of a flow of the multicast data;

a volume of the flow of the multicast data; or

an amount of resources or bandwidth consumed by the flow of the multicast data; and

the predictive programming instructions further to determine and reorder the ordered list of multicast groups based on at least one of:

a frequency or duration of joining a respective multicast group;

a frequency of leaving the respective multicast group;

a category determined by previously classified multicast data;

a hierarchy or combination of one or more multicast groups;

a weight, priority, or other score calculated for or assigned to the respective multicast group;

a predetermined time interval;

an addition of a new multicast group to the ordered list; or

a deletion of an existing multicast group from the ordered list.

16 . The network device of claim 14 , further comprising load management instructions to:

determine a first load of a processor associated with the network device;

determine a second load of one or more multicast traffic-processing modules associated with the network device; and

spawn one or more multicast worker threads in response to a comparison of the first load and the second load to a predetermined threshold.

17 . The network device of claim 14 , further comprising traffic-adjusting instructions to:

identify, based on Link Layer Discovery Protocol (LLDP) packets, a type and a capacity associated with one or more peer devices of the network device; and

adjust traffic transmitted by the network device based on the type and capacity associated with the peer devices,

wherein adjusting the traffic comprises aggregating multiple join or leave requests into a single join or leave request based on at least one of:

a processing power associated with a respective peer device;

a capacity of a link connected to the respective peer device; or

whether the link connected to the respective peer device is based on a physical link or a link aggregation group.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2024
From: NANDY, TATHAGATA; RADHAKRISHNABHAT, CHETHAN CHAVADIBAGILU; MUTHUKUMAR, SUBRAMANIAN; PEARSON, MARK A.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 067350/0838 →
Priority Claims (1)
IN 202441015434 · Mar 1, 2024 · national
Continuity (1)
Related Publication 20250279907A1 · Sep 4, 2025
References Cited (9)
US 20060143669A1 · Cohen · 2006 [cited by applicant]
US 20080205394A1 · Deshpande · 2008 [cited by examiner]
US 20100309814A1 · Wang · 2010 [cited by examiner]
US 20140237576A1 · Zhang · 2014 [cited by examiner]
US 20160087808A1 · Schmidt · 2016 [cited by examiner]
Cheshire et al. “Multicast DNS”, Request for Comments: 6762, Feb. 2013, 70 pages. [cited by applicant]
Christensen et al., “Considerations for Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) Snooping Switches”, Request for Comments: 4541, May 2006, 16 pages. [cited by applicant]
Sarni et al., “A Novel Channel Switching Scenario in Multicast IPTV Networks”, 2009, 6 pages. [cited by applicant]
Sasaki et al., “Rapid Channel Zapping for IPTV Broadcasting with Additional Multicast Stream”, Jun. 2008, 7 pages. [cited by applicant]