# NDN Content Store and Caching Policies: Performance Evaluation
## 2 The NDN Architecture Overview  
The IP-based internet is a host-centric network in which the communication between two hosts demands previous knowledge of the respective addresses in the network. Since the standardization of this protocol stack, the way communications take place has changed profoundly. Current communications are content-centric based, i.e., the consumer is interested in the content and requests it by its name, instead of requesting it by its location (address). With the rapid growth in electronic commerce (e.g., Amazon), live multimedia (video in real time, e.g., Netflix) social networks (e.g., Facebook and WhatsApp), new challenges for the TCP/IP protocol stack have emerged, demanding the development of new architectural paradigms for this new reality, i.e., content-centric solutions. Specifically, the need to solve issues, such as the node mobility, network security, data privacy, network scalability, and multi-path routing, which remain challenging issues for TCP/IP-based internet, have forced the emergence of several research projects, e.g., the _content-centric networks_ (CCN) [18], _network information_ (NetInf) [19], _data-oriented network architecture_ (DONA) [20], and _publish-subscribe internet routing paradigm_ (PSIRP) [21], where NDN, a particular implementation of CCN, is considered the most promising solution [22; 2]. The architectural principles which guided the design of NDN are specified in [1; 23]. NDN adopts a pull-based communication model, where a consumer initiates the communication process by sending a request for the desired content by means of an interest. There are two types of packets, _interest_ and _data_ packets. When an interest is sent out, it is forwarded (upstream path) through different nodes toward the content source. When the corresponding content is located, the data are sent back (downstream path) to the requester by breadcrumbs. That is, the data packet is not forwarded. Instead, the status information created and saved along the upstream is used to guide the data back. One of the main issues eliminated with this approach is packet (data) looping. Interest looping is avoided by combining the _content name_ (CN) with a _nonce_--a random number generated to unambiguously identify an interest. Each NDN node contains a structure composed by the following three elements for packet (interest and data) management: (1) _content store_ (CS); (2) _pending information table_ (PIT); and (3) _forwarding information base_ (FIB). The CS is used to increase the probability of sharing content, saving bandwidth and decreasing the response time for content request. The cached copy is forwarded to any consumer who requests it, without the need to make the request again to the content source. More details on CS are presented in Section 3. The PIT stores information about the pending interest, and a recently served interest. If an interest reaches a given router and misses its corresponding content, it is forwarded to other nodes. Before the interest is forwarded, its CN and ingress face are registered on PIT. This information is then used to send the data back, downstream. The life of an interest in PIT is generally equal to the _round trip time_ (RTT). The pending interest can be removed from PIT even before RTT elapses. In this case, the request is not satisfied, and it is the responsibility of the consumer to re-issue the request [1; 24]. FIB can be populated by a name-prefix-based routing protocol, and it is where the routing information is stored. The incoming interest that misses the respective contents in a specific router cache, after having been added to PIT, is forwarded to the next hop based on the information provided partially by FIB. The existence of more than one outgoing face registered on a specific FIB entry for a given forwarded interest indicates that this interest was forwarded through more than one path. If none of the FIB entries matches the interest, then it is forwarded through all of the node's faces.