Das Skype Peer-to-Peer VoIP System

Transcription

Das Skype Peer-to-Peer VoIP System
Das Skype Peer-to-Peer VoIP System
Vladislav Lazarov
[email protected]
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