190 likes | 467 Views
Distributed Peer-to-peer Name Resolution. Christian Huitema Architect, Windows Networking Microsoft Corporation. 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.
E N D
Distributed Peer-to-peer Name Resolution Christian Huitema Architect, Windows Networking Microsoft Corporation
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 Vision: The user to user web! Mainframe PC Web P2P Centralized Personal Distributed Peer-to-peer Name Resolution
Making Windows a great platform for P2P Firewall Traversal Sockets, DNS, files, print, …. Firewall, NAT IPv6 Multicast? Security? DNS? Graphs Group Membership P2P Names 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 Distributed 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… Peer-to-Peer Name Resolution Look up initiated Distributed Peer-to-peer Name Resolution
Names should resolve to the intended address, One should not be able to fake an identifier But one should not impose a central server… Design Goal 1, Security: Hello, I am alice@example.com 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” Distributed Peer-to-peer Name Resolution
Scale to the size of the Internet! Assume at least one name per node. Scale without a central server. Design Goal 2: Scalable 1,000 10,000 100,000 1,000,000 10,000,000 100,000,000 1,000,000,000 Distributed Peer-to-peer Name Resolution
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 Scalable: a hierarchical cache 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” 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. 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 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! 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 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. Distributed Peer-to-peer Name Resolution
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 Usable: gateway to the DNS Target Node: Reply on the same path Look up initiated PNRP.net Distributed Peer-to-peer Name Resolution
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 Peer-to-peer Naming: Summary Target Node: Reply on the same path Look up initiated PNRP.net 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 Distributed Peer-to-peer Name Resolution
Call to Action • Support IPv6 in your Applications • Leverage UPnP NAT Traversal Today • Participate in Software Design Review Distributed Peer-to-peer Name Resolution