US-12627520-B2 - Multicast data stream with improved user experience
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.
Inventors
- TATHAGATA NANDY
- Chethan Chavadibagilu Radhakrishnabhat
- Subramanian Muthukumar
- Mark A Pearson
Assignees
- HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Dates
- Publication Date
- 20260512
- Application Date
- 20240506
- Priority Date
- 20240301
Claims (17)
- 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.
Description
BACKGROUND Field Multicast streams may be used to distribute data to multiple users/receivers or client devices. Each client device sends a “join” or a “leave” request for a particular multicast group in order to start or stop receiving data from the particular multicast group. The “join latency” is the amount of time between a user sending the join request and the user receiving the data. Similarly, the “leave latency” is the amount of time between the user sending the leave request and the user no longer receiving data. A high join or leave latency can affect the user experience and result in undesired outages. BRIEF DESCRIPTION OF THE FIGURES FIG. 1 illustrates a network environment for a multicast data stream with improved user experience, in accordance with an aspect of the present application. FIG. 2 illustrates a diagram of analysis-action pairs which facilitate a multicast data stream with improved user experience, in accordance with an aspect of the present application. FIG. 3 presents a table depicting possible values for the analysis-action pairs of FIG. 2, in accordance with an aspect of the present application. FIG. 4A presents a flowchart illustrating a method which facilitates a multicast data stream with improved user experience, in accordance with an aspect of the present application. FIG. 4B presents a flowchart illustrating a method which facilitates a multicast data stream with improved user experience, in accordance with an aspect of the present application. FIG. 5 illustrates a computer-readable medium which facilitates a multicast data stream with improved user experience, in accordance with an aspect of the present application. FIG. 6 illustrates a network device which facilitates a multicast data stream with improved user experience, in accordance with an aspect of the present application. In the figures, like reference numerals refer to the same figure elements. DETAILED DESCRIPTION Aspects of the instant application can reduce potential outages in receiving multicast data by computing analytics in the control plane to enhance the performance of the data plane, which can result in providing multicast data with an improved user experience. Network devices can take corresponding preventive actions to improve the user experience. For example, Internet Protocol (IP) televisions (TVs) typically use multicast streams to distribute content to multiple users/receivers. A source may stream data to end users or client devices via a cascading hierarchy of network devices. Each client device can send a “join” or a “leave” request for a particular multicast group (e.g., to start or stop watching a particular IPTV channel). A high join or leave latency can affect the user experience and result in undesired outages. For example, a high join latency may occur when a user initially logs in to an IPTV and selects a channel. In another example, the user may switch between IPTV channels, which results in a leave request followed by a join request. A high latency in performing either operation may result in an undesirable viewing experience for the user, resulting in, e.g., delay, jitter, or outage. A negative user experience may result in customer dissatisfaction and potential loss of revenue. Aspects of the instant application provide a system which can reduce potential multicast data outages by computing analytics in the control plane (e.g., handling join/leave requests) to enhance the performance of the data plane (e.g., sending multicast data to the end user). The described system can use the analytics to take preventive actions in the network devices, which can result in an improved user experience, both upon joining and leaving a multicast group (e.g., upon initial login and during channel-switching in IPTV). During operation, the system can analyze and categorize a pattern of multicast traffic, and prioritize the multicast traffic accordingly based on the category or pattern. In this disclosure, IPTV is provided as a non-limiting example of one type of multicast data, and “IPTV channels” are provided as non-limiting examples of multicast groups. The system can further identify the load of a central processing unit (CPU) of a network device as well as the load associated with multicast traffic in the network device, and spawn additional threads if the multicast traffic load is high. The system can also predict and pre-program join requests by tracking and storing user activity and by ranking a certain number of channels, predicting a first or next channel, and automatically sending a “pre-programmed” join request for the predicted first or next channel. In addition, the system can identify the type and capacity of peer devices via Link Layer Discovery Protocol (LLDP) packets and adjust control and data plane traffic based on the type and capacity. Details of these methods are described below in conjunction with FIGS. 1 and 2. The term “Internet Group Management Protocol” or “IGMP” refers to a co