Addressing the P2P Bootstrap Problem for Small Overlay Networks David Wolinsky, Pierre St. Juste, P. Oscar Boykin, and Renato Figueiredo ACIS P2P Group.

Slides:



Advertisements
Similar presentations
Current methods for negotiating firewalls for the Condor ® system Bruce Beckles (University of Cambridge Computing Service) Se-Chang Son (University of.
Advertisements

© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 3: VLANs Routing & Switching.
CST Computer Networks NAT CST 415 4/10/2017 CST Computer Networks.
CPSC Network Layer4-1 IP addresses: how to get one? Q: How does a host get IP address? r hard-coded by system admin in a file m Windows: control-panel->network->configuration-
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Addressing the Network – IPv4 Network Fundamentals – Chapter 6.
Center for Autonomic Computing Intel Portland, April 30, 2010 Autonomic Virtual Networks and Applications in Cloud and Collaborative Computing Environments.
P2P and NAT How to traverse NAT Davide Carboni ©
NAT/Firewall Traversal April NAT revisited – “port-translating NAT”
STUN Date: Speaker: Hui-Hsiung Chung 1.
SIP Traversal over NAT Problems and Solutions Mr. Ting-Yun Chi May 2,2006 (Taiwan,NICI IPv6 R&D Division)
NAT Traversal for P2PSIP Philip Matthews Avaya. Peer X Peer Y Peer W 2. P2PSIP Network Establishing new Peer Protocol connection Peer Protocol messages.
Review of a research paper on Skype
Comparison between Skype and SIP- based Peer-to-Peer Voice-Over-IP Overlay Network Johnson Lee EECE 565 Data Communications.
1 © 2005 Cisco Systems, Inc. All rights reserved. Cisco Confidential Session Number Presentation_ID STUN, TURN and ICE Cary Fitzgerald.
NAT TRAVERSAL FOR IPSEC Research Seminar on Datacommunications Software HIIT
Developers: Alexey Rastvortsev, Ilya Kolchinsky Supervisors: Roy Friedman, Alex Kogan.
1 Internet Networking Spring 2004 Tutorial 13 LSNAT - Load Sharing NAT (RFC 2391)
K. Salah 1 Chapter 31 Security in the Internet. K. Salah 2 Figure 31.5 Position of TLS Transport Layer Security (TLS) was designed to provide security.
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
Mobile IP Overview: Standard IP Standard IP Evolution of Mobile IP Evolution of Mobile IP How it works How it works Problems Assoc. with it Problems Assoc.
What we will cover… Home Networking: Network Address Translation (NAT) Mobile Routing.
More about Skype. Overview Any node with a public IP address having sufficient CPU, memory and network bandwidth is a candidate to become a super node.
Kyushu University Graduate School of Information Science and Electrical Engineering Department of Advanced Information Technology Supervisor: Professor.
SIP, NAT, Firewall SIP NAT Firewall How to Traversal NAT/Firewall for SIP.
Subnetting.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #12 LSNAT - Load Sharing NAT (RFC 2391)
Center for Autonomic Computing Intel Portland, April 30, 2010 Autonomic Virtual Networks and Applications in Cloud and Collaborative Computing Environments.
1 Chapter Overview IP (v4) Address IPv6. 2 IPv4 Addresses Internet Protocol (IP) is the only network layer protocol with its own addressing system and.
Chapter 26 Client Server Interaction Communication across a computer network requires a pair of application programs to cooperate. One application on one.
Networking Components Chad Benedict – LTEC
FIREWALL TECHNOLOGIES Tahani al jehani. Firewall benefits  A firewall functions as a choke point – all traffic in and out must pass through this single.
Unicenter Desktop & Server Management Network Challenges -Latest Revision 11/28/2005.
Support Protocols and Technologies. Topics Filling in the gaps we need to make for IP forwarding work in practice – Getting IP addresses (DHCP) – Mapping.
On the Design of Autonomic, Decentralized VPNs David Wolinsky, Kyungyong Lee, Oscar Boykin, and Renato Figueiredo ACIS P2P Group University of Florida.
23-Support Protocols and Technologies Dr. John P. Abraham Professor UTPA.
CS 5565 Network Architecture and Protocols
SOCKS Group: Challenger Member: Lichun Zhan. Agenda Introduction SOCKS v4 SOCKS v5 Summary Conclusion References Questions.
 Introduction  VoIP  P2P Systems  Skype  SIP  Skype - SIP Similarities and Differences  Conclusion.
Professor OKAMURA Laboratory. Othman Othman M.M. 1.
1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services.
1 NAT Network Address Translation Motivation for NAT To solve the insufficient problem of IP addresses IPv6 –All software and hardware need to be updated.
STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs) speaker : Wenping Zhang date :
CS3502: Data and Computer Networks Local Area Networks - 4 Bridges / LAN internetworks.
Networks – Network Architecture Network architecture is specification of design principles (including data formats and procedures) for creating a network.
Grid Appliance – On the Design of Self-Organizing, Decentralized Grids David Wolinsky, Arjun Prakash, and Renato Figueiredo ACIS Lab at the University.
Professor OKAMURA Laboratory. Othman Othman M.M. 1.
Chapter Three Network Protocols By JD McGuire ARP Address Resolution Protocol Address Resolution Protocol The core protocol in the TCP/IP suite that.
CIS 3360: Internet: Network Layer Introduction Cliff Zou Spring 2012.
2: Application Layer 1 Chapter 2: Application layer r 2.1 Principles of network applications r 2.2 Web and HTTP r 2.3 FTP r 2.4 Electronic Mail  SMTP,
Network Layer4-1 Chapter 4: Network Layer r 4. 1 Introduction r 4.2 Virtual circuit and datagram networks r 4.3 What’s inside a router r 4.4 IP: Internet.
4BP1 Electronic & Computer Engineering Paul Gildea th Year Interim Project Presentation.
Othman Othman M.M., Koji Okamura Kyushu University 1.
An analysis of Skype protocol Presented by: Abdul Haleem.
RTCWEB Considerations for NATs, Firewalls and HTTP proxies draft-hutton-rtcweb-nat-firewall- considerations A. Hutton, T. Stach, J. Uberti.
SOCKS By BITSnBYTES (Bhargavi, Maya, Priya, Rajini and Shruti)
Making SIP NAT Friendly Jonathan Rosenberg dynamicsoft.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 3: VLANs Routing & Switching.
1 Network Address Translation. 2 Network Address Translation (NAT) Extension of original addressing scheme Motivated by exhaustion of IP address space.
IP Security (IPSec) Matt Hermanson. What is IPSec? It is an extension to the Internet Protocol (IP) suite that creates an encrypted and secure conversation.
SOSIMPLE: A Serverless, Standards- based, P2P SIP Communication System David A. Bryan and Bruce B. Lowekamp College of William and Mary Cullen Jennings.
Skype.
HIP-Based NAT Traversal in P2P-Environments
NAT (Network Address Translation)
改良UDP洞穿技術設計物聯網通訊: 以遠端門鈴監控系統為例 Improving UDP Hole Punching Technique For IoT Communications: A Remote Door-bell Monitoring System 報告時間28~32分佳 楊凱勝 指導教授:柯開維.
Welcome! Thank you for joining us. We’ll get started in a few minutes.
Introduction to Networking
Introducing To Networking
NET323 D: Network Protocols
NET323 D: Network Protocols
Request for Comments(RFC) 3489
Presentation transcript:

Addressing the P2P Bootstrap Problem for Small Overlay Networks David Wolinsky, Pierre St. Juste, P. Oscar Boykin, and Renato Figueiredo ACIS P2P Group University of Florida

Motivation Users want to be connected – Online games – Exchange media Family pictures and movies Favorite music – Social networking How can they get connected?

Issues Centralized systems are not user centric – Invasive, record / monitor you – Limited flexibility, expandability – Have costs associated with it Decentralized / P2P solutions are difficult – Bootstrapping requires a dedicated community with many users or dedicated bootstrap servers – Has to support NAT traversal – Must be able to identify users and communicate with them

Contributions Explore bootstrapping issues in transparent, decentralized P2P systems Investigate the use of publicly available overlays as bootstrap systems Present our techniques in creating a small overlay using XMPP and Brunet – XMPP / Jabber – Popular chat protocol – Brunet – open source (structured) overlay software

Outline Introduction Overlays Bootstrapping from Overlays Using Existing Overlays Implementation through Recursion Implementation through XMPP Conclusions

Outline Introduction Overlays Bootstrapping from Overlays Using Existing Overlays Implementation through Recursion Implementation through XMPP Conclusions

Considerations Transparent decentralized NAT traversal is hard – Who provides the STUN / TURN server? – How do users configure their software to point to that server? How are users supposed to find each other? – Exchange IP addresses with each other? – Run their computers on a LAN – using multicast / broadcast software?

Bootstrapping

Reflection – Peers need global IDs so that they can communicate with each other

Bootstrapping Reflection – Peers need global IDs so that they can communicate with each other

Bootstrapping Reflection – Peers need global IDs so that they can communicate with each other

Bootstrapping Reflection – Peers need global IDs so that they can communicate with each other Rendezvous – The ability to identify peers with a common interest

Bootstrapping Reflection – Peers need global IDs so that they can communicate with each other Rendezvous – The ability to identify peers with a common interest

Bootstrapping Reflection – Peers need global IDs so that they can communicate with each other Rendezvous – The ability to identify peers with a common interest

Bootstrapping Reflection – Peers need global IDs so that they can communicate with each other Rendezvous – The ability to identify peers with a common interest Relaying – Communication through the overlay to instigate NAT traversal or for when NAT traversal fails

Bootstrapping Reflection – Peers need global IDs so that they can communicate with each other Rendezvous – The ability to identify peers with a common interest Relaying – Communication through the overlay to instigate NAT traversal or for when NAT traversal fails

Bootstrapping Reflection – Peers need global IDs so that they can communicate with each other Rendezvous – The ability to identify peers with a common interest Relaying – Communication through the overlay to instigate NAT traversal or for when NAT traversal fails

Bootstrapping Reflection – Peers need global IDs so that they can communicate with each other Rendezvous – The ability to identify peers with a common interest Relaying – Communication through the overlay to instigate NAT traversal or for when NAT traversal fails

Bootstrapping Reflection – Peers need global IDs so that they can communicate with each other Rendezvous – The ability to identify peers with a common interest Relaying – Communication through the overlay to instigate NAT traversal or for when NAT traversal fails

Bootstrapping Reflection – Peers need global IDs so that they can communicate with each other Rendezvous – The ability to identify peers with a common interest Relaying – Communication through the overlay to instigate NAT traversal or for when NAT traversal fails

Outline Introduction Overlays Bootstrapping from Overlays Using Existing Overlays Implementation through Recursion Implementation through XMPP Conclusions

Existing Overlays OverlayThe GoodThe Bad BitTorrentVery popular!Very centralized! Limited NAT traversal GnutellaCompletely DecentralizedCan be difficult to find rare values, no NAT traversal SkypeCompletely Decentralized with rendezvous and relaying, limited NAT traversal Closed source, no external NAT traversal support, must use Skype transports XMPPFederated (Centralized / Decentralized) Only some servers provide NAT traversal KademliaCompletely decentralized and very efficient rendezvous No NAT traversal or relaying support BrunetCompletely decentralized, supports all requirements Academic, limited adoption

Outline Introduction Overlays Bootstrapping from Overlays Using Existing Overlays Implementation through Recursion Implementation through XMPP Conclusions

Brunet – Overview Brunet provides – Generic overlay library – Abstracted transports library – NAT traversal via STUN and TURN – Structured overlay with DHT IPOP / SocialVPN builds upon Brunet to create IP overlays Developers can use IPOP or tap directly into Brunet Publicly available PlanetLab overlay

Abstraction EdgeListeners handle creating outgoing links and handling incoming links Edges store state for links Connections store overlay information for links and represent Connection Managers create links, verify bidirectional connectivity, and add to routing Node constructs the environment and provides basic routing primitives

EdgeListener / Edges Generic transports library Examples: – UDP – good for NAT traversal – TCP – works when firewalls block UDP – Relay – route through overlay node – useful when a direct link is not available (firewall / NAT) – Xmpp – route through XMPP server – useful for bootstrapping as well as relaying – Subring – route through another Brunet overlay – useful for bootstrapping as well as relaying – Pathing – Allows multiple overlays to use the same EdgeListener Primitives – EdgeListener::CreateEdgeTo(Address) – create a link to a remote address – EdgeListener::Subscribe(Listener) – Listener receives packets and incoming edges – Edge::Send(Data)

Initiating Private Communication

Outline Introduction Overlays Bootstrapping from Overlays Using Existing Overlays Implementation through Recursion Implementation through XMPP Conclusions

Introducing the Federation XMPP is a federation – Over 70 distinct and active service providers – Including GoogleTalk, Jabber.org, and Live Journal – Can establish friendships across providers – Users from GoogleTalk can chat with Jabber.org users Overlay bootstrapping features: – Each peer has a unique identifier in the form of – Supports sending binary messages called IQ – Some servers support “Jingle” an XMPP service to discover STUN and TURN servers

Bootstrapping through XMPP

Outline Introduction Overlays Bootstrapping from Overlays Using Existing Overlays Implementation through Recursion Implementation through XMPP Conclusions

How Well Does it Work? Time to bootstrap 5 peers behind 5 different port restricted cone NATs Tests were repeated 5 times – averages shown Reflection is time for the private peer to become aware – Brunet slowed due to booting public node first Rendezvous – XMPP presence notification from the server – Brunet measures a DHT look up Relaying – XMPP – time to relay a packet through the server – Brunet – time to relay a packet through the overlay Connected – time until all nodes are part of a new overlay Recent work has discovered a bug that makes connectivity much faster (on the order of a few seconds) In SecondsReflectionRendezvousRelayingConnected XMPP Brunet

Experiences Supporting XMPP is not the same as being in the Federation – Facebook supports XMPP clients but does not support IQ (data messages) GoogleTalk blocks communication from PlanetLab Cross-domain XMPP initiation appears delayed – up to 30 seconds between jabber.rootbash.com and GoogleTalk

Our Use (1) – SocialVPN SocialVPN uses XMPP friendships to establish VPN links Originally, XMPP was only used to exchange certificate and then links were formed through our public Brunet overlay Now if our public overlay is down – Peers can direct links via XMPP What happens if XMPP is down – Peers can form direct links via the overlay SocialVPN is no longer dependent on our overlay!

Choosing Overlays Goal achieved– Completely transparent solution – Reflection for identity – Rendezvous to find peers – Relaying to establish direct links Limited our choices to XMPP and Brunet Issue with XMPP – Users must be friends in order to have successful rendezvous Future work – Use Kademlia for rendezvous to automatically create XMPP friends and use XMPP for relaying and reflection

Thank you! Questions? More at

Discovery / Rendezvous Bob, where are you? Over here, Alice!

Bootstrapping – NATs Node behind a NAT to a node on a public IP

Bootstrapping – NATs Node behind a NAT to a node on a public IP

Bootstrapping – NATs Node behind a NAT to a node on a public IP

Bootstrapping – NATs Node behind a NAT to a node on a public IP

Bootstrapping – NATs Node behind a NAT to a node on a public IP

Bootstrapping – NATs Node behind a NAT to a node on a public IP Failed NAT traversal

Bootstrapping – NATs Node behind a NAT to a node on a public IP Failed NAT traversal

Bootstrapping – NATs Node behind a NAT to a node on a public IP Failed NAT traversal

Bootstrapping – NATs Node behind a NAT to a node on a public IP Failed NAT traversal

Bootstrapping – NATs Node behind a NAT to a node on a public IP Failed NAT traversal Successful NAT traversal

Bootstrapping – NATs Node behind a NAT to a node on a public IP Failed NAT traversal Successful NAT traversal

Bootstrapping – NATs Node behind a NAT to a node on a public IP Failed NAT traversal Successful NAT traversal

Bootstrapping – NATs Node behind a NAT to a node on a public IP Failed NAT traversal Successful NAT traversal

Bootstrapping – Reflection to Relaying Reflection (via STUN)

Bootstrapping – Reflection to Relaying Reflection (via STUN)

Bootstrapping – Reflection to Relaying Reflection (via STUN)

Bootstrapping – Reflection to Relaying Reflection (via STUN)

Bootstrapping – Reflection to Relaying Reflection (via STUN)

Bootstrapping – Reflection to Relaying Reflection (via STUN) NAT traversal initiated by a relay

Bootstrapping – Reflection to Relaying Reflection (via STUN) NAT traversal initiated by a relay

Bootstrapping – Reflection to Relaying Reflection (via STUN) NAT traversal initiated by a relay

Bootstrapping – Reflection to Relaying Reflection (via STUN) NAT traversal initiated by a relay

Supporting Recursion NAT traversal always multiplexes a single UDP socket, thus for Cone NAT systems, the peer has a common public IP and port Each overlay has a unique Path Upon creating a link, an RPC from the creator to the receiver specifies which Path the link belongs Requires that a single pathway can be multiplexed – TCP does this by using different source ports – UDP requires an additional header containing source and destination remote IDs (Something TCP will require too if NAT traversal is to be supported)