## 1 Introduction
As IoT traffic is transient in nature, data freshness has been considered one of the requirements when implementing IoT over NDN. Many studies addressed this issue with different freshness meanings and for different purposes [22; 23; 24; 25]. It is worth mentioning that the authors in [24] were the first to consider IoT traffic freshness and proposed the use of a statistical prediction model, Auto-Regressive Moving Average (ARMA), to predict the generation instant of the next content for event-based IoT traffic. Moreover, the replacement technique needs to highly prioritize popular data when the cache is full, to avoid a high cache miss rate and, thus, optimize the network traffic. NDN has some well-known replacement strategies, such as Least Frequently Used (LFU) and Least Recently Used (LRU), which implicitly consider data popularity. Data freshness was also considered during the content eviction process, as in the Least Fresh First (LFF) replacement strategy [24]. The authors in [23] proposed an implicit caching approach that combines both data lifetime and popularity. They extended their work in [25] to add the availability factor to cache data for vehicular NDN. This will be used as a comparative approach for our proposed PF-ClusterCache explicit caching scheme. The most challenging issue remains as to how to control and lower the redundancy in caching with minimum collaboration effort and communication overhead. In this article, we propose PF-ClusterCache a caching approach that shares the storage resources available in a cluster of nodes at the edge of the network and manages these resources as a unique global pooled storage. As such, PF-ClusterCache can enforce zero redundancy within any cluster of nodes, while it caches only the most recent popular data content. Consequently, a greater amount of different content could be cached within the network, achieving a higher caching diversity. PF-ClusterCache only caches at the edge of the network and avoids caching in internal nodes, allowing them to serve as fast name-based routing structures. Ituses a simple hashing technique to map a requested content name to a node within a cluster. This tacitly results in a reduced content retrieval time and much lower communication overhead. Few works have proposed explicit caching strategies based on managing and controlling in a distributed manner the caches of local nodes to decrease the caching redundancy and increase the content diversity. However, none of these collaborative approaches, to our knowledge, have also taken into account the popularity and freshness of the content as with the proposed PF-ClusterCache. This work advances the state of the art by offering a simple and efficient distributed caching technique that explicitly and simultaneously considers content popularity and freshness, while remaining fully compliant with the NDN specifications. The main contributions of this article can be summarized as follows:  
* Design of PF-ClusterCache, a novel collaborative popularity and freshness-aware caching policy that operates at the edge of the network. PF-ClusterCache regards the content stores of nodes in a cluster as a unique global distributed storage. * Design of a popularity and freshness-aware replacement technique that needs to cache only the most recent popular content. * Collaboration among nodes of the same cluster is reduced to a minimum without any information exchange by using a simple hashing of content names to surrogate caching nodes within the cluster. * Integration of PF-ClusterCache into ndnSIM and the evaluation of its performance using a large Transit Stub network topology including a large number of consumers and producers to account for different workloads and IoT scenarios. * Benchmarking PF-ClusterCache against other representative caching schemes using a mix of popular and unpopular traffic flows and under various scenarios. The remainder of the paper is organized as follows: Section 2 provides the necessary background and reviews relevant related works.