System and method for distributing streaming content through cooperative networking
First Claim
1. A computer-readable storage medium having computer-executable instructions for a network server to perform steps for distributing streaming media content over a network to a plurality of clients that have requested to receive the streaming media content, comprising:
- forming at least first and second distinct distribution trees, each distribution tree having the server as its root and having as its nodes the clients of the plurality of clients, wherein each client of the plurality of clients serves as a node in the first distinct distribution tree and serves as a node in the second distinct distribution tree;
receiving a request from a new client for the streaming media content; and
selecting a parent node based on the proximity in terms of network distance from the parent node to the new client in each of the distribution trees for the client from which the new client is to receive a corresponding sub-stream, and wherein each client is assigned a random position in the first and second distinct distribution trees and has a random set of ancestors in each of the first and second distinct distribution trees;
dividing the streaming media content into at least first and second sub-streams, wherein dividing includes performing multiple description coding based on layered encoding of the streaming media content, minimum distance separable coding, and priority encoding transmission, wherein the step of dividing includes partitioning the streaming media content into groups of frames, and encoding each group of frames into a plurality of packets each to be included in a corresponding sub-stream; and
transmitting the first and second sub-streams of the streaming media content down the respective first and second distinct distribution trees to a client that has requested to receive the streaming media content.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for distributing streaming content data from a server to multiple clients enables the server to handle transient surges of requests by having the clients cooperate with the server and other clients to distribute content, thereby alleviating the load on the server. The server divides the streaming content into multiple sub-streams (e.g., by using multiple description coding), and constructs multiple distribution trees with itself at the root and each client as a node in each of the trees. Each sub-stream is transmitted down a corresponding one of the distribution trees. Clients that receive sub-streams from its parent nodes in the distribution trees in turn forward the sub-streams to their child nodes in the trees.
52 Citations
17 Claims
-
1. A computer-readable storage medium having computer-executable instructions for a network server to perform steps for distributing streaming media content over a network to a plurality of clients that have requested to receive the streaming media content, comprising:
-
forming at least first and second distinct distribution trees, each distribution tree having the server as its root and having as its nodes the clients of the plurality of clients, wherein each client of the plurality of clients serves as a node in the first distinct distribution tree and serves as a node in the second distinct distribution tree;
receiving a request from a new client for the streaming media content; and
selecting a parent node based on the proximity in terms of network distance from the parent node to the new client in each of the distribution trees for the client from which the new client is to receive a corresponding sub-stream, and wherein each client is assigned a random position in the first and second distinct distribution trees and has a random set of ancestors in each of the first and second distinct distribution trees;dividing the streaming media content into at least first and second sub-streams, wherein dividing includes performing multiple description coding based on layered encoding of the streaming media content, minimum distance separable coding, and priority encoding transmission, wherein the step of dividing includes partitioning the streaming media content into groups of frames, and encoding each group of frames into a plurality of packets each to be included in a corresponding sub-stream; and transmitting the first and second sub-streams of the streaming media content down the respective first and second distinct distribution trees to a client that has requested to receive the streaming media content. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method of distributing streaming media content over a network from a server to a plurality of clients that have requested to receive the streaming media content, comprising:
-
forming, by the server, at least first and second distinct distribution trees, each distribution tree having the server as its root and having as its nodes the clients of the plurality of clients, wherein each client of the plurality of clients serves as a node in the first distinct distribution tree and serves as a node in the second distinct distribution tree; and
receiving a request from a new client for the streaming media content and selecting a parent node based on the proximity in terms of network distance from the parent node to the new client in each of the distribution trees for the client from which the new client is to receive a corresponding sub-stream, wherein each client is assigned a random position in the first and second distinct distribution trees and has a random set of ancestors in each of the first and second distinct distribution trees;dividing, by the server, the streaming media content into at least first and second sub-streams, wherein the step of dividing includes partitioning the streaming media content into groups of frames, and encoding each group of frames into a plurality of packets each to be included in a corresponding sub-stream, wherein dividing includes performing multiple description coding based on layered encoding of the streaming media content, minimum distance separable coding, and priority encoding transmission; transmitting, by the server, the first and second sub-streams down the respective first and second distinct distribution trees; receiving, by each client, the first and second sub-streams from its parent nodes in the respective first and second distinct distribution trees; reconstructing, by said each client, the streaming media content from the received first and second sub-streams; and forwarding, by each client that has child nodes in the distribution trees, sub-streams received by said each client through the distribution trees to the child nodes in the respective distribution trees. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A method for distributing streaming media content over a network from a server to a plurality of clients that have requested to receive the streaming media content, comprising:
-
forming at least first and second distinct distribution trees, each distribution tree having the server as its root and having as its nodes the clients of the plurality of clients, wherein each client of the plurality of clients serves as a node in the first distinct distribution tree and serves as a node in the second distinct distribution tree;
receiving a request from a new client for the streaming media content; and
selecting a parent node based on the proximity in terms of network distance from the parent node to the new client in each of the distribution trees for the client from which the new client is to receive a corresponding sub-stream, and wherein each client is assigned a random position in the first and second distinct distribution trees and has a random set of ancestors in each of the first and second distinct distribution trees;dividing the streaming media content into at least first and second sub streams, wherein the step of dividing includes partitioning the streaming media content into groups of frames, and encoding each group of frames into a plurality of packets each to be included in a corresponding sub-stream, wherein dividing includes performing multiple description coding based on layered encoding of the streaming media content, minimum distance separable coding and priority encoding transmission; and transmitting the first and second sub streams of the streaming media content down the respective first and second distinct distribution trees.
-
Specification