Internet Cache Protocol

Internet Cache Protocol

Informations
Fonction partage de cache répartis
Sigle ICP
Date de création septembre 1997
Port 3130 (TCP et UDP)
RFC 2186, 2187

ICP (Internet Cache Protocol) est un protocole Internet utilisé pour coordonner les caches (antémémoires) web. Son objectif est de trouver l'endroit le plus approprié où récupérer un objet demandé par un client dans un contexte où de multiples caches sont utilisés comme un seul site. Le but est d'utiliser les caches aussi efficacement que possible et de minimiser le nombre de requêtes vers le serveur hébergeant l'objet désiré.

Hiérarchiquement, un cache interrogé peut être un de niveau supérieur (parent) ou de niveau égal (frère ou sibling).

Les serveurs parents sont d'ordinaire plus proches du serveur hébergeant l'objet recherché que les serveurs fils. Si un serveur fils ne peut trouver l'objet, la requête est en général relayée vers un serveur de cache parent qui va rapporter, mémoriser (mettre en cache) et finalement transmettre la requête au demandeur. Les serveurs frères (siblings) sont des serveurs de cache d'un niveau hiérarchique égal, dont le but est de répartir la charge.

Quand une requête arrive en cache dans un cluster de serveurs frères, le protocole ICP est utilisé pour interroger les serveurs frères sur les objets qui ont été demandés. Si un serveur frère détient un objet en cache, il sera le plus souvent issus de ce cache et non d'une requête directe sur le serveur original. Ce processus est souvent appelé near miss quand l'objet n'est pas dans le cache du serveur de cache interrogé (raté ou miss) mais qu'il est finalement récupéré depuis celui d'un serveur proche (near) au lieu du serveur original.

Le protocole ICP a été conçu léger pour minimiser le nombre d'aller-retours entre les caches. Il est prévu pour les connexions peu fiables mais rapides.

Le protocole ICP est décrit dans la RFC 2186[1], son application aux serveurs de cache web hiérarchiques dans la RFC 2187[2].

Les serveurs mandataires (proxies) qui supportent ICP :

HTCP, conçu comme successeur d'ICP, tente de résoudre divers problèmes rencontrés dans un déploiement ICP.

Structure des messages ICP modifier

Un message ICP comprend deux sections :

  • l'en-tête (header),
  • les données (data).

En-tête La longueur de l'en-tête est fixée à 20 octets (cinq mots de 32 bits).

Données Les données ont une longueur variable limitée par la taille maximale d'un message ICP qui est de 16 384 octets (en-tête comprise).

L'en-tête ICP contient huit champs, dont deux optionnels (champs 5 et 6 en rose dans le tableau).

En-tête ICP
Bit offset Bits 0–7 8–15 16-31
0 Opcode Version Longueur du message
32 Numéro de requête
64 Options
96 Données Optionnelles
128 Adresse du demandeur
160+  
Données
 

Références modifier

Liens externes modifier

  • RFC 2186[1] ICP version 2
  • RFC 2187[2] Application of ICP version 2