Reliable multicast transport protocol
First Claim
1. A method for use in a computer system, the method comprising:
- negotiating with a plurality of client devices, via a join channel, to join and exit a multicast transmission session at different times, wherein a first one of the plurality of client devices is permitted to join the multicast transmission session at a first time and wherein a second one of the plurality of client devices is permitted to join the multicast transmission session at a second time, wherein the first time is different from the second time, and wherein each of the plurality of client devices is able to receive the entirety of content associated with the multicast transmission session regardless of when each of the plurality of client devices joins the multicast transmission session;
communicating with the plurality of client devices, via a query channel, about a status of the multicast transmission session;
via a polling channel;
(i) transmitting polling queries received from a content transfer protocol, (ii) receiving, from the plurality of client device, responses to the polling queries, and (iii) passing the responses to the content transfer protocol;
transmitting data to the plurality of client devices via a data channel;
querying the plurality of client devices to determine a round trip time associated with each of the plurality of client devices;
selecting a single representative client device from the plurality of client devices to be a sender of acknowledgement messages based upon the determined round trip times; and
advertising a minimum negative acknowledgement back-off interval based on the round trip time associated with the selected representative client device.
2 Assignments
0 Petitions
Accused Products
Abstract
A semi-reliable multicast transport protocol uses multiple channels for communication between a server and multiple client devices. A join channel allows the sever to negotiate with client devices to join and exit a transmission session. A communication channel allows the server to communicate with client devices about a status of the transmission session. A polling channel initiated by a content transfer protocol, which runs on top of the transport protocol, transmits polling queries received from the content transfer protocol, receives client device responses to the polling queries, and passes the client device responses to the content transfer protocol. A data channel transmits data to client devices over a network.
-
Citations
19 Claims
-
1. A method for use in a computer system, the method comprising:
-
negotiating with a plurality of client devices, via a join channel, to join and exit a multicast transmission session at different times, wherein a first one of the plurality of client devices is permitted to join the multicast transmission session at a first time and wherein a second one of the plurality of client devices is permitted to join the multicast transmission session at a second time, wherein the first time is different from the second time, and wherein each of the plurality of client devices is able to receive the entirety of content associated with the multicast transmission session regardless of when each of the plurality of client devices joins the multicast transmission session; communicating with the plurality of client devices, via a query channel, about a status of the multicast transmission session; via a polling channel; (i) transmitting polling queries received from a content transfer protocol, (ii) receiving, from the plurality of client device, responses to the polling queries, and (iii) passing the responses to the content transfer protocol; transmitting data to the plurality of client devices via a data channel; querying the plurality of client devices to determine a round trip time associated with each of the plurality of client devices; selecting a single representative client device from the plurality of client devices to be a sender of acknowledgement messages based upon the determined round trip times; and advertising a minimum negative acknowledgement back-off interval based on the round trip time associated with the selected representative client device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A reliable multicast transmission system comprising:
a server computing device, the server computing device comprising; a transport protocol layer, the content transfer protocol layer comprising; a join channel for negotiating with a plurality of client devices to join and exit a multicast transmission session at different times, wherein a first one of the plurality of client devices is permitted to join the multicast transmission session at a first time and wherein a second one of the plurality of client devices is permitted to join the multicast transmission session at a second time, wherein the first time is different from the second time, and wherein each of the plurality of client devices is able to receive the entirety of content associated with the multicast transmission session regardless of when each of the plurality of client devices joins the multicast transmission session; a query channel for communicating with the plurality of client devices about a status of the multicast transmission session; a polling channel that transmits polling queries to the plurality of client devices and responses to the polling queries from the plurality of client devices; and a data channel for transmitting a data file to the plurality of client devices; wherein the transport protocol layer is further configured to; suppress immediate acknowledgement messages from each of the plurality of client devices except for a single representative client device, wherein the single representative client device is selected based on round trip times associated with the plurality of client devices; and advertise a minimum negative acknowledgement back-off duration based on the round trip time corresponding to the single representative client device; and a content transfer protocol layer, the content transfer protocol layer comprising; a data management function that identifies the data file for the multicast transmission session and provides the data file to the transport protocol layer in a form suitable for transmission; and a polling management function that generates the polling queries to monitor reliability of data transmissions by the transport protocol layer, pass the polling queries to the transport protocol layer for transmission to the client devices, and receive responses to the polling queries by the plurality of client devices from the transport protocol layer. - View Dependent Claims (13, 14, 15, 16, 17)
-
18. A method in a computer system for providing reliable multicast transmissions comprising:
-
negotiating with a plurality of client devices to join and exit a multicast transmission session at different times, wherein a first one of the plurality of client devices is permitted to join the multicast transmission session at a first time and wherein a second one of the plurality of client devices is permitted to join the multicast transmission session at a second time, wherein the first time is different from the second time, and wherein each of the plurality of client devices is able to receive the entirety of content associated with the multicast transmission session regardless of when each of the plurality of client devices joins the multicast transmission session; communicating a query to the plurality of client devices requesting a status of the transmission session; receiving a polling query initiated by a content transfer protocol; transmitting the polling query to the plurality of client devices; receiving responses to the polling query from the plurality of client devices; passing responses to the polling query to the content transfer protocol; transmitting a data file to the plurality of client devices; determining round trip times associated with the plurality of client devices; selecting one of the plurality of client devices to be a representative client device based upon the determined round trip times, wherein the representative client device transmits negative acknowledgement messages on behalf of the other client devices; and advertising a minimum negative acknowledgement back-off time that corresponds to the round trip time associated with the selected representative client device, wherein the minimum negative acknowledgement back-off time indicates a minimum time for other client devices to wait before transmitting a negative acknowledgement message in response to missing a data packet. - View Dependent Claims (19)
-
Specification