Patent ID: 8082290

Claim:
A method comprising: receiving, from a first peer in a network, a request for a list of one or more candidate peers from which the first peer can obtain a resource over the network; obtaining the list of one or more candidate peers from memory or a remote device in response to the request for the list of one or more candidate peers; determining a set of costs based on the list of one or more candidate peers; refining the list of one or more candidate peers to obtain a subset list of the candidate peers from which the first peer can obtain the resource based on the set of costs; and sending to, the first peer in the network, the subset list of the candidate peers from which the first peer can obtain the resource, wherein determining the set of costs includes: determining a first point-of-presence for the first peer by identifying the first point-of-presence corresponding to the first peer in one or more point-of-presence tables; obtaining first one or more cost parameters, in the one or more point-of-presence tables, that are associated with the first point-of-presence; determining a point-of-presence and one or more cost parameters associated with the point of presence, for each peer in the list, by identifying the point-of-presence corresponding to the peer in the one or more point-of-presence tables; and determining a cost for each peer in the list based on the first one or more cost parameters and the one or more cost parameters associated with the determined point-of-presence for the peer, wherein the cost includes a cost of communication between the point-of-presence to which the peer belongs and the first point-of-presence.