Distributed Peer-to-peer Name Resolution Christian Huitema Architect, Windows Networking Microsoft Corporation
Vision: The user to user web! Enable each PC to be a server Serve ad-hoc groups Promote and use IPv6, directly attach the users to the Net Provide a server-less DNS for IPv6 Platform for developers Mainframe PC Web P2P Centralized Personal 11/21/2018 Distributed Peer-to-peer Name Resolution
Making Windows a great platform for P2P Firewall Traversal Sockets, DNS, files, print, …. Firewall, NAT Multicast? IPv6 Security? DNS? Graphs Group Membership P2P Names 11/21/2018 Distributed Peer-to-peer Name Resolution
Naming: the key to P2P development Provide each computer with a name Each computer is a server Names must be stable Resolve names to addresses Also name groups, users… Find a member of a group, Find the location of a user 11/21/2018 Distributed Peer-to-peer Name Resolution
Peer-to-Peer Name Resolution Identity = 128-bit number No trademark! Nodes manage a cache of “records” Identity IPv6 address Proof (certificate) Secure, Scalable, Robust, Private, Usable… Look up initiated 11/21/2018 Distributed Peer-to-peer Name Resolution
Design Goal 1, Security: Names should resolve to the intended address, One should not be able to fake an identifier But one should not impose a central server… Hello, I am alice@example.com 11/21/2018 Distributed Peer-to-peer Name Resolution
Secure: use certificates, prove the name Record = Identity, IPv6 Address, Proof Sign [identity, address] with local private key Check signature before placing in cache Host Identity = hash (public key) Group member Id = hash (group key) Group membership, certified by group key Generic = hash (authority’s key, Name) Validity certified by “authority” 11/21/2018 Distributed Peer-to-peer Name Resolution
Distributed Peer-to-peer Name Resolution Design Goal 2: Scalable 1,000 Scale to the size of the Internet! Assume at least one name per node. Scale without a central server. 10,000 100,000 1,000,000 10,000,000 100,000,000 1,000,000,000 11/21/2018 Distributed Peer-to-peer Name Resolution
Scalable: a hierarchical cache Circular space, centered on self Cache levels: First level: 360° Second level: 36° Etc. Query: Forward to “nearest” Gain one level log base X of (N) levels, 2.X Entries per level 11/21/2018 Distributed Peer-to-peer Name Resolution
Scalable cache management Initial cache: from memory, from neighbor Proactive requests, “tell the network” Update: Learn from queries, requests Try to fill each level, then replace Finest level: Learn about all “immediate neighbors” 11/21/2018 Distributed Peer-to-peer Name Resolution
Distributed Peer-to-peer Name Resolution Design Goal 3: Robust No central point of control, no central point of failure. Large distributed system: some nodes will fail at any time. Uncontrolled systems: some nodes may be actively conspiring against us … but hopefully not too many. 11/21/2018 Distributed Peer-to-peer Name Resolution
Robust: reputation & randomization Neighbor reputation: from query completion + verification Forward query: random choice, use reputation Cache replacement: random & reputation Timers, removal of failing entries from the cache 11/21/2018 Distributed Peer-to-peer Name Resolution
Distributed Peer-to-peer Name Resolution Design Goal 4: Privacy Some information is sensitive: location, membership in groups, documents… Control who can learn what you publish! 11/21/2018 Distributed Peer-to-peer Name Resolution
Privacy: control the scope of publication Peer-to-peer name cloud = set of caches Parallel clouds Ad hoc, on the same “link” In the same “site” Within a group (group = authority) The whole Internet Enforcement: Check membership of requestor Don’t forward outside of scope Don’t cache out of scope records 11/21/2018 Distributed Peer-to-peer Name Resolution
Design Goal 5: immediately usable On the Internet, Name = Domain Name Used for Web Page, E-Mail, FTP Limited availability, requires a contract and a permanent IP address. 11/21/2018 Distributed Peer-to-peer Name Resolution
Usable: gateway to the DNS Target Node: Reply on the same path Global DNS name: <ID>.pnrp.net Use in URL, e-mail Enables bootstrap Central DNS gateway: Publish NS record, Join P2P cloud, Forward requests Local gateway: P2P aware resolver Look up initiated PNRP.net 11/21/2018 Distributed Peer-to-peer Name Resolution
Peer-to-peer Naming: Summary Target Node: Reply on the same path Numbers are our friends: hosts, groups, URL Scale to the size of the Internet, peer-to-peer, no server. Prototype tested with 50,000 nodes Secure, Private, Robust, Usable Look up initiated PNRP.net 11/21/2018 Distributed Peer-to-peer Name Resolution
Distributed Peer-to-peer Name Resolution Peer-to-Peer Roadmap UPnP Enabled NATs – End of ‘01 IPv6 Service Deployment – End of ‘01 P2P SDK Design Review – End of ‘01 P2P SDK beta – Q1-02 P2P SDK v1 – Q3-02 11/21/2018 Distributed Peer-to-peer Name Resolution
Distributed Peer-to-peer Name Resolution Call to Action Support IPv6 in your Applications Leverage UPnP NAT Traversal Today Participate in Software Design Review 11/21/2018 Distributed Peer-to-peer Name Resolution