## 2 Technical Enablers
### Deploying Intelligence on the Network Edge
#### 2.1.2 Fog Computing  
Fog computing provides computational resources, storage and control to consumers using an intermediate layer between remote and isolated traditional data centres and on-premise equipment or IoT sensors/devices. By exploiting resources available on the network edge, end-user and sensor-oriented datasets are analysed on the spot, eradicating the need for transferring bulk data to backend data centres, but only transmitting aggregated information for permanent storage or specialized more complex analysis. Figure 2 presents a simplified fog computing topology and identifies the most important layers of the overall communication stack. Cloud data centres reside in the backend layer and have direct access to the network core layer, which is dedicated to perform tasks related to routing and switching and act as the gateway of cloud data centres to the outside world. The fog layer is placed between the network core and the sensor/end-device layer and is capable of communicating with both. In contemporary deployments, it is expected that Software-Defined Networking (SDN) nodes are used as part of the network core layer to allow for extensive governance and precise supervision of the network [49; 50]. The introduction of an intermediate layer between the loosely supervised and easily compromised sensor/end-device layer also improves security since packets are not directly forwarded to the cloud services of the platform, but they are inspected and cleared from malicious, harmful or problematic content throughout their journey in the network. This tackles issues generated due to limited computational and energy capacity that hinder the use of data security and privacy mechanisms [38; 51]. Yet, the most significant contribution of fog computing is the inherent solution  
Figure 1: European Telecommunications Standards Institute (ETSI) use case blueprint in which a Multi-access Edge Computing (MEC) node is deployed as the IoT gateway. it introduces to specific IoT-related constraints and limitations, which could otherwise compromise ubiquitous service delivery for a wide variety of applications. Massively inflated bandwidth requirements: The remarkable growth of IoT and its transformation into an ecosystem that supports information aggregation from billions of nodes generate a data-related problem. The interconnected sensors and all end-user devices constantly collect many data that are then forwarded to the network backend for processing. This approach is, by all means, ineffective as it requires huge bandwidth and does not guarantee that transmitted data will be meaningful, valid or worthy of storage for future reference. It is often the case that networking resources are allocated for pushing null or corrupted datasets to the cloud, while at the same time, the data aggregation rate constantly rises. This renders data pre-processing at the network edge more or less compulsory since the consequent trimming will reduce bandwidth requirements, network traffic cost and necessary cloud storage [53]. As stated in [52], cloud-based provisioning of resources could be simplified by using dedicated fog computing nodes where only valid data are processed for much lower networking costs. Contemporary application requirements for decreased latency and semi-autonomous operation: The constantly increasing numbers of interconnected nodes introduce severe challenges for cloud deployments aiming to provide uninterrupted services since connectivity irregularities will statistically become more often and much more difficult to predict [54; 55]. The anticipated advent of 5G [56; 57] will resolve some of the most common causes of compromised networking, but since low latency and guaranteed robustness are prerequisites for existing infrastructure as well, one should examine fog computing as a method for addressing these issues.