))) RRH 1 RRH 2, Device layer Fig. 1.4 Fog C-RAN 5G architecture 1.2.2.1 Fog-Based 5G Architecture Within C-RAN Fog computing has been adopted within C-RAN architecture in order to enhance the end-users' mobility and facilitate the interconnection between all the network ele- ments [65, 67]. Fog computing is highly geo-distributed non-standalone architecture proposed by Cisco [70] that represents an intermediate level between the end-user devices and the cloud. It is implemented on a dedicated gateway at the edge of the network in order to bring the storage, computing, control, and networking resources in the proximity of the end-users [64,71]. As depicted in Fig. 1.4, fog C-RAN (F-CRAN) is composed of device, fog, and cloud layers. The end-users in the device layer offload their data to be processed on virtual machines on the fog devices. The fog tier represents an intermediate layer between the cloud and the device layers. It is composed of macro-cell, RRH, SCs, and networking devices such as access points (APs), gateways, and switches. This intermediate layer executes the delay-sensitive applications that cannot be handled by the end-user devices. The macro-cell, in fog layer, communicates with the cloud layer via a backhaul link, while the networking elements are communicating with the cloud through a fronthaul link4 [39, 40]. The core network hosts the cloud servers that forms the BBU pools in order to execute the intensive and delay-tolerant tasks forwarded from the fog layer. 4 The fronthaul and backhaul links are considered as Ethernet connection. 1 A Comprehensive Study on 5G In order to alleviate the limitation of overwhelmed fronthaul links in C-RAN, F-CRAN permits to execute some functions, e.g., cooperative radio resource management (CRRM) and collaboration radio signal processing (CRSP), on the fog layer instead of the BBU pool. Furthermore, in order to support URLLC applica- tions, F-CRAN adopts caching concept where some content can be downloaded directly from the RRH instead of demanding it from 