IP Library Granted Patent US 7,725,597
Granted Patent B2
US 7,725,597 · App. 11/839,241 · Granted May 25, 2010

Network address translation type for flexible neighbor selection in overlay networks

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,725,597
App. No.
11/839,241
Granted
May 25, 2010
Kind
B2
Abstract

An overlay network uses flexible neighbor selection based on network address translation (NAT) to define routing between nodes. The NAT type is used as a flexible neighbor selection criteria, either alone or in conjunction with other criteria. A method of selecting a neighboring node for a first node in a distributed hash table network includes determining a desired key value for a node finger table entry and requesting a set of candidate neighboring nodes near this desired key value. The method determines a network address translation type of each of the set of candidate neighboring nodes and ranks the set of candidate neighboring nodes accordingly. The method selects one of the set of candidate neighboring nodes based on the ranking. The NAT types of candidate neighboring nodes are determined by sending probe messages or from data received from a central overlay network server.

Claims (57)

1. 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.

2. The method of claim 1 , further comprising:

determining a network address translation type of the first node, wherein the ranking is based at least in part on the network address translation type of the first node.

3. The method of claim 1 , wherein requesting a set of candidate neighboring nodes comprises requesting the set of candidate neighboring nodes from a central overlay network server.

4. The method of claim 1 , wherein the set of candidate neighboring nodes have key values less than or equal to the desired key value.

5. The method of claim 4 , wherein the set of candidate neighboring nodes have key values greater than a key value of a second node finger table entry.

6. The method of claim 1 , wherein determining a network address translation type of each of the set of candidate neighboring nodes comprises:

sending at least one probe message to each of the set of candidate neighboring nodes; and

analyzing network traffic associated with the probe messages to determine a network address translation type for each of the set of candidate neighboring nodes.

7. The method of claim 1 , wherein determining a network address translation type of each of the set of candidate neighboring nodes comprises:

receiving data from a central overlay network server identifying a network address translation type of each of the set of candidate neighboring nodes.

8. The method of claim 1 , wherein the network address translation type is selected from a set of network address translation types, wherein one of the set of network address translation types includes an open network connection without network address translation.

9. The method of claim 1 , wherein the network address translation type is selected from a set of network address translation types, wherein one of the set of network address translation types includes a full cone network address translation.

10. The method of claim 1 , wherein the network address translation type is selected from a set of network address translation types, wherein one of the set of network address translation types includes a restricted cone network address translation.

11. The method of claim 1 , wherein the network address translation type is selected from a set of network address translation types, wherein one of the set of network address translation types includes a port restricted cone network address translation.

12. The method of claim 1 , wherein the network address translation type is selected from a set of network address translation types, wherein one of the set of network address translation types includes a symmetric network address translation.

13. The method of claim 1 , wherein the ranking is based at least in part on round trip time between the first node and each of the set of candidate neighboring nodes.

14. The method of claim 1 , wherein the ranking is based at least in part on node capabilities of each of the set of candidate neighboring nodes.

15. The method of claim 1 , wherein the ranking is based at least in part on node bandwidth of each of the set of candidate neighboring nodes.

16. The method of claim 1 , wherein the ranking is based at least in part on network quality of service of each of the set of candidate neighboring nodes.

17. The method of claim 1 , wherein the ranking is based at least in part on security of each of the set of candidate neighboring nodes.

18. The method of claim 1 , wherein determining a ranking of the set of candidate neighboring nodes further comprises evaluating a combination of criteria for each of the set of candidate nodes, the combination of criteria including the NAT type and at least one of a round trip time, a node stability, a device capability, a network bandwidth, a network quality of service, and security information.

19. A computer readable storage medium including instructions adapted to direct a processor to perform an operation 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.

20. The computer readable storage medium of claim 19 further comprising:

determining a network address translation type of the first node, wherein the ranking is based at least in part on the network address translation type of the first node.

21. The computer readable storage medium of claim 19 , wherein requesting a set of candidate neighboring nodes comprises requesting the set of candidate neighboring nodes from a central overlay network server.

22. The computer readable storage medium of claim 19 , wherein the set of candidate neighboring nodes have key values less than or equal to the desired key value.

23. The computer readable storage medium of claim 22 , wherein the set of candidate neighboring nodes have key values greater than a key value of a second node finger table entry.

24. The computer readable storage medium of claim 19 , wherein determining a network address translation type of each of the set of candidate neighboring nodes comprises:

sending at least one probe message to each of the set of candidate neighboring nodes; and

analyzing network traffic associated with the probe messages to determine a network address translation type for each of the set of candidate neighboring nodes.

25. The computer readable storage medium of claim 19 , wherein determining a network address translation type of each of the set of candidate neighboring nodes comprises:

receiving data from a central overlay network server identifying a network address translation type of each of the set of candidate neighboring nodes.

26. The computer readable storage medium of claim 19 , wherein the network address translation type is selected from a set of network address translation types, wherein one of the set of network address translation types includes an open network connection without network address translation.

27. The computer readable storage medium of claim 19 , wherein the network address translation type is selected from a set of network address translation types, wherein one of the set of network address translation types includes a full cone network address translation.

28. The computer readable storage medium of claim 19 , wherein the network address translation type is selected from a set of network address translation types, wherein one of the set of network address translation types includes a restricted cone network address translation.

29. The computer readable storage medium of claim 19 , wherein the network address translation type is selected from a set of network address translation types, wherein one of the set of network address translation types includes a port restricted cone network address translation.

30. The computer readable storage medium of claim 19 , wherein the network address translation type is selected from a set of network address translation types, wherein one of the set of network address translation types includes a symmetric network address translation.

31. The computer readable storage medium of claim 19 , wherein the ranking is based at least in part on round trip time between the first node and each of the set of candidate neighboring nodes.

32. The computer readable storage medium of claim 19 , wherein the ranking is based at least in part on node capabilities of each of the set of candidate neighboring nodes.

33. The computer readable storage medium of claim 19 , wherein the ranking is based at least in part on node bandwidth of each of the set of candidate neighboring nodes.

34. The computer readable storage medium of claim 19 , wherein the ranking is based at least in part on network quality of service of each of the set of candidate neighboring nodes.

35. The computer readable storage medium of claim 19 , wherein the ranking is based at least in part on security of each of the set of candidate neighboring nodes.

Assignments (4)
CHANGE OF NAME Recorded Jul 1, 2016
From: SONY COMPUTER ENTERTAINMENT INC.
To: SONY INTERACTIVE ENTERTAINMENT INC.
Reel/Frame 039239/0356 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2011
From: SONY NETWORK ENTERTAINMENT PLATFORM INC.
To: SONY COMPUTER ENTERTAINMENT INC.
Reel/Frame 027481/0351 →
CHANGE OF NAME Recorded Dec 26, 2011
From: SONY COMPUTER ENTERTAINMENT INC.
To: SONY NETWORK ENTERTAINMENT PLATFORM INC.
Reel/Frame 027445/0657 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2007
From: TAKEDA, YUTAKA; BERKEY, HOWARD L.; WHITE, PAYTON R.; VASS, ATTILA
To: SONY COMPUTER ENTERTAINMENT INC.
Reel/Frame 019698/0724 →