Patent ID: 7739390

Claim:
An apparatus for optimizing the transfer time of files in a peer-to-peer network, comprising: a requesting peer that desires to transfer a file from a group of supplying peers; the requesting peer being configured to: create a list of segments available of the file to be transferred from each of the supplying peers; order the list in order of increasing segment size available; group the supplying peer group into groups based on available segments; assign segments of the file to transfer and a corresponding transfer time to each of the members of the group of supplying peers, where the assigning comprises: beginning with the group of supplying peers having the largest portion of the file to be transferred, assigning transfer of the end of the file: assigning a next segment by determining how much of the next segment can be downloaded from the group of supplying peers; if an assignment would result in a gap, placing members of the group of supplying peers with a larger segment size back into the pool of available peers; and continuing the assigning until all segments have been assigned; and transfer in parallel the assigned segments from the group of supplying peers to the requesting peer.