Peer-to-Peer-Lösung Avalanche
Schnellere Downloads mit Microsoft-Technik

NetzwerkeWorkspaceZubehör

Peer-to-Peer-Software haftet der schlechte Ruf von illegalen Film- und Musik-Tauschbörsen an. Zu Unrecht, denn sogar Microsoft will mit dieser Technik eigene Dienste an den Start bringen. In den Forschungslabors gibt es bereits den Prototyp Avalanche.

Revolution der Technik von Tauschbörsen

Peer-to-Peer-Lösung Avalanche

Avalanche (Lawine), so heißt die Peer-to-Peer-Lösung, mit der Microsoft die Technik von Tauschbörsen revolutionieren will. Die Technik aus Microsofts Forschungsabteilung soll wesentlich effektiver arbeiten als die heute bekannten Tauschbörsen. Die Entwickler wollen aus den Schwächen aktueller P2P-Systeme, allen voran Bit Torrent, lernen. Der Vorteil für den Anwender: Downloads landen schneller auf dem PC, weil die Netzbandbreite besser ausgenutzt wird. Microsoft könnte die P2P-Technik etwa zum Verteilen von Updates oder als Filesharing-Dienst in Firmen einsetzen. Andere viel versprechende Anwendungen: VoIP, Grid Computing, Musik- und Video-Downloads.

Bei reinen P2P-Netzen ist jeder Teilnehmer gleichzeitig Kunde (Client) und Anbieter (Server). Sobald man eine Datei von einem anderen Rechner geladen hat, ist man auch automatisch Anbieter dieser Datei für andere Interessenten. Dateien werden dabei normalerweise nicht in einem Stück übertragen, sondern in kleinen Teilen.

Der praktische Hintergrund: Bei den meisten Internet-Anschlüssen ist der Downlink schneller als der Uplink. Holt man sich eine Datei von einem anderen P2P-Teilnehmer, dann bremst dessen langsamer Uplink den eigenen schnellen Downlink aus. Lädt man aber von mehreren Teilnehmern gleichzeitig kleine Stücke der Datei, landet das gesamte File schneller auf dem Rechner. Auch die Abbruchwahrscheinlichkeit bei großen Dateien, etwa ISO-Files ganzer Linux-Distributionen, sinkt.


Nie mehr unvollständige Downloads

Peer-to-Peer-Lösung Avalanche

In der Praxis klappt der Datei-Download bei Bit Torrent & Co zwar ganz gut, einige Probleme gibt es aber trotzdem, etwa unvollständige Downloads oder Engpässe bei besonders beliebten Dateien. Eine Datei, die in 100 Teilstücke zerhackt ist, lässt sich nur zusammensetzen, wenn man alle 100 Teilstücke besitzt. Pech, wenn man 99 Teile gesammelt hat, aber kein anderer PC im Netz das fehlende letzte Stück vorrätig hat oder die vorhandenen Teile fehlerhaft sind.

Um das zu vermeiden, setzt Microsofts Avalanche beim Verteilen von Dateien auf eine Technik namens Network-Coding. Network-Coding zerteilt im ersten Schritt die Dateien auch in kleine Stücke, übertragen wird aber ein Mix aus allen Stücken, so genannte Linearkombinationen. Jeder Mix wird mit einer Beschreibung des Inhalts übertragen. Außerdem, und das ist das eigentlich Besondere an Network-Coding, kann jeder Rechner wieder einen Mix samt Beschreibung aus den Teilen erstellen, die er bereits geladen hat. So sind sehr schnell viele Teile einer Datei verfügbar. Das ist bei einem P2P-Netz wichtig, denn die Teilnehmer verschwinden schneller als bei einem klassischen Client-Server-Netz, in dem die Server praktisch rund um die Uhr online sind.


So funktioniert die Linearkombination

Peer-to-Peer-Lösung Avalanche

Dass viele Linearkombinationen einer Datei erzeugt werden, bedeutet aber bei Network-Coding nicht, dass man alle Stücke braucht, um die Ursprungsdatei wieder zusammenzusetzen. Vielmehr lässt sich aus wenigen Linearkombinationen mit den mitgeschickten Beschreibungen die Originaldatei wieder rekonstruieren. Ist die Ursprungsdatei in 100 Stücke unterteilt, dann reichen auch 100 linear unabhängige Teile aus der Kombination aus, um die Datei zu rekonstruieren.

Das Vorgehen beim Zusammensetzen der Datei lässt sich mit einer Wegbeschreibung vergleichen. Um eine Route zu beschreiben, reicht es aus, Start- und Zielpunkt zu nennen und vielleicht für einige Zwischenpunkte Zusatzinformationen zu liefern, so dass man sich nicht verläuft. Man muss nicht jeden Schritt zwischen Start und Ziel erklären. Um den Weg zu finden, reichen wenige Informationen aus. Genau so funktionieren die Linearkombinationen mit ihren Beschreibungen, aus denen der Zielrechner die Originaldatei zusammenbaut. Welche Algorithmen Microsoft genau für das Network-Coding einsetzt, ist noch geheim.


Dateien ohne Server finden

Peer-to-Peer-Lösung Avalanche

Stehen in einem P2P-Netz zentrale Dateiserver bereit, kann ein Nutzer einfach herausfinden, ob das File seiner Wahl zum Download bereit steht. Er kontaktiert die Server nacheinander und durchforstet deren Inhaltsverzeichnis. Noch einfacher geht es, wenn die Server untereinander Bestandslisten austauschen. So weiß jeder Server über den Stand der anderen Server Bescheid und kann Anfragen entweder selbst bedienen, ablehnen oder an einen passenden anderen Server weiterleiten. Ein Problem ergibt sich aber, weil bei P2P-Systemen die Teilnehmer sehr schnell wechseln. Informationen über die Verteilung von Dateien im gesamten Netz wären bereits wieder veraltet, bis alle Teilnehmer sie empfangen hätten.

Avalanche setzt aus diesem Grund eine Strategie ein, die mit dem Wissen über den Dateibestand weniger PCs auskommt. Jeder neu hinzukommende Rechner verbindet sich zufällig mit vier anderen Rechnern im Netzwerk und räumt diesen eine Sonderstellung ein sie bilden seine unmittelbare Nachbarschaft. Damit nicht ein PC von zu vielen Nachbarn lahm gelegt wird, ist die Anzahl begrenzt. Microsoft verwendet beim Avalanche-Prototyp sechs Nachbarn als Obergrenze. Um festzustellen, ob es neue Mixe zum Download gibt, kontaktiert jeder PC nur seine Nachbarrechner, die dann wieder über deren Nachbarn andere Quellen anzapfen.


Viele neue Teilnehmer

Peer-to-Peer-Lösung Avalanche

Avalanche ist auch gut für dynamische Netze gerüstet, in denen oft neue Teilnehmer auftauchen und andere dafür verschwinden. Wenn plötzlich viele neue Netzteilnehmer auftauchen, die eine bestimmte Datei haben wollen, spricht man von Flash-Crowds; das könnte etwa bei einem neuen Service-Pack für Windows der Fall sein.

Der Vorteil bei Avalanche ist, dass die neuen Teilnehmer schneller mit Dateistücken versorgt werden, weil sie außer komplett identischen Paketen alle vorkommenden Mixe gebrauchen können. Bei aktuellen P2P-Systemen bremsen Neuankömmlinge den Rest des Netzes, weil sie die meiste Zeit mit dem Laden neuer Pakete beschäftigt sind. Das Problem dabei: Oft sind diese Pakete für die Clients nutzlos, die schon länger im System sind.

Nicht so bei Avalanche, so gut wie alle Mixe sind auch für die älteren Clients interessant. Die von Microsoft veröffentlichten Werte sollen beweisen, dass die durchschnittliche Download-Zeit bei Avalanche nur halb so lange dauert wie mit heutiger Bit-Torrent-Technik.


Schneller als Bit Torrent?

Peer-to-Peer-Lösung Avalanche

Bisher existiert Avalanche nur in Microsofts Forschungslabors, so dass ein Vergleich mit anderer P2P-Software im PCpro-Labor nicht möglich ist. In einem Forschungsbericht hat Microsoft Leistungsdaten veröffentlicht (www.research.microsoft.com/~pablo/papers/
nc_contentdist.pdf). Avalanche soll rund 30 Prozent schneller Dateien übertragen als P2P-Systeme ohne Network-Coding. Treten Flash-Crowds auf, also Anstürme auf bestimmte Dateien, dann soll Avalanche sogar doppelt so schnell sein wie heutige Tauschbörsen.

Ziel von Avalanche ist es, sowohl die durchschnittliche Zeit für einen Download zu minimieren als auch die Wartezeiten zu verkürzen. Die Microsoft-Forscher haben eine Simulationsumgebung entwickelt, in der sie die Warte- und Downloadzeiten überwachen. Je homogener das P2P-Netz ist, desto weniger unterscheiden sich die Leistungswerte von Network-Coding und heute verwendeten Verteilungsstrategien.

Interessant wird Microsofts Ansatz aber bei heterogenen Netzen das ist in der Praxis fast immer der Fall. B
ei einem nachgestellten Szenario wurden zwei Netze über eine extrem schmale Leitung verbunden. Herkömmliche P2P-Netze machen sich dabei das Leben selbst schwer, weil sie diesen Flaschenhals unnötig oft nutzen. Network-Coding zeigt in diesem Szenario doppelt so schnelle Download-Zeiten.


Schnelle Paketverteilung

Peer-to-Peer-Lösung Avalanche

In noch stärker heterogenen Umgebungen ist der Performance-Unterschied noch größer. Dabei bedeutet heterogen, dass die Netzteilnehmer über unterschiedliche Zugangswege angeschlossen sind. In einem weiteren Laborversuch bei Microsoft wurde ein Großteil der Clients per DSL angebunden, der Rest per Standleitung.

Das Ergebnis: Mit Network-Coding kommen schneller angebundene Nutzer am besten weg, rund 30 Prozent schnellere Downloads gegenüber herkömmlicher P2P-Technik gibt Microsoft an. Das liegt an der effizienten Paketverteilung in Avalanche, schnelle Nutzer werden so von langsamen nicht ausgebremst. Da mit Network-Coding mehr Pakete im Netz unterwegs sind und die Clients nicht auf bestimmte Pakete angewiesen sind, können schnelle Teilnehmer die nötigen Dateistücke in kürzerer Zeit aus ihrer Nachbarschaft absaugen. Langsame Nutzer sind nicht im Nachteil.


Overhead und Zeit für Coding

Peer-to-Peer-Lösung Avalanche

Bei allen Vorteilen von Avalanche gibt es auch zwei Nachteile. Zum einen ergibt sich durch die Produktion der Linearkombinationen (Coding) ein gewisser Overhead. Zum anderen nimmt das Zusammenbauen der Linearkombinationen zur ursprünglichen Datei auch Rechenpower in Anspruch. Das Coding kostet laut Microsoft nicht viel Zeit. Der Aufwand dafür ist von der Anzahl der Teilstücke abhängig. Je mehr Teile, desto aufwändiger die Codierung.

Als Bremse wirkt der Zusammenbau der Datei aus den Linearkombinationen. Dieser erfolgt in zwei Schritten. Zuerst wird die Beschreibung ausgewertet, mit deren Hilfe dann das File zusammengesetzt wird. Speziell beim Zusammensetzen gibt es bei Avalanche viele Festplattenzugriffe, die enorm viel Zeit kosten. Doch die Entwickler arbeiten bereits an einer Optimierungsstrategie. So könnten die einzelnen Dateiteile als so genannte Sparse-Files abgespeichert werden, bei denen einfach Null-Byte-Einträge beim Sichern auf Festplatte weggelassen werden.

Eine Gefahr für das Network-Coding ist, wenn Malware in ein P2P-System eingeschleust wird. Die einzelnen Teilnehmer könnten Teile des Schadcodes in ihre Linearkombinationen verpacken. Damit das in Avalanche nicht passiert, setzt Microsoft auf spezielle Hash-Funktionen, die die Coding-Vorgänge auf anderen Rechnern überleben. So lässt sich nocn nach mehreren Linearkombinationen feststellen, ob die Datei korrekt signiert wurde oder nicht.

Ob Avalanche wirklich in der Lage ist, herkömmliche P2P-Systeme abzulösen, ist derzeit nicht abzuschätzen, da sich die Technik noch in der Entwicklung befindet. Ein Termin für den Marktstart steht bislang nicht fest.