Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE 222a Final Project - UCSD Spring 2007 p2p DNS addressing Presented By- Anup Tapadia Alexander Loukissas Justin Wu.

Similar presentations


Presentation on theme: "CSE 222a Final Project - UCSD Spring 2007 p2p DNS addressing Presented By- Anup Tapadia Alexander Loukissas Justin Wu."— Presentation transcript:

1 CSE 222a Final Project - UCSD Spring 2007 p2p DNS addressing Presented By- Anup Tapadia Alexander Loukissas Justin Wu

2 CSE 222a Final Project - UCSD Spring 2007 Problem Why can’t we use DNS address as a primary identifier for a computer to connect from anywhere, anytime ? Why can’t we use DNS address as a primary identifier for a computer to connect from anywhere, anytime ? Eg – peter.myworld.com  Connects to peter Eg – peter.myworld.com  Connects to peter 1.NAT – Network address translators 2.Firewalls

3 CSE 222a Final Project - UCSD Spring 2007 Solution We introduce a p2p DNS addressing scheme that deals with both problems We introduce a p2p DNS addressing scheme that deals with both problems Addressing: Host names are decoupled from IP addresses Addressing: Host names are decoupled from IP addresses Connectivity: Hosts can receive and respond to HTTP requests, even when they are behind a NAT Connectivity: Hosts can receive and respond to HTTP requests, even when they are behind a NAT

4 CSE 222a Final Project - UCSD Spring 2007 NATs Most DSL/Cable routers have a NAT built into them Most DSL/Cable routers have a NAT built into them NATs block incoming connections, making the host inaccessible NATs block incoming connections, making the host inaccessible Many applications use techniques that “punch UDP holes” through the NATs (e.g. Skype) Many applications use techniques that “punch UDP holes” through the NATs (e.g. Skype)

5 CSE 222a Final Project - UCSD Spring 2007 The system at a glance Step 1: DNS query for john.p2p.net PC with public IP (Super Server) PC behind NAT Step 1: DNS query for peter.p2p.net Step 3: Relay traffic between mobile and PC behind NAT Step 2: HTTP requests and responses Step 2: HTTP requests and responses Case 2: PC behind NAT Case 1: PC with public IP Step 4: (Optional) TCP hole punching

6 CSE 222a Final Project - UCSD Spring 2007 Client 1 Nat B P2P DNS Client (Super Server) Nat AClient 2 HTTP Get from A:P1 Outbound initialize req SYN from B:P2 for Super Serv HTTP redirect for B:P2 SYN from B:P2 for NAT A SYN from A:P3 to B:P2 SYN-ACK ACK Data Passive TCP Listen Pre-established connection TCP connect TCP NAT Traversal

7 CSE 222a Final Project - UCSD Spring 2007 p2pDNS Client Small Java application that provides both addressing and connectivity to host Small Java application that provides both addressing and connectivity to host Utilizes feedback from STUN and DNS server Utilizes feedback from STUN and DNS server Automatically runs in either SuperServer of Client mode Automatically runs in either SuperServer of Client mode

8 CSE 222a Final Project - UCSD Spring 2007 p2pDNS Server Tasks Overloads standard DNS server Overloads standard DNS server e.g. bind9 e.g. bind9 Assigns SuperServers to hosts Assigns SuperServers to hosts Maintains information for all online hosts Maintains information for all online hosts DNS lookup queries are handled as usual DNS lookup queries are handled as usual e.g. by named on port 53 e.g. by named on port 53 Overhead only on host login/logout Overhead only on host login/logout

9 CSE 222a Final Project - UCSD Spring 2007 p2pDNS Server Table Username Unique username of a host Password Required for authentication of the host Hostname Permanent FQDN (e.g. john.p2p.net) SuperServerTrue/False Public IP Host’s public IP address (as reported by STUN) Private IP Host’s private IP address (as reported by STUN) NAT type Based on STUN info Load # hosts connected to this SuperServer ISP Internet Service provider Latitude Information for SuperServer election using Geolocation Longitude SS1 IP addresses of primary and secondary SuperServer SS2

10 CSE 222a Final Project - UCSD Spring 2007 Host logon process 1. Host contacts DNS server on known IP address and port 2. Host sends logon request to the DNS server 3. Based on information from the logon message, the DNS server authorizes the host and if needed, provides the IP address of a SuperServer 4. DNS server updates lookup table

11 CSE 222a Final Project - UCSD Spring 2007 Partial Decentralization P2P DNS SS C C C C C C C C C C C C C C C C C C C C C

12 CSE 222a Final Project - UCSD Spring 2007 Super-server election Load Load Bandwidth Bandwidth Latency Latency # of clients logged on # of clients logged on Geographical distance (ip2location.com database) Geographical distance (ip2location.com database) Physical distance Physical distance ISP ISP Availability Availability

13 CSE 222a Final Project - UCSD Spring 2007 Geolocational election 0,0 -180,180 180,-180 -180,-180 180,180 d1d1 d2d2

14 CSE 222a Final Project - UCSD Spring 2007 Experimental setup p2pDNS server p2pDNS server Client behind NAT (alex.p2p.net) Client behind NAT (alex.p2p.net) Super Server / client (justin.p2p.net) Super Server / client (justin.p2p.net) Multi threaded HTTP client Multi threaded HTTP client

15 CSE 222a Final Project - UCSD Spring 2007 Relay Overhead

16 CSE 222a Final Project - UCSD Spring 2007 Achievements p2pDNS registration and updates p2pDNS registration and updates Serves any HTTP server with any http client Serves any HTTP server with any http client Symmetric NAT traversal through super server relays Symmetric NAT traversal through super server relays Common case TCP traversal through NAT hole punching Common case TCP traversal through NAT hole punching Study of geolocational server election Study of geolocational server election

17 CSE 222a Final Project - UCSD Spring 2007 Key Issues SuperServer failover and fast recovery SuperServer failover and fast recovery Fast DNS cache updates Fast DNS cache updates Effect of low TTL on DNS server load Effect of low TTL on DNS server load TCP traversal through various NAT’s TCP traversal through various NAT’s Security Security

18 CSE 222a Final Project - UCSD Spring 2007 Conclusion It works ! It works ! TCP NAT hole punching is hard to synchronize but achievable in common cases TCP NAT hole punching is hard to synchronize but achievable in common cases Needs moderate central infrastructure Needs moderate central infrastructure Future Work Future Work Scalability needs to be tested Scalability needs to be tested Failover and recovery Failover and recovery More De-centralization More De-centralization Extend p2pDNS services past HTTP Extend p2pDNS services past HTTP


Download ppt "CSE 222a Final Project - UCSD Spring 2007 p2p DNS addressing Presented By- Anup Tapadia Alexander Loukissas Justin Wu."

Similar presentations


Ads by Google