IP Library Granted Patent US 10,009,396
Granted Patent B2
US 10,009,396 · App. 14/181,975 · Granted Jun 26, 2018

Queue-based adaptive chunk scheduling for peer-to-peer live streaming

Inventors: Yang Guo (Princeton Junction, NJ); Chao Liang (Cupertino, CA); Yong Liu (Brooklyn, NY)
Assignee: THOMSON LICENSING
H04L65/4076H04L65/4084H04L65/608H04L65/80H04L67/1085
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 10,009,396
App. No.
14/181,975
Granted
Jun 26, 2018
Kind
B2
Abstract

A method and apparatus are described for scheduling content delivery in a peer-to-peer network, including receiving a message from a peer, classifying the received message, storing the classified message in one of a plurality of queues based on the classification, generating responses to messages based on a priority of the queue in which the classified message is stored and transmitting content to all peers in the peer-to-peer network. Also described are a method and apparatus for scheduling content delivery in a peer-to-peer network, including receiving one of a message and content from one of a content source server and a peer, classifying the received message, storing the classified message in one of a plurality of queues based on the classification, storing the received content, generating responses to messages based on a priority of the queue in which the classified message is stored and transmitting content to all other peers in the peer-to-peer network.

Claims (54)

1. A method for a content server for scheduling live streaming in a peer-to-peer network comprising:

removing by a processor a message from a first message queue for storing messages from peers requesting forwarding-content;

transmitting by a processor forwarding-content to a peer from whom said message is sent; and

when said first message queue is empty, transmitting by a processor non-forwarding-content to all peers in said peer-to-peer network, wherein said forwarding-content is content to be forwarded by said peer to other peers as non-forwarding content, and non-forwarding-content is content not to be forwarded by said peer to other peers.

2. The method according to claim 1 , further comprising:

receiving by a processor a joining request from a joining peer, wherein said joining request is a request to join said peer-to-peer network; and

storing by a processor said joining request in a second message queue.

3. The method according to claim 2 , wherein said second message queue has a higher priority than said first message queue.

4. The method according to claim 2 , further comprising

responding by a processor to said joining request by transmitting to said joining peer a peer list and contact information for peers already in said peer-to-peer network.

5. The method according to claim 1 , further comprising:

receiving by a processor a request to recover missing content from a peer; and

storing by a processor said joining request in a third message queue.

6. The method according to claim 5 , further comprising

responding by a processor to said request to recover missing content by transmitting said requested missing content to said peer.

7. The method according to claim 1 , wherein said peer sends said message when a threshold set by said peer is reached.

8. An apparatus for a content server for scheduling live streaming in a peer-to-peer network comprising:

memory including:

a first message queue storing messages from peers requesting forwarding-content from said apparatus, and a content queue storing content to be transmitted to peers in said peer-to-peer network, said content queue including forwarding-content and non-forwarding-content; and

a processor configured to transmit said content based on the status of said first message queue, and further wherein

when said first message queue is non-empty, said processor transmits forwarding-content to a peer in response to a message sent by said peer in said first message queue, and

when said first message queue is empty, said processor transmits non-forwarding-content to all peers in said peer-to-peer network, wherein said forwarding-content is content to be forwarded by said peer to other peers as non-forwarding content, and non-forwarding-content is content not to be forwarded by said peer to other peers.

9. The apparatus according to claim 8 , wherein said memory further includes a second message queue and said processor is configured to store joining requests from joining peers in said second message queue, wherein said joining request is a request sent by a peer to join said peer-to-peer network.

10. The apparatus according to claim 9 , wherein said second message queue has a higher priority than said first message queue.

11. The apparatus according to claim 9 , wherein said memory further includes a management message queue for a peer and said processor is configured to store in said management message queue responses to joining requests in said second message queue sent by said peer.

12. The apparatus according to claim 8 , wherein said memory further includes a third message queue and said processor is configured to store in said third message queue requests from peers to recover missing content.

13. The apparatus according to claim 12 , wherein said memory further includes a recovery queue and said processor is configured to store in said recovery queue missing content requested by a peer in response to a request in said third message queue sent by said peer.

14. The apparatus according to claim 8 , wherein said peer sends said message when a threshold set by said peer is reached.

15. A method for a peer for scheduling live streaming in a peer-to-peer network comprising:

sending by a processor a message requesting for forwarding-content to a content server;

receiving by a processor requested forwarding-content from said content server; and

transmitting as non-forwarding content by a processor said received forwarding-content to other peers in said peer-to-peer network, wherein said forwarding-content is content to be forwarded by said peer to other peers and non-forwarding-content is content not to be forwarded by said peer to other peers.

16. The method according to claim 15 , wherein said transmitting step comprises storing said received forwarding-content into at least one content forwarding queue; and transmitting content in said at least one content forwarding queue to other peers in said peer-to-peer network.

17. The method according to claim 16 , wherein said message requesting for forwarding-content is sent to said content server when a size of said at least one content forwarding queue is below a given threshold.

18. The method according to claim 17 , wherein there is one content forwarding queue for each of other peers and said size of said at least one content forwarding queue is determined as an average queue size of said at least one content forwarding queue.

19. The method according to claim 17 , wherein said message requesting for forwarding-content is sent to said content server when said at least one content forwarding queue is empty.

20. The method according to claim 15 , further comprising receiving by a processor non-forwarding-content from at least one of said content server and other peers in said peer-to-peer network.

21. The method according to claim 15 , wherein said transmitted forwarding-content is received by said other peers as non-forwarding-content.

22. The method according to claim 15 , further comprising:

receiving by a processor a request to recover missing content from a requesting peer; and

transmitting by a processor said requested missing content to said requesting peer.

23. An apparatus for a peer for scheduling live streaming in a peer-to-peer network comprising:

memory, including a playback buffer storing received content from at least one of said content server and other peers; and

a processor configured to:

send a message requesting for forwarding-content to a content server in said peer-to-peer network, and

filter content in said playback buffer to obtain forwarding-content for transmitting to other peers, wherein said forwarding-content is content to be forwarded by said peer to other peers as non-forwarding content, and non-forwarding-content is content not to be forwarded by said peer to other peers.

24. The apparatus according to claim 23 , wherein said memory further includes at least one forwarding queue and said processor is further configured to store in said at least one forwarding queue forwarding-content to other peers in said peer-to-peer network.

25. The apparatus according to claim 24 , wherein said processor is configured to send a message requesting for forwarding-content to said content server when a size of said at least one content forwarding queue is below a given threshold.

26. The apparatus according to claim 25 , wherein said at least one forwarding queue comprises one content forwarding queue for each of other peers and said size of said at least one content forwarding queue is determined as an average queue size of said at least one content forwarding queue.

27. The apparatus according to claim 25 , wherein said processor is configured to send said message requesting for forwarding-content to said content server when said at least one content forwarding queue is empty.

28. The apparatus according to claim 23 , wherein said transmitted forwarding-content is received by said other peers as non-forwarding-content.

29. The apparatus according to claim 23 , wherein

said memory further includes a recovery message queue and said processor is further configured to store in said recovery message queue requests from peers to recover missing content, and

said memory further includes a recovery content queue and said processor is further configured to store in said recovery content queue missing content requested by a peer in response to a request in said recovery message queue sent by said peer.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2020
From: THOMSON LICENSING S.A.S.
To: MAGNOLIA LICENSING LLC
Reel/Frame 053570/0237 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2014
From: GUO, YANG; LIANG, CHAO; LIU, YONG
To: THOMSON LICENSING
Reel/Frame 032627/0603 →
Continuity (2)
Continuation 12452033 · Dec 11, 2009
Related Publication 20140195612A1 · Jul 10, 2014
Cited By (1)
US 12,335,337