## 3 Methodology
### Proposed SOCC Caching Scheme  
The ICN node architecture generally consist of three data structures namely, PIT, CS and FIB. In proposed paper a new data structure named as self organized cooperative caching (_SOCC_) table is incorporated in the node. The _SOCC_ as shown in Figure 2 stores the requested content according to the frequency of its request, at the receiver node. The _SOCC_ table is updated regularly, in descending order as per Algorithm 1. The notations are highlighted in Table 2. \begin{table}
\begin{tabular}{c c} \hline \hline
**Symbols** & **Notations** \\ \hline \(\mathcal{C}\) & Total content Catalog \\ \(\mathcal{Q}\) & Total network nodes/user \\ \(\mathcal{B}\) & Buffer Size \\ \(r_{c}\) & Request packet by any node \(n\) for content \(c\) \\ \(\epsilon\) & Requested content \\ \(s_{\xi}\) & Size of the content object \(\epsilon_{\xi}\) \\ \(q_{i}^{k}\) & Request rate for \(\epsilon_{\xi}\) at node \(n_{i}\) \\ \(\omega_{c}\) & power density of caching in content \\ router (W/bit) & router (W/bit) \\ \(\omega_{n}\) & Energy density of a node (J/bit) \\ \(\omega_{l}\) & Energy density of a link \\ \(h_{ij}\) & Distance in hops b/w \(n_{i}\) and \(n_{j}\) \\ \(E_{t}\) & energy required for transportation of packets \\ \(E_{c}\) & energy consumption needed for caching \\  & (storing) of the contents \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Abbreviations of key parameters. Figure 1: ICN Architecture: A network of four routers (A, B, C and D) and multiple mobile nodes. Algorithm 1 represents the convergence operation in local popularity table \(SOCC\) at the arrival of each request \(r_{c}\) on a corresponding node \(n\). As soon as the request is received, the node's \(SOCC\) table is updated and the all its content are sorted descending order. The cache hit occurs if the request already exist at the corresponding node \(n\). The rank of the request is updated in \(SOCC\) table and the data packet \(c\) is forwarded using reverse path to the corresponding content requested node. If the requested data are not available, then it generate the interest packet and disseminate it to the the neighboring nodes. Suppose, if the user needs a content \(c\), the corresponding node generates an interest packet \(r_{c}\) and forward this packet to their neighbor nodes. At the same time, the Algorithm 1 updates the \(SOCC\) table at the current node and increment the popularity requested content by one and then sort the \(SOCC\) table according to the popularity based in descending order. On the other hand, when a request \(r_{c}\) packet is arrived at a particular node. The node checks its cache \(\mathcal{B}\) and if the requested content \(c\) is available, it is sent back at the same path (face) from the interest packet came. Suppose, the cache \(\mathcal{B}\) is getting full, the node make space for the newly arrived content by removing the least popular content. Similarly, as per popularity of the arrived content the node decides whether the content is cache or not. To better understand the Algorithm 2, suppose we have a small wireless network as shown in Figure 1, consist of \(\mathcal{N}\) nodes (Node A, Node B, Node C,......., Node \(\mathcal{N}\)). If the user node A generates an interest packet and forward to it neighbor nodes (node B, node C and node D), and the neighbor node D already exists the copy of corresponding content, so it sends back the data packet to the requester node A.  
Figure 2: Proposed ICN Node.