Webcache (Filesharing)
# Webcache (Filesharing)

Webcache bezeichnet eine Caching-Technik, die es tauglichen Tauschbörsen – wie einigen eMule-Mods oder Proxyshare – erlaubt, beim Internetdienstanbieter auf Proxys zwischengespeicherte Daten mit meist hoher Geschwindigkeit herunterzuladen. Im Unterschied zu PeerCache wird dafür keine, seitens des ISPs, neu anzuschaffende und einzurichtende Technik benötigt. Stattdessen werden die bereits vorhandenen Proxyserver des Providers genutzt.

Seitdem immer mehr ISP-Proxys ihren Dienst einstellen, kann die Webcache-Technologie meist nur noch mit Hilfe fremder Proxys verwandt werden. Dies stellt jedoch einen Missbrauch des Konzepts dar und erbringt meist nicht die angestrebte Geschwindigkeit in der Datenübertragung, da fremde Benutzer von den ISP-Proxys meist benachteiligt behandelt werden.

## Technisches Prinzip

Mit Hilfe einer abwärtskompatiblen Protokollerweiterung kommunizieren webcache-fähige Mods untereinander. Dabei wird die Information übertragen, ob Webcache-Unterstützung vorhanden ist und, falls ja, welcher Proxyserver eingestellt ist. Dieser ist üblicherweise der des jeweils eigenen Providers.

Um den Proxyserver anzuweisen, die zu übertragenen Daten zwischenzuspeichern, müssen beide Clients, zwischen denen der Transfer zustande kommt, einen Mod benutzen, der webcache-fähig ist. Der Client, der die Daten hochlädt, wandelt die Daten nun in Blöcke zu jeweils 180 Kbyte und macht sie über den in eMule integrierten Webserver via HTTP verfügbar.

Der herunterladende Client lädt nun diese Daten, statt über das eD2K-Protokoll, als HTTP-Datenstrom über den eingestellten Proxy herunter. Bedingung dafür ist, dass es andere bekannte Clients gibt, die den gleichen Proxy verwenden und angenommen wird, dass diese die herunterzuladenden Dateiteile noch nicht besitzen.

Nach Abschluss des Transfers teilt der herunterladende Client anderen Clients mit demselben Proxy die HTTP-URL mit, unter der auf dem hochladenden Client zuvor der 180 kB große Block verfügbar war. Diese richten nun selbst eine Anfrage an den Proxy für diese Daten. Falls der Proxy sie gecachet, also zwischengespeichert hat, können die Blöcke nun vom Proxy, statt über eine herkömmliche Client-zu-Client-Verbindung heruntergeladen werden.

## Vorteile

* Auf Seiten der Clients können Daten mit der Geschwindigkeit heruntergeladen werden, die der Proxy zulässt. Diese ist im Regelfall nur durch die Bandbreite des herunterladenden Clients begrenzt.
* Die Verteilung von Daten geschieht schneller und effizienter. Im hypothetischen Idealfall müsste eine Datei nur einmal hochgeladen werden, damit sie von allen Kunden desselben Providers heruntergeladen wird.
* Die Provider sparen sich durch die gecacheten Daten Traffic zu anderen Providern, der üblicherweise bezahlt werden muss. Die Daten bleiben intern.
* Da Webcache die bereits vorhandene Proxy-Infrastruktur der Provider nutzt, gehen sie damit kein rechtliches Risiko ein.
* Für durch Webcache empfangene Daten werden keine Credits verbraucht, die man für den normalen Upload erhält (der Webcache fungiert ausschließlich als freie Downloadreserve von außerhalb des normalen P2P-Netzes)
* Auch werden Webcache-Blöcke verschlüsselt, den Internetanbietern kann keine Mitwisserschaft vorgeworfen werden, falls es sich bei den übertragenen Daten um urheberrechtlich geschütztes oder anderweitig illegales Material handeln sollte.

## Geschichte

Die Programmierung des WebCache-Features wurde durch einen Programmierer namens SuperLexx vorgenommen. Die Planung und Vorüberlegungen liefen im Developement-Forum von www.emule-project.net in einem über 20 Seiten langen Thread, der ursprünglich von einem User namens Sufcrusher gestartet wurde.

Auf Grund dieser Diskussion erstellte ein User namens Brunni eine Homepage, auf der das Prinzip erläutert wurde. Auch ein eigenes Forum wurde eingerichtet. Da das Feature nicht programmiert wurde und das offizielle eMule-Team kein Interesse zeigte, wurde das Projekt wieder über ein Jahr auf Eis gelegt und die Entwicklung aus zeitlichen Gründen eingestellt.

Der Entwickler von Emule-Morph hat später die Entwicklung wieder aufgenommen, einige Verbesserungen programmiert und Fehler ausgemerzt. Die Homepage des Projekts, die auf sourceforge lag, musste jedoch deaktiviert werden, da ein zu hoher Traffic durch die automatische Proxy-Erkennungsfunktion entstand. Bei jedem Verbinden mit einem ed2k-Server wurde eine Anfrage an ein PHP-Skript geschickt, die den zweiten Teil der DNS des Clients als Parameter übergab. (z. B. dip0.t-dialin.net) Mit Hilfe einer MySQL-Anfrage, wurde der entsprechende Proxy mit Einstellungsdaten ermittelt und als XML zurückgegeben. Dies war wohl eine der größten Schwachstellen. Die Idee schien gut, viele Emuleuser berichteten von Downloadsteigerungen von 10 bis zu 30 %, erkennbar an den meist 180 kB großen Spitzenpeaks, die ständig aus der normalen Download-Statistikkurve igelähnlich herausstachen.

Weil die meisten Leute jedoch wohl zu bequem waren, den eigenen Proxy später manuell herauszufinden und jeder nur den seines eigenen ISP nutzen konnte, damit die Clients sich gegenseitig identifizieren können, konnten sich die Webcache-Emules später kaum noch verbreiten, ebenso hatten die Entwickler der Webcache-Mods auch stetig mit Vorurteilen zu kämpfen, sie würden dem Netz schaden, so dass heute (2008) praktisch keine Emuleversion in der aktuellen Version mit dem Webcache-Feature mehr existiert.

Zeitweilig wurden im spanischen Raum sogar freie Proxyserver aufgestellt die von jedermann benutzt werden konnten, als die Entwickler von Emule-Morph (damals das Flaggschiff aller Webcache-Versionen) das Webcache-Feature aus ihrer Version wieder rausnahmen, wurden jedoch auch diese Server wieder geschlossen. Damit begann das Ende der Webcache-Ära bzw. zumindest seiner Expansion innerhalb der P2P-Community.

## Kritik

In der offiziellen eMule-Version und einigen, auch verbreiteten, eMule-Mods (z. B. Xtreme) wird auf eine Webcache-Integration verzichtet.

* Oft wird hierbei angeführt, dass es sich beim Webcache-Feature um einen Missbrauch der Provider-Proxys handelt. Dagegen kann allerdings argumentiert werden, dass Proxyserver für Provider weitestgehend an Bedeutung verloren haben, da regulärer cachebarer HTTP-Traffic heutzutage nicht mehr den Hauptteil des Internet-Datenverkehrs verursacht. Mit Webcache wird jedoch weiterhin die Grundintention von Proxyservern gewahrt: Die Entlastung externen Datenverkehrs. Es wird jedoch befürchtet, dass eMule durch Webcache nochmals verstärkt in das Visier der Provider gerückt wird und so weitere "Anti-P2P-Maßnahmen" folgen könnten.
* Der Gebrauch von öffentlichen Proxys für eMules Webcache hingegen ist ein tatsächlicher Missbrauch, der das oben genannte Prinzip einer Win-Win-Situation für ISPs wie auch deren Kunden ad absurdum führt. Vor allem im spanischen Raum leiten User über diverse DDNS-Dienste eine URL auf bekannte, freie Proxyserver weiter. Diese sind entweder per Intention (Datenschutz, Umgehung von Internetzensur) nicht auf bestimmte Benutzerkreise beschränkt oder fehlkonfiguriert. Dadurch entsteht dennoch externer Traffic und Proxys, die unter Umständen schlechte Internetanbindungen haben, werden überlastet.
* Aufgrund von teils heftigen Fehlern früherer Webcacheversionen geriet die Methode in Misskredit. Man trifft im eMule-Netzwerk deshalb häufig auf Benutzer, die zwar eine Webcache-taugliche Software verwenden, ebendiese Funktion jedoch ungenutzt lassen.
* Im Regelfall gibt es wesentlich mehr fehlgeschlagene Webcache-Downloads als erfolgreiche. Dies liegt daran, dass die Proxyserver die Datenpakete recht zügig wieder löschen, wenn diese nicht regelmäßig angefordert werden. Führt man sich nun vor Augen, dass das Abfragen der Proxyserver logischerweise Overhead kostet und die Datenpakete nur eine sehr geringe Dateigröße besitzen (180 kB), wird Webcache sehr schnell zu einer unwirtschaftlichen Methode, wenn nicht – wie häufig der Fall – eine große Anzahl an kompatiblen Benutzern zu einem Download gefunden werden.

## Weitere Filesharing-Applikationen mit Webcache-Unterstützung

* Lphant (kompatibel zu eMule)
* Proxyshare (inkompatibel zu eMule)
