Systems and methods for distributing video on demand
First Claim
Patent Images
1. A method of receiving content, comprising:
- joining, by a media device including a processor, an in-progress multicast stream to receive content from a content server, wherein the in-progress multicast stream is missing a transpired portion of the content;
submitting, by the media device, to a search server a first request for the transpired portion of the content, wherein the first request comprises a globally unique identifier that identifies the transpired portion of the content;
acquiring, by the media device, information from the search server based on a search performed by the search server, wherein the search server performs the search of a network topology of a plurality of peer devices in proximity to the media device according to the globally unique identifier of the transpired portion of the content to determine whether any of the plurality of peer devices can provide the media device a catch-up portion of the transpired portion of the content, wherein the search server receives from the plurality of peer devices a corresponding globally unique identifier for each chunk of content stored by the plurality of peer devices, which the search server stores in a directory of peer devices;
responsive to joining the in-progress multicast stream and responsive to determining from the information that the search server has identified in the directory of peer devices an entry associated with a peer device of the plurality of peer devices that matches to the globally unique identifier of the transpired portion of the content,sending, by the media device, a second request to the peer device of the plurality of peer devices for the catch-up portion of the transpired portion of the content, wherein the catch-up portion of the transpired portion of the content corresponds to at least a part of the transpired portion of the content,and wherein the request includes a deadline for delivery of the catch-up portion of the transpired portion of the content;
receiving, by the media device, the catch-up portion of the transpired portion of the content from the peer device prior to the deadline,responsive to joining the in-progress multicast stream and responsive to determining from the information that none of the plurality of peer devices has the catch-up portion of the transpired portion of the content,sending, by the media device, to the content server a third request for the transpired portion of the content;
receiving, by the media device, from the content server the transpired portion of the content,wherein the search server performs the search in accordance with policy information stored on the search server to identify peer groups, the policies being based on a time of day, a day of week, or a network usage pattern.
3 Assignments
0 Petitions
Accused Products
Abstract
A method of receiving content includes joining an in-progress multicast stream to receive a first portion of a content. The method further includes sending a request to a peer for a catch-up portion of the content, the request including a deadline for delivery of the content, and receiving the catch-up portion of the content from the peer prior to the deadline.
36 Citations
18 Claims
-
1. A method of receiving content, comprising:
-
joining, by a media device including a processor, an in-progress multicast stream to receive content from a content server, wherein the in-progress multicast stream is missing a transpired portion of the content; submitting, by the media device, to a search server a first request for the transpired portion of the content, wherein the first request comprises a globally unique identifier that identifies the transpired portion of the content; acquiring, by the media device, information from the search server based on a search performed by the search server, wherein the search server performs the search of a network topology of a plurality of peer devices in proximity to the media device according to the globally unique identifier of the transpired portion of the content to determine whether any of the plurality of peer devices can provide the media device a catch-up portion of the transpired portion of the content, wherein the search server receives from the plurality of peer devices a corresponding globally unique identifier for each chunk of content stored by the plurality of peer devices, which the search server stores in a directory of peer devices; responsive to joining the in-progress multicast stream and responsive to determining from the information that the search server has identified in the directory of peer devices an entry associated with a peer device of the plurality of peer devices that matches to the globally unique identifier of the transpired portion of the content, sending, by the media device, a second request to the peer device of the plurality of peer devices for the catch-up portion of the transpired portion of the content, wherein the catch-up portion of the transpired portion of the content corresponds to at least a part of the transpired portion of the content,and wherein the request includes a deadline for delivery of the catch-up portion of the transpired portion of the content; receiving, by the media device, the catch-up portion of the transpired portion of the content from the peer device prior to the deadline, responsive to joining the in-progress multicast stream and responsive to determining from the information that none of the plurality of peer devices has the catch-up portion of the transpired portion of the content, sending, by the media device, to the content server a third request for the transpired portion of the content; receiving, by the media device, from the content server the transpired portion of the content, wherein the search server performs the search in accordance with policy information stored on the search server to identify peer groups, the policies being based on a time of day, a day of week, or a network usage pattern. - View Dependent Claims (2, 3, 9, 10, 11, 12)
-
-
4. A set-top box comprising:
-
a memory to store content; and a processor in communication with the memory, wherein the memory comprises instructions, which when executed by the processor cause the processor to perform operations comprising; joining an in-progress multicast stream to receive a first portion of content from a content server, wherein the in-progress multicast stream is missing a transpired portion of the content; submitting to a search server a first request for the transpired portion of the content, wherein the first request comprises a globally unique identifier that identifies the transpired portion of the content; acquiring information from the search server based on a search performed by the search server, wherein responsive to the first request the search server performs the search of a network topology of a plurality of peer devices in proximity to the set-top box according to the globally unique identifier of the transpired portion of the content to determine whether any of the plurality of peer devices can provide the set-top box a catch-up portion of the transpired portion of the content, wherein the search server receives from the plurality of peer devices a corresponding globally unique identifier for each chunk of content stored by the plurality of peer devices, which the search server stores in a directory of peer devices; responsive to joining the in-progress multicast stream and responsive to determining from the information that the search server has identified in the directory of peer devices an entry associated with a peer device of the plurality of peer devices that matches to the globally unique identifier of the transpired portion of the content; sending a second request to the peer device for the catch-up portion of the transpired portion of the content, the second request including a deadline for delivery of the transpired portion of the content; and receiving the catch-up portion of the transpired portion of the content from the peer device prior to the deadline, wherein the search server performs the search in accordance with information regarding policies stored on the search server to identify peer groups, the policies being based on a time of day, a day of week, or a network usage pattern. - View Dependent Claims (5, 6, 7, 8, 13, 14, 15, 16)
-
-
17. A server, comprising:
-
a memory to store instructions; and a controller coupled to the memory, wherein responsive to executing the instructions, the controller performs operations comprising; receiving a communication from a media device to identify a source of a transpired transpired portion of media content of a multicast stream joined in-progress by the media device, wherein the communication comprises a globally unique identifier that identifies the transpired portion of the content; receiving from a plurality of peer devices a corresponding globally unique identifier for each chunk of content stored by the plurality of peer devices; storing the corresponding globally unique identifier for each chunk of content and an identification of the plurality of peer devices in a directory of peer devices; performing a search of a network topology for the plurality of peer devices in proximity to the media device according to the globally unique identifier of the transpired portion of the content to determine whether any of the plurality of peer devices can provide the media device a catch-up portion of the transpired portion of the content; and providing information to the media device regarding a peer device of the plurality of peer devices having the catch-up portion of the transpired portion of the content responsive to identifying in the directory of peer devices an entry associated with the peer device that matches to the globally unique identifier of the transpired portion of the content, wherein the media device sends a request to the peer device in accordance with the information provided by the server for the catch-up portion of the transpired portion of the content, the request including a deadline for delivery of the catch-up portion of the content, and wherein the search is performed with policy information regarding policies stored on the server to identify peer groups, the policies being based on a time of day, a day of week, or a network usage pattern. - View Dependent Claims (18)
-
Specification