Internet Cache Protocol
Das Internet Cache Protocol (ICP) ist ein, in RFC 2186 beschriebenes Protokoll, um Web-Caches zu koordinieren. Kern des Protokolls ist es, durch kleine Nachrichten zu Proxy- bzw. Cache-Server, diese zu einem Verbund zusammenzuschalten, mit dem Ziel, Cache so effizient wie möglich zu verwalten und die Zahl der Zugriffe auf Server zu minimieren.
Das Protokoll ist das bekannteste und verbreitetste Cache-Protokoll und ging aus der Entwicklung eines hierarchischen Cachesystem-Verbundes im Zuge des Harvest Research Projects hervor. Alternativen zu ICP sind das Hyper Text Caching Protocol (HTCP) und das Cache Array Routing Protocol (CARP).
ICP erlaubt Kommunikation mittels des Protokolls UDP innerhalb verschiedener Cache-Instanzen eines Verbundes, um so nach gesuchten Objekten zu suchen und dabei die Cache-Daten zu verbessern. Ein Vorteil von UDP ist, dass jeder Cache nur einen UDP-Sockel verwalten muss. Ein Nachteil von ICP-Nachrichten kann sich in Form einer Verkehrsüberlast zeigen, die genau dann eintreten kann, wenn das Caching am meisten gebraucht wird. Die eingeplante Verzögerung, die dem Maximum der Round Trip Time (RTT) zu den Nachbar-Knoten entspricht (bedingt durch UDP), macht ICP nicht für alle Einsatzzwecke optimal.
Innerhalb einer Hierarchie unterscheidet man zwischen Eltern, Kind und Geschwister. Eltern befinden sich überlicherweise näher an der Internetverbindung (am Backbone) als Kinder. Eltern stehen dabei höher in der Hierarchie und können fehlende Objekte ausgleichen. D.h. wenn einem Kind ein Objekt im Cache fehlt, schicken lösen die Eltern diese auf, indem die Eltern das fehlende Objekt bei sich suchen und an die Kinder schicken. Geschwister hingegen stehen hierarchisch auf der selben Stufe um die Last gleichmäßig zu verteilen, können aber untereinander keine fehlenden Objekte austauschen oder auflösen. Wenn ein Geschwister-Cache keinen Treffer erzielen konnte, versucht ICP bei einem benachbarten Geschwister fündig zu werden, anstatt das Objekt vom entfernten Server zu holen. Jede Cache-Instanz kann unabhängig von der Stellung in der Hierarchie entscheiden, ob fehlende Objekte von der Zielseite, den Eltern oder den Geschwistern geholt werden.
Web-Proxys, die ICP unterstützen:
Das Filesharing-Programm BitTorrent unterstützt seit Version 4.20.0 (Juni 2006) das Cache Discovery Protocol, eine Implementierung des ICP. Ziel ist es, Bandbreite von Provider zu schonen.
Weblinks
- http://icp.ircache.net/
- RFC 2186 - ICP-Version 2
- RFC 2187 - Applikation der ICP-Version 2
- http://wwwcache.ja.net/events/workshop/10/Workshopfinal4.html