Peer-to-peer (P2P) mobility system, and method
First Claim
1. An end host comprising:
- a memory including;
executable instructions;
storage for respective identifiers for respective peers of the end host in a peer-to-peer system, wherein the storage comprises;
a multilevel routing table cache (MRTC),each level in the MRTC includes a maximum number of entries,each level in the MRTC represents a segment of a number space corresponding to an identifier of the end host,the top level of the MRTC spans the entire number space,each successively lower level comprises successively smaller spans,each said span in a level below the top level is a smaller segment than the entire number space,each said span is clustered around one said identifier of a corresponding said peer, andthe relative proximity between the peers corresponds to the respective identifiers,an array for each said peer of the end host, wherein;
each said array includes a neighbor hint table (NHT);
each said array includes one or more entries; and
each said entry corresponds to one neighbor peer of one peer of the end host (NPOP); and
includes an identifier for the NPOP, wherein each said identifier for the NPOP comprises;
an IP address of the respective said NPOP;
a port number of the respective said NPOP; and
an ID generated from a public key of the respective said NPOP, wherein relative proximity between the NPOPs is a function of the proximity of the respective identifiers of the peers;
a processor for executing the executable instructions which, when executed, cause the processor to interact with the end host as a peer in a peer-to-peer fashion in the peer-to-peer system, the interacting comprising;
when a message is sent from the end host to a destination, said peer having an identifier not found in the MRTC, forming a message for a destination peer for which the identifier thereof is not found in the MRTC, wherein the message includes the identifier of the destination peer; and
addressing the message to an intermediate said peer for which the identifier thereof is in the memory and where the intermediate said peer has an address which is proximally closest to the identifier of the destination said peer;
wherein the executable instructions further comprise an architecture that includes;
logic for a kernel layer wherein the logic for the kernel layer comprises;
an internet protocol (IP) layer comprising an end-to- end mobility module for end communications between the end host and another end host in the peer to peer system; and
a transport layer on the IP layer for communications across interconnected networks of the peer-to-peer system; and
logic for an application layer on the kernel layer and wherein the logic for the application layer comprises;
a name resolution module for resolving said identifier for a respective said peer in the peer-to-peer system to IP address, and storing the identifier of the respective said peers of the end host in the storage; and
a notification module of the name resolution module for storing the identifier for each said NPOP in each said entry in each said array.
2 Assignments
0 Petitions
Accused Products
Abstract
An end host in a peer-to-peer system stores identifiers for both its peers and the neighbors of its peers. When the IP address of the end host and one of the peers changes, the end host'"'"'s new IP address can be sent to each neighbor of the peer so that communication between the end host and the peer will not be lost. The order in which the neighbors of the peer are stored can be prioritized for faster delivery of the end host'"'"'s changed IP address to the peer. The prioritizing can be by available bandwidth of the neighbors, proximity of the neighbors, trust between the peer and its neighbors, the probability that the IP address of the neighbors will change, etc. Proximity of the peers from each other and the end host can be a function of the identifier, which can be generated from a public key.
30 Citations
23 Claims
-
1. An end host comprising:
-
a memory including; executable instructions; storage for respective identifiers for respective peers of the end host in a peer-to-peer system, wherein the storage comprises; a multilevel routing table cache (MRTC), each level in the MRTC includes a maximum number of entries, each level in the MRTC represents a segment of a number space corresponding to an identifier of the end host, the top level of the MRTC spans the entire number space, each successively lower level comprises successively smaller spans, each said span in a level below the top level is a smaller segment than the entire number space, each said span is clustered around one said identifier of a corresponding said peer, and the relative proximity between the peers corresponds to the respective identifiers, an array for each said peer of the end host, wherein; each said array includes a neighbor hint table (NHT); each said array includes one or more entries; and each said entry corresponds to one neighbor peer of one peer of the end host (NPOP); and includes an identifier for the NPOP, wherein each said identifier for the NPOP comprises; an IP address of the respective said NPOP; a port number of the respective said NPOP; and an ID generated from a public key of the respective said NPOP, wherein relative proximity between the NPOPs is a function of the proximity of the respective identifiers of the peers; a processor for executing the executable instructions which, when executed, cause the processor to interact with the end host as a peer in a peer-to-peer fashion in the peer-to-peer system, the interacting comprising; when a message is sent from the end host to a destination, said peer having an identifier not found in the MRTC, forming a message for a destination peer for which the identifier thereof is not found in the MRTC, wherein the message includes the identifier of the destination peer; and addressing the message to an intermediate said peer for which the identifier thereof is in the memory and where the intermediate said peer has an address which is proximally closest to the identifier of the destination said peer; wherein the executable instructions further comprise an architecture that includes; logic for a kernel layer wherein the logic for the kernel layer comprises; an internet protocol (IP) layer comprising an end-to- end mobility module for end communications between the end host and another end host in the peer to peer system; and a transport layer on the IP layer for communications across interconnected networks of the peer-to-peer system; and logic for an application layer on the kernel layer and wherein the logic for the application layer comprises; a name resolution module for resolving said identifier for a respective said peer in the peer-to-peer system to IP address, and storing the identifier of the respective said peers of the end host in the storage; and a notification module of the name resolution module for storing the identifier for each said NPOP in each said entry in each said array. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A peer to peer system comprising first and second means for interacting as respective peers in a peer-to-peer fashion in a peer-to-peer system, wherein each said first and second means respectively comprises:
-
a processing means for interacting in the peer-to-peer system; one or more close peers in the peer-to-peer system, wherein each said close peer includes one or more neighbor peers (NP); means for storing one identifier in memory for each of the one or more close peers, wherein the means for storing one identifier for each of the one or more close peers comprises a multilevel routing table cache (MRTC), wherein each level in the MRTC includes a maximum number of entries, wherein each level in the MRTC represents a segment of a number space corresponding to an identifier of the respective first and second means, wherein the top level of the MRTC spans the entire number space, wherein each successively lower level includes successively smaller spans, wherein each said span in a level below the top level is a smaller segment than the entire number space, wherein each said span is clustered around one said identifier of a corresponding said close peer, and wherein the relative proximity between the close peers corresponds to the respective identifiers; means for storing an array for each said close peer, wherein; each said array includes a neighbor hint table (NHT); each said array includes one or more entries; and each said entry; corresponds to one said NP; and includes an identifier for the NP; includes an identifier for the NP, wherein each said identifier for the NPOP comprises; an IP address of the respective said NP; a port number of the respective said NP; and an ID generated from a public key of the respective said NP, wherein relative proximity between the NPs is a function of the proximity of the respective identifiers of the peers; wherein the first means is a close peer to the second means when the IP address of the first means changes and there is a break in an ongoing communication between the first and second means for longer than a predetermined time threshold, each of the first and second means further comprises; means for addressing a message for transmission to each NP of each close peer of the other of the first and second means for delivery of the message thereto via each NP, wherein the message includes the changed IP address thereof; and means for; receiving the message via the NP; extracting the changed IP address of the other of the first and second means from the message; and resuming the ongoing communication using the changed IP address of the other of the first and second means. wherein the communication between the first and second means further comprise an architecture that includes; logic for a kernel layer wherein the logic for the kernel layer comprises; an internet protocol (IP) layer comprising an end-to- end mobility module for end communications between the end host and another end host in the peer to peer system; and a transport layer on the IP layer for communications across interconnected networks of the peer-to-peer system; and logic for an application layer on the kernel layer and wherein the logic for the application layer comprises; a name resolution module for resolving said identifier for a respective said peer in the peer-to-peer system to IP address, and storing the identifier of the respective said peers of the end host in the storage; and a notification module of the name resolution module for storing the identifier for each said NPOP in each said entry in each said array. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
Specification