P2P-SIP Peer to peer Internet telephony using SIP (Session Initiation Protocol) Kundan Singh and Henning Schulzrinne Columbia University, New York June.

Slides:



Advertisements
Similar presentations
ECOM6001 – Internet and the WWW Peer-to-Peer (P2P) Technologies Roger Clarke, Xamax Consultancy, Canberra Visiting Professor, CSIS, Uni of Hong Kong.
Advertisements

P2P data retrieval DHT (Distributed Hash Tables) Partially based on Hellerstein’s presentation at VLDB2004.
Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan MIT and Berkeley presented by Daniel Figueiredo Chord: A Scalable Peer-to-peer.
Peer-to-Peer Systems Chapter 25. What is Peer-to-Peer (P2P)? Napster? Gnutella? Most people think of P2P as music sharing.
Clayton Sullivan PEER-TO-PEER NETWORKS. INTRODUCTION What is a Peer-To-Peer Network A Peer Application Overlay Network Network Architecture and System.
Chord: A scalable peer-to- peer lookup service for Internet applications Ion Stoica, Robert Morris, David Karger, M. Frans Kaashock, Hari Balakrishnan.
Comparison between Skype and SIP- based Peer-to-Peer Voice-Over-IP Overlay Network Johnson Lee EECE 565 Data Communications.
Chord A Scalable Peer-to-peer Lookup Service for Internet Applications
Peer-to-Peer Networks as a Distribution and Publishing Model Jorn De Boever (june 14, 2007)
Application Layer Overlays IS250 Spring 2010 John Chuang.
P2P-SIP Peer to peer Internet telephony using SIP Kundan Singh and Henning Schulzrinne Columbia University, New York May 2005
Peer to Peer File Sharing Huseyin Ozgur TAN. What is Peer-to-Peer?  Every node is designed to(but may not by user choice) provide some service that helps.
Topics in Reliable Distributed Systems Lecture 2, Fall Dr. Idit Keidar.
Introduction to Peer-to-Peer (P2P) Systems Gabi Kliot - Computer Science Department, Technion Concurrent and Distributed Computing Course 28/06/2006 The.
Peer-to-peer systems for autonomic VoIP and web hotspot handling
Idit Keidar, Principles of Reliable Distributed Systems, Technion EE, Spring Principles of Reliable Distributed Systems Lecture 2: Peer-to-Peer.
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek and Hari alakrishnan.
Peer-to-Peer Intro Jani & Sami Peltotalo.
Chord-over-Chord Overlay Sudhindra Rao Ph.D Qualifier Exam Department of ECECS.
Topics in Reliable Distributed Systems Fall Dr. Idit Keidar.
Peer-to-peer approaches for SIP Henning Schulzrinne Dept. of Computer Science Columbia University.
March 31, 2005Thomson1 Advanced Network Services: P2P VoIP, location-based services and self-managing server farms Henning Schulzrinne (and members of.
Introduction to Peer-to-Peer Networks. What is a P2P network Uses the vast resource of the machines at the edge of the Internet to build a network that.
P2P File Sharing Systems
Introduction Widespread unstructured P2P network
Application Layer – Peer-to-peer UIUC CS438: Communication Networks Summer 2014 Fred Douglas Slides: Fred, Kurose&Ross (sometimes edited)
 Introduction  VoIP  P2P Systems  Skype  SIP  Skype - SIP Similarities and Differences  Conclusion.
Introduction to Peer-to-Peer Networks. What is a P2P network A P2P network is a large distributed system. It uses the vast resource of PCs distributed.
Peer-to-Peer Networking. Presentation Introduction Characteristics and Challenges of Peer-to-Peer Peer-to-Peer Applications Classification of Peer-to-Peer.
IP telephony overview and demonstration
Introduction of P2P systems
Peer-to-Peer Networks University of Jordan. Server/Client Model What?
Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications Xiaozhou Li COS 461: Computer Networks (precept 04/06/12) Princeton University.
Peer-to-Pee Computing HP Technical Report Chin-Yi Tsai.
Peer-to-peer systems for autonomic VoIP and web hotspot handling Kundan Singh, Weibin Zhao and Henning Schulzrinne Internet Real Time Laboratory Computer.
P2P-SIP Peer to peer Internet telephony using SIP Kundan Singh and Henning Schulzrinne Columbia University, New York April 2005
An Introduction to Peer-to-Peer Networks Presentation for MIE456 - Information Systems Infrastructure II Vinod Muthusamy October 30, 2003.
1 Distributed Hash Tables (DHTs) Lars Jørgen Lillehovde Jo Grimstad Bang Distributed Hash Tables (DHTs)
Network Computing Laboratory Scalable File Sharing System Using Distributed Hash Table Idea Proposal April 14, 2005 Presentation by Jaesun Han.
Super-peer Network. Motivation: Search in P2P Centralised (Napster) Flooding (Gnutella)  Essentially a breadth-first search using TTLs Distributed Hash.
1 Peer-to-Peer Systems r Application-layer architectures r Case study: BitTorrent r P2P Search and Distributed Hash Table (DHT)
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications.
SIGCOMM 2001 Lecture slides by Dr. Yingwu Zhu Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications.
FastTrack Network & Applications (KaZaA & Morpheus)
1 Peer-to-Peer Technologies Seminar by: Kunal Goswami (05IT6006) School of Information Technology Guided by: Prof. C.R.Mandal, School of Information Technology.
An analysis of Skype protocol Presented by: Abdul Haleem.
P2P-SIP Peer to peer Internet telephony using SIP Kundan Singh and Henning Schulzrinne Columbia University, New York Dec 15, 2005
PEER TO PEER (P2P) NETWORK By: Linda Rockson 11/28/06.
Peer to Peer A Survey and comparison of peer-to-peer overlay network schemes And so on… Chulhyun Park
VOIP over Peer-to-Peer
1 Secure Peer-to-Peer File Sharing Frans Kaashoek, David Karger, Robert Morris, Ion Stoica, Hari Balakrishnan MIT Laboratory.
Idit Keidar, Principles of Reliable Distributed Systems, Technion EE, Spring Principles of Reliable Distributed Systems Lecture 2: Distributed Hash.
Reliable and Scalable Internet Telephony Kundan Singh and Henning Schulzrinne Internet Real Time Lab – Internal Talk Sept 24, 2004.
Algorithms and Techniques in Structured Scalable Peer-to-Peer Networks
Peer-to-Peer Systems: An Overview Hongyu Li. Outline  Introduction  Characteristics of P2P  Algorithms  P2P Applications  Conclusion.
INTERNET TECHNOLOGIES Week 10 Peer to Peer Paradigm 1.
P2P Search COP6731 Advanced Database Systems. P2P Computing  Powerful personal computer Share computing resources P2P Computing  Advantages: Shared.
P2P Search COP P2P Search Techniques Centralized P2P systems  e.g. Napster, Decentralized & unstructured P2P systems  e.g. Gnutella.
Malugo – a scalable peer-to-peer storage system..
1 Secure Peer-to-Peer File Sharing Frans Kaashoek, David Karger, Robert Morris, Ion Stoica, Hari Balakrishnan MIT Laboratory.
SOSIMPLE: A Serverless, Standards- based, P2P SIP Communication System David A. Bryan and Bruce B. Lowekamp College of William and Mary Cullen Jennings.
Skype.
Chord: A Scalable Peer-to-Peer Lookup Service for Internet Applications * CS587x Lecture Department of Computer Science Iowa State University *I. Stoica,
Peer-to-Peer Information Systems Week 12: Naming
Peer to peer Internet telephony challenges, status and trend
Peer-to-peer Internet telephony using SIP
DHT Routing Geometries and Chord
P2P-SIP Peer to peer Internet telephony using SIP
MIT LCS Proceedings of the 2001 ACM SIGCOMM Conference
Peer-to-Peer Information Systems Week 12: Naming
Presentation transcript:

P2P-SIP Peer to peer Internet telephony using SIP (Session Initiation Protocol) Kundan Singh and Henning Schulzrinne Columbia University, New York June

2 Agenda Introduction What is SIP? Why P2P-SIP? Architecture Design choices: SIP using P2P vs P2P over SIP; Components that can be P2P Implementation Choice of P2P algorithm (DHT); Node join, leave; message routing Conclusions and future work

3 What is SIP? Why P2P-SIP? Bob’s host Alice’s host REGISTER => INVITE Contact: columbia.edu Client-server=> maintenance, configuration, controlled infrastructure P2P overlay Alice REGISTER INVITE alice No central server, search latency

4 How to combine SIP + P2P? SIP-using-P2P Replace SIP location service by a P2P protocol P2P-over-SIP Additionally, implement P2P using SIP messaging P2P network Alice INSERT INVITE P2P-SIP overlay Alice REGISTER INVITE alice FIND

5 P2P-over-SIP P2P algorithm over SIP without change in semantics No dependence on external P2P network Reuse and interoperate with existing components, e.g., voic Built-in NAT/media relays Message overhead

6 What else can be P2P? Rendezvous/signaling (SIP) Configuration storage Media storage (e.g., voice mail) Identity assertion (?) Gateway (?) NAT/media relay (find best one)

7 What is our P2P-SIP? Unlike server-based SIP architecture Unlike proprietary Skype architecture Robust and efficient lookup using DHT Interoperability DHT algorithm uses SIP communication Hybrid architecture Lookup in SIP+P2P Unlike file-sharing applications Data storage, caching, delay, reliability Disadvantages Lookup delay and security

8 Background: DHT (Chord) Identifier circle Keys assigned to successor Evenly distributed keys and nodes Finger table: logN i th finger points to first node that succeeds n by at least 2 i Keynode 8+1 = = = = = =4042 Find Map key to node Join, Leave, or Failure Update the immediate neighbors Successor and predecessor Stabilize: eventually propagate the info Reliability Log(N) successors; data replication

9 Design Alternatives 65a1fc d13da3 d4213f d462ba d467c4 d471f1 d46a1c Route(d46a1c) Use DHT in server farm Use DHT for all clients; But some are resource limited Use DHT among super-nodes 1. Hierarchy 2. Dynamically adapt servers clients

10 Architecture User interface (buddy list, etc.)SIPICERTP/RTCPCodecsAudio devicesDHT (Chord) On startup DiscoverUser location Multicast REGISTERPeer found/ Detect NAT REGISTER REGISTER, INVITE, MESSAGE Signup, Find buddies Join Find Leave On reset Signout, transfer IM, call SIP-over-P2P P2P-using-SIP

11 Node Startup SIP REGISTER with SIP registrar DHT Discover peers: multicast REGISTER SLP, bootstrap, host cache Join DHT using node-key=Hash(ip) Query its position in DHT Update its neighbors Stabilization: repeat periodically User registers using user- REGISTER DB sipd Detect peers columbia.edu REGISTER alice=42 REGISTER bob=12

12 Node Leaves Chord reliability Log(N) successors, replicate keys Graceful leave Un-REGISTER Transfer registrations Failure Attached nodes detect and re-REGISTER New REGISTER goes to new super-nodes Super-nodes adjust DHT accordingly DHT REGISTER key=42 OPTIONS 42 REGISTER

13 Dialing Out (message routing) Call, instant message, etc. INVITE MESSAGE If existing buddy, use cache first If not found SIP-based lookup (DNS NAPTR, SRV,…) P2P lookup Use DHT to locate: proxy or redirect to next hop DHT Last seen INVITE key= INVITE

14 Implementation sippeer : C++, Unix (Linux), Chord Node join and form the DHT Node failure is detected and DHT updated Registrations transferred on node shutdown

15 Adaptor for existing phones Use P2P-SIP node as an outbound proxy ICE for NAT/firewall traversal STUN/TURN server in the node

16 Hybrid architecture Cross register, or Locate during call setup DNS, or P2P-SIP hierarchy

17 Advanced services Offline messages INVITE or MESSAGE fails: responsible node stores voic , instant message. Conferencing Three-party, full-mesh, multicast

18 Performance prediction Scalability #messages = f(refresh-rate, call arrival, join/leave/failure rate) M={r s + r f (log(N)) 2 } + c.log(N) + (k/t)log(N) + (log(N)) 2 /N User availability f(failure, refresh-rate, replication) Call setup latency f(availability, retransmission timers) Known buddies; DHT optimizations

19 More open issues (further study) Security Anonymity, encryption, Attack/DOS-resistant, SPAM-resistant Malicious node Protecting voic s from storage nodes Optimization Locality, proximity, media routing Deployment SIP-P2P vs P2P-SIP, Intra-net, ISP servers Motivation Why should I run as super-node?

20 Conclusions P2P useful for VoIP Scalable, reliable No configuration Not as fast as client/server P2P-SIP Basic operations easy Implementation sippeer : C++, Linux Interoperates Some potential issues Security Performance (?) C C C C C S P P P P P a1fc d13da3 d4213f d462ba d467c4 d471f1 d46a1c Route(d46a1c)

Backup slides

22 What is P2P? Share the resources of individual peers CPU, disk, bandwidth, information, … C C C C C S P P P P P Computer systems CentralizedDistributed Client-server Peer-to-peer FlatHierarchicalPureHybrid mainframes workstations DNS mount RPC HTTP Gnutella Chord Napster Groove Kazaa File sharing Communication and collaboration Distributed computing Napster Gnutella Kazaa Freenet Overnet Magi Groove Skype

23 Naming and authentication SIP URI as node and user identifiers Known node: Unknown node: User: User name is chosen randomly by the system, by the user, or as user’s the randomly generated password TTL, security

24 SIP messages DHT (Chord) maintenance Query the node at distance 2 k with node id 11 REGISTER To: From: SIP/ OK To: Contact: ; Update my neighbor about me REGISTER To: Contact: ; Find(11) gives 15 7

25 SIP messages User registration REGISTER To: Contact: Call setup and instant messaging INVITE To: From:

26 Distributed Hash Tables Types of search Central index (Napster) Distributed index with flooding (Gnutella) Distributed index with hashing (Chord) Basic operations find(key), insert(key, value), delete(key), no search(*) Properties/typesEvery peer has complete table Every peer has one key/value Search time or messages O(1)O(n) Join/leave messagesO(n)O(1)

27 Chord Identifier circle Keys assigned to successor Evenly distributed keys and nodes

28 Chord Finger table: logN i th finger points to first node that succeeds n by at least 2 i-1 Stabilization after join/leave Keynode 8+1 = = = = = =4042

29 Comparison Property/ scheme Un- structured CANChordTapestryPastryViceroy RoutingO(N) or no guarantee d x N 1/d log(N)log B N log(N) StateConstant2dlog(N)log B NB.log B Nlog(N) Join/leaveConstant2d(logN) 2 log B N log(N) Reliability and fault resilience Data at Multiple locations; Retry on failure; finding popular content is efficient Multiple peers for each data item; retry on failure; multiple paths to destination Replicate data on consecutive peers; retry on failure Replicate data on multiple peers; keep multiple paths to each peers Routing load is evenly distributed among participant lookup servers

30 Server-based vs peer-to-peer Reliability, failover latency DNS-based. Depends on client retry timeout, DB replication latency, registration refresh interval DHT self organization and periodic registration refresh. Depends on client timeout, registration refresh interval. Scalability, number of users Depends on number of servers in the two stages. Depends on refresh rate, join/leave rate, uptime Call setup latency One or two steps.O(log(N)) steps. SecurityTLS, digest authentication, S/MIME Additionally needs a reputation system, working around spy nodes Maintenance, configuration Administrator: DNS, database, middle-box Automatic: one time bootstrap node addresses PSTN interoperability Gateways, TRIP, ENUMInteract with server-based infrastructure or co-locate peer node with the gateway

31 Related work: Skype From the KaZaA community Host cache of some super nodes Bootstrap IP addresses Auto-detect NAT/firewall settings STUN and TURN Protocol among super nodes – ?? Allows searching a user (e.g., kun*) History of known buddies All communication is encrypted Promote to super node Based on availability, capacity Conferencing P P P P P P P P P PPP

32 Reliability and scalability Two stage architecture for CINEMA MasterSlaveMasterSlave s1 s2 s3 a1 a2 b1 b2 example.com _sip._udp SRV 0 40 s1.example.com SRV 0 40 s2.example.com SRV 0 20 s3.example.com SRV 1 0 ex.backup.com a.example.com _sip._udp SRV 0 0 a1.example.com SRV 1 0 a2.example.com b.example.com _sip._udp SRV 0 0 b1.example.com SRV 1 0 b2.example.com Request-rate = f(#stateless, #groups) Bottleneck: CPU, memory, bandwidth? Failover latency: ? ex

33 Related work P2P P2P networks Unstructured (Kazaa, Gnutella,…) Structured (DHT: Chord, CAN,…) Skype and related systems Flooding based chat, groove, Magi P2P-SIP telephony Proprietary: NimX, Peerio, File sharing: SIPShare

34 Why we chose Chord? Chord can be replaced by another As long as it can map to SIP High node join/leave rates Provable probabilistic guarantees Easy to implement X proximity based routing X security, malicious nodes

35 Related work JXTA vs Chord in P2P-SIP JXTA Protocol for communication (peers, groups, pipes, etc.) Stems from unstructured P2P P2P-SIP Instead of SIP, JXTA can also be used Separate search (JXTA) from signaling (SIP)

36 Find(user) Option-1: No REGISTER Node computes key based on user ID Nodes join the overlay based on ID One node  one user Option-2: With REGISTER REGISTERs with nodes responsible for its key Refreshes periodically Allows offline messages (?) REGISTER alice=42 REGISTER bob=12 alice=42 sam=24 bob=12

37 P2P-SIP Security – open issues (threats, solutions, issues) More threats than server-based Privacy, confidentiality Malicious node Don’t forward all calls, log call history (spy),… “free riding”, motivation to become super-node Existing solutions Focus on file-sharing (non-real time) Centralized components (boot-strap, CA) Assume co-operating peers ( works for server farm in DHT Collusion Hide security algorithm (e.g., yahoo, skype) Chord Recommendations, design principles, …

38 P2P so far… ApplejuiceApplejuice network Applejuice Client BitTorrentBitTorrent network ABC Azureus BitAnarch BitComet BitSpirit BitTornado BitTorrent BitTorrent++ BitTorrent.Net G3 Torrent mlMac MLDonkey QTorrent SimpleBT Shareaza TomatoTorrentTomatoTorrent (Mac OS X)Mac OS X TorrentStorm CAKECAKE network BirthdayCAKE Direct ConnectDirect Connect network BCDC++ CZDC++ DC++ NeoModus Direct Connect JavaDC DCGUI-QT GnutellaGnutella network AcquisitionxAcquisitionx (Mac OS X)Mac OS X BearShare BetBug Cabos CocoGnutCocoGnut (RISC OS)RISC OS Gnucleus Grokster iMesh Light gtk-gnutellagtk-gnutella (Unix)Unix LimeWireLimeWire (Java)Java MLDonkey mlMac Morpheus Phex Poisoned Swapper Shareaza XoloX Gnutella2Gnutella2 network Adagio Caribou Gnucleus iMesh Light MLDonkey mlMac Morpheus Shareaza TrustyFiles HyperCast Joltid PeerEnabler Altnet Bullguard Joltid KazaaKazaa, Kazaa LiteKazaa Lite eDonkeyeDonkey network aMuleaMule (Linux)Linux eDonkey client (no longer supported) eMule LMule MindGem MLDonkey mlMac Shareaza xMule iMesh Light ed2ked2k (eDonkey 2000 protocol) eDonkey eMule xMule aMule Shareaza FastTrackFastTrack protocol giFT Grokster iMeshiMesh, iMesh LightiMesh Light KazaaKazaa, Kazaa Lite, K++, Diet Kaza, CleanKazaaKazaa LiteK++Diet KazaCleanKazaa Mammoth MLDonkey mlMac Poisoned FreenetFreenet network Entropy Freenet Frost KademliaKademlia protocol eMule MindGem MLDonkey MANOLITOMANOLITO/MP2P network Blubster Piolet RockItNet NapsterNapster network Napigator OpenNap WinMX PeercastingPeercasting type networks PeerCast IceShare Freecast WPNPWPNP network WinMX other networks Akamai Alpine ANts P2P Ares Galaxy AudiogalaxyAudiogalaxy network Carracho Chord The Circle Coral[5]Coral[5] Dexter Diet-Agents EarthStation 5EarthStation 5 network Evernet FileTopia GNUnet Grapevine Groove Hotwire iFolder[6] konspire2b Madster/Aimster MUTE Napshare OpenFT Poisoned P-Grid[7] JXTA PeersitesPeersites [8][8] MojoNation Mnet OvernetOvernet network Scour Scribe Skype Solipsis SongSpySongSpy network Soulseek SPIN SpinXpress SquidCamSquidCam [9][9] Swarmcast WASTE Warez P2P Winny