The present invention relates to the field of Internet Protocol (IP). Specifically, this invention relates to assigning different parts of Internet Group Management Protocol (IGMP) to different computer devices via layer 2 ports attached to a plurality of computer devices.
IGMP is the standard for IP multicasting in the Internet. It is used to establish host memberships in particular multicast groups on a single network. The mechanisms of the protocol allow a host to inform its local router, using host membership reports, that it wants to receive messages addressed to a specific multicast group. IGMP is a protocol that supports registration between IP-based computer terminals and IP-based routers or hosts that are directly attached to the same IP subnet. Additionally, such IP-based routers or hosts support multiple IP subnets concurrently.
The prior art implements a feature commonly known as IGMP snooping, which is classically done on a single CPU device, to quietly look at packets that are flowing through the system and discretely pick up IGMP packets of interest. IGMP snooping allows layer 2 switching devices to passively capture a copy of IGMP protocol packets and to use the information provided by those packets to selectively forward multicast data streams to one or more physical ports and subsequently to computer devices. At the same time, switching devices may forward IGMP snooping packets to one or more physical ports, in order to convey its own multicast data stream forwarding requirements on to the other routers or layer 2 switching devices on other layer 2 physical segments. As such, an IGMP packet can extend beyond its original layer 2 physical segment.
Although IGMP snooping allows the system to discretely look at packets flowing through the system; IGMP protocol is limited in that the request packets are transmitted in an unreliable fashion. In other words, the packets are transmitted in such a way that the transmitter can never be sure that the intended recipients actually receive the packets. As a result, IGMP is continuously retransmitting its packets, which increases the number of packets that flow over the network, which in turn increases the processing load on the hosts and routers that support the IGMP protocol.
The prior art systems, described above with reference to
It is an object of the present invention to provide connections to layer 2 ports that originate multicast traffic flows.
It is a further object of the present invention to provide connections to layer 2 ports that transmit multicast traffic flow to consumers through multicast stream sources.
It is yet a further object of the present invention to minimize IGMP traffic by utilizing a reliable link.
It is yet a further object of the invention to assign separate roles to the designated computer devices and to the central processing module, whereby the designated computer device manages multicast streams for consumers and the central processing module manages interaction with the multicast stream source.
It is yet a further object of the invention to terminate all IGMP protocol packets received by the designated devices in order to isolate consumers into groups defined by common access to an individual designated device port.
It is yet a further object of the present invention to reduce both the overall bandwidth requirements and the load on the CPU at designated computer devices or at the central processing module.
It is yet a further object of the present invention that all CPUs run autonomously and are geographically dispersed.
In the present invention, IGMP traffic is minimized by utilizing a reliable link. A reliable link guarantees that when a distributed device sends a request for a multicast traffic stream, the distributed device gets the response from the central processor module. In other words, the central processor module has received the request and will start processing the request.
In an exemplary embodiment of the present invention, a central processing module is connected to four distributed devices and a multicast source. The distributed devices are connected to the central processor, via transmission lines, which transmit requests to the multicast source via the central processing module to receive multicast streams. To request a multicast stream, a multicast stream requester issues an IGMP membership report request through a distributed device. The distributed device sends the multicast stream update request to the central processor over a reliable link. The central processor module determines if any other distributed devices are requesting a multicast stream before sending the IGMP membership report request to the multicast source. If another distributed device has requested the multicast stream, the central processor module does not need to send the IGMP membership report request to the multicast source. Furthermore, if a distributed device detects a request from a different multicast stream requester, the distributed device does not forward the request to the central processor and instead sends the multicast stream it is already receiving for a first multicast stream requestor to the different multicast requestor. As a result of utilizing a reliable link, both the overall bandwidth and the processing load on the central processor module are reduced.
In addition to the sending and receiving requests for a multicast stream, the present invention also sends and receives requests for stopping the multicast stream. To accomplish this, a consumer, through a multicast stream requestor attached to a distributed device, sends an IGMP leave request for the multicast stream. When appropriate, a distributed device in turn sends a multicast stream update request to the central processor module. The central processor module receives the request and will discontinue to send the multicast stream if no other distributed device is requiring the central processor module to continue the multicast stream. If there is another distributed device that requires the multicast stream, the central processor module will continue to send the multicast stream. If a multicast stream update request for the multicast stream is sent by all of the distributed devices currently receiving the multicast stream, the multicast source may choose to continue sending the multicast stream or it may choose not to continue to send the multicast stream. If the multicast source continues to send the multicast stream, the central processor module will not forward the multicast stream to the distributed devices.
The foregoing, together with other features and advantages of the present invention, will become more apparent when referring to the specification, claims and accompanying drawings.
The present invention will be better understood from the following detailed description of an exemplary embodiment of the invention, taken in conjunction with the accompanying drawings in which like reference numerals refer to like parts and in which:
a illustrates a flow diagram of a first consumer, attached to a distributed device requesting a multicast stream;
b illustrates a flow diagram of a second consumer attached to a distributed device requesting a multicast stream;
c illustrates a flow diagram of the distributed device maintaining the IGMP protocol to consumers;
a illustrates a flow diagram of a first consumer, attached to a distributed device, requesting to no longer receive a multicast stream;
b illustrates a flow diagram of a second consumer, attached to a distributed device, requesting to no longer receive the multicast stream;
c illustrates a flow diagram of a second consumer, attached to the distributed device, requesting to no longer receive the multicast stream, however other distributed devices still require the central processor module to continue sending the multicast stream;
a illustrates a flow diagram of the central processor module receiving a multicast stream update request from a distributed device that requests a multicast stream;
b illustrates a flow diagram of the central processor module maintaining IGMP protocol with the multicast source; and
c illustrates a flow diagram when the distributed device indicates multicast stream is no longer needed, and no other attached distributed devices currently require a multicast stream.
As noted above,
The IGMP implementation is divided between the computing device that connects to the multicast data sources and the computing devices that connect consumers to that source. The IGMP process, in essence, is subdivided into two separate functions: the function that connects to the multicast sources, and the function that connects to the multicast consumers. These functions run on separate computing devices that are connected via a reliable link in order to coordinate multicast data stream forwarding.
Turning to
Next, as distributed device #112 requested the multicast stream, distributed device #112 receives and accepts the multicast stream completing step 3. After accepting the multicast stream, distributed device #1 forwards the multicast stream to the multicast stream requester #122 completing step 4. Finally, in step 5, since the distributed device #2 is also connected to the first transmission line 11, the distributed device #2 also receives the multicast stream. However, since the distributed device #2 does not have an attached multicast stream requestor that has requested the stream via an IGMP membership report request, the distributed device #2 discards all packets on that stream. If a multicast stream requester requests a multicast stream through distributed device #316 or distributed device #418, the request would be sent to the central processor module via transmission line 13 via a reliable link.
a-b illustrate flow diagrams of a first example of an implementation of the present invention at the ONU near an end user (consumer or multicast stream requester). As illustrated in
b illustrates a flow diagram of a second consumer attached to the distributed device requesting the multicast stream #1. Upon initiating the request, an IGMP membership report for multicast stream #1 from the second consumer is sent to the distributed device. When the distributed device receives the request, the distributed device recognizes that multicast stream #1 is currently being sent by the central processor module, so the distributed device performs only local processing and does not sent a request to the central processor module. As a result, both the overall bandwidth and the processing load on the central processor module are reduced which optimizes the system that is being shared by a large number of users.
c illustrates a flow diagram of the distributed device maintaining the IGMP protocol to consumers. In maintaining the IGMP protocol, IGMP membership report requests multicast stream #1 from both the first and second consumers is sent to the distributed device. The distributed device also periodically issues an IGMP general query or an IGMP specific query for the multicast stream #1 to ensure that both consumers are still receiving the multicast stream #1. By processing the IGMP membership report requests and IGMP queries locally at the distributed device, all periodic IGMP requests that simply confirm existing multicast stream requestor requirements do not have to be sent to and from the central processor module for each consumer and as a result, both the overall bandwidth and the processing load on the central processor module are reduced which optimizes the system that is being shared by a large number of users.
a-c illustrate flow diagrams of a second example of an implementation of the present invention at the distributed device near an end user (consumer or multicast stream requester). As illustrated in
b illustrates a flow diagram of a second consumer, attached to the distributed device, requesting to no longer receive the multicast stream #1. Upon initiating the request, an IGMP leave request for multicast stream #1 from the second consumer is sent to the distributed device. When the distributed device receives the request, a multicast stream update request is sent to the central processor module, as no other distributed devices require the central processor module to continue the multicast stream #1. The central processor module acknowledges the request by sending a positive response and the multicast stream #1 is no longer sent to the distributed device.
c illustrates a flow diagram of a second consumer, attached to the distributed device, requesting to no longer receive the multicast stream #1, however other distributed devices still require the central processor module to continue sending the multicast stream #1. Upon initiating the request, an IGMP leave request for multicast stream #1 from the second consumer is sent to the distributed device. When the distributed device receives the request, a multicast stream update request is sent to the central processor module. The central processor module acknowledges the request by sending a positive response. The multicast stream #1 continues to be received by the distributed device as other distributed devices continue to receive the multicast stream, however, the multicast stream #1 is blocked as to the second consumer so the second consumer no longer receives the multicast stream #1.
In addition to the multicast stream requesters #1 and #2, 22 and 24 respectively, the third multicast stream requester #326 issues an IGMP membership report request in order to receive the multicast stream completing step 1. The third multicast stream requester #326 is connected to the distributed device #214 which recognizes that is has no other attached multicast stream requesters for the multicast stream and thus, is not receiving the existing multicast stream. As such, the distributed device #2 sends a multicast stream update request to the central processor module 10 via a reliable link over the first transmission line 11 and receives the existing multicast stream completing step 2. Since the central processor module 10 recognizes that it is already forwarding the multicast stream onto transmission line 11, no other action is required on its part. The central processor module 10 simply notes that a second distributed device #214 concurrently requires the multicast stream. In addition, since the multicast stream is already being forwarded onto the transmission line 11 by the central processor module, the distributed device #214 ceases blocking the multicast stream and instead forwards the multicast stream to the multicast stream requestor #3.
a-b illustrate flow diagrams of the central processor module role in an exemplary embodiment of the present invention. As illustrated in
b illustrates a flow diagram of the central processor module maintaining IGMP protocol with the multicast source. To maintain the IGMP protocol, the multicast source, sends an IGMP general query or an IGMP specific query for the multicast stream #1 to the central processor module. In response to this, the central processor module sends an IGMP membership report for the multicast stream #1 to the multicast source. In addition, the central processor module may periodically send an unsolicited IGMP membership report to the multicast source to ensure that the IGMP protocol is maintained.
c illustrates a flow diagram when the distributed device indicates multicast stream #1 is no longer needed, and no other attached distributed devices currently requires multicast stream #1. The distributed device sends a multicast stream update request indicating that the multicast stream #1 is no longer needed. Upon receipt of the request, the central processor module sends an IGMP leave request for multicast stream #1 to discontinue multicast stream #1 and a positive response is sent from the central processor module to the distributed device. The multicast source may choose to continue sending the multicast stream #1 or it may choose to discontinue sending the multicast stream #1. If the multicast source continues to send the stream, the central processor module will not forward the stream to the distributed device, thus, both the overall bandwidth and the processing load on the central processor module are reduced which optimizes the system that is being shared by a large number of users.
In an alternative embodiment, the present invention could be generalized to allow one or more nodes to implement both the multicast sources support function and the multicast consumers support function. Under such a generalization, a computing device could connect to one or more multicast sources, and could support multicast consumers connected to other computing devices, while at the same time supporting multicast consumers that utilize the multicast source support function via any other computing device within the collection of cooperating computing devices. Additionally, the protocol at the central processor module can be any multicast routing protocol, including but not limited to PIM, SMRP, MOSPF and IGMP and the system can include, but it not limited to a passive optical network.
Although an exemplary embodiment of the invention has been described above by way of example only, it will be understood by those skilled in the field that modifications may be made to the disclosed embodiment without departing from the scope of the invention, which is defined by the appended claims.
| Filing Document | Filing Date | Country | Kind | 371c Date |
|---|---|---|---|---|
| PCT/US04/18920 | 6/14/2004 | WO | 12/14/2006 |