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, and wherein each of the plurality of peer nodes is a host of 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;
wherein one of the plurality of peer nodes is a relay peer node operable to couple to the network outside the mechanism, and further operable to;
cache route information describing one or more routes to peer nodes on the network;
receive a message from a peer node outside the mechanism, wherein the message is for a peer node inside the mechanism;
relay the message to the peer node inside the mechanism;
receive a query requesting route information to one of the plurality of peer nodes from another one of the plurality of peer nodes, wherein the query is formatted according to an endpoint routing protocol; and
send the requested route information to the requesting peer node in accordance with the endpoint routing protocol.
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
52 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, and wherein each of the plurality of peer nodes is a host of 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; wherein one of the plurality of peer nodes is a relay peer node operable to couple to the network outside the mechanism, and further operable to; cache route information describing one or more routes to peer nodes on the network; receive a message from a peer node outside the mechanism, wherein the message is for a peer node inside the mechanism; relay the message to the peer node inside the mechanism; receive a query requesting route information to one of the plurality of peer nodes from another one of the plurality of peer nodes, wherein the query is formatted according to an endpoint routing protocol; and send the requested route information to the requesting peer node in accordance with the endpoint routing protocol. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. 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, and wherein each of the plurality of peer nodes is a host of 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; wherein the plurality of peer nodes comprises 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 (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. 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 one or more peer-to-peer platform protocols; discover other peer nodes on the network; communicate with other peer nodes on the network; cooperate with other peer nodes on the network to form peer groups; host shared content on the network; cache route information describing one or more routes to other peer nodes on the network; receive a message from a source peer node on the network intended for a destination peer node, wherein the source peer node and the destination peer node cannot communicate directly with each other on the network, wherein the source peer node is on the outside of a partitioning mechanism on the network, and wherein the destination peer node is on the inside of the partitioning mechanism; and relay the message to the destination peer node, wherein, to relay the message to the destination peer node, the program instructions are further executable to; locate route information to the destination peer node in the cached route information; and route the message through the partitioning mechanism to the destination peer node using the located route information. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
-
25. 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; wherein the means for the peer nodes inside the partition to advertise themselves comprises a relay peer node outside the partition, wherein the relay peer node comprises means for publishing advertisements for the peer nodes inside the partition, and wherein the relay peer node is one of the plurality of peer nodes; wherein the rely peer node comprises means for relaying messages between the peer nodes outside the mechanism and the peer nodes inside the mechanism; wherein at least one of the messages includes route information, and wherein, to relay the message between the peer nodes, the relay peer further comprises means for using the route information included in the message to route the message to one of the peer nodes inside the mechanism; and wherein the relay peer node comprises means for caching route information describing one or more routes to peer nodes on the network. - View Dependent Claims (26, 27, 28)
-
-
29. 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, and wherein each of the plurality of peer nodes is a host of 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, and wherein the relay peer node is one of the plurality of peer nodes; 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 intended for 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 (30, 31, 32, 33, 34, 35, 36)
-
-
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, and wherein each of the plurality of peer nodes is a host of content in the peer-to-peer environment; wherein one or more of the plurality of peer nodes are relay peer nodes; 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; one of the plurality of peer nodes inside a partitioning mechanism on the network publishing an advertisement on the relay peer node, wherein the relay peer node is outside the partitioning mechanism, and 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; and the peer node outside the partitioning mechanism and the peer node inside the partitioning mechanism exchanging messages through the relay peer node. - View Dependent Claims (38, 39, 40, 41)
-
-
42. A computer-readable storage medium storing software instructions computer-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, and wherein each of the plurality of peer nodes is a host of 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, and wherein the relay peer node is one of the plurality of peer nodes; 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 intended for 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 (43, 44, 45, 46, 47)
-
-
48. A computer-readable storage medium storing computer-executable software instructions 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, and wherein each of the plurality of peer nodes is a host of 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; 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; one of the plurality of peer nodes inside a partitioning mechanism on the network publishing an advertisement on the relay peer node, wherein the relay peer node is outside the partitioning mechanism, and 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; and the peer node outside the partitioning mechanism and the peer node inside the partitioning mechanism exchanging messages through the relay peer node. - View Dependent Claims (49, 50, 51, 52)
-
Specification