# US 2014/0195656 A1 · Method for optimally utilizing a peer to peer network

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0195656 A1
- Document ID: US20140195656A1
- Status: Published application
- Kind: A1
- Application number: 14/152,015
- Filed: 2014-01-10
- Published: 2014-07-10
- Earliest claimed: 2004-01-23
- Assignees: Tiversa IP, Inc.
- Applicants: Tiversa IP, Inc.
- Inventors: Samuel P. Hopkins
- Web page: https://patentgrep.com/patent/US20140195656A1

## CPC

- H04L 41/0816: the condition being an adaptation, e.g. in response to network events
- H04L 43/50: Testing arrangements
- H04L 67/104: Peer-to-peer [P2P] networks
- H04L 67/1063: {Discovery through centralising entities}
- H04L 67/107: {with limitation or expansion of the discovery scope}
- H04L 67/1093: {Some peer nodes performing special functions}
- H04L 67/145: avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
- H04L 41/042: comprising distributed management centres cooperatively managing the network
- H04N 21/632: {using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices (broadcast-related systems characterised by transmission among terminal devices H04H60/80; distributed application using peer-to-peer [P2P] networks H04L67/104)}
- Y10S 707/99956: File allocation
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

In accordance with an embodiment of the invention, there is provided a method for splitting a load of monitoring a peer to peer network. The method has a first node in the peer to peer network receiving information reported by a second node in the peer to peer network, including information concerning which nodes are connected to the second node. The method further has the first node connecting to nodes different from the nodes that are connected to the second node using the received information. The method still further has the first node reporting information, including information concerning which nodes are connected to the first node, such that the second node also has access to the reported information, thereby splitting the load of monitoring the peer to peer network among the first and second nodes.

## Claims

### Claim 1

A method comprising:
at a first peer node in a peer-to-peer network having a plurality of peer nodes in which connections among some of the peer nodes cannot be formed because a number of hops among such nodes is more than a maximum number of hops allowed for the peer-to-peer network, the steps of:
connecting to a second peer node to form a direct connection;
issuing a search request message to the second peer node over the direct connection, the message requesting the second peer node to forward the search request message to other peer nodes of the second peer node;
receiving a response to the search request message from the second peer node including one or more responses from the other peer nodes of the second peer node, the response including peer node distance information;
determining from peer node distance information provided in the response, which of the other peer nodes of the second peer node is a determined peer node, such that a number of hops along a path from the first peer node to the second peer node to the determined peer node is equal to or greater than a maximum number of hops that the search request message may be forwarded using the direct connection to the second peer node;
maintaining connection information received from the plurality of peer nodes, the connecting information including information about connections among the plurality of peer nodes; and
accepting or denying a search request received by the first peer node from a requesting peer node, the search request requesting to connect to another peer different from the requesting peer node and the first peer node, the accepting or denying based on the connection information maintained by the first peer node and received from peer nodes other than the requesting peer node.

### Claim 2 (depends on 1)

The method of claim 1 additionally comprising:
connecting directly to the determined peer node to form a direct connection to the determined peer node that is in addition to the direct connection to the second peer node;
issuing a second search request message to the determined peer node requesting the determined peer node to forward the second search message to other peer nodes of the determined peer node;
receiving a response from the determined peer node including responses from the other peer nodes of the determined peer node; and
determining from peer node distance information provided in the response from the determined peer node, which of the peer nodes of the determined peer node is a second determined peer node, such that a number of hops from the first node to the determined peer node to the second determined peer node is equal to or greater than a maximum number of hops that the second search message can be forwarded using the direct connection to the determined peer node.

### Claim 3 (depends on 2)

The method of claim 2 additionally comprising:
grouping the plurality of peer nodes into first and second sub-peer networks by:
adding to the first sub-peer network, the second node and peers of the second node but not the determined peer node, wherein each node of the first sub-peer network is less than or equal to the maximum number of hops away from the first peer node; and
adding to the second sub-peer network, the determined peer node and peers of the determined peer node but not the second determined peer node, wherein each node of the second sub-peer network is less than or equal to the maximum number of hops away from the first peer node.

### Claim 4 (depends on 1)

The method of claim 1 additionally comprising:
keeping a statistic on at least one connection between the first node and at least one connected peer node connected to the first peer node;
using the statistic for making a decision to disconnect the connected peer node; and
disconnecting the connected peer node in response to making the decision.

### Claim 5 (depends on 4)

The method of claim 4 wherein the statistic is one or more of a number of received communications messages, a last time a transmission was received, a number of searches received, or based on an average or within a percentage of an average of other connections.

### Claim 6 (depends on 1)

The method of claim 1 additionally comprising:
storing a list of peer nodes for the first peer node to connect with;
attempting to make at least one connection to at least one peer node from the list of peer nodes over the direct connection; and
waiting for a fixed duration of time in response to a failed connection attempt before attempting to make a connection to another peer node from the list of peer nodes.

### Claim 7 (depends on 6)

The method of claim 6 wherein the step of attempting to make at least one connection is made concurrently to two peer nodes on the list.

### Claim 8 (depends on 1)

The method of claim 1 wherein the search message comprises either a predefined search term or a ping request.

### Claim 9 (depends on 1)

The method of claim 1 wherein the step of additionally comprising:
controlling connections among the plurality of peer nodes in the first and second sub-networks.

### Claim 10 (depends on 1)

The method of claim 1 additionally comprising:
disconnecting a connection to the determined peer node in response to receiving a duplicate search message.

### Claim 11

A first node for connecting to a network having a plurality of nodes arranged in a peer to peer network to exchange electronic messages, the first node comprising:
one or more hardware interfaces configured to exchange the electronic messages with other peer nodes such that connections to at least some of the peer nodes cannot be directly made if a number of hops between such nodes is greater than a maximum number of hops allowed by a peer to peer network protocol used by the peer nodes;
a processor for executing instructions containing a stored program, the instructions for:
connecting to a second peer node to form a direct connection;
issuing a search request message to the second peer node over the direct connection, the message requesting the second peer node to forward the search request message to other peer nodes of the second peer node;
receiving a response to the search request message from the second peer node including one or more responses from the other peer nodes of the second peer node, the response including peer node distance information;
determining from peer node distance information provided in the response, which of the other peer nodes of the second peer node is a determined peer node, such that a number of hops along a path from the first peer node to the second peer node to the determined peer node is equal to or greater than a maximum number of hops that the search request message may be forwarded using the direct connection to the second peer node;
maintaining connection information received from the plurality of peer nodes, the connecting information including information about connections among the plurality of peer nodes; and
accepting or denying a search request received by the first peer node from a requesting peer node, the search request requesting to connect to another peer different from the requesting peer node and the first peer node, the accepting or denying based on the connection information maintained by the first peer node and received from peer nodes other than the requesting peer node.

### Claim 12 (depends on 11)

The apparatus of claim 11 wherein the instructions are additionally for:
connecting directly to the determined peer node to form a direct connection to the determined peer node that is in addition to the direct connection to the second peer node;
issuing a second search request message to the determined peer node requesting the determined peer node to forward the second search message to other peer nodes of the determined peer node;
receiving a response from the determined peer node including responses from the other peer nodes of the determined peer node; and
determining from peer node distance information provided in the response from the determined peer node, which of the peer nodes of the determined peer node is a second determined peer node, such that a number of hops from the first node to the determined peer node to the second determined peer node is equal to or greater than a maximum number of hops that the second search message can be forwarded using the direct connection to the determined peer node.

### Claim 13 (depends on 12)

The apparatus of claim 12 wherein the instructions are additionally for:
grouping the plurality of peer nodes into first and second sub-peer networks by:
adding to the first sub-peer network, the second node and peers of the second node but not the determined peer node, wherein each node of the first sub-peer network is less than or equal to the maximum number of hops away from the first peer node; and
adding to the second sub-peer network, the determined peer node and peers of the determined peer node but not the second determined peer node, wherein each node of the second sub-peer network is less than or equal to the maximum number of hops away from the first peer node.

### Claim 14 (depends on 11)

The apparatus of claim 11 wherein the instructions are additionally for:
keeping a statistic on at least one connection between the first node and at least one connected peer node connected to the first peer node;
using the statistic for making a decision to disconnect the connected peer node; and
disconnecting the connected peer node in response to making the decision.

### Claim 15 (depends on 14)

The apparatus of claim 14 wherein the statistic is one or more of a number of received communications messages, a last time a transmission was received, a number of searches received, or based on an average or within a percentage of an average of other connections.

### Claim 16 (depends on 11)

The apparatus of claim 11 wherein the instructions are additionally for:
storing a list of peer nodes for the first peer node to connect with;
attempting to make at least one connection to at least one peer node from the list of peer nodes over the direct connection; and
waiting for a fixed duration of time in response to a failed connection attempt before attempting to make a connection to another peer node from the list of peer nodes.

### Claim 17 (depends on 16)

The apparatus of claim 16 wherein the instructions are additionally for attempting to make connections concurrently to two peer nodes on the list.

### Claim 18 (depends on 11)

The apparatus of claim 11 wherein the search message comprises either a predefined search term or a ping request.

### Claim 19 (depends on 11)

The apparatus of claim 11 wherein the instructions are additionally for:
disconnecting a connection to the determined peer node in response to receiving a duplicate search message.

### Claim 20 (depends on 11)

The apparatus of claim 11 wherein the instructions are additionally for:
controlling connections among the plurality of peer nodes in the first and second sub-networks.
