The internet of things (IoT) research envisions a world in which common place objects are linked to the internet and trade, store, process, and gather data from their surroundings. Due to their inherent resource limitations, IoT devices are typically unable to directly host application services, despite their increasing importance for facilitating the supply of data to enable electronic services. Since it can survive and work in tandem with centralized cloud systems and extends the latter toward the network edge, fog computing (FC) may be an appropriate paradigm to get around these restrictions. This paper reviews the overview of the IoT in terms of application and design parameters and FC. Meanwhile, this paper presents the architecture of fog computing for IoT (FC-IoT) in terms of communication, security, data quality, sensing and actuation management, codification, analysis, and decision-making. Additionally, this review provides several characteristics and challenges of FC-IoT. Finally, open issues for this paper have been discussed.