Tuesday, July 13, 2010

[emtsyndi] Peer discovery in IPv6

Consider the problem of joining a peer-to-peer network for the first time.

With IPv4, with 32 bit addresses, one can randomly try addresses and find peers in a reasonable amount of time, at which point peers can share peer lists.  (Leave unsolved whether the discovered peer may be trusted.)  There does not need to be a central directory (single point of failure) for bootstrapping.

With IPv6, with 128-bit addresses, this no longer works: you feel alone in the desert, as far as they eye can see.

Hmm, one may discover peers by snooping on traffic, though this still doesn't work if your new node is a distant leaf.

Naive bootstrapping maybe done via IPv4. Multiple IPv6 hosts can share via time-division multiplexing a single IPv4 address, with a host getting an address long enough to hear a peering request, perhaps just long enough for a few TCP packets. (Or maybe even multicast to all the hosts sharing.) The "return address" for the peering request is encoded in the data as an IPv6 address, and the host can respond to the peering request as a pure IPv6 to IPv6 communication.

No comments :