Patent ID: 8370513

Claim:
A method for downloading streaming data comprising: establishing connections between a user client and a plurality of nodes, the plurality of nodes comprising a first node and a second node; dividing streaming data into a plurality of blocks for sequential download, the blocks comprising a first block and a second block; dividing the first block into a plurality of sub blocks; determining first sub blocks of the first block to download from the first node and second sub blocks of the first block to download from the second node; sending a request to the nodes to download determined ones of the sub blocks to the user client, in parallel; monitoring the downloading of the sub blocks from the nodes to the user client, through the established connections; determining whether a download of the second sub blocks from the second node is finished; determining an un-downloaded portion of the first sub blocks; and maintaining a download of a first portion of the un-downloaded portion of the first sub blocks from the first node and redistributing a second portion of the un-downloaded portion of the first sub blocks to the second node in response to a determination that the download of the second sub blocks from the second node is finished, a ratio of the first portion of the un-downloaded portion to the second portion of the un-downloaded portion being determined according to a ratio of the connection state valuation index for the first node to the connection state valuation index for the second node, wherein the sending, the monitoring, and the redistributing are repeated for downloading sub blocks included in the second block, when downloading of the first block is completed, and wherein the ratio of the connection state valuation index for the first node to the connection state valuation index for the second node is determined based on at least one of a ratio between a round trip time between the user client and the first node and a round trip time between the user client and the second node and a ratio between an average download speed from the first node to the user client and an average download speed from the second node to the user client.