Method and apparatus for routing and congestion control in multicast networks
First Claim
1. A method of distributing multicast data, comprising the steps of:
- forming a multicast repair tree including a sender, a plurality of heads, and a plurality of receivers, wherein at least one head is associated with the sender, and at least one receiver is associated with the head;
sending, by the sender to the plurality of heads and to the plurality of receivers, a plurality of multicast messages at a data rate;
receiving, by the sender from one of the plurality of heads, a status associated with a receiver of the at least one head;
slowing the data rate, by the sender, in accordance with the status; and
signaling, by the sender, the heads to monitor receivers for pruning candidates if predetermined criteria are satisfied.
2 Assignments
0 Petitions
Accused Products
Abstract
An embodiment consistent with the present invention includes a method and apparatus for distributing multicast data. The method may be performed by a data processor and comprises the steps of forming a multicast repair tree including a sender, a plurality of heads, and a plurality of receivers, wherein at least one head is associated with the sender and at least one receiver is associated with the head; sending, by a sender to the plurality of heads and the plurality of receivers, a plurality of multicast messages at a data rate; receiving, by the sender from one of the plurality of heads, a congestion status associated with a receiver of the head; and slowing the data rate, by the sender, in accordance with the congestion status.
-
Citations
42 Claims
-
1. A method of distributing multicast data, comprising the steps of:
-
forming a multicast repair tree including a sender, a plurality of heads, and a plurality of receivers, wherein at least one head is associated with the sender, and at least one receiver is associated with the head; sending, by the sender to the plurality of heads and to the plurality of receivers, a plurality of multicast messages at a data rate; receiving, by the sender from one of the plurality of heads, a status associated with a receiver of the at least one head; slowing the data rate, by the sender, in accordance with the status; and signaling, by the sender, the heads to monitor receivers for pruning candidates if predetermined criteria are satisfied. - View Dependent Claims (2, 3, 4, 5, 29, 30, 31)
-
-
6. An apparatus that distributes multicast data, comprising:
-
circuitry configured to form a multicast repair tree including a sender, a plurality of heads, and a plurality of receivers, wherein at least one head is associated with the sender, and at least one receiver is associated with the at least one head; circuitry configured to send to the plurality of heads and to the plurality of receivers, a plurality of multicast messages at a data rate; circuitry configured to receive from one of the plurality of heads, a status associated with a receiver of the head; circuitry configured to slow the data rate in accordance with the status; and circuitry configured to signal, by the sender, the heads to monitor receivers for pruning candidates if predetermined criteria are satisfied. - View Dependent Claims (7, 8, 9, 10)
-
-
11. An apparatus for distributing multicast data, comprising:
-
means for forming a multicast repair tree including a sender, a plurality of head, and a plurality of receivers wherein at least one head is associated with the sender, and at least one receiver is associated with the at least one head; means for sending to the plurality of heads and to the plurality of receivers, a plurality of multicast messages having a data rate; means for receiving from one of the plurality of heads, a status associated with a receiver of the head; means for slowing the data rate in accordance with the status; and means for signaling, by the sender, the heads to monitor receivers for pruning candidates if predetermined criteria are satisfied. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A computer program product comprising:
-
a computer usable medium having computer readable code embodied therein for distributing multicast data, the computer program product including; first computer readable program code devices configured to form a multicast repair tree including a sender, a plurality of heads, and a plurality of receivers wherein at least one head is associated with the sender, and at least one receiver is associated with the at least one head; second computer readable program code devices configured to send, by the sender to the plurality of heads and to the plurality of receivers, a plurality of multicast messages at a data rate; third computer readable program code devices configured to receive, by the sender from one of the plurality of heads, a status associated with a receiver of the head; fourth computer readable program code devices configured to slow the data rate, by the sender, in accordance with the status; and fifth computer readable program code devices configured to signal, by the sender, the heads to monitor receivers for pruning candidates if predetermined criteria are satisfied. - View Dependent Claims (17, 18, 19)
-
-
20. A computer data signal embodied in a carrier wave and representing sequences of instructions which, when executed by a processor, cause the processor to distribute multicast data by performing the steps of:
-
executing a first computer program to form a multicast repair tree including a sender, a plurality of heads, and a plurality of receivers, wherein at least one head is associated with the sender, and at least one receiver is associated with the at least one head; executing a second computer program to send, by the sender to the plurality of heads and to the plurality of receivers, a plurality of multicast messages at a data rate; executing a third computer program to receive, by the sender from one of the plurality of heads, a status associated with a receiver of the head; executing a fourth computer program to slow the data rate, by the sender, in accordance with the status; and executing a fifth computer program to signal, by the sender, the heads to monitor receivers for pruning candidates if predetermined criteria are satisfied. - View Dependent Claims (21, 22, 23, 24)
-
-
25. An apparatus that distributes multicast data, comprising:
-
circuitry configured to receive a plurality of multicast messages from a sender at a data rate; circuitry configured to determine a receiver status; circuitry configured to send a congestion report to a head in accordance with the receiver status; and circuitry configured to receive a disowned message from the head in accordance with the congestion report.
-
-
26. An apparatus for distributing multicast data, comprising:
-
means for receiving a plurality of multicast messages from a sender at a data rate; means for determining a receiver status; means for sending a congestion report to a head in accordance with the receiver status; and means for receiving a disowned message from the head in accordance with the congestion report.
-
-
27. A computer program product comprising:
a computer usable medium having computer readable code embodied therein for distributing multicast data, the computer program product including; computer readable program code devices configured to receiv a plurality of multicast messages from a sender at a data rate; computer readable program code devices configured to determine a receiver status; computer readable program code devices configured to send a congestion report to a head in accordance with the receiver status; and computer readable program code devices configured to receive a disowned message from the head in accordance with the congestion report.
-
28. A computer data signal embodied in a carrier wave and representing sequences of instructions which, when executed by a processor, cause the processor to distribute multicast data by performing the steps of:
-
executing a computer program to receive a plurality of multicast messages from a sender at a data rate; executing the computer program to determine a receiver status; executing the computer program to send a congestion report to a head in accordance with the receiver status; and executing the computer program to receive a disowned message from the head in accordance with the congestion report.
-
-
32. A method of distributing multicast data, performed by a data processor, comprising the steps of:
-
sending a plurality of multicast messages at a data rate to a plurality of heads and to a plurality of receivers; receiving a status associated with a receiver of one of the plurality of heads; slowing the data rate in accordance with the status;
ndsignaling, by the sender, the heads to monitor receivers for pruning candidates if predetermined criteria are satisfied.
-
-
33. An apparatus that distributes multicast data, comprising:
-
circuitry configured to send a plurality of multicast messages at a data rate to a plurality of heads and to a plurality of receivers; circuitry configured to receive a status associated with a receiver of one of the plurality of heads; circuitry configured to slow the data rate in accordance with the status; and circuitry configured to signal, by the sender, the heads to monitor receivers for pruning candidates if predetermined criteria are satisfied.
-
-
34. An apparatus for distributing multicast data, comprising:
-
means for sending a plurality of multicast messages at a data rate to a plurality of heads and to a plurality of receivers; means for receiving a status associated with a receiver of one of the plurality of heads; means for slowing the data rate in accordance with the status; and means for signaling, by the sender, the heads to monitor receivers for pruning candidates if predetermined criteria are satisfied.
-
-
35. A computer program product comprising:
-
a computer usable medium having computer readable code embodied therein for distributing multicast data, the computer program product including; computer readable program code devices configured to send a plurality of multicast messages at a data rate to a plurality of heads and to a plurality of receivers; computer readable program code devices configured to receive a status associated with a receiver of one of the plurality of heads; computer readable program code devices configured to slow the data rate in accordance with the status; and computer readable program code devices configured to signal, by the sender, the heads to monitor receivers for pruning candidates if predetermined criteria are satisfied.
-
-
36. A computer data signal embodied in a carrier wave and representing sequences of instructions which, when executed by a processor, cause the processor to distribute multicast data by performing the steps of:
-
executing a computer program to send a plurality of multicast messages at a data rate to a plurality of heads and a plurality of receivers; executing the computer program to receive a status associated with a receiver of one of the plurality of heads; and executing the computer program to slow the data rate in accordance with the status; indicating that the head should not respond to a repair request from the receiver in the future.
-
-
37. A method of distributing multicast data, performed by a data processor, comprising the steps of:
-
receiving a plurality of multicast messages from a sender at a data rate, wherein each multicast message contains a congestion signal and a prune signal; monitoring a receiver in response to the congestion signal; marking a receiver for pruning in response to the prune signal; and sending a disowned message to the receiver marked for pruning.
-
-
38. An apparatus that distributes multicast data, comprising:
-
circuitry configured to receive a plurality of multicast messages from a sender at a data rate, wherein each multicast message contains a congestion signal and a prune signal; circuitry configured to monitor a receiver in response to the congestion signal; circuitry configured to mark a receiver for pruning in response to the prune signal; and circuitry configured to send a disowned message to the receiver marked for pruning.
-
-
39. An apparatus for distributing multicast data, comprising:
-
means for receiving a plurality of multicast messages from a sender at a data rate, wherein each multicast message contains a congestion signal and a prune signal; means for monitoring a receiver in response to the congestion signal; means for marking a receiver for pruning in response to the prune signal; and means for sending a disowned message to the receiver marked for pruning.
-
-
40. A computer program product comprising:
a computer usable medium having computer readable code embodied therein for distributing multicast data, the computer program product including; computer readable program code devices configured to receive a plurality of multicast messages from a sender at a data rate, wherein each multicast message contains a congestion signal and a prune signal; computer readable program code devices configured to monitor a receiver in response to the congestion signal; computer readable program code devices configured to mark a receiver for pruning in response to the prune signal; and computer readable program code devices configured to send a disowned message to the receiver marked for pruning.
-
41. A computer data signal embodied in a carrier wave and representing sequences of instructions which, when executed by a processor, cause the processor to distribute multicast data by performing the steps of:
-
executing the computer program to receive a plurality of multicast messages from a sender at a data rate, wherein each multicast message contains a congestion signal and a prune signal; executing the computer program to monitor a receiver in response to the congestion signal; executing the computer program to mark a receiver for pruning in response to the prune signal; and executing the computer program to send a disowned message to the receiver marked for pruning.
-
-
42. A method of distributing multicast data, performed by a data processor, comprising the steps of:
-
receiving a plurality of multicast messages from a sender at a data rate; determining a receiver status; sending a congestion report to a head in accordance with the receiver status; and receiving a disowned message from the head in accordance with the congestion report.
-
Specification