**3. Definition of fog node**

Fog computing overcomes the limitations of cloud computing to enable real-time analysis for smart devices at the edge of the network. The process of fog computing involves data transfer to fog nodes for processing, storage (temporary storage), and networking operations from edge devices. Fog nodes are the basic units of fog computing. A network device that uses processing capabilities, dedicated servers, or computational servers to coordinate underlying edge devices can be referred to as a fog node [21, 23], or, put, a fog node is a physical device that performs fog computing. In [21], some examples of fog nodes were given as; wireless access points, routers, video surveillance cameras, switches, and Cisco Unified Computing System (UCS) servers. One uniform feature among all these devices is that they all embed storage, computing, and networking abilities, all necessary for IoT applications. A fog architecture is usually an aggregation of several levels of nodes. A processing application might be suited to a particular level due to the specifics of the requirement of that application for such features as latency, mobility, security/encryption, and the need for quick scalability [24]. The position and number of levels of fog nodes in a hierarchical fog will depend on the architecture involved. In the architecture described in [25], fog nodes are created near base stations in 5G networks. In contrast, as described in the architecture in [26], end users contribute to providing fog devices within residential areas and are rewarded as incentives to share fog nodes.
