Wissenswertes über Proxy Caches

1.1Was ist ein Proxy ? Der grundlegende Zwecks eine Proxies ist es, Web-Browsern von Maschinen innerhalb eines Firewalls Zugang zu Diensten des Internet zu garantieren.

Der Proxy läuft typischer Weise auf der Firewall-Maschine. Er wartet auf die Anfragen der Maschinen innerhalb des Firewall (Clients), sendet diese weiter an die entsprechenden entfernten (remote) Server außerhalb des Firewall, empfängt die Ergebnisse der Anfragen (z.B. ein HTTP-Dokument, eine Datei einer FTP-Anfrage etc.) und sendet diese an die Clients zurück (siehe Abb. 1).


Abb. 1 (Proxy-Server als Diensterbringer)

Nach der oben beschriebenen Vorgehensweise würde also der Proxy bei jeder Anfrage den gewünschten entfernten Server kontaktieren und das Ergebnis an den Client, selbst wenn diese Anfrage schon kurz zuvor von einem anderen Client gestellt wurde und sich am Ergebnis der Anfrage nichts geändert hat.

Nun hat man sich gefragt: "Wieso eigentlich ? Kann man den Proxy nicht so modifizieren, daß er sämtliche Ergebnisse einer Anfrage seiner Clients cached (z.B. auf einer Festplatte) und bei nachfolgenden Anfragen seiner Clients erst in diesem Cache nachsieht, und beim Vorhandensein des Ergebnisse sofort diese seinem Client zurückliefert und gar nicht erst den entfernten Server kontaktiert ?"

1.2 Was ist ein Proxy-Cache ? Die Antwort darauf ist der Proxy-Cache. Das genutzte Prinzip ist einfach: Speichere die empfangenen Dateien als lokale Kopie für den weiteren Gebrauch (siehe Abb. 2), sodaß der entfernete Server bei der nächsten Anfrage eines Proxy-Cache-Clients für diese Datei nicht mehr kontaktiert werden muß (siehe Abb. 3).


Abb. 2 (Diensterbringung: Ergebnis der Anfrage befindet sich nicht im Cache)



Abb. 3 (Diensterbringung: Ergebnis der Anfrage befindet sich bereits im Cache)

1.3 Welche Vorteile bringt die Nutzung eines Proxy-Cache ? Das Cachen durch den Proxy-Server ist bedeutend effizienter, als durch jeden Client (z.B. netscape browser). Es spart Plattenplatz, da nur eine einzige Kopie des Anfrageergebnisses (i.w. Datei) gecached wird. Ebenso erlaubt dies ein effizienteres Caching von mehrfach, durch viele Clients referenzierten Dateien, da der Cache-Manager eine Vorhersage treffen kann, welche Dateien es wert sind, länger gecached zu werden, und welche nicht. Ein Proxy-Cache würde in der Lage sein, ein "Look ahead" und andere vorausschauende Algorithmen viel effizienter als seine Clients zu nutzen, da er viele Clienten und somit eine bedeutend gröere Grundlage (sample size) hat, auf der seine Statistiken bezüglich Cache-Verwaltung basieren.

Ebenso macht es das Caching möglich, Internetdienste von Servern in Anspruch zu nehmen, die derzeit gar nicht erreichbar | online | busy sind, sogar wenn der Netzwerkzugang nach außen gestört ist, solange der Proxy selbst erreichbar und das Ergebnis der Anfrage bereits in seinem Cache ist. In gewisser Weise erreicht man damit auch eine verbesserte Qualität des Dienstes zu entfernten Netzwerkresourcen, wie z.B. sehr ausgelasteten FTP/Gopher Server, die oft nicht erreichbar sind oder den Dienst zwecks Überlastung verweigern. Desweiteren kann man einen Cache konstruieren, um die gecacheten Dateien für Demonstrationen an Orten schnell wiederzugeben, die keine oder nur eine sehr langsame Verbindung zu den Servern mit den Original-Dokumenten haben.

Somit führt die Nutzung eines Proxy-Servers nicht nur zu einer höheren Geschwindigkeit der Diensterbringung und somit in der Regel auch zu geringeren Kosten, sondern ermöglicht auch eine geringere Belastung der Netzwerkresourcen zu den entfernten Servern.

1.4 Welche Nachteile hat die Nutzung eines Proxy Cache ? Bei so vielen Vorteilen werden sich so einige fragen, ob das ganze Caching nicht auch Nachteile hat. Und darauf gibt es derzeit nur eine Antwort: in bestimmten Fällen ja.

Einer dieser Fälle wäre, das nur sehr wenige Clienten häufig auf dieselben Dateien zugreifen (geringe Lokalität der Zugriffe) und somit der Proxy-Cache nur noch als eine Art Gateway zwischen Client und entfernten Server arbeitet. Da die Wahrscheinlichkeit der Referenzierung derselben Dateien mit der Anzahl der durch alle Proxy-Clients referenzierten Dateien steigt, ist es also notwendig, daß viele Clients (Nutzer mit ihren WWW-Browsern) den Proxy-Cache nutzen!

Ein weitere Nachteil kann entstehen, wenn die Caching-Strategie für eine Datei fehlschlägt und somit eine möglicherweise Weise veraltete Fassung der Originaldatei an den Client zurückliefert wird. Natürlich wird durch den Einsatz verschiedener Strategien versucht, diesen Fall nicht eintreten zu lassen und dem Benutzer soweit irgend möglich aktuelle Dokumente zu liefern, doch kann dies nicht immer garantiert werden. Näheres zu den Ursachen sind in der iX im Artikel von Rainer Klute "Zwischenstation - Mit dem Proxy-Server Zeit und Geld sparen" nachzulesen.

Als letzte kleine Klippe sollen hier noch entfernte Server genannt sein, die als Paßwort die e-mail-Adresse des Nutzer haben wollen und einen Plausibilitäts-Test durchführen. D.h, sie überprüfen, ob die übermittelte Adresse (der Teil nach dem @) tatsächlich mit der Adresse der verbundenen Maschine übereinstimmt. Wird ein Proxy-Server benutzt, besteht die direkte Verbindung zwischen dem Proxy und dem entfernten Server. Damit ermittelt der entfernte Server die Adresse des Proxy-Servers als "wahre" Adresse. Der WWW-Browser hat jedoch ein Paßwort generiert, das der Adresse der Maschine, an der gebrowsed wird entspricht. Da nun der entfernte Server einen Unterschied zwischen "wahrer" Adresse und der Adresse im übermittelten Paßwort feststellt, verweigert er den Zugriff. Der Proxy-Cache übermittelt dies dem Nutzer, in dem er eine Ausgabe mit Error code 404 File does not exist or is not accessible generiert. Das einzige Mittel dagegen ist derzeit noch die temporäre Abschaltung des Proxies im WWW-Browser, was zumindest in Netscape, NCSA Mosaic für Windows und WebExplorer für OS/2 keinem zu schwer fallen dürfte.

Ich konfiguriere mir das jetzt, mit dem Proxy Cache