IP Library Granted Patent US 7,596,633
Granted Patent B2
US 7,596,633 · App. 10/701,298 · Granted Sep 29, 2009

Island recovery in a peer-to-peer relay network

Assignee: Sony Computer Entertainment America Inc.
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,596,633
App. No.
10/701,298
Granted
Sep 29, 2009
Kind
B2
Abstract

Methods and apparatus for implementing peer-to-peer relay. In one implementation, a method of island recovery in a peer system in a peer-to-peer relay network includes: detecting the presence of two or more islands in a peer-to-peer relay network, wherein each island includes at least one peer system; joining two detected islands by connecting a peer system in a first island to a peer system in a second island; wherein peer systems in different islands are not connected.

Claims (75)

1. A method, executed by a processor, of island recovery in a peer system in a peer-to-peer relay network, comprising:

tracking all connections among peer systems in the peer-to-peer relay network;

detecting a total number of islands in the peer-to-peer relay network by sequentially detecting and marking every peer system in the peer-to-peer relay network,

wherein the detecting step detects whether an unmarked peer system has a peer-to-peer connection with any of existing islands, and when the unmarked peer system has no peer-to-peer connection with any of the existing islands, the peer system is marked with an identifier indicating a new island and is treated as a starting peer of the new island, and

wherein each island includes at least one peer system; and

joining two detected islands by connecting a peer system in a first island to a peer system in a second island through a peer-to-peer connection,

wherein the peer system in a first island sends to the peer system in a second island a force connection message that, if the peer system in the second island does not have an available peer-to-peer connection, causes the peer system in the second island to select an existing peer-to-peer connection and close the selected existing peer-to-peer connection, the peer system in the first island and the peer system in the second island being randomly selected, and

wherein peer systems in the first island are not connected with peer systems in the second island through a peer-to-peer connection before joining the first island and the second island.

2. The method of claim 1 , wherein:

detecting step includes:

setting an island counter to 1;

(a) selecting a first unmarked peer system as a starting peer system,

(b) marking peer systems connected to the first unmarked peer system according to the value of said island counter,

(c) determining if a second unmarked peer system in said peer-to-peer relay network remains,

(d) if the second unmarked peer system remains, incrementing said island counter;

repeating steps (a) through (d) until each the peer system in said peer-to-peer relay network has been marked; and

determining the number of islands present using the current value of said island counter.

3. The method of claim 1 , wherein:

joining two detected islands includes:

selecting a first peer system from a first detected island and a second peer system from a second detected island; and

causing the first peer system in the first detected island to open a connection to the second peer system in the second detected island.

4. The method of claim 1 , wherein:

each peer system in said peer-to-peer relay network stores a connection limit defining a number of other peer systems up to which that peer system is permitted to connect, and

each peer system stores a set of one or more relay rules for relaying data to other peer systems connected to that peer system.

5. The method of claim 1 , wherein: the data relayed by peer systems is update data for a network environment.

6. The method of claim 1 , wherein: the data relayed by peer systems is update data for an online game.

7. The method of claim 1 , wherein: at least one peer system is a network-enabled game console.

8. The method of claim 1 , wherein: at least two peer systems are connected through the Internet.

9. A server computer in a peer-to-peer relay network, comprising:

means for tracking all connections among peer systems in the peer-to-peer relay network;

means for detecting a total number of islands in a peer-to-peer relay network by sequentially detecting and marking every peer system in the peer-to-peer relay network,

wherein the detecting means detects whether an unmarked peer system has a peer-to-peer connection with any of existing islands, and when the unmarked peer system has no peer-to-peer connection with any of the existing islands, the peer system is marked with an identifier indicating a new island and is treated as a starting peer of the new island, and

wherein each island includes at least one peer system; and

means for joining two detected islands by connecting a peer system in a first island to a peer system in a second island through a peer-to-peer connection,

wherein the peer system in a first island sends to the peer system in a second island a force connection message that, if the peer system in the second island does not have an available peer-to-peer connection, causes the peer system in the second island to select an existing peer-to-peer connection and close the selected existing peer-to-peer connection, the peer system in the first island and the peer system in the second island being randomly selected, and

wherein peer systems in the first island are not connected with peer systems in the second island through a peer-to-peer connection before joining the first island and the second island.

10. The server of claim 9 , wherein:

said means for detecting a total number of islands includes:

means for setting an island counter to 1, wherein the means for setting includes:

(a) selecting a first unmarked peer system as a starting peer system,

(b) marking peer systems connected to the first unmarked peer system according to the value of said island counter,

(c) determining if a second unmarked peer system in said peer-to-peer relay network remains,

(d) if a second unmarked peer system remains, incrementing said island counter;

means for repeating steps (a) through (d) until each peer system in said peer-to-peer relay network has been marked; and

means for determining the number of islands present using the current value of said island counter.

11. The server of claim 9 , wherein:

said means for joining two detected islands includes:

means for selecting a first peer system from a first detected island and a second peer system from a second detected island; and

means for causing the first peer system in the first detected island to open a connection to the second peer system in the second detected island.

12. The server of claim 9 , wherein:

each peer system in said peer-to-peer relay network stores a connection limit defining a number of other peer systems up to which that peer system is permitted to connect, and each peer system stores a set of one or more relay rules for relaying data to other peer systems connected to that peer system.

13. A computer program, stored on a storage medium, for use in island recovery in a peer-to-peer relay network, the program comprising executable instructions that cause a computer to:

track all connections among peer systems in the peer-to-peer relay network;

detect a total number of islands in the peer-to-peer relay network by sequentially detecting and marking every peer system in the peer-to-peer relay network,

wherein the detecting step detects whether an unmarked peer system has a peer-to-peer connection with any of existing islands, and when the unmarked peer system has no peer-to-peer connection with any of the existing islands, the peer system is marked with an identifier indicating a new island and is treated as a starting peer of the new island, and

wherein each island includes at least one peer system; and

join two detected islands by connecting a peer system in a first island to a peer system in a second island through a peer-to-peer connection,

wherein the peer system in a first island sends to the peer system in a second island a force connection message that, if the peer system in the second island does not have an available peer-to-peer connection, causes the peer system in the second island to select an existing peer-to-peer connection and close the selected existing peer-to-peer connection, the peer system in the first island and the peer system in the second island being randomly selected, and

wherein peer systems in the first island are not connected with peer systems in the second island through a peer-to-peer connection before joining the first island and the second island.

14. The computer program of claim 13 , wherein:

the detecting step includes:

setting an island counter to 1;

(a) selecting a first unmarked peer system as a starting peer system,

(b) marking peer systems connected to the first unmarked peer system according to the value of said island counter,

(c) determining if a second unmarked peer system in said peer-to-peer relay network remains,

(d) if a second unmarked peer system remains, incrementing said island counter;

repeating steps (a) through (d) until each peer system in said peer-to-peer relay network has been marked; and

determining the number of islands present using the current value of said island counter.

15. The computer program of claim 13 , wherein:

joining two detected islands includes:

selecting a first peer system from a first detected island and a second peer system from a second detected island; and

causing the first peer system in the first detected island to open a connection to the second peer system in the second detected island.

16. The computer program of claim 13 , wherein:

each peer system in said peer-to-peer relay network stores a connection limit defining a number of other peer systems up to which that peer system is permitted to connect, and

each peer system stores a set of one or more relay rules for relaying data to other peer systems connected to that peer system.

Assignments (4)
MERGER Recorded Mar 30, 2020
From: SONY INTERACTIVE ENTERTAINMENT AMERICA LLC
To: SONY INTERACTIVE ENTERTAINMENT LLC
Reel/Frame 053323/0567 →
CHANGE OF NAME Recorded May 4, 2016
From: SONY COMPUTER ENTERTAINMENT AMERICA LLC
To: SONY INTERACTIVE ENTERTAINMENT AMERICA LLC
Reel/Frame 038611/0846 →
CHANGE OF NAME Recorded Jun 30, 2010
From: SONY COMPUTER ENTERTAINMENT AMERICA INC.
To: SONY COMPUTER ENTERTAINMENT AMERICA LLC
Reel/Frame 024611/0236 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2004
From: MAI, ANTHONY; VAN DATTA, GLEN
To: SONY COMPUTER ENTERTAINMENT AMERICA INC.
Reel/Frame 015112/0600 →
Continuity (2)
Provisional Application 6051309800 · Oct 20, 2003
Related Publication 20050086369A1 · Apr 21, 2005