Internet Cache Protocol
| 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 :
- Harvest[3]
- Squid[3]
- NetCache[3]
- Novell BorderManager FastCache[3]
- Netscape Proxy Server[3]
- DeleGate[3]
- MOWS[3]
- Inktomi Traffic Server[3]
- Cisco CacheEngine[3]
- SkyCache[3]
- Mirror Image[3]
- Microsoft Proxy
- Cisco Content Engine
- CACHEbox (en)
- ProxySG
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
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).
| 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
- ↑ (en) Request for comments no 2186
- ↑ (en) Request for comments no 2187
- Inter Cache Communication Protocols, Ingrid Melve
Liens externes
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.