1. Introduction
This paper extends our preliminary version [
1] to develop an efficient distributed content store-based caching policy for information centric networking (ICN). According to literature studies [
2,
3], ICN offers a number of benefits compared to the IP-based network such as easy content access, security at the content object level, content distribution with low latency, and especially in-network caching [
4]. Especially for wireless networks, ICN also provides advantages such as host multi-homing, removal of connection-oriented session, resilience through replication, and network address consistency for mobility improvement [
3,
5]. In the literature, ICN is recognized as one of the most promising networking paradigms for the Internet of Things (IoT). This is due to the matching between the design of ICN and traffic patterns in IoT. In particular, ICN takes into account content object and content name at the network level while IoT network traffic is driven mostly by content retrieval, instead of point-to-point communication.
In-network caching is one of the main features of ICN to reduce the network load, increase the content availability, and lower data delivery latency by allocating cached content objects inside the network and making them available for content requests. If content objects are only available at the content producer or cached near the producer, the network around the producer may witness a heavy traffic load and the content delivery latency may be high. If a content object is cached to nearby consumers, requests for the content object can be retrieved faster. Content store (CS) is one of the main components of ICN, which enables content objects to be cached and retrieved from any intermediate node in the network. In existing native ICN design [
6,
7], CS of a node is mainly used to store content objects. Interest messages of content consumers are forwarded based on forwarding information base (FIB) towards content producers. FIB is built from content name prefixes registered by content producers. At an intermediate router, the router matches received interest messages with its CS to validate if the requested content object is available in CS of the node. If the router finds the requested content object in its CS, the router responds directly from its CS to the content consumer.
However, in existing ICN designs [
6,
7], CS information is not exploited to coordinate the content caching and content retrieval. CS of nodes in ICN still operates independently while Interest packet forwarding mainly uses forwarding information base (FIB). In the previous work [
8], we exploit CS information of nodes for forwarding and content retrieval. This paper highlights the importance of coordinating content store information of ICN nodes to improve the performance of in-network caching in ICN. Caching schemes in the literature of ICN can be grouped into the following categories, popularity-based caching, probabilistic caching, label-based caching, and graph-based caching, which are thoroughly reviewed in the literature [
2,
5]. In ICN, popularity-based caching is considered as one of the most efficient approaches. In popularity-based caching, routers make the caching decision based on content frequency and interest request distribution. This approach aims at maximizing the usage of popular content to increase the cache hit rate. A number of studies investigated collaborative popularity-based caching in ICN [
9,
10,
11,
12]. The key benefit of collaborative caching strategies is that the redundancy in caching can be lowered and cache diversity can be improved. However, existing collaborative caching strategies have critical drawbacks due to high communication overhead and packet delivery latency for signaling messages to be exchanged among routers and coordination mechanisms among routers.
In this paper, we exploit CS information and argue that CS of nodes should not operate independently. To coordinate content store information among nodes in a neighborhood, we propose to enable CS information in the data plane of the network. However, if nodes exchange all CS information with neighbor nodes, it results in another efficient problem. Therefore, we design an efficient way for CS information transmission using a counting Bloom filter (CBF) [
13]. Based on that, nodes only exchange summarized information of their CS with nodes in their neighborhood. In this paper, we propose an efficient content store-based caching (CSC) policy to coordinate CS of a node with its neighbor nodes in a distributed manner so that more and more unique popular content objects can be cached in its neighborhood. This design is to allocate popular content closer to consumers to improve the cache hit ratio and the overall network performance. Each node contributes to the objective of its neighborhood by maximizing its number of unique popular content objects being cached in its CS and not cached in its neighbor CS. Note that CSC is not designed to replace existing caching schemes but can be implemented as a complementary part to improve the performance of existing caching schemes. We implement CSC on the top of state-of-the-art popularity-based caching schemes including MPC [
14], CPCCS [
15], and CCS [
16], namely CSC-MPC, CSC-CPCCS, and CSC-CCS. Through analysis and experiments, we show that the proposed caching policy achieves a significant improvement in terms of cache hit ratio, stretch ratio, content retrieval latency and energy efficiency significantly compared to state-of-the-art schemes.
In summary, we make the following contributions in this paper:
We design an efficient way to make CS information in the data plane of the network.
We propose a novel and efficient content store-based caching (CSC) policy that pulls popular content objects to the neighborhood of nodes to improve the network performance.
We implement CSC as a complementary part for existing caching schemes to improve their performance. Experimental results show that CSC helps caching schemes improve their performance significantly.
The rest of this paper is organized as follows:
Section 2 discusses related works.
Section 3 gives the overview and the detailed design of the proposed CS-based caching policy.
Section 4 describes our experiments and evaluation. Finally,
Section 5 concludes the paper.
2. Related Work
In-network caching is one of the main features of ICN to reduce the network load, increase the content availability, and lower data delivery latency by allocating cached content objects inside the network and making them available for content requests. If content objects are only available at the content producer or cached nearby the producer, the network around the producer may witness a heavy traffic load and the content delivery latency may be high. If a content object is cached to nearby consumers, requests for the content object can be retrieved faster. One of the critical issues of in-network caching is which routers should cache a content object. Caching schemes in the literature of ICN can be grouped into the following categories: popularity-based caching, probabilistic caching, label-based caching, and graph-based caching which are thoroughly reviewed in the literature [
2,
3,
4,
5].
In probabilistic caching, routers use a probability
p to make a caching decision.
p can be a fixed or random number. Probabilistic caching introduces a certain probability of caching for a content object that a router receives. For a given
p-value, when an ICN router receives a new content object, the router randomly generates a number between 0 and 1. If the generated value is lower than
p, the router makes a caching decision to cache the content object. Otherwise, the router discards the content object. In [
6], the authors solved the issue of unpredictability and simplicity by introducing globally random caching. LCE [
6,
17] is a popular and simple version of probabilistic caching but resulting in high redundancy. The idea behind LCE is very simple in which ICN routers try to cache every new content object they receive and not available in their CS. In [
18,
19,
20], the authors proposed dynamic caching policies in which the caching probability is changed dynamically to optimize the cache efficiency. HCP [
19,
20] was implemented using a factor, namely
, to lower the number of similar content replications and another factor, namely
, to optimize the stretch length between content consumers and content providers.
Label-based caching use policies related to content objects that are labeled based on certain properties. As a result, nodes may be aware of several content types in the network and have special policies to cache content objects belonging to those content types. In [
21,
22], the authors take content traffic patterns and the network topology into consideration to design caching schemes that can recognize the network context to improve the network performance.
Graph-based caching considers forwarding routes and network structure in ICN. In [
21], the authors proposed an edge caching policy to place content objects in the delivery path end to distribute the content courses close to users to improve the network performance. In [
22], the authors discuss various policies to progressively change the caching positions and centrality of nodes.
In popularity-based caching, routers make the caching decision based on content frequency and interest request distribution. This approach aims at maximizing the usage of popular content to increase the cache hit rate. In Most Popular Cache (MPC) [
14], routers count the number of incoming interest messages for every content object to calculate the content popularity. A threshold is defined to categorize content objects as popular. When a content receives a proper number of interest messages greater than the threshold, it is labeled as popular. Routers that hold the popular content are recommended to cache the content. In CPCCS [
15], the dynamic threshold value is introduced. The content is grouped into optimal popular content (OPC) and least popular content (LPC). The grouping decision is based on counting the total number of interest messages of a particular content name using PIT. The list of LPC content names is sorted and 25% of total contents from the list are labeled as OPC that are most frequently requested. OPC content objects are recommended to be cached by all routers along the routing path to increase the network performance while LPC content objects are recommended to be cached by fewer routers. In popularity-based caching, collaborations among routers can result in a higher efficiency where routers cooperate to make caching decisions. A number of studies investigated collaborative caching in ICN [
9,
10,
11,
12]. The key benefit of collaborative caching strategies is that the redundancy in caching can be lowered and cache diversity can be improved. However, existing collaborative caching strategies have critical drawbacks due to higher communication overhead and packet delivery latency for signaling messages to be exchanged among routers and coordination mechanism among routers.
This paper exploits content store information of nodes in the data plane and counting Bloom filters to design an efficient caching policy to coordinate the CS of a node with its neighbor nodes in a distributed manner so that more and more popular content objects are cached in the neighborhood of the node. Each node contributes to the objective of the neighborhood by maximizing its number of unique popular content objects being cached in its CS and not cached in its neighbor CS.
3. The Proposed Distributed CS-Based Caching Policy
This paper highlights the importance of CS information for efficient content caching and content retrieval to improve the performance of information centric networking, especially in resource-constrained environments like the Internet of Things. We argue that CS of nodes should not operate independently. We propose an efficient caching policy to coordinate the CS of a node with its neighbor nodes in a distributed manner. We define the objective of a neighborhood is that the neighborhood should be coordinated in a way to pull more and more popular content objects being cached inside the neighborhood within its limited storage capacity. For that objective, each node in a neighborhood contributes to the objective of the neighborhood by maximizing its number of unique popular content objects being cached in its CS and not being cached in the CS of its neighbors.
To exploit and coordinate CS information among nodes, we propose to enable CS information in the data plane of the network. We first design an efficient method for CS information exchange. Next, we design how a node stores CS information of neighbors efficiently. Lastly, we present our design of the caching policy and how it can be implemented on top of existing caching schemes.
Table 1 summarizes the acronyms used in this paper.
3.1. An Efficient Design for CS Information Transmission
This paper highlights the importance of CS information to coordinate caching operations of nodes in a neighborhood to improve the performance of information centric networking. However, if nodes exchange all CS information with neighbor nodes, it leads to another efficient issue. In this subsection, we describe our efficient design for CS information transmission using a counting Bloom filter (CBF) [
13].
A Bloom filter (BF) is well known as a probabilistic data structure designed to enable rapid checking of whether an element is present in a set. A Bloom filter is a very space efficient structure consisting of only a m-bit array. A counting Bloom filter uses the same functions of Bloom filters with counters to enable deleting elements from its data structure. Due to resource-constrained storage, this property is necessary in IoT because content objects can be deleted or added to a CS. We use CBF as a data structure to summarize a compact name set of content objects being cached in the content store of a node [
13]. As a result, we only need to use CBF for storing and exchanging CS information among nodes in the network. This helps reduce the amount of CS information required to be exchanged and stored.
In particular, each node summarizes its local CS information using a CBF, called a local CBF. A node updates its local CBF if its CS adds or deletes content objects. To exchange CS information in the data plane, each node advertises a compressed version of its local CBF [
23] to neighbors within N hops distance only. The approach behind compressed BF here is that the mechanism uses a parameter k to compress the array bits of Bloom filter to reduce the amount of information required to be transmitted. For energy efficiency, the resulting information of the local CBF is piggybacked into existing advertisement packets in the signaling channel of the lower layer protocol as presented in our previous study [
24]. In particular, the resulting information is piggybacked and encapsulated into signaling messages of the 802.15.4 MAC layer at the sender and then decapsulated at the receivers. In this way, our design for CS information exchange does not incur additional packet transmission.
3.2. Neighbor Content Store Table
For caching coordination, each node should store the summarized CS information of its neighbor nodes. We design a new table, namely neighbor content store (NCS) table. NCS is a compact table consisting of CBFs. Each CBF stores CS information of neighbor nodes coming from a communication interface of the node. Local CBFs of neighbor nodes coming from an interface are merged into a CBF in the NCS. NCS is the only new table in the proposed caching policy while pending interest table (PIT), forwarding information base, and content store follow the conventional design of ICN [
6,
25].
3.3. Caching Policy
We propose an efficient CS-based caching (CSC) policy that coordinates nodes in the network in a distributed manner so that more and more popular content objects are cached inside the neighborhood of a node within a limited storage capacity. We find that there is a minimal benefit and storage wasting when two nearby nodes cache the same content object. Therefore, if neighbor nodes are aware of CS information of neighbors, they can coordinate in a way to optimize the diversity of popular contents into their neighborhood to increase the number of Interest packets that can be satisfied quickly in the neighborhood.
We implement CSC on top of existing popularity-based caching strategies [
26]. The existing popularity-based caching strategies provide various ways to calculate the content popularity and cache placement. Nodes decide to cache a content object based on its popularity. CSC is implemented on the top of the popularity-based caching strategies as follows. Each node in a neighborhood contributes to the objective of the neighborhood by maximizing its number of unique popular content objects being cached in its CS and not being cached in the CS of its neighbors. In particular, a router decides to cache a new content object in its CS following a popularity-based caching strategy if the content object has not been cached in its neighbors’ content store. This can be done easily by checking the name of the content object in the neighbor CS table at the node. When the node has a full storage, the node replaces the cache if the new content object has a higher popularity and has not been cached in its neighbors’ content store.
In this paper, we implement one hop neighborhood CS based caching policy by default. However, we can extend the neighborhood size by limiting the neighborhood of a node within N hops distance from the node. It means that each node advertises its local CS information to neighbor nodes within N hops. The neighbor CS table of a node stores the summarized CS information of neighbor nodes within N hops, so CSC brings diversity of popular contents into N-hop neighborhood of the node to increase the number of Interest packets that can be satisfied within N hops. We conduct experiments with various values of N hops to investigate the performance of CSC under different N values. In CSC, we consider only neighbors within N hops due to the following reasons. Firstly, we take into account the efficiency factor. A network should utilize cached content objects within a limited number of hops from content consumers, closer than to the original content producer. Secondly, the number of content objects may increase exponentially, so maintaining CS information exchange globally requires a high overhead. Thirdly, a limited size Bloom filter can guarantee an acceptable high accuracy under a limited number of content objects, and we choose N hop to ensure the accuracy of Bloom filters. Fourth, N hop usage can enable the network operators to provision the network performance with an expectation as well as cache management to reduce the network core load within a limited storage capacity.
5. Discussion and Conclusions
This paper proposes an efficient content store-based caching policy in which content stores of nodes in a neighborhood are coordinated in a distributed manner. The purpose is to pull more and more popular content objects being cached inside the neighborhood within a limited content store capacity. In our proposed policy, each node contributes by maximizing its number of unique popular content objects that are being cached in its content store and not being cached by its neighbors. We implement the proposed policy on the top of state-of-the-art popularity-based caching schemes. Through analysis and experiments, we show that the proposed caching policy helps improve the cache hit ratio, stretch ratio, content retrieval latency, and energy efficiency significantly compared to state-of-the-art schemes.
Through our in-depth analysis in various cases, we summarize advantages of CSC compared to state-of-the-art caching mechanisms as follows:
CSC achieves a higher performance improvement ratio in cases with low cache size and intermittent networking conditions, compared to state-of-the-art caching mechanisms like MPC, CPCCS, LCE, or HCP. The reason is that CSC is designed to exploit caching capacity of nodes and coordinate them in an efficient way to improve the cache hit ratio and interest packet forwarding based on the neighbor content store table.
Compared to existing collaborative caching schemes discussed in
Section 2 and
Section 3, CSC shows a lower communication overhead and packet delivery latency for signaling messages and cache coordination.
Obtained results indicate that CSC is a good candidate for resource-constrained devices and environments like IoT and wireless sensor networks. Experimental results in IoT environments presented in
Section 4 validate our observation.
An additional advantage of CSC is that CSC is designed as a complementary plugin, so it can be implemented on top of existing popularity-based caching schemes to improve their performance. As a result, CSC can be extensible for many mechanisms in the literature and in the future.
The limitation of the current work is that the performance of the proposed policy depends on the neighborhood size, N value. In future works, we plan to integrate caching, forwarding, and optimizations into our existing systems for IoT.