With the emergence of the Internet of Things (IoT), billions of heterogeneous physical objects are connected through a network for collecting and sharing information, which can improve various aspects of daily lives, including smart living and transportation, and smart ambient environment, including smart city, smart home, smart agriculture, smart water, waste management, etc. The main objective of the IoT devices is to provide seamless services to the users without their intervention. The all-connected paradigm (i.e., connecting people, things, processes, and data in the network) is based on near Internet ubiquity and includes three types of communication: 1) machine-to-machine; 2) person-to-machine; and 3) person-to-person, and consists as the base for reliable services provision to the end devices at the edge. Fog paradigm implements effectively and efficiently the all-data requests to be shared in a reliable manner as fog implementations complement the cloud computing paradigm by extending computing and caching capabilities to the edges of the network, and it facilitates smart localization decisions and rapid responses. The wide range of IoT services calls for a disruptive, highly efficient, scalable, and flexible communication network able to cope with the increasing demands and the number of connected devices, as well as the diverse and stringent application requirements.