Claims
- 1. A method for distributing data in a data network, wherein the data network connects a plurality of nodes and at least a portion of the plurality of the nodes form a multicast group, wherein one of the nodes in the multicast group is designated a rendezvous node, the method comprising:
maintaining a data store containing a group state at each of the nodes in the multicast group; receiving state updates at the rendezvous node; updating the group state in the data store at the rendezvous node with the state updates; propagating the state updates, using a reliable protocol, from the rendezvous node to the other nodes in the multicast group; and updating the group state in the data stores at the other nodes in the multicast group.
- 2. The method of claim 1 wherein a joining node, that is a node of the plurality of nodes, is added to the multicast group, the joining node having a data store, the method further comprising steps of:
propagating the group state to the joining node; and updating the data store at the joining node with the group state.
- 3. The method of claim 2 wherein the step of propagating the group state comprises a step of propagating the group state to the joining node from a selected node in the multicast group.
- 4. The method of claim 3 wherein the step of propagating the group state comprises a step of propagating the group state to the joining node from a selected node in the multicast group that is closest to the joining node.
- 5. The method of claim 3 wherein the step of propagating the group state comprises a step of propagating the group state to the joining node from a selected node in the multicast group, wherein the selected node is determined from a network routing protocol.
- 6. A processing agent for processing data at a node in a data network, wherein the data network connects a plurality of nodes and at least a portion of the plurality of the nodes form a multicast group, wherein one of the nodes in the multicast group is designated a rendezvous node, the processing agent comprising:
a state memory; and a protocol processor having logic to couple to a selected node in the data network, and having logic to transmit and receive data with other processing agents in the data network over a data channel using a reliable protocol, the protocol processor couples to the state memory and has logic to store and retrieve the data to and from the state memory, respectively.
- 7. The processing agent of claim 6 wherein the selected node is a selected node in the multicast group and wherein the protocol processor further comprises:
logic to receive data from at least a first processing agent in the multicast group over the data channel; logic to update the state memory with the data; and logic to transmit the data over the data channel to at least a second processing agent associated with the multicast group.
- 8. The processing agent of claim 6 further comprising a packet forwarding engine, the packet forwarding engine coupled to the protocol processor, the state memory and the selected node, the packet forwarding engine comprising:
logic to retrieve the data from the state memory; logic to receive data packets transmitted on the data network; logic to process the received data packets based on the retrieved data from the state memory to form an output data stream; and logic to transmit the output data stream on the data network.
- 9 . The processing agent of claim 8 wherein the packet forwarding engine has logic to process the received data packets based on priority information obtained from the retrieved data from the state memory.
- 10. A method for operating a processing agent coupled to a selected node in a data network, wherein the data network connects a plurality of nodes and at least a portion of the plurality of the nodes, including the selected node, form a multicast group, wherein one of the nodes in the multicast group is designated a rendezvous node, the method comprising steps of:
receiving data over a data channel; updating a state memory with the data; and propagating the data over the data channel to other processing agents in the multicast group using a reliable protocol.
- 11. The method of claim 10 wherein a joining node, that is a child peer to the selected node, joins the multicast group, the method further comprising steps of:
receiving an indication that the joining node has joined the multicast group; and propagating data from the state memory to the joining node over the data channel using a reliable protocol.
- 12. The method of claim 10 further comprising the steps of:
receiving a query from a requestor in the data network, regarding data in the state memory; and transmitting at least a portion of the data in the state memory to the requestor over the data channel in response to the query.
- 13. A data network for transmitting data, wherein the data network connects a plurality of nodes and at least a portion of the plurality of the nodes form a multicast group, wherein one of the nodes in the multicast group is designated a rendezvous node, the data network comprising:
a plurality of processing agents, each of the processing agents having a state memory, wherein each processing agent is coupled to a corresponding node in the multicast group; means for receiving data at the processing agent coupled to the rendezvous node; means for updating the state memory of the processing agent coupled to the rendezvous node with the data; means for propagating the data from the state memory of the processing agent coupled to the rendezvous node to all other processing agents in the multicast group; and means for updating the state memories of all other processing agents in the multicast group with the data.
- 14. The method of claim 13 wherein a joining node, that is a node of the plurality of nodes, is added to the multicast group, the joining node having a data store, the method further comprising steps of:
propagating the data to the joining node using a reliable protocol; and updating the data store at the joining node with the data.
- 15. The method of claim 13 wherein the means for propagating comprises logic at each of the processing agents to implement a data channel using a reliable protocol.
CROSS REFERENCES TO RELATED APPLICATIONS
[0001] This application claims priority from co-pending U.S. Provisional Pat. App. Ser. No. 60/137,153 filed on Jun. 1, 1999. This application is related to U.S. patent application Ser. No. 09/323,869 entitled “PERFORMING MULTICAST COMMUNICATION IN COMPUTER NETWORKS BY USING OVERLAY ROUTING” filed Jun. 1, 1999 (hereinafter “McCanne '869”) and to U.S. patent application Ser. No. 09/384,865 entitled “SYSTEM FOR BANDWIDTH ALLOCATION IN A COMPUTER NETWORK” filed Aug. 27, 1999 (hereinafter “McCanne '865”). Each of these applications is hereby incorporated by reference as if set forth in full in this document.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60137153 |
Jun 1999 |
US |
Divisions (1)
|
Number |
Date |
Country |
Parent |
09412815 |
Oct 1999 |
US |
Child |
10618369 |
Jul 2003 |
US |