Fog computing is one of the most important technologies and promising computing model used by many end-users, organizations, and companies. This model has many qualities, characteristics, advantages and offers many services to end-users like compute, and application services. So, it facilitates the services that provided it to the end-users and allows us to increase the number of devices that connect the network. In this research paper, we survey the Fog technology in terms of the architecture and the primary features (i.e. advantages, and disadvantages). Then, we compare this model with Cloud computing, Mobile-Edge Computing, and Cloudlet Computing. Also, this paper is constructed by illustrating the importance of several challenges and issues that facing Fog computing like "privacy and security: issues and solutions", control and management issues, fog networking and task scheduling. Finally, we mention the six aspects of fog computing security and the benefits of merging between Fog computing and other techniques like “Internet of Things and Cloud”. This paper will contribute to providing the researchers who want to study the Fog computing in terms of aspects that previously mentioned.