Reasons to use hierarchical caching
Sometimes, it's necessary to be a part of a cache hierarchy. For example, in a large network where all packets must pass through a firewall proxy we will be forced to use the firewall proxy server as a parent proxy, as it's the only point of contact with the Internet. So, all our cache misses will be fetched by the firewall proxy.
Sometimes, we join a cache hierarchy to reduce the average page load time. It helps only when the fetch time from neighbors is significantly less than the fetch time from remote servers. Therefore, if some requests result in a cache MISS in our proxy's cache, it may be a cache HIT in one of our neighbors caches.
Another example may be, a network where we have a large number of clients and one proxy server is not able to handle all the traffic. In this case, we'll split the load by deploying two proxy servers as siblings. Two servers will be able to serve HITs from each other's cache, which will further enhance the performance.
An...