Peer-to-peer communication pipes
First Claim
1. A peer computing system comprising:
- a plurality of peer nodes operable to couple to a network, wherein each of the plurality of peer nodes comprises;
one or more network interfaces, wherein each network interface is configured to implement at least one of one or more network transport protocols; and
one or more endpoints, wherein each endpoint corresponds to and uniquely identifies one of the one or more network interfaces;
wherein each of the plurality of peer nodes is operable to;
obtain a pipe advertisement describing a pipe, wherein the pipe represents a virtual communications channel for communicating with one or more of the plurality of peer nodes on the network, wherein the pipe advertisement specifies a pipe type, and wherein the pipe advertisement includes binding information for an endpoint of another one of the plurality of peer nodes, wherein the endpoint of the other peer node corresponds to a network interface of the peer node that implements a particular network transport protocol that supports the pipe type;
bind the pipe advertisement to one of the one or more endpoints on the particular peer node, wherein the endpoint of the particular peer node corresponds to a network interface of the particular peer node that implements the particular network transport protocol that supports the pipe type; and
communicate with the other peer node over the pipe in accordance with the particular network transport protocol.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for establishing communications channels between and among peers in a peer-to-peer networking environment. Pipes may be used as communication channels for sending and receiving messages and other data between services or applications over input and output endpoints. Pipes may be asynchronous, unidirectional, stateless and unreliable. Bidirectional pipes may also be supported. Pipes may have ends that may be moved around and bound to different peers at different times. Point-to-point and propagate pipes may be supported. Pipes may connect peers that have a direct physical link and peers that do not have a direct link. Peers may communicate through pipes without knowing on which peer a pipe endpoint is bound. A message is sent to all peer endpoints currently connected (listening) to the pipe. The set of connected endpoints may be obtained from a pipe service using a pipe binding protocol.
267 Citations
151 Claims
-
1. A peer computing system comprising:
-
a plurality of peer nodes operable to couple to a network, wherein each of the plurality of peer nodes comprises; one or more network interfaces, wherein each network interface is configured to implement at least one of one or more network transport protocols; and one or more endpoints, wherein each endpoint corresponds to and uniquely identifies one of the one or more network interfaces; wherein each of the plurality of peer nodes is operable to; obtain a pipe advertisement describing a pipe, wherein the pipe represents a virtual communications channel for communicating with one or more of the plurality of peer nodes on the network, wherein the pipe advertisement specifies a pipe type, and wherein the pipe advertisement includes binding information for an endpoint of another one of the plurality of peer nodes, wherein the endpoint of the other peer node corresponds to a network interface of the peer node that implements a particular network transport protocol that supports the pipe type; bind the pipe advertisement to one of the one or more endpoints on the particular peer node, wherein the endpoint of the particular peer node corresponds to a network interface of the particular peer node that implements the particular network transport protocol that supports the pipe type; and communicate with the other peer node over the pipe in accordance with the particular network transport protocol. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43)
-
-
44. A peer node comprising:
-
one or more network interfaces operable to couple to a network, wherein each network interface is configured to implement at least one of one or more network transport protocols; one or more endpoints, wherein each endpoint corresponds to and uniquely identifies one of the one or more network interfaces; and a memory comprising program instructions, wherein the program instructions are executable within the peer node to; obtain a pipe advertisement describing a pipe, wherein the pipe represents a virtual communications channel for communicating with one or more peer nodes on the network, wherein the pipe advertisement specifies a pipe type, and wherein the pipe advertisement includes binding information for an endpoint of another peer node; bind the pipe advertisement to one of the one or more endpoints on the peer node, wherein the endpoint of the peer node and the endpoint of the other peer node each correspond to a network interface that implements a particular network transport protocol that supports the pipe type; and communicate with the other peer node over the pipe in accordance with the particular network transport protocol. - View Dependent Claims (45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66)
-
-
67. A method for establishing a communications channel between peer nodes coupled to a peer-to-peer network, the method comprising:
-
a peer node obtaining a pipe advertisement describing a pipe, wherein the pipe represents a virtual communications channel for communicating with one or more other peer nodes on the peer-to-peer network, wherein the pipe advertisement specifies a pipe type, and wherein the pipe advertisement includes binding information for an endpoint of another peer node on the peer-to-peer network, wherein the endpoint of the other peer node corresponds to a network interface of the other peer node that implements a network transport protocol that supports the pipe type; binding the pipe advertisement to an endpoint of the peer node, wherein the endpoint of the peer node corresponds to a network interface of the peer node that implements the network transport protocol that supports the pipe type; and the peer node communicating with the other peer node over the pipe in accordance with the network transport protocol. - View Dependent Claims (68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100)
-
-
101. A method for establishing a communications channel between peer nodes coupled to a peer-to-peer network, the method comprising:
-
a peer node receiving a message from another peer node on the peer-to-peer network in accordance with a pipe binding protocol, wherein the message identifies a pipe and specifies a network transport protocol of the pipe, wherein the pipe represents a virtual communications channel for communicating between the other peer node and one or more other peer nodes on the peer-to-peer network; the peer node obtaining information specifying an endpoint of a different peer node on the peer-to-peer network, wherein the endpoint of the different peer node corresponds to and uniquely identifies a network interface of the different peer node, wherein the network interface of the different peer node implements the network transport protocol of the pipe; and the peer node sending a response message to the other peer node in accordance with the pipe binding protocol, wherein the response message specifies the endpoint of the different peer node. - View Dependent Claims (102, 103, 104, 105, 106, 107, 108, 109)
-
-
110. A storage medium comprising software instructions executable on a peer node to implement:
-
the peer node obtaining a pipe advertisement describing a pipe, wherein the pipe represents a virtual communications channel for communicating with one or more other peer nodes on the peer-to-peer network, wherein the pipe advertisement specifies a pipe type, and wherein the pipe advertisement includes binding information for an endpoint of another peer node on the peer-to-peer network, wherein the endpoint of the other peer node corresponds to a network interface of the other peer node that implements a network transport protocol that supports the pipe type; binding the pipe advertisement to an endpoint of the peer node, wherein the endpoint of the peer node corresponds to a network interface of the peer node that implements the network transport protocol that supports the pipe type; and the peer node communicating with the other peer node over the pipe in accordance with the network transport protocol. - View Dependent Claims (111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142)
-
-
143. A storage medium comprising software instructions executable within a peer node to implement:
-
the peer node receiving a message from another peer node on a peer-to-peer network in accordance with a pipe binding protocol, wherein the message identifies a pipe and specifies a network transport protocol of the pipe, wherein the pipe represents a virtual communications channel for communicating between the other peer node and one or more other peer nodes on the peer-to-peer network; the peer node obtaining information specifying an endpoint of a different peer node on the peer-to-peer network, wherein the endpoint of the different peer node corresponds to and uniquely identifies a network interface of the different peer node, wherein the network interface of the different peer node implements the network transport protocol of the pipe; and the peer node sending a response message to the other peer node in accordance with the pipe binding protocol, wherein the response message specifies the endpoint of the different peer node. - View Dependent Claims (144, 145, 146, 147, 148, 149, 150, 151)
-
Specification