Das Skype Peer-to-Peer VoIP System
Transcription
Das Skype Peer-to-Peer VoIP System
Das Skype Peer-to-Peer VoIP System Vladislav Lazarov lazarov@in.tum.de 31.07.2007 Hauptseminar Inside Google Sommersemester 2007 Lehrstuhl Informatik III: Datenbanksysteme, Prof. Alfons Kemper, Ph. D. Research Group Prof. Grust Fakultät für Informatik Technische Universität München Inhaltsverzeichnis 1 Einleitung 2 2 Peer-to-Peer Netzwerke 2.1 Skype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Skypes VoIP P2P System . . . . . . . . . . . . . . . . . . . . . . . 2 3 3 3 Experimente 3.1 Basis Operationen . . . . . . . 3.2 Beförderung zu Supernode . . . 3.3 Netzwerk Aktivität . . . . . . . 3.4 Anzahl Supernodes und Clients 3.5 Supernode Erreichbarkeit . . . . . . . . 4 4 5 5 5 5 . . . . 6 6 7 7 8 4 Das 4.1 4.2 4.3 4.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Skype Netzwerk Nodes im Vergleich zu Supernodes . . . . . . Geografische Verteilung . . . . . . . . . . . . Session Zeit und Bandbreite . . . . . . . . . . Skype im Vergleich zu ‘traditionelle’ Telefonie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . und Filesharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Zusammenfassung 8 Quellenverzeichnis 9 1 1 Einleitung Internet Telefonie (auch IP Telefonie oder Voice over IP genannt) bezeichnet das Telefonieren über nach Internet Standards aufgebaute Computernetzwerke. Marktforschung der Firma “Infonetics Research” zeigt [Res], dass VoIP in den nächsten Jahren eine immer wichtigere Rolle spielen wird. Der Internet Telefonie Markt ist aufgeteilt in zwei große Einheiten: ‘traditionelle’ Anbieter bieten die Dienstleistung genau so wie es bisher üblich war für herkömliche Telefonnetze (z.B. Vonage in USA), es gibt aber auch eine Vielzahl an kostenlose Soft Phones (so werden die reine Software Anwendungen die zur durchführung eines VoIP Gesprächs benutzt werden genannt). In die letzte Gruppe gibt es einige interessante Projekte wie Gizmo Project, Open Wengo, Google Talk, Skype uvm. Eines der größten Problemen ist das bisher diese Netzwerke nicht miteinander verbunden sind, d.h. jeder Benutzer muss sich separat bei jedem Anbieter anmelden damit er sein Netzwerk nutzen kann was auch zu viele Installationen von Software Anwendungen verschiedener Dienstleister führt. Mittlerweile gibt es erste Ansätze um die Netzinternen Grenzen beim telefonieren überschreiten zu können [Pro]. Obwohl Skype im Gegensatz zu den anderen oben genannten Projekten eine proprietäre Software ist und wenig Möglichkeiten für Erweiterungen dem Nutzer überlässt, ist es das populärste Soft Phone heutzutage und besitzt die größte Anzahl an Nutzer (über 150 Mil. registrierte Nutzer im Januar 2007, laut Skype Ltd.) Trotz seiner Popularität wurde das Skype Voice over IP Peer-to-Peer Netzwerk bisher nicht viel untersucht. Die proprietäre Natur der Anwendung ermöglicht nur Black-Box Tests aus dennen verschiedene Gesetzmäßigkeiten gefunden werden können. Die Ergebnisse könen benutzt werden um mehr Information über den Aufbau des Netzwerks, das Verhalten der Nutzer und die Beeinflussung der Nutzer durch die interaktive Natur des VoIP Trafiks zu erhalten. Diese Informationen können benutzt werden um Folgerungen für das Design des Skype Systems zu ziehen und Vorschläge für die Implementierung von eventuelle künftige VoIP P2P Anwendungen zu machen. Guha et al. [GDJ06] versuchen durch eine Reihe von Experimente mehr Information über das Skype Netzwerk zu sammeln. Durchgeführt wurden die Experimente von 1. September 2005 bis 14. Januar 2006 an der Universität Cornell. 2 Peer-to-Peer Netzwerke In einem Peer-to-Peer Netzwerk ist jeder angeschlossene Computer zu den anderen gleichberechtigt und gleichzeitig ein Server und ein Client. Jeder Computer stellt den anderen Computern seine Resourcen zu Verfügung. Es werden drei wesentliche Typen von Peer-to-Peer Netzwerke unterschieden: • Bei Zentralisierte P2P Netzwerke wird das ganze Netzwerk nur von eine zentrale Instanz verwaltet. Für das suchen und finden einer bestimmten Resource wird der zentrale Server genutzt. Ein Beispiel für ein solches Netzwerk war das Napster Filesharing Netzwerk. Die Liste mit den verfügbaren Musiktitel wurde dabei in einem zentralen Server abgelegt und jeder Nutzer hat dort gesucht. Falls das 2 gesuchte Musikstück verfügbar im Netzwerk war, so wurde eine Liste mit den IP Adressen der Nutzer die es bereitstellen zugeschickt. Die Kommunikation und der Austausch der Dateien erfolgte dann direkt zwischen die Benutzer von Napster. • Reine P2P Netzwerke existieren ohne zentrale Instanz. Alle Nutzer sind gleichberechtigt. Ein typischer Beispiel dafür ist das Gnutella (vor Version 0.6) Netzwerk. Für eine Verbindung in das Netzwerk muss der Nutzer nur die IP Adresse von eine andere Gnutella Maschine wissen. Bei der ersten Verbindung bekommt der Nutzer eine Liste mit hunderte von neue Adressen, die für nachfolgende Verbindungen in das Netzwerk benutzt werden können. Nach Verbindungsaufbau versucht das Gnutella Client Verbindungen mit 3 oder 4 andere Gnutella Maschinen aufzubauen. Bei der Suche nach einer Resource wird diese erst in diese 3 oder 4 Nachbarn druchgeführt. Wenn das gesuchte nicht gefunden wurde wird die Anfrage weiter in das Netzwerk propagiert. • Hybride P2P Netzwerke bieten eine Vielzahl an zentrale Server die dynamisch zur Verfügung gestellt werden. Es wird dabei ein s.g. Overlay-Netzwerk aufgebaut. Mehrere Nutzer werden in das Netzwerk über eine zentrale Instanz verbunden. Dieser Knoten komuniziert dann mit andere gleichberechtigte Knoten, die wiederum von mehrere Clients benutzt werden. Das P2P System von Skype ist ein hybrides P2P Netzwerk. 2.1 Skype Skype ist eines der populärsten Voice-over-IP Soft Phones. Es bietet sowie kostenlose als auch kostenpflichtige Dienste. PC-zu-PC Telefonie, Instant Messaging und Filesharing werden gratis angeboten. Mailbox, Rufumleitung auf Handy oder Festnetz Nummern, SMS Versand, oder Gespräche ins Festnetz oder Mobilfunk (SkypeOut) u.a. sind aber kostenpflichtig. Gegründet wurde Skype von dem Schweden Niklas Zennstrı̈m und dem Dänen Janus Friis, die im 2001 mit das KaZaa Filesharing Netzwerk bekannt wurden. Ende Juli 2004 wurde das Skype VoIP System der Öffentlichkeit vorgestellt. Technologische Entwicklungen für KaZaa sind auch in Skype wiederzufinden. Übernommen wurde auch der Basisgedanke von Filesharing – die direkte Verbindung zwischen verschiedenen Computern zum dezentralen Austausch von Daten. Viele der Entwickler die in KaZaa mitgewirkt haben sind jetzt auch in Skype vertretten. Skype wurde im September 2005 für $ 2.6 Mil. an EBay verkauft [NB05]. 2.1.1 Skypes VoIP P2P System Skype unterscheidet sich von anderen VoIP-Programmen vor allem durch die genutzte Peer-To-Peer Technik. Das System ist ein hybrides Peer-to-Peer Netzwerk. Die beteiligten Seiten sind in zwei Schichten verteilt: Supernodes und Nodes. Jeder Client (Node) verbindet sich in das Netzwerk über ein Supernode. Eine der wichtigsten Aufgaben des Supernodes ist das Routing der Pakete durch das Netzwerk. Bei starten des Clients wird 3 versucht eine Verbindung zu einem Supernode aufzubauen. Die Supernode Addressen werden dabei nicht zentral geladen. Grund dafür ist, dass durch Filtrieren des zentralen Servers der Benutzer sich nicht in das Netzwerk verbinden kann. Stattdessen wird bei der Installation des Softwares eine Liste von Supernode Addressen mitgeschickt. Bei der ersten Verbindungsaufbau schickt der Supernode eine Vielzahl von andere gespeicherte Supernode Addressen die für nachfolgende Verbindungen benutzt werden können. Bei Verbindungsaufbau nimmt Skype eine zufällige Addresse aus dieser Liste und versucht in zufällige Intervalle eine Verbindung aufzubauen. Dabei werden auch zufällig gewählte Ports benutzt (einschließlich reservierte Ports wie 21, 23, 25, 53, 80 u.a.) Es wird auch durch pings (icmp queries), UDP und TCP Pakete versucht das Supernode zu erreichen. Nach Aufbau der Verbindung kann die Session zu andere Supernodes weitergeleitet werden, damit die Kommunikation schneller erfolgen kann. Der Client kann auch selber zum Supernode befördert werden. Damit die Session von Skype nicht durch bestimmte Muster erkennt werden kann erfolgt die ganze Kommunikation kryptiert. Benutzt wird der RC4 Algorithmus [Wik]. 3 Experimente Vom 1. September 2005 bis 14. Januar 2006 wurden 5 Experimente an der Universität Cornell durchgeführt um Design Entscheidungen in Skype zu erkennen und Folgerungen über deren Auswirkungen auf Robustheit und Verfügbarkeit des Netzwerks zu schließen, die Dynamik von Nodes und Supernodes zu analysieren und die Belastung des Netzwerks zu erkennen. Dabei wurden mehr als 82 Mil. Datensätze gesammelt. 3.1 Basis Operationen Das erste Experiment sollte mittels Ausführung von Basis Operationen die Design Entscheidungen im Netzwerk erkennen. Zwei Skype Clients auf zwei verschiedene Maschinen wurden dafür benutzt. Es wurden die Ziel- und Quell- IP Addressen von Pakete, die als Antwort zu verschiedene Anwendungen des Systems verschickt wurden, beobachtet. Kontrolltrafik, Information über Erreichbarkeit, Instant Messaging und VoIP und Filetransfer Anfragen wurden stets über das Supernode verschickt. Wenn die VoIP oder Filetransfer Anfrage akzeptiert wurde haben die zwei Clients eine direkte Verbindung aufgebaut. Beim zweiten Teil des Experiments wurden die selben Aktionen wiederholt, wobei ein oder beide Clients hinter eine Firewall/NAT gesetzt wurde. Es wurde erkannt, dass wenn nur ein Client hinter NAT steht Skype ein Connection Reversal durchführt. Unabhängig davon welcher Client die Anfrage gestartet hat, initiiert immer der Node hinter die NAT die TCP/UDP Session. Falls beide Clients hinter NATs gesetzt wurden versucht Skype STUN (Simple Traversal of UDP over NATs) Techniken um eine direkte Verbindung aufzubauen. Falls dies nicht geschehen kann, wird die Media Session über einen Supernode weitergeleitet. Es kann daher behauptet werden, dass sich Skype sehr robust in NAT/Firewall Umgebungen verhält. 4 3.2 Beförderung zu Supernode Das zweite Experiment sollte erkennen unter Welche Bedingungen ein Node zu einem Supernode befördert wird. Dafür wurden mehrere Skype Clients in verschiedene Umgebungen gesetzt und es wurde zwei Wochen gewartet um die Nodes zu Supernodes befördert zu werden. Das Node in ein intensiv benutztes Netzwerk und das Node, dass hinter NAT/Filewall gesetzt wurde, wurden nicht zu Supernodes befördert. Dagegen reichten nur wenigen Minuten für die Beförderung zu Supernode eines frisch instalierten Skype Clients, der auf einen Public Host gelaufen ist und 10Mbps verfügbare Bandbreite besitzte. 3.3 Netzwerk Aktivität Dieses Experiment hat die Aktivität eines Skype Supernodes für das Zeitraum von 135 Tagen beobachtet. Es wurde dabei die Linux Binary Version von Skype 1.2.0.11 auf einen Linux Rechner mit Fedora Core 3 genutzt. Das Program Ethereal hat ein Trafik in höhe von 13GB nachgewiesen (Kontrolltrafik, Instant Messaging, VoIP/Filesharing Requests und Weitergeleitete VoIP/Filesharing Daten). 3.4 Anzahl Supernodes und Clients Zwischen 25. Juli 2005 und 12. Oktober 2005 wurden mittels dieses Experiment IP Addressen und Ports von Supernodes des Skype Netzwerks gesammelt. Jedes Skype Client pflegt ein Cache von Supernode IP Addressen. Es wurde ein Script geschrieben der das Supernode Cache parst und die Addressen zu einer Liste hinzufügt. Dann wird das Cache mit eine einzelne Addresse aus der Liste ersetzt. Damit wird der Client gezwingt diese Addresse für die nächste Verbindung zu benutzen. Der Script startet dann das Client und wartet so lange bis nach Verbindungsaufbau zum gewählten Supernode ein neues Cache von Supernode Addressen gesammelt wurde. Danach wird das Skype Client gestoppt, es schreibt das neue Cache auf die Festplatte und das Experiment wird wiederholt. Mittels dieses Experiment wurden 250 000 Supernode Addressen gefunden. Als Seiteneffekt hat dieses Script auch die Anzahl Benutzer online erfasst, die beim starten der Anwendung gemeldet wird. 3.5 Supernode Erreichbarkeit Das letzte Experiment hat ‘Schnappschüsse’ erstellt, die zeigen sollten welche Supernodes zu einem Bestimmten Zeitpunkt online waren. Dazu wurde ein Tool geschrieben, dass pings zu Supernodes schickt. Das Tool wiederholt das erste Paket, dass vom Skype Client zum Supernode verschickt wird und wartet auf die Antwort. Für jedes ‘Schnappschuss‘ werden parallel pings zu 6000 zufällig gewählte Nodes aus der Liste, die im Experiment 3.4 gesammelt wurde, geschickt. Jedes Schnappschuss braucht 4 Minuten um ausgeführt zu werden. Schnappschüsse wurden jede 30 Minuten für einen Monat ab dem 12. Septem- 5 (a) Anzahl Nodes/Supernodes (b) Geografische Verteilung Abbildung 1: Churn und Session Zeit in das Skype VoIP Netzwerk ber 2005 ausgeführt. Damit könnte die Nutzung von Skype zu verschiedene Zeitpunkten analysiert werden. 4 Das Skype Netzwerk Die Ergebnisse von Experimente 3.3, 3.4 und 3.5 wurden benutzt um ein genaueres Bild des Netzwerks von Skype zu zeigen. Dieser Abschnitt diskutiert diese Daten. Als churn wird in P2P Netzwerke der Prozess von An- und subsequente Abmeldungen von Clients definiert. In Filesharing P2P Netzwerke spielt churn eine große Rolle. In der Regel führt churn zu höhere Latenzzeit beim Datenaustausch, wenn z.B. Pakete über nicht errecihbare Knoten verschickt werden oder neue Nodes nicht benutzt werden. Das Problem wird meistens durch eine periodische dynamische Restrukturierung des Netzwerks gelöst. Im Gegensatz zu Filesharing Netzwerke haben Experimente 3.3 bis 3.5 gezeigt das in das Skype VoIP P2P Netzwerk churn sehr wenig ist. Als Session Zeit von ein Client wird die Zeit zwischen einer Anmeldung und die nachfolgende Abmeldung vom Netzwerk bezeichnet. Untersuchungen haben gezeigt [RGRK04] das in andere P2P Netzwerke die Session Zeit sehr gering ist. Deswegen müssen dynamische Restrukturierungen des Netzwerks sehr oft wiederholt werden. In Skype dagegen ist die Session Zeit viel länger. 4.1 Nodes im Vergleich zu Supernodes Experiment 3.5 zeigt, dass churn kein großes Problem im Skype Netzwerk darstellt, da die Supernodes stabil über längere Intervalle sind. Abbildung 4.1 (a) zeigt das die Varianz von online Supernodes weniger als 25% ist. Aus Abbildung 4.1 (a) kann man auch einen Tagesrhytmus der Aktivität erkennen. Skype wird vor allem während übliche Arbeitszei- 6 (a) Mittlere Session Zeit (b) Bandbreite Abbildung 2: Session Zeit und Bandbreite ten und viel weniger am Wochenende benutzt. Die Höchstbelastung des Netzwerks leigt dabei am Mittag und ist zwichen 40% und 50% über die Nacht. Die maximale Anzahl an Benutzer online wurde am 28. September 2005 gegen 11 Uhr EST ereicht. Zu diesem Zeitpunkt verwendeten Skype 3.9 Millionen Leute. 4.2 Geografische Verteilung Wenn die Analyse auf die geografische Verteilung der Supernodes erweitert wird, kann bestätigt werden, dass die Nutzung von Skype einen Tages- und Arbeitswochenrhythmus aufweist. Das ist anders als in Filesharing Netzwerke bei dennen ein Client für Tage oder sogar Wochen online bleibt um größere Dateien zu erhalten. Eine interessante Beobachtung aus Abbildung 4.1 (b) ist, dass die meisten Benutzer (Zwischen 45% und 60%) von Skype in Europa sind. In Nordamerika sind zwischen 15% und 25% der (Super)nodes basiert, in Asien – 20%-25%. 4.3 Session Zeit und Bandbreite Abbildung 4.2 (a) zeigt das die mittlere Session Zeit bei 5.5 Stunden liegt. Im Gegensatz zu vorherige Untersuchungen in P2P Netzwerke kann man erkennen, dass Anmeldungen und Abmeldungen in das Skype Netzwerk beide nicht als Poisson Prozesse modelliert werden können. Skype verwendet hunderte von Supernodes und sehr wenig zusätzliche Infrastruktur um Gespräche zu verwalten und durchzuführen. Ein einzelner Supernode wird aber nicht viel durch das weiterleiten (relay) von Daten belastet. Abbildung 4.2 (b) zeigt, dass in 50% der Zeit der Bandbreitenverbrauch weniger als 205 bps war. Man kann auch erkennen, dass Skype nicht die populäre ‘silence suppression’ Technik benutzt, bei der keine Daten während Ruhe verschickt werden. Skype verschickt unabhängig davon immer 33 Pakete pro Sekunde. 7 4.4 Skype im Vergleich zu ‘traditionelle’ Telefonie und Filesharing Die Analyse von die gesammelten Daten zeigt auch dass sich Skype ziemlich unterschiedlich im Gegensatz zu ‘traditionelle’ (Festnetz, Mobil) Telefonie und Filesharing verhält. Die mittlere Gesprächszeit eines Skype Gesprächs liegt bei 13 Minuten. Hingegen Gespräche im Festnetz dauern in der Regel 3 Minuten. Dieses Verhalten kann durch die Kosten für die Gespräche begründet werden. Untersuchungen von Bichler und Clarke zitiert von Guha et al. [GDJ06] haben gezeigt, dass kostenlose Gespräche länger als kostenpflichtige dauern. Man kann auch erkennen, dass die mittlere File-Transfer Größe viel kleiner ist als die von Filesharing P2P Netzwerke. In Skype beträgt diese Größe 346 kB, die ähnlich der Standardgröße von Fotos, Dokumente oder Präsentationen ist. Es kann daher festgelegt werden, dass sich Nutzer von Skype viel anders als Nutzer von traditionelle Telefonie und als Nutzer von Filesharing P2P Netzwerke verhalten. 5 Zusammenfassung Die Untersuchungen des Skype VoIP Peer-to-Peer Systems haben insgesamt gezeigt, dass sich das Netzwerk ziemlich von herkömiche P2P Netzwerke unterscheidet. Es kann ein Tagesrhytmus der Aktivität erkannt werden. Das Verhalten entspricht dabei die normale Arbeitszeiten und Arbeitswochen. Das ist ähnlicher zu Web Browsing und nicht zu Filesharing und andere P2P Netzwerke. Die Studie hat gezeigt, dass die Supernodes des hybriden Skype P2P Netzwerk stabil sind und deswegen churn gering bleibt. Trotz VoIP und Filesharing Weiterleitung benutzen Supernodes wenig Bandbreite und sind deswegen nicht so viel belastet wie Server eines Telekommunikantionsanbieters. Skype Gespräche dauern deutlich länger als traditionelle. Die Größe von transferierte Dateien ist wesentlich kleiner als die in Filesharing Netzwerke. 8 Quellenverzeichnis [GDJ06] Saikat Guha, Neil Daswani, and Ravi Jain. An Experimental Study of the Skype Peer-to-Peer VoIP System. In Proceedings of The 5th International Workshop on Peer-to-Peer Systems (IPTPS ’06), pages 1 – 6, Santa Barbara, CA, February 2006. [NB05] Terence Neilan and Ken Belson. EBay to Buy Internet Phone Firm for $2.6 Billion. The New York Times, September 2005. [Pro] Gizmo Project. Meta-Voice. http://www.gizmoproject.com/meta-voice.html. abgerufen am 31.07.2007. [Res] Infonetics Research. Enterprise VoIP adoption in North America will more than double in 2010. http://www.infonetics.com/resources/purple.shtml?upna06.ipv.nr.shtml. abgerufen am 31.07.2007. [RGRK04] Sean C. Rhea, Dennis Geels, Timothy Roscoe, and John Kubiatowicz. Handling churn in a dht (awarded best paper!). In USENIX Annual Technical Conference, General Track, pages 127–140. USENIX, 2004. [Wik] Wikipedia. RC4. http://de.wikipedia.org/wiki/RC4. abgerufen am 31.07.2007. 9