Fog computing spreads the cloud administrations and services to the edge of the system, and brings processing, communications and reserving, and storage capacity closer to edge gadgets and end-clients and, in the process, aims at enhancing versatility, low latency, transfer speed and safety and protection. This article takes an extensive and wide-ranging view of fog computing, covering several aspects. At the outset is the many-layered structural design of fog computing and its attributes. After that, chief advances like communication and inter-exchange, computing, etc. are delineated, while showing how these backup and facilitate the installations and various applications. Following that, it is shown that how, despite fog computing being a feature-rich platform, it is dogged by its susceptibility to several security, privacy, and safety concerns, which stem from the nature of its widely distributed and open architecture. Finally, some suggestions are advanced to address some of the safety challenges discussed so as to propel the further growth of fog computing.