Accelerated delivery of media content via peer caching
Abstract
An example method includes monitoring client devices to identify a subset of client devices actively connected to an internet gateway server, and maintaining a record of media data chunks cached at each client device of the subset of client devices. The method includes receiving a request from a first client device for a media data item stored at a media server device, and determining that a first target portion of the media data item is cached at a second client device actively connected to the internet gateway server. The method includes instructing the first client device to establish a peer-to-peer connection with the second client device, to request, and to receive the first target portion of the media data item from the second client device. The method includes retrieving and sending the remainder of the media data item to the first client device.
Claims
exact text as granted — not AI-modified1 . A method for an internet gateway server, comprising:
receiving a request from a first client device over a client-side access network for a media data item stored at a media server device connected or connectable to the internet gateway server via a server-side wide area network; determining that a first target portion of the media data item is cached at a second client device actively connected to the internet gateway server over the client-side access network, the first target portion corresponding to a seek location of the media data item; responsive to the request, instructing the first client device to establish a connection with the second client device over the client-side access network, to request and to receive the first target portion of the media data item from the second client device; retrieving a remainder of the media data item not cached at any client device actively connected to the internet gateway server, by requesting the remainder of the media data item from the media server device, and receiving the remainder of the media data item from the media server device over the server-side wide area network; and sending the remainder of the media data item to the first client device.
2 . A method performed by one or more server devices, the method comprising:
enabling communications between a first client device and a media server device, the communications including a request by the first client device for a media data item stored at the media server device; retrieving the media data item from the media server device; breaking the media data item into two or more constituent media data subunits, including at least a first media data subunit and a second media data subunit; sending the first media data subunit to the first client device; maintaining, at a data store, a record of the first media data subunit being cached at the first client device; receiving a request by a second client device for the media data item stored at the media server device; referencing the data store for the record to identify the first media data subunit being cached at the first client device; instructing the second client device to request and receive the first media data subunit from the first client device via a peer-to-peer connection; and sending the second media data subunit to the second client device.
3 . The method of claim 2 , wherein instructing the second client device to request and receive the first media data subunit from the first client device via the peer-to-peer connection further includes instructing the second client device to present an indication that transmission of media data is being accelerated.
4 . The method of claim 2 , further comprising:
prompting a user of the second client device with an option to opt-in to accelerated transmission of media data; and wherein instructing the second client device to request and receive the first media data subunit from the first client device via the peer-to-peer connection is performed responsive to the user of the second client device opting-in to the accelerated transmission of media data.
5 . The method of claim 4 , further comprising:
instructing the second client device to cache a media data subunit of the media data item at the second client device responsive to the user of the second client device opting-in to the accelerated transmission of media data.
6 . The method of claim 2 , wherein instructing the second client device to request and receive the first media data subunit from the first client device via the peer-to-peer connection is performed if the first client device is determined to be actively connected to a gateway server device of the one or more server devices.
7 . The method of claim 6 , wherein breaking the media data item into two or more constituent media data subunits is performed by the gateway server.
8 . The method of claim 6 , wherein breaking the media data item into two or more constituent media data subunits is performed by the media server device.
9 . The method of claim 2 , further comprising:
instructing the first client device to cache the first media data subunit of the media data item at the first client device.
10 . The method of claim 2 , further comprising:
maintaining, at the data store, a record of whether the first client device is actively connected to a gateway server device of the one or more server devices; determining whether the first client device is actively connected to the gateway server device based on the record; and wherein instructing the second client device to request and receive the first media data subunit from the first client device via a peer-to-peer connection is performed if the first client device is actively connected to the gateway server device.
11 . The method of claim 10 , further comprising:
maintaining, at the data store, a record of whether one or more other client devices are actively connected to the gateway server device and which of the two or more media data subunits are cached at the one or more other client devices; determining whether a third client device of the one or more client devices is actively connected to the gateway server device and has cached the first media data subunit based on the record; and wherein if the first client device is determined not to be actively connected to the gateway server device, instructing the second client device to request and receive the first media data subunit from the third client device via a peer-to-peer connection.
12 . The method of claim 11 , wherein if the first client device and the third client device having cached the first media data subunit are both actively connected to the gateway server, then determine whether the second client device is to request the first media data subunit from either the first client device or the third client device based on one or more factors;
wherein the one or more factors include a serving load on the first client device, a serving load on the third client device, a connection parameter between first client device and the second client device, a connection parameter between the third client device and the second client device, and/or a connection parameter between the second client device and the gateway server device.
13 . A method performed by a client device, the method comprising:
requesting a media data item from a media server device via a communications network; receiving a data record over the communications network, the data record indicating one or more other client devices having cached media data subunits of the media data item and actively connected to a gateway server device or the media server device; requesting a first media data subunit from a second client device of the one or more other client devices based on the data record; receiving the first media data subunit of the media data item from the second client device over a peer-to-peer connection via the communications network; presenting the first media data subunit of the media data item; receiving a second media data subunit of the media data item from the gateway server device or the media server device via the communications network; presenting the second media data subunit of the media data item; receiving an instruction via the communications network, the instruction identifying the second media data subunit of the media data item to be cached at the client device; caching the second media data subunit of the media data item at the client device responsive to the instruction; receiving a request for the second media data subunit from a third client device over another peer-to-peer connection via the communication network; and sending the second media data subunit to the third client device over the another peer-to-peer connection.
14 . The method of claim 13 , further comprising:
prompting a user of the client device to opt-in to accelerated delivery of the media data item; and wherein requesting the first media data subunit from the second client device is performed by the client device if the user opted-in to accelerated delivery of the media data item.Join the waitlist — get patent alerts
Track US2015134767A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.