Internet Cache Protocol
# 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, Proxy- bzw. Cache-Server durch kleine Nachrichten zu einem Verbund zusammenzuschalten, mit dem Ziel, den Cache so effizient wie möglich zu verwalten und die Zahl der Zugriffe auf Server zu minimieren.

## Eigenschaften und Verwendung

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-Socket 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 „Geschwistern“. Eltern befinden sich üblicherweise näher an der Internetverbindung (am Backbone) als Kinder. Wenn ein Cache keinen Treffer erzielen konnte, versucht ICP bei benachbarten Geschwistern und/oder Eltern fündig zu werden, anstatt das Objekt vom entfernten Server zu holen. Dabei können Eltern das Objekt selber vom entfernten Server laden, bei sich speichern und an das Kind weiterreichen, während Geschwister nur Objekte zurückgeben, die tatsächlich schon bei ihnen gecacht waren. Jede Cache-Instanz kann selbständig und 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:

* Squid cache
* Microsoft Proxy
* Cisco Content Engine
* Proxy+
* Phion Proxy

Das Filesharing-Programm BitTorrent unterstützt seit Version 4.20.0 (Juni 2006) das Cache Discovery Protocol, eine Implementierung des ICP. Ziel ist es, die Bandbreite des Providers zu schonen.

