Es ist keineswegs so, daß zwischen zwei Clients, die beide WebCache
unterstützen, automatisch alle Uploads über den WebCache des Downloaders
abgewickelt werden.
Statt dessen ist eine ganze Reihe von Voraussetzungen erforderlich, die
vor dem Beginn des Transfers überprüft werden (und zwar vom Downloader). Jeder
einzelne Test kann dabei zum Abbruch, also zur Entscheidung gegen die Benutzung
von WebCache, führen:
- Habe ich selbst die Benutzung eines WebCache aktiviert?
- Benutze ich einen TCP-Port, der vom Proxy akzeptiert werden würde?
(Im Quelltext steht eine whitelist solcher Ports: 6 konkrete "well-known"
Ports für FTP=21, GOPHER=70, HTTP=80, WAIS=210, HTTPS=443 und SNEWS=563,
sowie alles oberhalb von Port 1024. Die konkrete Liste stammt offenbar aus
der Default-Konfiguration für "acl Safe_ports" des verbreiteten
Proxy-Servers Squid.) Der Mechanismus als solcher soll sicherstellen, daß
ich nur dann einen WebCache-Download bekomme, wenn mein Emule so
konfiguriert ist, daß er selbst wiederum auch anderen einen WebCache-Upload
geben könnte.
- Hat mir die Quelle, die mir gerade einen Slot geben möchte, einen
Upload via WebCache-Protokoll angeboten? (Dazu muß diese Quelle das
sowohl können als auch wollen und mir das sinnvollerweise irgendwann vorher
mal mitgeteilt haben.)
- Hat meine Quelle eine HighID? (Sie muß eine eindeutige IP-Adresse
haben, sonst können wir sie nicht als HTTP-Server ansprechen.)
- Wieviele Verbindungen zum WebCache-Proxy unseres eigenen Providers
habe ich augenblicklich bereits aktiv? (Den dürfen wir nicht mit zuvielen
gleichzeitigen persistenten Verbindungen belasten.)
- Falls der zu verwendende Proxy unseres ISP ein transparenter Proxy
ist: Benutzt unsere Quelle den TCP-Port 80? (Nur über diesen Port
können wir transparente Proxies implizit ansprechen, da wir keine explizite
Portnummer angeben dürfen; die wenigsten Emules verwenden diesen Port, teils
aus Unwissen, teils weil sie dadurch ggf. mit einem auf demselben Rechner
betriebenen HTTP-Server kollidieren könnten; deshalb sind die meisten
Transfers via transparentem Proxy chancenlos.)
- Haben wir die IP-Adresse des Proxy unseres ISP? (In der
Emule-Konfiguration steht üblicherweise nur ein DNS-Name, und dieser kann im
Laufe der Zeit seine Zuordnung zu einer IP-Adresse ändern; also müssen wir
diese Abbildung ab und zu mal überprüfen - das geschieht automatisch einmal
pro Emule-Session direkt nach dem Programmstart.)
- Wissen wir von unserem Proxy, daß er Traffic innerhalb unseres
eigenen ISP nicht cached? (Ja, es gibt solche Proxies, welche eher die
Verbindung des ISP nach außen entlasten wollen als dessen lokales Netzwerk.)
Falls ja: Sind unsere Quelle und wir selbst beim selben ISP? (In diesem
Falle würden wir den Proxy unnötig belasten.)
- Wieviele snippets dieser Datei, die wir selbst noch haben wollen,
befinden sich unseres Wissens zufolge bereits im WebCache-Proxy unseres
Providers? (Wenn das zuviele sind, dann kommt unser eigener Emule mit dem
Saugen nicht nach (und meine Mitsauger wahrscheinlich auch nicht - wir
haben keine konkreten Informationen über diese, also können wir nur raten,
daß es ihnen vermutlich genauso geht wie uns), und der Proxy-Inhalt
veraltet, bevor jemand ihn nutzen konnte - wir wollen nicht "auf Verdacht"
die gesamte Datei in den Proxy hochladen, bloß weil dann vielleicht
jemand etwas daraus herunterladen könnte... wir müssen den kostbaren Proxy
möglichst effizient benutzen.) Wächst diese Anzahl an snippets über einen
definierten Schwellwert hinaus, an, dann wollen wir keine weiteren snippets
für diese Datei in den Proxy hochladen. (Da Proxy-Uploader mit hoher
Bandbreite seltener in eine solche Überlast-Situation kommen, werden einige
von ihnen wahrscheinlich auch dann noch snippets in Proxies hochladen, wenn
davon nur noch wenige andere Clients profitieren können - zum Glück ist das
bei ihnen nicht so "schlimm" wie bei langsamer angebundenen Clients.)
- Kennen wir mindestens einen anderen Client, der denselben snippet
wie wir selbst aus dem WebCache-Proxy unseres ISP saugen könnte? (Für uns
selbst bringt die Benutzung des Proxy keinerlei Vorteil - erst
diejenigen, die denselben snippet nach uns darüber saugen, werden davon
profitieren können.)
Wenn all dies der Fall ist, dann probieren wir es - und sagen unserer
Quelle, sie möge den Upload doch bitte in unseren Proxy schicken.siehe auch:
Feature: WebCache
ProxyListe + Ports für WebCache [Stand- 28.12.2004]
WebCache - genauere Informationen und Testversionen [aktuell- 1.9a] |