# Patent

## Title
Smart immediate leave for internet group management protocol (IGMP) system

## Abstract

Multicast delivery of channels of information using an Internet Group Management Protocol (IGMP) is improved by implementing a smart immediate leave to avoid either excessive bandwidth utilization or undesired gaps in deliver of an IGMP channel to a host, such as a set top box. The smart immediate leave technique checks a channel-host list associated with a network interface of a proxy or a Digital Subscriber Line Access Multiplexer (DSLAM) to ensure continued delivery of IGMP channel information to remaining hosts connected to the IGMP channel on the network serviced by the network interface.

## Background
CROSS REFERENCE TO RELATED APPLICATIONS
This application claims priority from provisional application No. 60/867,635 filed Nov. 29, 2006, entitled Start Immediate Leave For IGMP System of which is hereby incorporated herein in its entirety for all purposes.


BACKGROUND OF THE INVENTION
1. Field of the Invention
The invention relates to digital communication networks and systems and, more particularly to techniques for controlling the operation of an upstream Internet Group Management Protocol (IGMP) router or proxy, such as a digital subscriber line access multiplexer (DSLAM) that delivers multicast traffic to a network port or interface serving a plurality of IGMP hosts such as set top boxes.
2. Description of the Prior Art
Streaming real-time multimedia content can now be provided over the Internet. Streaming applications may include IP telephony, broadcasting multimedia content and multi-party conferences, collaborations and multi-player games. Many of the existing streaming systems do not scale to large audiences, particularly for a transmission at high bit rates. They also do not provide user flexibility, and are restricted to a utilization of either conferencing or broadcast modes.
Early attempts to provide streaming applications to clients over the Internet have been implement using a unicast scheme. An exemplary system illustrating the system which utilizes the conventional unicast architecture is shown in FIG. 1. Referring to FIG. 1, a source (e.g., the audio and/or video content provider) is connected to a first router R1, which in turn is connected to second and third routers R2, R3. The second router R2 is connected to fourth and fifth routers R4, R5, while the third router R3 is connected to sixth and seventh routers R6, R7. The fourth router R4 is connected to two clients C0, C1; the fifth router R5 is connected to three clients C2, C3, C4; the sixth client R6 is connected to two clients C5, C6; and the seventh client R7 is connected to another three clients C7, C8, C9. The clients C0-C9 may be computers requesting the particular multimedia content (e.g., an audio and/or video program).
In operation, if each of the clients C0-C9 requests the same multimedia content, each of those requests is routed via their respective routers to the source. For example, the clients C0, C1 each send a request to the fourth router R4 which routes a request for two streams for the particular multimedia content, i.e., one stream for each of its requesting clients C0, C1 to router R2. At the same time, the fifth, sixth and seventh routers R5, R6, R7 may receive the requests for the same multimedia content from its respective clients C2-C9, and these routers R5, R6, R7 route their streams, respectively, for such multimedia content upstream. The requests for two and three identical multimedia streams (i.e., a total of five streams) are sent to the second router R2 from the fourth and fifth routers R4, R5, respectively. The requests for the same three and two multimedia streams (i.e., also a total of five streams) are sent to the third router R3 from the sixth and seventh routers R6, R7, respectively. The second and third routers R2, R3 each route the request for five multimedia streams to the first router R1, which routes a request for 10 multimedia streams (i.e., 5 for the second router R2 and 5 for the third router R3) to the source.
Thus, the source receives a request for 10 multimedia streams, and then transmits 10 multimedia streams to the first router R1, which then routes the requested 5 identical multimedia streams to the second router R2, and the same 5 multimedia streams to the third router R3. The second router R2 then routes two of these multimedia streams to the fourth router R4, and three to the fifth router R5. The fourth router R4 routes 1 stream to the client C0 and the other stream to the client C1. The fifth router R5 routes one of its received streams to the respective client, C2, C3, C4. Similar routing of the multimedia streams occurs for the third router R3 (and thus for the sixth and seventh routers, (R6, R7).
By utilizing the unicast scheme described above and shown in FIG. 1, there may be multiple copies of the same multimedia content being transmitted from the source down to the clients. Such transmission of multiple streams may cause a bottleneck in the network, waste network bandwidth, and could prevent the clients from receiving the multimedia content in an expeditious manner.
FIG. 2 shows an arrangement utilizing a conventional multicast communications scheme which addresses at least some of the above-mentioned drawbacks. For the sake of simplicity, the multicast arrangement in FIG. 2 is substantially similar to that shown in FIG. 1. Using the multicasting communications scheme illustrated in FIG. 2, if each of the clients C0-C9 requests the same multimedia content, the routers keep track of the particular client which made the request, and only sends one request for the multimedia stream upstream to the next router in the chain (or to the source 100). For example, the clients C0, C1 may send such request (e.g., a join request) to the fourth router R4, which stores an indication (e.g., a state) therein that at least one of clients C0, C1 sent the particular request. At the same time, the fifth, sixth and seventh routers R5, R6, R7 may receive the requests for the same multimedia content from its respective clients C2-C9, and each these routers R5, R6, R7 stores an indication therein regarding that at least one of their respective clients sent the request for multimedia stream. If the fourth router R4 (or the fifth router R5) already routed the multimedia streams to one of its clients (on the same subnet as the requesting client), it routes the multimedia streams to such requesting client. Otherwise each of the fourth and fifth routers R4, R5 sends a request to receive the multimedia stream that was requested by their respective clients C0-C4 to the second router R2. The second router R2 stores an indication that at least one of the fourth and fifth routers R4, R5 made the request. Each of the sixth and seventh routers R6, R7 also may send a request for the multimedia stream (i.e., that was requested by their respective clients C5-C9) to the third router R3. The third router R3 stores an indication which is similar to the one stored in the second router R2. Then, the second and third routers R2, R3 each send the request for the same multimedia stream to the first router R1, which stores an indication regarding which of the routers R2, R3 made the request. Since the first router R1 is directly connected (or connected in the same subnet) to the source, the first router R1 always receives the multimedia stream from the source.
In this manner, the first router R1 receives the request, duplicates the received multimedia stream and transmits 1 copy thereof to each of the second and third routers R2, R3 (if both made the request). The second router R2 then duplicates the received multimedia stream provided in the multicast channels 500, and sends one copy of the stream to each of the fourth and fifth router R4, R5. The fourth router R4, in turn, provides one copy of the received multimedia stream provided in the multicast channels 500 to the client C0 and the other copy to the client C1 (if both made the request).
If two requesting clients are on the same subnet, it is possible for only 1 copy to be broadcast on the subnet for reception by any requesting client. The fifth router R5 duplicates the received multimedia stream, and sends one copy of the received multimedia stream provided by the multicast channels 500 to each of the respective client C2, C3, C4 (if each of theses clients made the request). A similar transmission of the multimedia streams occurs for the third router R3 (and thus for the sixth and seventh routers R6, R7).
With this multicast scheme, the source needs to only transmit one multimedia stream to the requesting router, which in turn duplicates the multimedia stream (if necessary) and transmits a single stream downstream to the routers and/or the clients requesting such stream. Indeed, each router (as well as the source 100) does not need to transmit more than one multimedia stream to the downstream routers. As such, the bandwidth of the system is utilized more efficiently.
In addition, by using the multicast scheme described above, it is also possible to avoid a transmission of a request for the multimedia stream (that has already been provided to other clients by a particular router) all the way up to the source. For example, another client C10 maybe connected to the fourth router R5, and this new client C10 may request the multimedia stream from the fourth router R4 that has already been requested (and is provided to) the client C1. When the fourth router R4 receives this request from the new client C10, it checks whether the requested multimedia stream has already been provided to it. If not, this request is then passed to the second router R2. If the fourth router R4 determines that the requested multimedia stream is already provided by it to at least one of its clients (is in the present exemplary case to the client C1), the fourth router sends a copy of the requested multimedia stream to the new client C10 without sending additional requests for this multimedia stream to the second router R2, and ultimately to the server.
There are three versions of the Internet Group Management Protocol. The first is found in Appendix 1 of RFC 1112. Version two is found in RFC 2236. Version 3 of the IGMP protocol is found in RFC 3376. Copies of version 1, version 2 and version 3 of the IGMP protocol are found attached hereto as Appendices A, B and C respectively.
A digital subscriber line access multiplexer (DSLAM) allows telephone lines to make faster connections to the Internet. It is a network device, located near the customer's location, that connects multiple customer digital subscriber lines (DSL's) to a high-speed Internet backbone using multiplexing techniques. By locating DSLAM's at locations remote to the telephone company central office, telephone companies are now providing DSL service to consumers who previously did not live close enough for the technology to work. Balanced pair cable has higher attenuation at higher frequencies, hence the longer the wire between the DSLAM and the subscriber, the slower the maximum possible data rate.
3. Problems of the Prior Art
A digital communications network may deliver a digitized video channels from an IGMP router or proxy (DSLAM) via a network port/interface serving a plurality of IGMP host Internet protocol addresses associated with set top boxes, for example, coupled to associated subscriber terminal devices such as television sets. Whenever a channel change is initiated at one of the set top boxes, there is typically a lag (e.g., up to two seconds) between the time the request is made and the time that the host drops a previous channel This delay can cause temporary bandwidth demand in excess of the allocated subscription bandwidth which can result in pixelized video being delivered to the user. This, of course, is undesirable.
The conventional approach to address this pixelized video short coming is to employ a communication control mechanism typically referred to as “immediate leave.” In accordance with this immediate leave technique, whenever a channel change (from the current channel to a new channel) is requested, the IGMP router or proxy will immediately terminate sending the current channel to the network port at the same time that it starts transmitting the new channel. This will effectively insure that bandwidth subscription limits are not exceeded so that pixelized video will not be delivered to the user. Unfortunately, if one or more other set top boxes connected to the network port are still tuned to the dropped channel they loose programming until the connection can be reestablished.
BRIEF SUMMARY OF THE INVENTION
The present invention overcomes the problems of the prior art. The loss of programming problem is successfully remedied by a channel change control mechanism hereinafter referred to as a “smart immediate leave.” In accordance with this methodology, the IGMP router or proxy has a continuously maintained or updated IGMP host IP address list which indicates for a particular network port, which IGMP host IP addresses (set top boxes) are currently joined to which multicast groups (e.g., channels).
Whenever an IGMP host IP address (set top box) request a channel change, the IGMP router or proxy examines the IGMP host IP address list to determine if any other IGMP host is still joined with the to-be-dropped multicast group. If no other IGMP host IP address is joined to the multicast group, the IGMP router or proxy knows it can immediately drop the multicast group safely (without causing a loss in programming to another IP address) and thus effect an “immediate leave” operation to drop the multicast group. However, if the contents of the list indicate that another IGMP host IP address is still joined to the to-be-dropped multicast group, IGMP proxy or router will not drop the multicast group from the network port, but rather continue feeding the program material to the network for the multicast group.
Thus, the invention is directed to a processing device configured to support an Internet Group Management Protocol (IGMP) for communicating with host devices over a network interface, comprising:
a. a source of information to be provided to at least one host device over the network interface,
b. a network interface list, comprising at least one channel-host list for associating at least one IGMP channel provided by said source of information with hosts connected via said network interface to said IGMP channel;
c. in which the processing device is configured to continue providing an IGMP channel to the network interface when a channel-host list associated with the network interface determines that at least one host remains connected to said IGMP channel when another host leaves a connection to said IGMP channel.
The invention is also directed to a system for distributing information from a source of information to be provided to at least one host device, comprising:
a. a network connecting said source of information to at least one network device providing Internet Group Management Protocol (IGMP) services;
b. the at least one network device having a network interface list and being connected to at least one host device over at least one network interface;
c. in which the network interface list comprises at least one channel-host list for associating at least one IGMP channel provided by said source of information with hosts connected via said at least one of said network interfaces to said IGMP channel; and
d. in which the network device is configured to continue providing an IGMP channel to said one of said network interfaces when a channel-host list associated with the network interface determines that at least one host remains connected to said IGMP channel when another host leaves a connection to said IGMP channel.
The invention is also directed to a method for providing Internet Group Management Protocol (IGMP) services, comprising the steps of:
a. maintaining a network interface list having a channel-host list for each of at least one network interface list serviced by a network device;
b. in which the network device is configured to continue providing an IGMP channel to said one of said network interfaces when a channel-host list associated with the network interface determines that at least one host remains connected to said IGMP channel when another host leaves a connection to said IGMP channel.
The invention is also directed to a computer program product for a network device comprising:
a. a memory medium; and
b. computer controlling instructions stored on said memory medium in which said computer controlling instructions comprise instructions for maintaining a network interface list having a channel-host list for each of at least one network interface list serviced by said network device, where the instructions enable the network device to continue providing an Internet Group Management Protocol (IGMP) channel to at least one network interface when a channel-host list associated with the network interface determines that at least one host remains connected to said IGMP channel when another host leaves a connection to said IGMP channel.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates a prior art unicast technique for distributing information from an information source such as a video channel to multiple destinations.
FIG. 2 illustrates a prior art multicast (IGMP) technique for distributing an information source such as a video channel to multiple destinations.
FIG. 3 illustrates a prior art network architecture for delivering information from plural information sources over a network and through an IGMP router or proxy digital subscriber line access multiplexers to network ports servicing a plurality of hosts such as set top boxes.
FIG. 4 shows a network architecture in accordance with one aspect of the invention.
FIG. 5A shows an exemplary channel-host list in accordance with one aspect of the invention.
FIG. 5B shows the channel-host list of FIG. 5A, modified after host 24 changes from viewing channel 2 to channel 15.
FIG. 5C shows a channel-host list of FIG. 5B after host 24 changes from viewing channel 15 to channel 18.
FIG. 6 is a flow chart of a process using smart immediate leave in accordance with one aspect of the invention.



DETAILED DESCRIPTION OF THE INVENTION
As discussed above, FIG. 1 illustrates a prior art unicast technique for distributing an information source such as video channel to multiple destinations.
Also as discussed above, FIG. 2 illustrates a prior art multicast (IGMP technique for distributing an information source such as video channel to multiple destinations.
In the network architecture of FIG. 3, item 300 represents a plurality of information sources, such as a source of plural channels of video information for distribution over a network 310 to digital subscriber line access multiplexers (DSLAM's) 320. Each DSLAM services one or more network ports to which are connected networks 330. The networks include a plurality of hosts, such as set top boxes 335 for receiving selected channels of video information and providing the selected channel of information to a subscriber terminal 340 such as a television set.
FIG. 4 shows a network architecture in accordance with one aspect of the invention which constitutes a portion of the architecture illustrated in FIG. 3. The incoming streams of information from network 310 are received at DSLAM 320. DSLAM 320 then provides selected ones of the information streams from different sources to the network interfaces that it services so that the selected channels of information can be available as needed at the set top boxes. The principal difference between FIG. 4 and FIG. 3 lies in the use of the network interface list 400. The network interface list 400 contains a channel-host list for each of the network interfaces serviced by the DSLAM 320.
FIG. 5A illustrates an exemplary channel-host list in accordance with one aspect of the invention. In FIG. 5A, three hosts are shown watching channel 2, namely host 7, host 24 and host 32. One host, host number 28, is watching channel 15, no other hosts are active on that network. Although the lists as illustrated shows numeric identification for each of the hosts, it maybe preferred to utilize network addresses such as a media access control address, a URL or other identifier for the hosts, and an IGMP group address for the channel.
As set forth in IGMP version 2, when a channel desires to leave a particular channel and switches to another channel, the host will receive a command from a subscriber terminal directing the channel change. For example, if host 24, as shown in FIG. 5A, desired to change from channel 2 to channel 15, the subscriber would utilize the remote control to initiate the transfer at the host set top box 335. The host set top box would then initiate an IGMP leave command directing the DSLAM that host 24 no longer desires to be connected to channel 2. That will be followed in close order, by a join command whereby host 24 desires connection to channel 15. Alternatively, a combined leave/join message could be recognized and acted thereon.
In one form of the prior art, when the channel 2 leave command is sent by host 24, there will be a 2 second delay before the DSLAM stops providing channel 2 information to host 24. During this 2 seconds, host 24 may be already connected to channel 15 which may result in a temporary excess of bandwidth utilization resulting in undesirable pixelized video.
In a second prior art implementation, when host 24, request to switch from channel 2 to channel 15, the DSLAM will stop sending channel 2 information at the same time that it starts sending channel 15 information to host 24. In this version, the bandwidth limits are not exceeded, but there is a short-term interruption of programming to hosts 7 and 32 shown in FIGS. 5A and 5B, both of which are watching channel 2. Thus, either the prior art techniques for switching the sources to a host may result in undesirable adverse effects.
Both of these problems are solved by using the techniques of the invention, referred to as “smart immediate leave.” This technique utilizes a channel-host list appropriate for the network which is found within the network interface list 400 shown in FIG. 4. Specifically, upon receiving a leave request, the DSLAM will check the list of hosts connected to channel 2. If no other hosts are connected to the channel 2 group, then the immediate leave technique of the prior art will be executed. If there are in fact other hosts connected to the channel 2 group as reflected in the channel-host list, then the DSLAM will continue sending the channel 2 group to the network. Then, the join request for, in this example, host 24 to receive information from channel 15 will be executed. In the case when a smart immediate leave is executed because the channel-host list reflected that other hosts are connected to the channel 2 group, the DSLAM also sends an IGMP query to the network at a user configurable frequency, e.g. one query per second for two seconds, in order to determine if any hosts are indeed still connected to the channel 2 group. If no response is received from a host after the last query, then the DSLAM stops sending channel 2.
If host 24, currently viewing channel 15 as shown in FIG. 5B, were to desire to go to channel 18, which is not being viewed by any other group, using the smart immediate leave, the DSLAM would know that channel 28 was still watching channel 15 and continue to send channel 15 information to the network. Then the command from host 24 to join channel 18 could be executed.
FIG. 6 is a flow chart of a process using smart immediate leave in accordance with one aspect of the invention. When a router or an IP proxy receives an IGMP group leave message from a leaving host (600) the IGMP router or proxy will check the host-channel list to see if other hosts are connected to the group being left (610). If other hosts are connected (610-Y) then the router or proxy may send a number of IGMP queries to the network at a user configurable rate (620). If no response is received to the queries from a host after the last query has been sent (630-N), sending of the IGMP group will immediately stop (650). If a response is received (630-Y), the IGMP router or IP proxy will continue to send IGMP group signals to the network interface (620). If the host channel lists shows that there are no other host connected to the group being left (610-N) the IGMP router or IP proxy will immediately stop sending the IGMP group to the network interface (640). Paragraph 6 in the incorporated by reference provisional application Ser. No. 60/867,635 to which the instant application claims benefit discusses the additional benefit and function of bandwidth analysis with regard to dropping and not dropping the host, e.g., multicast group. Although this may temporarily produce pixelized video, bandwidth oversubscription, etc. it will avoid dropping the to-be-dropped multicast group to other IGMP Host IP addresses currently using it—hence, the phrase “smart” immediate leave. In a non-limiting implementation, bandwidth analysis may be conducted to determine how much bandwidth is available to handle the newly added multicast group alone with the still used multicast group(s).
The specific protocols for the message exchange between the host terminals and the DSLAM's are set forth in the IGMP versions attached hereto as Appendix A, Appendix B and Appendix C.
While various embodiments of the present invention have been illustrated herein in detail, it should be apparent that modifications and adaptations to those embodiments may occur to those skilled in the art without departing from the scope of the present invention as set forth in the following claims.

## Claims

1. A communications system, comprising:
a plurality of set top boxes (STBs) each having an Internet Group Management Protocol (IGMP) host IP address;
a digital subscriber line access multiplexer (DSLAM) configured to receive network data from a communications network and comprising,
a network port connected to each of the STBs and configured to provide an IGMP channel to the STBs over which the network data is delivered, and
a network interface list indicative of which STBs are joined to the IGMP channel, and wherein during a channel change request from a STB, the DSLAM is configured to drop the IGMP channel when the network interface list indicates there are no other STBs connected to the network port and IGMP channel, and if there is still at least one STB connected to the network port and IGMP channel, determine available bandwidth, and if bandwidth is available, continue providing the IGMP channel, wherein said DSLAM is configured to determine available subscription bandwidth demand of the STBs.

2. The communications system according to claim 1, wherein said network data comprises video data.

3. The communications system according to claim 1, wherein said STBs are configured together as a multicast group.

4. The communications system according to claim 3, wherein said DSLAM is configured to generate an IGMP query at a user configurable frequency to determine if any STBs are still connected as a multicast group.

5. A method for providing Internet Group Management Protocol (IGMP) services, comprising:
receiving network data within a digital subscriber line access multiplexer (DSLAM) from a communications network;
delivering the network data to a plurality of set top boxes (STBs) each having an Internet Group Management Protocol (IGMP) host IP address via an IGMP channel provided by the DSLAM to the STBs; and
during a channel change request from a STB, dropping the IGMP channel when a network interface list at the DSLAM indicates there are no other STBs connected to the network port and the IGMP channel, and if there is still at least one STB connected to the network port and IGMP channel, determining available subscription bandwidth demand for a STB, and if bandwidth is available, continuing to provide the IGMP channel.

6. The method according to claim 5, and further comprising configuring the STBs together as a multicast group.

7. The method according to claim 5, and further comprising generating an IGMP query at a user configurable frequency to determine if any STBs are still connected as a multicast group.

8. A communications device, comprising:
a communications port configured to receive network data from a communications network;
a digital subscriber line access multiplexer (DSLAM) network port configured to connect to a plurality of set to boxes (STBs) each having an Internet Group Management Protocol (IGMP) host IP address and provide an IGMP channel from the DSLAM network port to the STBs over which the network data is delivered; and
a network interface list indicative of which STBs are joined to the IGMP channel, and wherein during a channel change request from a STB, the DSLAM network port is configured to drop the IGMP channel when the network interface list indicates there are no other STBs connected to the DSLAM network port as IGMP channel, and if there is still at least one STB connected to the DSLAM network port and IGMP channel, determine available subscription bandwidth demand for a STB, and if bandwidth is available, continue providing the IGMP channel.

9. The communications device according to claim 8, wherein said network data comprises video data.

10. The communications device according to claim 9, wherein each set top box is configured to receive said video data.

11. The communications device according to claim 8, wherein any STBs are configured together as multicast group.

12. The communications system according to claim 11, wherein said DSLAM network port is configured to generate a IGMP query at a user configurable frequency to determine if any STBs are still connected as a multicast group.