Title: Distributed Peer-to-peer Name Resolution
1Distributed Peer-to-peer Name Resolution
- Christian Huitema
- Architect, Windows Networking
- Microsoft Corporation
2Vision 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
3Making Windows a great platform for P2P
Firewall Traversal
Sockets, DNS, files, print, .
Firewall, NAT
IPv6
Multicast?
Security?
DNS?
Graphs
Group Membership
P2P Names
4Naming 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
5Peer-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
6Design 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_at_example.com
7Secure 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 (authoritys key, Name)
- Validity certified by authority
8Design 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
9Scalable 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
10Scalable 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
11Design 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.
12Robust 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
13Design Goal 4 Privacy
- Some information is sensitive location,
membership in groups, documents - Control who can learn what you publish!
14Privacy 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
- Dont forward outside of scope
- Dont cache out of scope records
15Design 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.
16Usable gateway to the DNS
- Global DNS name
- ltIDgt.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
Target Node Reply on the same path
Look up initiated
PNRP.net
17Peer-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
18Peer-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
19Call to Action
- Support IPv6 in your Applications
- Leverage UPnP NAT Traversal Today
- Participate in Software Design Review