Základním kamenem ICP je rozdělení okolních cache do 2 úrovní. Počítače v první úrovni nazveme rodiči ( parents ) a počítače v úrovni druhé sourozenci ( siblings ) . Cache, která zpracovává požadavek pak sérií dotazů na své sousedy získá informace o tom, zda daný objekt mají či nikoliv. Pokud některá ze sousedních cache odpoví kladně, je na ni směrován požadavek o zaslání dokumentu. Pokud ovšem žádná z dotazovaných cache dokument nemá, vybere naše cache jeden z parent počítačů a vyžádá si objekt od něj. Parent počítač musí tento dokument poskytnout, ať už ho má sám nebo ho musí získat přímo od WWW serveru. Cache tedy může požadovat dokument od sibling počítače pouze v případě, že odpověď na ICP dotaz je kladný. Od parent počítače však může požadovat dokument vždy.
Vyřizování žádosti o dokument pomocí ICP vypadá tedy takto: