IP Library Granted Patent US 7,733,808
Granted Patent B2
US 7,733,808 · App. 11/558,878 · Granted Jun 8, 2010

Peer-to-peer aided live video sharing system

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,733,808
App. No.
11/558,878
Granted
Jun 8, 2010
Kind
B2
Abstract

Video data from an upload client is received at a hosting node. A request from a download client is received at a bootstrapping node to receive the video data. The download client to receive the video data directly from the hosting node when the hosting node is below a threshold, wherein the threshold is based at least in part on the maximum number of download clients the hosting node can stream to simultaneously. The download client to receive the video data from peers in a peer-to-peer overlay when the hosting node above the threshold.

Claims (41)

1. A method, comprising:

receiving a prefetch request for a particular packet of a video stream at a peer from one or more partners of the peer, wherein the one or more partners comprise a subset of peers of a peer-to-peer overlay;

receiving a packet of the video stream at the peer;

pushing the packet, by the peer, to an individual partner of the one or more partners whose associated prefetch request matches the packet; and

updating a local copy of the individual partner's buffer map at the peer after pushing the packet, wherein the buffer map indicates packets of the video stream available in a partner packet queue.

2. The method of claim 1 , further comprising sending individual prefetch requests of the peer to the one or more partners.

3. The method of claim 1 , further comprising pulling a needed packet from the individual partner or another individual partner of the one or more partners, by the peer, when a pull condition is triggered.

4. The method of claim 1 , further comprising:

sending a join request to a bootstrapping node to join the peer-to-peer overlay by the peer;

receiving peer information regarding one or more peers of the peer-to-peer overlay from the bootstrapping node; and

joining the peer-to-peer overlay by the peer.

5. The method of claim 1 , further comprising updating the subset of peers in response to a loss of communication with the individual partner or another individual partner of the one or more partners.

6. The method of claim 1 , further comprising updating the subset of peers in response to an individual peer entering or leaving the peer-to-peer overlay.

7. One or more volatile or non-volatile computer readable storage media including computer readable instructions that, when executed, perform a method comprising:

receiving, at a peer, a prefetch request associated with a video stream from one or more partners of the peer, wherein the one or more partners comprise a subset of peers of a peer-to-peer overlay;

receiving a packet of the video stream at the peer;

pushing the packet, by the peer, to at least one partner of the one or more partners whose associated prefetch request matches the packet; and

updating a local copy of the at least one partner's buffer map at the peer after pushing the packet, wherein the buffer map indicates packets of the video stream available in a partner packet queue.

8. The one or more computer readable storage media of claim 7 , further comprising sending individual prefetch requests of the peer to the one or more partners.

9. The one or more computer readable storage media of claim 7 , further comprising pulling a needed packet from the at least one partner or at least one other partner of the one or more partners, by the peer, when a pull condition is triggered.

10. The one or more computer readable storage media of claim 7 , further comprising:

sending a join request to a bootstrapping node to join the peer-to-peer overlay by the peer;

receiving peer information regarding one or more peers of the peer-to-peer overlay from the bootstrapping node; and

joining the peer-to-peer overlay by the peer.

11. The one or more computer readable storage media of claim 7 , further comprising updating the subset of peers in response to a loss of communication with the at least one partner or at least one other partner of the one or more partners.

12. The one or more computer readable storage media of claim 7 , further comprising updating the subset of peers in response to an individual peer entering or leaving the peer-to-peer overlay.

13. A system comprising:

one or more computing devices; and

at least one subsystem comprising individual nodes implemented by at least one of the one or more computing devices, the at least one subsystem configured to:

receive, at a peer, a prefetch request associated with a video stream from one or more partners of the peer, wherein the one or more partners comprise a subset of peers of a peer-to-peer overlay;

receive a packet of the video stream at the peer;

push the packet, by the peer, to at least one partner of the one or more partners whose associated prefetch request matches the packet; and

update a local copy of the at least one partner's buffer map at the peer after pushing the packet, wherein the buffer map indicates packets of the video stream available in a partner packet queue.

14. The system of claim 13 , wherein the at least one subsystem is further configured to send individual prefetch requests of the peer to the one or more partners.

15. The system of claim 13 , wherein the at least one subsystem is further configured to pull a needed packet from the at least one partner or at least one other partner of the one or more partners, by the peer, when a pull condition is triggered.

16. The system of claim 13 , wherein the at least one subsystem is further configured to:

send a join request to at least one node of the individual nodes to join the peer-to-peer overlay by the peer;

receive peer information regarding one or more peers of the peer-to-peer overlay from the at least one node; and

join the peer-to-peer overlay by the peer.

17. The system of claim 13 , wherein the at least one subsystem is further configured to update the subset of peers in response to a loss of communication with the at least one partner or at least one other partner of the one or more partners.

18. The system of claim 13 , wherein the at least one subsystem is further configured to update the subset of peers in response to an individual peer entering or leaving the peer-to-peer overlay.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2006
From: HU, YUSUO; LUO, CHONG; TANG, JIAN; LOU, JIAN-GUANG; CAI, HUA; LI, JIANG
To: MICROSOFT CORPORATION
Reel/Frame 018662/0365 →