摘要:
A peer-to-peer platform that may provide mechanisms through which peers may discover each other, communicate with each other, and cooperate with each other to form peer groups is described. The peer-to-peer platform may comprise several layers including a peer-to-peer platform layer, a peer-to-peer services layer, and a peer-to-peer applications layer. At the highest abstraction level, the peer-to-peer platform may be viewed as a set of protocols. Each protocol may be defined by one or more messages exchanged among participants of the protocol. In one embodiment, the peer-to-peer platform may include, but is not limited to, one or more of a peer discovery protocol, a peer resolver protocol, a peer information protocol, a peer membership protocol, a pipe binding protocol, and an endpoint routing protocol. To underpin this set of protocols, the peer-to-peer platform may define a number of concepts including peer, peer group, advertisement, message, pipe, and endpoint.
摘要:
A system and method for providing peer groups in a peer-to-peer environment. A peer group may be one or more peers in a peer-to-peer environment that share a set of network services and content. A peer group may define an implicit scope for messages originating from members peers of the peer group. A peer group may provide redundant services and content for greater reliability. In one embodiment, interaction among peers and peer groups in the peer-to-peer environment may be implemented using protocols that are platform-independent as to programming language implementations and network transports. In one embodiment, peers may discover existing peer groups and join the existing peer groups. In one embodiment, peers may create new peer groups.
摘要:
Embodiments of a system and method for establishing reliable connections between peers in a peer-to-peer networking environment. In one embodiment, a reliable communications channel may use transmit and receive windows, acknowledgement of received messages, and retransmission of messages not received to provide reliable delivery of messages between peers in the peer-to-peer environment. In one embodiment, each message may include a sequence number configured for use in maintaining ordering of received messages on a receiving peer. A communications channel may make multiple hops on a network, and different hops in the connection may use different underlying network protocols. Communications channels may also pass through one or more firewalls and/or one or more gateways on the network. A communications channel may also pass through one or more router (relay) peers on the network. The peers may adjust the sizes of the transmit and receive window based upon reliability of the connection.
摘要:
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.
摘要:
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.
摘要:
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.
摘要:
A system and method for providing advertisements in a peer-to-peer networking environment is described. In one embodiment, the peer-to-peer protocols may use advertisements to describe and publish the existence of peer resources. An advertisement may be defined as a structured, language neutral metadata structure that names, describes, and publishes the existence of a peer-to-peer platform resource, such as a peer, a peer group, a pipe, or a service. In one embodiment, user-defined advertisement subtypes (for example, using XML schemas) may be formed from these basic types. A peer in a peer-to-peer network may publish a resource advertisement to make the resource corresponding to the advertisement available to other peers on the network. Peers may discover published advertisements by broadcasting discovery query messages. Other peers may respond to discovery query messages by sending response messages that may include advertisements.
摘要:
A system and method for providing an open network computing platform designed for peer-to-peer computing. The peer-to-peer platform may provide protocols for peer-to-peer services and applications that allow peers to discover each other, communicate with each other, and cooperate with each other to form peer groups. The protocols may include a peer membership protocol, a peer discovery protocol, a peer resolver protocol, a peer information protocol, a pipe binding protocol, and a peer endpoint protocol. Services and applications that participate in the protocols may be provided to deal with higher-level concepts. Advertisements may be used to publish peer resources. The peer-to-peer platform provides the ability to replicate information toward end users and may enable peers to find content that is closest to them. The peer-to-peer protocols and unique peer identifiers may allow peer nodes to move to different locations and access services and other content independent of network physical addresses.
摘要:
A system and method for uniquely identifying peers and other resources in a peer-to-peer networking environment. In one embodiment, every peer in the peer-to-peer network may have a unique peer identifier. Other peer-to-peer network resources may also have unique identifiers, including peer groups, services, applications, pipes, endpoints, content and resource advertisements. Identifiers may serve to canonically refer to resources. Identifiers may be embedded in advertisements for resources. In one embodiment, a peer identifier may identify a peer group in which the peer is a member peer. In one embodiment, a peer may have a different peer identifier for each group in which it is a member peer. In one embodiment, an identifier may be bound to a network address of the resource. If the resource changes network addresses, the identifier may be bound to the new network address. Thus, identifiers provide dynamic addressing for resources in the peer-to-peer environment.
摘要:
A system and method for providing resources to networked devices for participating in a peer-to-peer environment. In one embodiment, a peer computing system on a network may include one or more bootstrap nodes that may provide, to devices coupled to the network, mechanisms for accessing resources for participating in the peer-to-peer environment. The bootstrap nodes may be peer nodes. The resources may give the devices access to services each of which may implement peer-to-peer platform protocols. The devices may be pre-configured to access one or more predefined peer nodes for information on bootstrap nodes. Alternatively, devices may use a bootstrapping mechanism to locate bootstrap nodes on the network.