Patent ID: 7725597

Claim:
A method of selecting a neighboring node for a first node in a distributed hash table network, the method comprising: determining a desired key value for a node finger table entry; requesting a set of candidate neighboring nodes; determining a network address translation type of each of the set of candidate neighboring nodes; determining a ranking of the set of candidate neighboring nodes based at least in part on a restrictiveness of the network address translation (NAT) type of each of the set of candidate neighboring nodes, wherein a candidate neighboring node with a less restrictive NAT type is ranked higher than a similar candidate neighboring node with a more restrictive NAT type; selecting one of the set of candidate neighboring nodes based on the ranking; attempting to establish a connection with the selected one of the set of candidate neighboring nodes; and adding a reference to the selected one of the set of candidate neighboring nodes to the node finger table entry in response to the connection being successfully established.