In the fog paradigm, services and resources of the cloud are closer to the users which facilitate them in the edge networks. With the significant growth of data gathered by smart devices (e.g. sensors), the demand for efficient data collection and delivery in the IoT era has become extremely important. Caching is a technique which usually comes with data delivery, and plays a significant role in improving the performance of the network in
terms of various factors such as reliability and response time. In fog-based IoT systems, caching at the fog nodes can reduce the computational complexity of the cloud as well as the network load. In this paper, we
review available caching techniques in the literature and discuss their strengths and weaknesses in fog-based IoT systems. We classify these techniques based on the following parameters: functionality, location, and
content. A comparison of these techniques is presented in Table 3.
Caching based on functionality: In the content-oriented networks, in order to increase its potential as much as possible, the content must be stored in the control level instead of guessing it at the data level. For example, in, the authors studied the relationship between caching the content in distributed IP-based systems and the new content-oriented designs in the fog-based systems. They considered a combination of real-time traffic from various sources such as the web and multimedia streaming and concluded that addressing cached content in the control level is more efficient than guessing them at the data level. Moreover, in, the authors proposed an algorithm in which a cluster of caches is considered with various leaves connected by a parent node. In order to fetch the data from the parent node, inter-level cache cooperation is used. This technique provides a more cost-effective solution in terms of latency and consumed bandwidth, and significantly reduces network delay and traffic. However, this approach would not be ideal for fog-based systems since other types of content would probably be handled more efficiently with other devices such as smartphones at the edge of the network.
Caching based on location: Location-based caching is another category for caching in fog-based systems. In this category, data is stored in a node with the highest probability of getting a cache-hit. For instance, a
caching policy is proposed in where a node for caching is selected as long as the node has the highest Journal Pre-proof connectivity degree according to its geographical position. However, this makes a geographical bottleneck for the node in the network. In, a location-based caching policy is proposed by utilizing a combination of probabilistic caching method and geo factors. The method also considers device energy, storage capability, and data freshness as well as a probabilistic least recently used approach. The results obtained by the authors reveal that the proposed algorithm enhances the performance of the system in terms of data retrieval and energy efficiency.
Caching based on content: Caching based on content is another approach for caching in fog-based systems. In, an approach is proposed by the authors suggesting that the Least Recently Used (LRU) approach would
probably be the most suitable candidate for caching in cloud-based networks. Through a comparison between the pure LRU approach and three other approaches named; the probabilistic LRU, the pure randomness, and the probabilistic caching method, the authors concluded that the LRU method improves the performance of the system in terms of energy and environmental metrics. Moreover, the authors in proposed two popularity-based caching approaches from the basis of optimal replica replacement trying to reduce the data publisher load and increase the in-network cache-hit. This approach may not be suitable for fog-based systems since the authors did not consider multiple gateways in the network as they can be used in fog paradigms.
The use of UAVs in Caching Data in the Fog-Based IoT Systems
Drones or Unmanned Aerial Vehicles (UAVs) can be used to improve connectivity in terrestrial wireless communications. They can also enable Line of Sight (LOS) communication to the User Equipment (UE) on
the ground and therefore, enhance the overall performance of the network. The efficiency of caching from the edge of the network has been extensively analyzed in the literature especially for wireless Content Delivery
(CD) networks. However, none of these studies considers the mobility of the CD nodes and the temporal and spatial dynamics of storage and transmission capacities. Therefore, the user who requests a
content file cannot be served efficiently if the requested file is not cached at the node or if the user moves outside of the area where the caching node provides service. To overcome this challenge, a number of studies
considered the use of UAVs to store and deliver content to the user on the ground. Considering the mobility of UAVs and their easy implementation, this can facilitate many efficient, cost-effective, and reliable solutions. For example, UAVs can be used to increase the coverage of the static CD nodes, and dynamically extend the transmission and storage capacities. In, the authors consider the operation of the cloud-based
CD networks with Device-to-Device (D2D) and UAV-enabled caching which can improve scalability, reliability, and elasticity compared to the traditional CD networks. Moreover, the work in  studies the
problem of proactive deployment of cache-enabled UAVs in order to optimize the Quality of Experience (QoE) of wireless devices in a cloud-based Radio Access Network (RAN). However, little research has been carried out so far to adapt UAV communications with the fog-based systems for caching data from the fog. The only attempt to proposes a UAV-enabled fog-based system supported by caching and cooperative
communications. In the proposed system, the UAVs placed in a cooperation zone contribute to a cooperative transmission approach to the users on the ground. In addition, the authors, using stochastic geometry, develop
an efficient probabilistic content placement algorithm. The results of this study reveal that the developed algorithm performs better than classical caching techniques in terms of energy efficiency.