# Popularity-Aware Closeness Based Caching in NDN Edge Networks
## 3 PaC-Based Caching  
### Main Pillars and Assumptions  
To capture the aforementioned needs and overstep the limitations of existing solutions, we propose a different topological metric that accounts for _the proximity of potential caches to the consumers and is weighted by the content popularity_. We leverage the resulting metric, namely _PaC_, in a new strategy aimed at caching the most popular contents as close as possible to the majority of consumers in order to limit the data retrieval delay and the exchanged data traffic. As shown in Figure 2, the reference scenario of our study is an edge domain, e.g., the backhaul network of a mobile network operator, a campus network, composed of a set \(V\) of NDN nodes [8]. A subset of nodes denoted as \(I\subset V\) act as ingress nodes that consumers are connected to. A few other nodes, instead, act as egress nodes towards the content \begin{table}
\begin{tabular}{c c c c c} \hline \hline
**Work** & **Popularity** & **Topology** & **Domain** & **Decision Strategy** \\ \hline
[10] & ✓ & - & Edge/Core &
\begin{tabular}{c} Caching popular contents based on a fixed popularity threshold \\ \end{tabular} \\ \hline
[11] & ✓ & - & Edge &
\begin{tabular}{c} Caching popular and fresh contents based on a flexible popularity threshold \\ \end{tabular} \\ \hline
[12] & ✓ & - & Edge/Core &
\begin{tabular}{c} Caching only popular long-lasting contents (in the core network); caching popular short-lasting contents only once per each delivery path (in the edge network) \\ \end{tabular} \\ \hline
[13] & ✓ & - & Edge/Core &
\begin{tabular}{c} Caching popular contents based on a flexible popularity threshold \\ \end{tabular} \\ \hline
[14] & ✓ & - & Edge &
\begin{tabular}{c} Caching popular contents based on a strict hierarchical coordination between the nodes \\ \end{tabular} \\ \hline
[4] & - & ✓ & Edge/Core &
\begin{tabular}{c} Caching contents in the most central nodes based on the betweenness centrality metric \\ \end{tabular} \\ \hline
[5] & ✓ & ✓ & Edge &
\begin{tabular}{c} Caching based on a popularity-weighted \\ content-based centrality \\ \end{tabular} \\ \hline
[6] & ✓ & ✓ & Edge/Core & \
\begin{tabular}{c} Caching based on popularity and betweenness centrality metric \\ \end{tabular} \\ \hline Our work & ✓ & ✓ & Edge &
\begin{tabular}{c} Caching based on a popularity aware consumer \\ proximity metric \\ \end{tabular} \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Comparison of caching strategies based on popularity and/or topology metrics. sources, i.e., remote servers hosting the contents. A catalogue \(X\) of cacheable contents is considered. For ease of reference, the key notations used in the paper are summarized in Table 2.  
All the nodes have caching capabilities and implement the traditional NDN forwarding fabric with the _best route_ strategy, i.e., Interests are forwarded along the shortest path between ingress and egress nodes. A routing protocol, e.g., named-data link state routing protocol (NLSR) [15], is enabled for intra-domain dissemination of both connectivity and name prefix information. To enable the PaC-based caching (PaCC), the following main modifications are foreseen to the legacy NDN routines, data structures, and packet fields:  
* Content popularity is tracked at the edge nodes in terms of locally perceived content request rate. Values are maintained in a _Popularity Table_ and properly advertised in the new rate field of the Interest packet to account for the actual content request number over each edge link. * Each node tracks the distance, in terms of hop count, from the on-path ingress nodes through a newly added field hopCount. This information, combined with the content request rate, is used to compute the PaC metric that is then advertised in the new paC field of the Interest packet by the forwarding nodes. * The highest PaC metric, discovered during the Interest forwarding, is carried by the returning Data packet in a new paC field, and it is used to select the cache.