This textbook explores all of the protocols and technologies essential to IoT communication mechanisms. Geared towards an upper-undergraduate or graduate level class, the book is presented from a perspective of the standard layered architecture with special focus on protocol interaction and functionality. The IoT protocols are presented and classified based on physical, link, network, transport and session/application layer functionality. The author also lets readers understand the impact of the IoT mechanisms on network and device performance with special emphasis on power consumption and computational complexity. Use cases - provided throughout - provide examples of IoT protocol stacks in action. The book is based on the author's popular class "Fundamentals of IoT" at Northeastern University. The book includes examples throughout and slides for classroom use. Also included is a 'hands-on' section where the topics discussed as theoretical content are built as stacks in the context of an IoT network emulator so readers can experiment.