Peer-to-peer communication pipes
First Claim
1. A peer node, comprising:
- a network interface operable to couple to a network,wherein the network supports a plurality of network transport protocols; and
a memory storing program instructions, wherein the program instructions are executable by one or more processors within the peer node to cause the peer node provide a pipe service to;
receive a query message from a given other peer node on the network in accordance with a pipe binding protocol,wherein the query message is formatted in accordance with a pipe binding protocol that defines messages for discovering endpoints bound to pipes,wherein the query message comprises a request for information on an endpoint bound to a pipe,wherein a message body of the query message identifies the pipe,wherein the pipe has a specified network transport protocol,wherein the network transport protocol is one of the plurality of network transport protocols, andwherein the pipe represents a virtual communications channel for communication between the given other peer node and one or more peer nodes on the network other than the given other peer node; and
in response to said receiving the query message from the given other peer node;
obtain the information specifying the endpoint of one of the one or more peer nodes on the network,wherein the endpoint of the one of the one or more peer nodes corresponds to and uniquely identifies a network interface of the one of the one or more peer nodes, andwherein the network interface of the one of the one or more peer nodes implements the network transport protocol of the pipe specified by the message of the query message; and
send a response message to the given other peer node in accordance with the pipe binding protocol, wherein the response message is formatted in accordance with the pipe binding protocol, andwherein a message body of the response message specifies the endpoint of the one of the one or more peer nodes for binding to the pipe.
0 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.
90 Citations
20 Claims
-
1. A peer node, comprising:
-
a network interface operable to couple to a network, wherein the network supports a plurality of network transport protocols; and a memory storing program instructions, wherein the program instructions are executable by one or more processors within the peer node to cause the peer node provide a pipe service to; receive a query message from a given other peer node on the network in accordance with a pipe binding protocol, wherein the query message is formatted in accordance with a pipe binding protocol that defines messages for discovering endpoints bound to pipes, wherein the query message comprises a request for information on an endpoint bound to a pipe, wherein a message body of the query message identifies the pipe, wherein the pipe has a specified network transport protocol, wherein the network transport protocol is one of the plurality of network transport protocols, and wherein the pipe represents a virtual communications channel for communication between the given other peer node and one or more peer nodes on the network other than the given other peer node; and in response to said receiving the query message from the given other peer node; obtain the information specifying the endpoint of one of the one or more peer nodes on the network, wherein the endpoint of the one of the one or more peer nodes corresponds to and uniquely identifies a network interface of the one of the one or more peer nodes, and wherein the network interface of the one of the one or more peer nodes implements the network transport protocol of the pipe specified by the message of the query message; and send a response message to the given other peer node in accordance with the pipe binding protocol, wherein the response message is formatted in accordance with the pipe binding protocol, and wherein a message body of the response message specifies the endpoint of the one of the one or more peer nodes for binding to the pipe. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer-readable storage medium storing instructions, wherein execution of the instructions perform a method comprising:
-
receiving, at a peer node, a query message from another peer node on a network in accordance with a pipe binding protocol, wherein the peer node provides a pipe service implementing the pipe binding protocol that defines messages for discovering endpoints bound to pipes, wherein the query message is formatted in accordance with the pipe binding protocol, wherein the query message comprises a request for information on an endpoint to a pipe, and wherein a message body of the query message identifies the pipe, wherein the pipe has a specified network transport protocol, wherein the network transport protocol is one of a plurality of network transport protocols supported by the network, and wherein the pipe represents a virtual communications channel for communication between the other peer node and one or more peer nodes on the network other than the other peer node; and in response to said receiving the query message from the other peer node; obtaining the information specifying the endpoint of one of the one or more peer nodes on the network, wherein the endpoint of the one of the one or more peer nodes corresponds to and uniquely identifies a network interface of the one of the one or more peer nodes, and wherein the network interface of the one of the one or more peer nodes implements the network transport protocol of the pipe specified by the message body of the query message; and sending, from the peer node, a response message to the other peer node in accordance with the pipe binding protocol, wherein the response message is formatted in accordance with the pipe binding protocol, and wherein a message body of the response message specifies the endpoint of the one of the one or more peer nodes for binding to the pipe. - View Dependent Claims (16, 17)
-
-
18. A computer-implemented method, comprising:
-
receiving, at a peer node comprising a processor and memory, a query message from another peer node on a network in accordance with a pipe binding protocol, wherein the peer node provides a pipe service implementing the pipe binding protocol that defines messages for discovering endpoints bound to pipes, wherein the query message is formatted in accordance with the pipe binding protocol, wherein the query message comprises a request for information on an endpoint to a pipe, and wherein a message body of the query message identifies the pipe, wherein the pipe has a specified network transport protocol, wherein the network transport protocol is one of a plurality of network transport protocols supported by the network, and wherein the pipe represents a virtual communications channel for communication between the other peer node and one or more peer nodes on the network other than the other peer node; and in response to said receiving the query message from the other peer node; obtaining the information specifying the endpoint of one of the one or more peer nodes on the network, wherein the endpoint of the one of the one or more peer nodes corresponds to and uniquely identifies a network interface of the one of the one or more peer nodes, and wherein the network interface of the one of the one or more peer nodes implements the network transport protocol of the pipe specified by the message body of the query message; and sending, from the peer node, a response message to the other peer node in accordance with the pipe binding protocol, wherein the response message is formatted in accordance with the pipe binding protocol, and wherein a message body of the response message specifies the endpoint of the one of the one or more peer nodes for binding to the pipe. - View Dependent Claims (19, 20)
-
Specification