IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0449663
(2012-04-18)
|
등록번호 |
US-8671163
(2014-03-11)
|
발명자
/ 주소 |
- Luby, Michael
- Vainish, Ronen
- Rasmussen, Lars
- Kushi, David
- Simu, Serban
- Perrig, Adrian
- Attias, Roberto
- Walfish, Michael
- Hernek, Diane
- Byers, John
|
출원인 / 주소 |
|
인용정보 |
피인용 횟수 :
16 인용 특허 :
79 |
초록
▼
A method of serving content to multiple clients via a network is provided. Independent sessions with each of a plurality of clients are maintained, wherein the number of clients in the plurality of clients can vary over time, and wherein the start of each session and the end of each session can be i
A method of serving content to multiple clients via a network is provided. Independent sessions with each of a plurality of clients are maintained, wherein the number of clients in the plurality of clients can vary over time, and wherein the start of each session and the end of each session can be independent of the start and end of other sessions. A stream of packet payloads is received, each packet payload of the stream of packet payloads including data generated from the content, wherein each packet payload in at least a subset of the stream of packet payloads includes a different set of data. Each packet payload in the stream of packet payloads is transmitted to each client of the plurality of clients in corresponding packets, wherein the packet payload transmitted to a client at any particular time is independent of the state of the corresponding session.
대표청구항
▼
1. A method of serving a content item from a content server to multiple clients via a network, the method comprising: maintaining concurrent independent sessions between a content server and each of a plurality of clients for conveying the content item to each of the plurality of clients, wherein th
1. A method of serving a content item from a content server to multiple clients via a network, the method comprising: maintaining concurrent independent sessions between a content server and each of a plurality of clients for conveying the content item to each of the plurality of clients, wherein the number of clients in the plurality of clients can vary over time, and wherein the start of at least one session and the end of at least one session is independent of the start and end of other sessions;receiving a stream of packet payloads by the content server, each packet payload of the stream of packet payloads including a set of output symbols encoded with data generated from the content item, wherein each packet payload in at least a subset of the stream of packet payloads includes output symbols distinct from any output symbols included in any other packet payload of the stream of packet payloads; andtransmitting concurrently from the content server each packet payload of the stream of packet payloads to each client of the plurality of clients in corresponding packets, wherein each packet payload transmitted concurrently at any particular time to some or all of the plurality of clients is independent of which packet payloads had been previously correctly received by various ones of the clients, and wherein each of the plurality of clients is capable of reconstructing the content item after correctly receiving a number of different output symbols sufficient in quantity to reconstruct the data generated from the content item to a desired accuracy from those different output symbols. 2. The method of claim 1, wherein the data generated from the content item comprises an ordered set of input symbols, wherein each packet payload of the stream of packet payloads includes at least one output symbol, wherein output symbols are generated from input symbols, and wherein a client can regenerate the ordered set of input symbols to a desired accuracy from the output symbols included in a set of packet payloads received by the client. 3. The method of claim 2, wherein the set of packet payloads received by the client can be received via a plurality of distinct sessions. 4. The method of claim 1, wherein the packets are unicast packets. 5. The method of claim 4, wherein the unicast packets are UDP unicast packets or TCP packets. 6. The method of claim 1, further comprising maintaining a list of the plurality of clients. 7. The method of claim 6, further comprising: receiving, via the network, either a first message from a new client not included in the list requesting to be added to the list, or a second message from an existing client included in the list requesting to be removed from the list;adding the new client to the list if the first message was received; andremoving the existing client from the list if the second message was received. 8. An apparatus for serving content to multiple clients via a network, the apparatus comprising: a client manager coupled to the network that maintains concurrent independent sessions with each of a plurality of clients;a buffer coupled to the network to receive a stream of packet payloads, each packet payload of the stream of packet payloads including a set of output symbols encoded with data generated from a content item, wherein each packet payload in at least a subset of the stream of packet payloads includes output symbols distinct from any output symbols included in any other packet payload of the stream of packet payloads;a replication engine coupled to the buffer that, for each packet payload, generates a plurality of packets that include the packet payload, each packet of the plurality of packets corresponding to one of the plurality of clients; anda transmitter coupled to the replication engine that receives the packets and transmits concurrently the packets to the corresponding clients via the network;wherein each packet payload transmitted concurrently at any particular time to some or all of the plurality of clients is independent of which packet payloads had been previously correctly received by various ones of the clients, and wherein each of the plurality of client is capable of reconstructing the content item after correctly receiving a number of different output symbols sufficient in quantity to reconstruct the data to a desired accuracy from those different output symbols. 9. The apparatus of claim 8, further comprising a memory coupled to the client manager for maintaining a list of the plurality of clients. 10. The apparatus of claim 9, further comprising a connection manager coupled with the network and with the memory, the connection manager configured to receive a request to add a new client to the list and configured to add the new client to the list, and configured to receive a request to remove an existing client from the list and configured to remove the existing client from the list. 11. The apparatus of claim 8, wherein the client manager is configured to receive a packet lost message from one of the plurality of clients, the packet lost message indicating the one of the plurality of clients did not receive a packet that included one of the plurality of packet payloads, and, in response to the packet lost message, cause the replication engine to generate another packet to replace the lost packet, wherein the payload of the another packet includes output symbols distinct from any output symbols included in the packet payload that the client did not receive. 12. The apparatus of claim 8, wherein the client manager maintains concurrent independent channel connections within a session with each of a first plurality of clients and each of a second plurality of clients; wherein the stream of packet payloads includes a first stream of packet payloads on a first channel and a second stream of packet payloads on a second channel, wherein each packet payload of the first stream of packet payloads includes data comprising a first subset of the content item to be transferred to the first plurality of clients, wherein each packet payload of the second stream of packet payloads includes data comprising a second subset of the content item to be transferred to the second plurality of clients; andwherein the replication engine, for each packet payload in the first stream, generates a first plurality of packets that include the packet payload, each packet of the first plurality of packets corresponding to one of the first plurality of clients, and wherein, for each packet payload in the second stream, generates a second plurality of packets that include the packet payload, each packet of the second plurality of packets corresponding to one of the second plurality of clients. 13. A computer-readable medium, for use with a content server capable of serving content to multiple clients via a network, the computer-readable medium comprising non-transitory storage for program code, executable, directly or indirectly, by a content server, the non-transitory storage having stored thereon: program code for maintaining concurrent independent sessions between a content server and each of a plurality of clients for conveying a content item to each of the plurality of clients, wherein the number of clients in the plurality of clients can vary over time, and wherein the start of at least one session and the end of at least one session is independent of the start and end of other sessions;program code for receiving a stream of packet payloads by the content server, each packet payload of the stream of packet payloads including a set of output symbols encoded with data generated from the content item, wherein each packet payload in at least a subset of the stream of packet payloads includes output symbols distinct from any output symbols included in any other packet payload of the stream of packet payloads; andprogram code for transmitting concurrently from the content server each packet payload of the stream of packet payloads to each client of the plurality of clients in corresponding packets, wherein each packet payload transmitted concurrently at any particular time to some or all of the plurality of clients is independent of which packet payloads had been previously correctly received by various ones of the clients, and wherein each of the plurality of clients is capable of reconstructing the content item after correctly receiving a number of different output symbols sufficient in quantity to reconstruct the data generated from the content item to a desired accuracy from those different output symbols. 14. The computer-readable medium of claim 13, wherein the non-transitory storage further has stored thereon program code for maintaining a list of the plurality of clients. 15. The computer-readable medium of claim 14, wherein the non-transitory storage further has stored thereon: program code for receiving, via the network, either a first message from a new client not included in the list requesting to be added to the list, or a second message from an existing client included in the list requesting to be removed from the list;program code for adding the new client to the list if the first message was received; andprogram code for removing the existing client from the list if the second message was received. 16. The computer-readable medium of claim 13, wherein the program code for maintaining concurrent independent sessions with each of the plurality of clients includes program code for maintaining concurrent independent channel connections within a session with each of a first plurality of clients and with each of a second plurality of clients; wherein the program code for receiving a stream of packet payloads includes program code for receiving a first stream of packet payloads on a first channel and a second stream of packet payloads on a second channel, wherein each packet payload of the first stream of packet payloads includes data comprising a first subset of the content to be transferred to the first plurality of clients, wherein each packet payload of the second stream of packet payloads includes data comprising a second subset of the content to be transferred to the second plurality of clients; andwherein the program code for transmitting concurrently each packet payload of the stream of packet payloads includes program code for transmitting concurrently each packet payload in the first stream of packet payloads to each client of the first plurality of clients in corresponding packets, and transmitting concurrently each packet payload in the second stream of packet payloads to each client of the second plurality of clients in corresponding packets. 17. The computer-readable medium of claim 16, wherein the first subset of the content and the second subset of the content are different subsets of the content. 18. The computer-readable medium of claim 13, wherein the non-transitory storage further has stored thereon: program code for maintaining a multicast session, wherein a plurality of multicast clients can join the multicast session, wherein the number of the plurality of multicast clients joined to the multicast session can vary over time; andprogram code for transmitting concurrently, via a multicast network, each packet payload of the stream of packet payloads to each multicast client of the plurality of multicast clients in corresponding multicast packets. 19. An apparatus for serving a content item from a content server to multiple clients via a network, the apparatus comprising: means for maintaining concurrent independent sessions between a content server and each of a plurality of clients for conveying the content item to each of the plurality of clients, wherein the number of clients in the plurality of clients can vary over time, and wherein the start of at least one session and the end of at least one session is independent of the start and end of other sessions;means for receiving a stream of packet payloads by the content server, each packet payload of the stream of packet payloads including a set of output symbols encoded with data generated from the content item, wherein each packet payload in at least a subset of the stream of packet payloads includes output symbols distinct from any output symbols included in any other packet payload of the stream of packet payloads; andmeans for transmitting concurrently from the content server each packet payload of the stream of packet payloads to each client of the plurality of clients in corresponding packets, wherein each packet payload transmitted concurrently at any particular time to some or all of the plurality of clients is independent of which packet payloads had been previously correctly received by various ones of the clients, and wherein each of the plurality of clients is capable of reconstructing the content item after correctly receiving a number of different output symbols sufficient in quantity to reconstruct the data generated from the content item to a desired accuracy from those different output symbols. 20. An apparatus for serving a content item to multiple clients via a network, the network including a multicast network, the apparatus comprising: a client manager coupled to the network that maintains concurrent independent sessions with each of a plurality of unicast clients, wherein the start of at least one session and the end of at least one session is independent of the start and end of other sessions;a storage device coupled to the network that stores the content item to be served;an encoding system coupled to the storage device that generates a stream of packet payloads, each packet payload of the stream of packet payloads including a set of output symbols encoded with data comprising the content item to be served to the plurality of unicast clients and a plurality of multicast clients, wherein each packet payload in at least a subset of the stream of packet payloads includes output symbols distinct from any output symbols included in any other packet payload of the stream of packet payloads, wherein at least a first subset of the packet payloads are included in multicast packets;a multicast transmitter coupled with the encoding generator and the network that receives the multicast packets from the encoding system and transmits concurrently the multicast packets to a plurality of multicast clients via the multicast network;a replication engine coupled to the encoding system that receives at least a second subset of the packet payloads in the stream of packet payloads, and that, for each received packet payload, generates a plurality of unicast packets that include the received packet payload, each unicast packet of the plurality of unicast packets corresponding to one of the plurality of unicast clients; anda unicast transmitter coupled to the replicator engine that receives the unicast packets and transmits concurrently the packets to the corresponding unicast clients via the network;wherein each multicast packet or unicast packet transmitted concurrently at any particular time to some or all of the plurality of multicast clients or the plurality of unicast clients is independent of which multicast packet or unicast packet had been previously correctly received by various ones of the multicast clients or unicast clients, and wherein each of the plurality of multicast clients or unicast clients is capable of reconstructing the content item after correctly receiving a number of different output symbols sufficient in quantity to reconstruct the data to a desired accuracy from those different output symbols.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.