The IoT is recognized as one of the most important areas of future technology and is gaining vast attention from a wide range of industries. Although, after 20 years from the first published literature (2002) the technology (as a whole) is not yet mature. In this study we will review the basics of IoT with a general approach, by addressing the problems of a standard architecture, vulnerabilities and use cases of this promising technology. Moreover, we will review some of the communication protocols that have invented especially for IoT technology, security threats and general implementation challenges.