Reliable multicast with automatic session startup and client backfill support
First Claim
1. A method for multicasting data to a number of client devices comprising:
- establishing an on-demand multicast session that is continuously available to client devices and allows client devices to join or leave the on-demand multicast session at any time;
polling, at an end of a transmission cycle, client devices that have joined the on-demand multicast session to determine whether all requests for data blocks have been satisfied;
receiving updated requests from the joined client devices indicating data blocks that have not been received by the joined client devices; and
transmitting, in another transmission cycle, data blocks that the joined client devices have not previously received,wherein after all outstanding requests have been satisfied, the on-demand multicast session remains available until a new request is received from another client device.
1 Assignment
0 Petitions
Accused Products
Abstract
A form of multicast, referred to as “on-demand multicast,” provides a methodology that allows for “on demand” multicasting of data. On-demand multicast allows clients to join or leave a transmission at any point. There is no transmission session start or end time—the session is continuously available, although data is not necessarily continuously transmitted. Data blocks missed by late-joining clients are retransmitted per amalgamated client requests through multiple transmission cycles until all clients that have joined the transmission session receive all content. Once a client has received all data blocks comprising the content for the session, the client may exit the ongoing session.
82 Citations
20 Claims
-
1. A method for multicasting data to a number of client devices comprising:
-
establishing an on-demand multicast session that is continuously available to client devices and allows client devices to join or leave the on-demand multicast session at any time; polling, at an end of a transmission cycle, client devices that have joined the on-demand multicast session to determine whether all requests for data blocks have been satisfied; receiving updated requests from the joined client devices indicating data blocks that have not been received by the joined client devices; and transmitting, in another transmission cycle, data blocks that the joined client devices have not previously received, wherein after all outstanding requests have been satisfied, the on-demand multicast session remains available until a new request is received from another client device. - View Dependent Claims (2, 3, 4, 5, 6, 17, 18, 19)
-
-
7. A computer readable storage device having stored thereon computer-executable instructions for performing a computer process implementing a multicasting session on a computer server, the execution of the instructions causing the computer server to perform operations comprising:
-
establishing an on-demand multicast session that is continuously available to client devices and allows client devices to join or leave the on-demand multicast session at any time; polling, at an end of a transmission cycle, client devices that have joined the on-demand multicast session to determine whether all requests have been satisfied; receiving updated requests from the joined client devices indicating data blocks that have not been received by the joined client devices; and transmitting, in a further transmission cycle, data blocks not previously received by the joined client devices, wherein after all outstanding requests have been satisfied, the on-demand multicast session remains available until a new request is received from another client device. - View Dependent Claims (8, 9, 10, 11, 12, 13, 20)
-
-
14. A computing device comprising:
-
a processor; and a storage storing computer-executable instructions which, when executed by the computing device, cause the computing device to perform a sequence of operations, the operations comprising; establishing an on-demand multicast session that is continuously available to client devices and allows client devices to join or leave the on-demand multicast session at any time; polling, at an end of a transmission cycle, client devices that have joined the on-demand multicast session to determine whether all requests have been satisfied; receiving at least a first updated request from the joined client devices indicating data blocks that the joined client devices have not received; and transmitting, in a further transmission cycle, data blocks not previously received by the joined client devices, wherein after all outstanding requests have been satisfied, the on-demand multicast session remains dormant and available until a new request is received from another client device. - View Dependent Claims (15, 16)
-
Specification