## 2 Background and Related Work
### NDN Caching Policies  
The concept of in-network on-path caching is one of the main and strongest features in NDN. The CS at each router is designed to cache frequently requested content. At each router, the decision has to be taken as to whether or not to cache the incoming packet (caching decision), and in the affirmative, if the CS is full, another decision has to be taken about which content to evict from the CS (replacement decision). The caching and replacement strategies play a pivotal role in the NDN operation and have a great impact on the network performance. An efficient cache management scheme is essential for efficient content distribution, high cache utilization, low content retrieval delay, and a high diversity level. Many caching policies have been proposed for NDN [7; 26], the majority of which are not popularity-aware. In fact, normally, only popular content that is frequently requested should be cached. Content that is not popular should not be cached as it will be very seldom asked for. The question remains as to where to cache any given popular content. Leave Copy Everywhere (LCE) [27], for instance, is an approach customarily used in various papers as a yardstick for benchmarking. LCE does not consider the popularity of the incoming content and caches a copy of it in each router along the reverse path towards the consumer. The caching of unpopular content, in addition to caching everywhere along the reverse path, tacitly yields a huge redundancy, which in turn reduces the cache hit rate and increases the eviction rate. On the contrary, our proposed PF-ClusterCache approach is popularity-aware and caches the new content only if it is popular and at only one router. As such, PF-ClusterCache will necessarily attain much higher content diversity and availability, much lower redundancy and eviction rate, and a superior cache hit rate and efficiency. The question still remains as to where to cache popular content and which content to replace. Caching placement stands as one of the most important decisions that needs to be carefully deployed to maintain network efficiency while enhancing caching performance. [PERSON] et al. in [28] showed that caching data at the edge of the network can preserve  
Figure 1: NDN forwarding control plane. the benefit of in-network caching without overloading the network with unnecessary replicas of cached content. [PERSON] et al. in [24] proposed a close to consumer caching scheme for NDN/IoT that, as the name indicates, caches only at nodes connected to consumers. Results showed that the proposed scheme decreased the caching cost while improving the overall network performance. The authors of [29] introduced PoolCache, where they forced caching at the edge of the network and disallowed caching at internal nodes of the network. PoolCache presents a good level of diversity and zero redundancy within each pool of routers. However, most of the proposed approaches do not explicitly consider the popularity of the incoming content and may therefore unnecessarily cache unpopular content. PF-ClusterCache, as with PoolCache, is also a caching approach that caches only at the edge of the network. PoolCache will be used as a benchmarking approach for PF-ClusterCache. All aforementioned cited caching approaches but PoolCache are implicit according to the definition provided by [PERSON] et al. in [21], in which the caching decision is only based on the node state, regardless of those of other neighboring nodes. Explicit caching approaches are rather collaborative approaches in which the caching decision is taken in collaboration and coordination with other nodes, either on a local or global scale. Such collaboration is essentially meant to reduce the caching redundancy and increase the content diversity throughout the network, albeit at the price of higher traffic and computing overhead. PF-ClusterCache is a collaborative popularity-aware caching scheme achieving a low overhead, high diversity, and very low redundancy.