Method and apparatus for flow control in a reliable multicast communication system
First Claim
1. A method of transmitting data to multiple receiving devices over a network, comprising the steps of:
- organizing a set of data transfer units into a plurality of subsets of said set of data transfer units, each subset including two or more data transfer units, each subset of said set of data transfer units for transmission by a transmitting device to multiple receiving devices, each subset being referred to as a burst,wherein each of said two or more data transfer units within a respective burst contains information to enable a receiving device to detect an end of the respective burst;
in a first transmitting step, transmitting, by said transmitting device, a plurality of bursts to said multiple receiving devices;
in the event at least one of said multiple receiving devices detects the end of a transmitted burst, generating at least one status report message and transmitting said at least one status report message to said transmitting device,wherein said at least one status report message includes at least one acknowledgement that at least one of the bursts transmitted in said first transmitting step has been received by said at least one of said multiple receiving devices;
monitoring, at said transmitting device, for receipt of at least one status report message from at least one of said multiple receiving devices, wherein each burst transmitted in said first transmitting step that has not been acknowledged as being received by said at least one of said multiple receiving devices is referred to as an outstanding burst;
determining a current number of outstanding bursts;
comparing said current number of outstanding bursts with a predetermined maximum number of outstanding bursts; and
in a second transmitting step, in the event said current number of outstanding bursts is less than said predetermined maximum number of outstanding bursts, transmitting, by said transmitting device, at least one additional burst to said multiple receiving devices.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and system for flow control in a reliable multicast communication protocol, in which a transmitting device transmits sets of multiple data transfer units (DTUs) referred to as “bursts.” The transmitting device continues transmitting DTUs within a burst independently with regard to the receipt of any acknowledgements (referred to herein as “status reports”) from a number of receiving devices. The transmitting device continues to transmit multiple bursts until the transmitting device reaches a predetermined limitation, referred to as a “burst sliding window” size. The transmitting device transmit DTUs in bursts while a total number of outstanding bursts that have not been acknowledged as received correctly does not exceed the size of the burst sliding window. The burst sliding window size may reflect transmission capacity of the transmitting device and/or receipt capacity of the receiving devices.
-
Citations
32 Claims
-
1. A method of transmitting data to multiple receiving devices over a network, comprising the steps of:
-
organizing a set of data transfer units into a plurality of subsets of said set of data transfer units, each subset including two or more data transfer units, each subset of said set of data transfer units for transmission by a transmitting device to multiple receiving devices, each subset being referred to as a burst, wherein each of said two or more data transfer units within a respective burst contains information to enable a receiving device to detect an end of the respective burst; in a first transmitting step, transmitting, by said transmitting device, a plurality of bursts to said multiple receiving devices; in the event at least one of said multiple receiving devices detects the end of a transmitted burst, generating at least one status report message and transmitting said at least one status report message to said transmitting device, wherein said at least one status report message includes at least one acknowledgement that at least one of the bursts transmitted in said first transmitting step has been received by said at least one of said multiple receiving devices; monitoring, at said transmitting device, for receipt of at least one status report message from at least one of said multiple receiving devices, wherein each burst transmitted in said first transmitting step that has not been acknowledged as being received by said at least one of said multiple receiving devices is referred to as an outstanding burst; determining a current number of outstanding bursts; comparing said current number of outstanding bursts with a predetermined maximum number of outstanding bursts; and in a second transmitting step, in the event said current number of outstanding bursts is less than said predetermined maximum number of outstanding bursts, transmitting, by said transmitting device, at least one additional burst to said multiple receiving devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A device for transmitting data to multiple receiving devices over a network, said device comprising:
-
at least one processor; at least one computer program; and at least one memory operative to store the computer program, said at least one memory being communicably coupled to said at least one processor; wherein the processor executes the computer program out of the memory; to organize a set of data transfer units into a plurality of subsets of said set of data transfer units, each subset including two or more data transfer units, each subset of said set of data transfer units for transmission to multiple receiving devices, each subset being referred to as a burst, wherein each of said two or more data transfer units within a respective burst contains information to enable a receiving device to detect an end of the respective burst; to transmit a plurality of bursts to said multiple receiving devices; to monitor for receipt of at least one status report message from at least one of said multiple receiving devices, said at least one status report message being generated and transmitted by said at least one of said multiple receiving devices in response to detection of the end of at least one transmitted burst, said at least one status report message including at least one acknowledgement that at least one of the transmitted bursts has been received by said at least one of said multiple receiving devices, wherein each transmitted burst that has not been acknowledged as being received by said at least one of said multiple receiving devices is referred to as an outstanding burst; to determine a current number of outstanding bursts; to compare said current number of outstanding bursts with a predetermined maximum number of outstanding bursts; and in the event that said current number of outstanding bursts is less than said predetermined maximum number of outstanding bursts, to transmit at least one additional burst to said multiple receiving devices. - View Dependent Claims (14, 15, 16)
-
-
17. A device for transmitting data to multiple receiving devices over a network, comprising:
-
means for organizing a set of data transfer units into a plurality of subsets of said set of data transfer units, each subset including two or more data transfer units, each subset of said set of data transfer units for transmission to multiple receiving devices, each subset being referred to as a burst, wherein each of said two or more data transfer units within a respective burst contains information to enable a receiving device to detect an end of the respective burst; means for transmitting a plurality of bursts to said multiple receiving devices; means for monitoring for receipt of at least one status report message from at least one of said multiple receiving devices, said at least one status report message being generated and transmitted by said at least one of said multiple receiving devices in response to detection of the end of at least one transmitted burst, said at least one status report message including at least one acknowledgement that at least one of the transmitted bursts has been received by said at least one of said multiple receiving devices, wherein each transmitted burst that has not been acknowledged as being received by said at least one of said multiple receiving devices is referred to as an outstanding burst; means for determining a current number of outstanding bursts; means for comparing said current number of outstanding bursts with a predetermined maximum number of outstanding bursts; and means for transmitting, in the event that said current number of outstanding bursts is less than said predetermined maximum number of outstanding bursts, at least one additional burst to said multiple receiving devices. - View Dependent Claims (18, 19)
-
-
20. A method of providing status with regard to data received over a network, comprising the steps of:
-
providing an amount of receive buffer resources to a transmitting device, said receive buffer resources for storing at least a portion of a set of data transfer units, said set of data transfer units being organized into a plurality of subsets of said set of data transfer units, each subset being referred to as a burst, wherein said amount of receive buffer resources represents a predetermined number of the bursts received from a transmitting device that can be stored prior to being processed by at least one application program, wherein each of the received bursts includes two or more data transfer units, and wherein each of said two or more data transfer units within a respective burst contains information to enable detection of an end of the respective burst; receiving a plurality of bursts from said transmitting device; and in response to detection of the end of at least one received burst, generating at least one status report message and transmitting said at least one status report message to said transmitting device, wherein each of said status report messages indicates a receipt status of each data transfer unit within each previously received burst. - View Dependent Claims (21, 22, 23)
-
-
24. A device for providing status with regard to data received over a network, said device comprising:
-
at least one processor; at least one computer program; and at least one memory operative to store the computer program, said at least one memory being communicably coupled to said at least one processor; wherein the processor executes the computer program out of the memory; to provide an amount of receive buffer resources to a transmitting device, said receive buffer resources for storing at least a portion of a set of data transfer units, said set of data transfer units being organized into a plurality of subsets of said set of data transfer units, each subset being referred to as a burst, wherein said amount of receive buffer resources represents a predetermined number of bursts received from a transmitting device that can be stored prior to being processed by at least one application program, wherein each of the received bursts includes two or more data transfer units, and wherein each of said two or more data transfer units within a respective burst contains information to enable detection of an end of the respective burst; to receive a plurality of bursts from said transmitting device; and in response to detection of the end of at least one received burst, to generate at least one status report message, and to transmit said at least one status report message to said transmitting device, wherein each of said status report messages indicates a receipt status of each data transfer unit within each previously received burst. - View Dependent Claims (25, 26, 27)
-
-
28. A device for providing status with regard to data received over a network, comprising:
-
means for providing an amount of receive buffer resources to a transmitting device, said receive buffer resources for storing at least a portion of a set of data transfer units, said set of data transfer units being organized into a plurality of subsets of said set of data transfer units, each subset being referred to as a burst, wherein said amount of receive buffer resources represents a predetermined number of bursts received from a transmitting device that can be stored prior to being processed by at least one application program, wherein each of the received bursts includes two or more data transfer units, and wherein each of said two or more data transfer units within a respective burst contains information to enable detection of an end of the respective burst; means for receiving a plurality of bursts from said transmitting device; and means for generating at least one status report message and for transmitting said at least one status report message to said transmitting device in response to detection of the end of at least one received burst, wherein each of said status report messages indicates a receipt status of each data transfer unit within each previously received burst. - View Dependent Claims (29, 30)
-
-
31. A method of transmitting data over a network, comprising the steps of:
-
organizing a set of data transfer units into a plurality of subsets of said set of data transfer units, each subset of said set of data transfer units including two or more data transfer units, each subset of said set of data transfer units being referred to as a burst, wherein each of said two or more data transfer units within a respective burst contains information to enable a receiving device to detect an end of the respective burst; transmitting, by a transmitting device, a plurality of bursts over a network; in the event at least one receiving device detects the end of at least one transmitted burst, generating at least one acknowledgement that said at least one transmitted burst has been received by said at least one receiving device, and transmitting said at least one acknowledgement over said network to said transmitting device, said at least one receiving device being communicably coupled to said network; monitoring for receipt of at least one acknowledgement over said network, wherein each of said transmitted plurality of bursts that has not been acknowledged as being received is referred to as an outstanding burst; determining a current number of outstanding bursts; comparing said current number of outstanding bursts with a specified maximum number of outstanding bursts; and in the event said current number of outstanding bursts is less than said specified maximum number of outstanding bursts, transmitting at least one additional burst over said network. - View Dependent Claims (32)
-
Specification