Patent ID: 8407280

Claim:
A method of data streaming over a Peer-to-Peer network including agents, each one of the agents being configurable as at least one of: a client agent to receive data and a server agent to stream data, the method comprising: assigning, responsive of a client agent request for a specified file, a set of sub streams, wherein the set of substreams comprises a plurality of server agents, wherein each one of the plurality of server agents is to partition the specified file into frames whose size is configured based on the specified file, wherein the sub streams set comprises a plurality of active server agents and a plurality of on-hold server agents, wherein the plurality of active server agents and the plurality of on-hold server agents are adapted to minimize a number of excessive packets sent to the client agent; managing the set of sub streams asynchronously such that each one of the plurality of server agent is adapted to stream frames independently of other server agents comprising the set of sub streams; employing a rate-based congestion control for each stream in the set of sub streams, further comprising: determining congestion on an uplink channel for at least one of the plurality of server agents by examining packet loss data reports from concurrent send sessions to determine whether to lower send rates of data packets sent from at least one of the plurality server agents and/or remove a serving session associated with at least one of the plurality of server agents, determining congestion on a downlink channel of the client agent by examining packet loss of more than one substream in the set of substreams to determine whether to increase a send interval existing between data packets sent from each of the plurality of server agents; and wherein the rate-based congestion control is adapted to maintain a bit rate, associated with the set of sub streams, above a specified threshold.