Patent ID: 7512943

Claim:
At a computer system in a computer network including one or more networked computers a method of caching and sharing files, the method comprising acts of: building a peer list comprising a listing of potential peer servers from among the one or more networked computers, the peer list including no more than a predetermined number of potential peer servers, wherein building a peer list comprises: (a) sending a solicitation request to one or more potential peers including an indication of a number of peers desired; (b) receiving message replies from potential peers, wherein the potential peers wait for a random interval of time, while listening for multicast replies from other potential peers, and wherein the potential peers detect responses from the other potential peers and determine the number of responses from other potential peers and only send replies if the potential peers have not detected the number of responses corresponding to the number of peers desired, from other potential peers, and do not send replies if they have detected the number of responses from other potential peers indicated in the number of peers desired; (c) based on messages received from potential peers, adding potential peers that sent replies as potential servers to the peer list up to the predetermined number based on messages received from the one or more networked computers, and wherein potential servers are added to the peer list according to logical closeness of the potential servers to the computer system; (d) removing potential servers from the peer list; and (e) repeating acts (a-c) when a predetermined number of potential servers have been removed from the peer list; querying potential peer servers in the peer list for a file or portion of a file; receiving a message from a peer server in the peer list that the peer server has the file or portion of a file available for download; and downloading the file or portion of a file from the peer server.