Distributed Peer-to-peer Name ResolutionChristian HuitemaArchitect, Windows NetworkingMicrosoft Corporation
Vision: The user to user web!Enable each PC to be a serverServe ad-hoc groupsPromote and use IPv6, directly attach the users to the Net Provide a server-less DNS for IPv6Platform for developersCentralizedPersonalPCWebP2PMainframe
Making Windows a great platform for P2PSockets, DNS, files, print, .Firewall, NATMulticast?Security?DNS?IPv6Firewall TraversalGraphsGroup MembershipP2P Names
Naming: the key to P2P developmentProvide each computer with a nameEach computer is a serverNames must be stable Resolve names to addressesAlso name groups, usersFind a member of a group,Find the location of a user
Peer-to-Peer Name ResolutionIdentity = 128-bit numberNo trademark!Nodes manage a cache of recordsIdentity IPv6 addressProof (certificate)Secure, Scalable, Robust, Private, Usable Look up initiated
Design Goal 1, Security:Names should resolve to the intended address,One should not be able to fake an identifierBut one should not impose a central serverHello, I am [email protected]
Secure: use certificates, prove the nameRecord = Identity, IPv6 Address, ProofSign [identity, address] with local private keyCheck signature before placing in cacheHost Identity = hash (public key)Group member Id = hash (group key)Group membership, certified by group keyGeneric = hash (authoritys key, Name)Validity certified by authority
Design Goal 2: ScalableScale to the size of the Internet!Assume at least one name per node.Scale without a central server.
Scalable: a hierarchical cacheCircular space, centered on selfCache levels:First level: 360Second level: 36Etc.Query: Forward to nearestGain one levellog base X of (N) levels, 2.X Entries per level
Scalable cache managementInitial cache: from memory, from neighborProactive requests, tell the networkUpdate:Learn from queries, requestsTry to fill each level, then replaceFinest level:Learn about all immediate neighbors
Design Goal 3: RobustNo 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.
Robust: reputation & randomizationNeighbor reputation: from query completion + verificationForward query: random choice, use reputationCache replacement: random & reputationTimers, removal of failing entries from the cache
Design Goal 4: PrivacySome information is sensitive: location, membership in groups, documentsControl who can learn what you publish!
Privacy: control the scope of publicationPeer-to-peer name cloud = set of cachesParallel cloudsAd hoc, on the same linkIn the same siteWithin a group (group = authority)The whole InternetEnforcement:Check membership of requestorDont forward outside of scopeDont cache out of scope records
Design Goal 5: immediately usableOn the Internet, Name = Domain NameUsed for Web Page, E-Mail, FTPLimited availability, requires a contract and a permanent IP address.
Usable: gateway to the DNSGlobal DNS name:.pnrp.netUse in URL, e-mailEnables bootstrapCentral DNS gateway:Publish NS record,Join P2P cloud,Forward requestsLocal gateway:P2P aware resolver Look up initiatedTarget Node: Reply on the same path PNRP.net
Peer-to-peer Naming: SummaryNumbers are our friends: hosts, groups, URLScale to the size of the Internet, peer-to-peer, no server.Prototype tested with 50,000 nodesSecure, Private, Robust, Usable Look up initiatedTarget Node: Reply on the same path PNRP.net
Peer-to-Peer RoadmapUPnP Enabled NATs End of 01IPv6 Service Deployment End of 01P2P SDK Design Review End of 01P2P SDK beta Q1-02P2P SDK v1 Q3-02
Call to ActionSupport IPv6 in your ApplicationsLeverage UPnP NAT Traversal TodayParticipate in Software Design Review