Relay peers for extending peer availability in a peer-to-peer networking environment
First Claim
1. A peer computing system comprising:
- a plurality of peer nodes operable to couple to a network, wherein the plurality of peer nodes are configured to implement a peer-to-peer environment on the network according to a peer-to-peer platform comprising one or more peer-to-peer platform protocols for enabling the plurality of peer nodes to discover each other, communicate with each other, and cooperate with each other to form peer groups and share content in the peer-to-peer environment;
wherein the plurality of peer nodes are partitioned by a mechanism on the network into a set of one or more peer nodes inside the mechanism and a set of one or more peer nodes outside the mechanism, wherein peer nodes on opposite sides of the mechanism cannot communicate directly with each other on the network;
a relay peer node operable to couple to the network outside the mechanism, and further operable to;
receive a message from a peer node outside the mechanism, wherein the message is for a peer node inside the mechanism; and
relay the message to the peer node inside the mechanism.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for allowing peers to exchange messages with other peers independently of their network location in a peer-to-peer environment. Messages may be transparently routed, potentially traversing partitions (e.g. firewalls and NATs), and using different protocols to reach the destination peers. In one embodiment, any peer node may serve as a relay peer that allows peers inside a partition to have a presence outside the partition and provides a mechanism for peers outside partitions to discover and communicate with peers inside the partitions. In one embodiment, a relay peer may maintain information on routes to other peers and assist in relaying messages to other peers. In one embodiment, any peer may query a relay peer for route information. In one embodiment, messages may include routing information as part of their payloads.
-
Citations
62 Claims
-
1. A peer computing system comprising:
-
a plurality of peer nodes operable to couple to a network, wherein the plurality of peer nodes are configured to implement a peer-to-peer environment on the network according to a peer-to-peer platform comprising one or more peer-to-peer platform protocols for enabling the plurality of peer nodes to discover each other, communicate with each other, and cooperate with each other to form peer groups and share content in the peer-to-peer environment;
wherein the plurality of peer nodes are partitioned by a mechanism on the network into a set of one or more peer nodes inside the mechanism and a set of one or more peer nodes outside the mechanism, wherein peer nodes on opposite sides of the mechanism cannot communicate directly with each other on the network;
a relay peer node operable to couple to the network outside the mechanism, and further operable to;
receive a message from a peer node outside the mechanism, wherein the message is for a peer node inside the mechanism; and
relay the message to the peer node inside the mechanism. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A peer computing system comprising:
-
a plurality of peer nodes operable to couple to a network, wherein the plurality of peer nodes are configured to implement a peer-to-peer environment on the network according to a peer-to-peer platform comprising one or more peer-to-peer platform protocols for enabling the plurality of peer nodes to discover each other, communicate with each other, and cooperate with each other to form peer groups and share content in the peer-to-peer environment;
wherein the plurality of peer nodes are partitioned by a mechanism on the network into a set of one or more peer nodes inside the mechanism and a set of one or more peer nodes outside the mechanism, wherein peer nodes on opposite sides of the mechanism cannot communicate directly with each other on the network;
one or more relay peer nodes operable to couple to the network outside the mechanism;
wherein each of the peer nodes inside the mechanism are operable to publish an advertisement on the one or more relay peer nodes; and
wherein each of the peer nodes outside the mechanism are operable to discover the advertisements for the peer nodes inside the mechanism published on the one or more relay peer nodes. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A peer node comprising:
-
a network interface for coupling to a network;
a memory comprising program instructions, wherein the program instructions are executable within the peer node to, according to a peer-to-peer platform;
receive a message from a source peer node on the network; and
relay the message to a destination peer node; and
wherein the peer nodes are configured to implement a peer-to-peer environment on the network according to the peer-to-peer platform, wherein the peer-to-peer platform comprises one or more peer-to-peer platform protocols for enabling the plurality of peer nodes to discover each other, communicate with each other, and cooperate with each other to form peer groups and share content in the peer-to-peer environment. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A peer computing system comprising:
-
a plurality of peer nodes operable to couple to a network;
means for the plurality of peer nodes to discover each other, communicate with each other, and cooperate with each other to form peer groups and share content in a peer-to-peer environment on the network;
means for partitioning the plurality of peer nodes on the network into a set of one or more peer nodes inside the partition and a set of one or more peer nodes outside the partition, wherein peer nodes on opposite sides of the partition cannot communicate directly with each other on the network;
means for the peer nodes inside the partition to advertise themselves outside the partition; and
means for the peer nodes outside the mechanism to discover the advertised peer nodes inside the partition;
- View Dependent Claims (31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50)
-
-
37. A method comprising:
-
a plurality of peer nodes implementing a peer-to-peer environment on a network according to a peer-to-peer platform, wherein the peer-to-peer platform comprises one or more peer-to-peer platform protocols for enabling the plurality of peer nodes to discover each other, communicate with each other, and cooperate with each other to form peer groups and share content in the peer-to-peer environment;
one of the plurality of peer nodes inside a partitioning mechanism on the network publishing an advertisement on a relay peer node outside the partitioning mechanism, wherein peer nodes inside the partitioning mechanism cannot directly communicate with peer nodes outside the partitioning mechanism;
one of the plurality of peer nodes outside the partitioning mechanism discovering the advertisement to the peer node inside the partitioning mechanism on the relay peer node;
the peer node outside the partitioning mechanism sending a message to the peer node inside the partitioning mechanism to the relay peer node; and
the relay peer node relaying the message to the peer node inside the partitioning mechanism.
-
-
45. A method comprising:
-
a plurality of peer nodes implementing a peer-to-peer environment on a network according to a peer-to-peer platform, wherein the peer-to-peer platform comprises one or more peer-to-peer platform protocols for enabling the plurality of peer nodes to discover each other, communicate with each other, and cooperate with each other to form peer groups and share content in the peer-to-peer environment;
wherein one or more of the plurality of peer nodes are relay peer nodes; and
one of the relay peer nodes caching route information describing one or more routes to other peer nodes on the network, wherein the route information is configured for use in routing messages between peer nodes in the peer-to-peer environment, and wherein the cached route information includes ordered sequences of peer identifiers configured for use in routing messages to destination peer nodes.
-
-
51. An article of manufacture comprising software instructions executable to implement:
-
a plurality of peer nodes implementing a peer-to-peer environment on a network according to a peer-to-peer platform, wherein the peer-to-peer platform comprises one or more peer-to-peer platform protocols for enabling the plurality of peer nodes to discover each other, communicate with each other, and cooperate with each other to form peer groups and share content in the peer-to-peer environment;
one of the plurality of peer nodes inside a partitioning mechanism on the network publishing an advertisement on a relay peer node outside the partitioning mechanism, wherein peer nodes inside the partitioning mechanism cannot directly communicate with peer nodes outside the partitioning mechanism;
one of the plurality of peer nodes outside the partitioning mechanism discovering the advertisement to the peer node inside the partitioning mechanism on the relay peer node;
the peer node outside the partitioning mechanism sending a message to the peer node inside the partitioning mechanism to the relay peer node; and
the relay peer node relaying the message to the peer node inside the partitioning mechanism. - View Dependent Claims (52, 53, 54, 55, 56, 58, 59, 60, 61, 62)
-
-
57. An article of manufacture comprising software instructions executable to implement:
-
a plurality of peer nodes implementing a peer-to-peer environment on a network according to a peer-to-peer platform, wherein the peer-to-peer platform comprises one or more peer-to-peer platform protocols for enabling the plurality of peer nodes to discover each other, communicate with each other, and cooperate with each other to form peer groups and share content in the peer-to-peer environment;
one or more of the plurality of peer nodes implementing a relay service in accordance with the peer-to-peer platform to perform as relay peer nodes; and
one of the relay peer nodes caching route information describing one or more routes to other peer nodes on the network, wherein the route information is configured for use in routing messages between peer nodes in the peer-to-peer environment, and wherein the cached route information includes ordered sequences of peer identifiers configured for use in routing messages to destination peer nodes.
-
Specification