Internet of Things, Ac. Year 2019/2020 - Course Program

Prof. Gianluigi Ferrari          Office: palazzina 2 sede scientifica Ingegneria

Tel: 0521 906513



Office Hours

Meets with students upon phone or email (best) reservation.

 Course hours and classrooms (A.Y. 2019/2020, Spring semester)

Course Program


LECTURE 1: Introduction to IoT: definitions, history, today's smart objects, challenges for smart objects (at node/network levels), standardization, technology trends and market growth.
References: [1-ch.1],[2],[3].

LECTURE 2: Introduction to IoT: hardware, software, testbed at WASN Lab Transport Layer Protocols: UDP and TCP: design principles, details of UDP and TCP, UDP and TCP for smart objects.
References: [1-chs.1,2,6], [4].

LECTURE 3: IPv6: the evolution of Internet, IP protocol stack, IPv6 characteristics (headers, addressing, etc.).
References: [1-chs. 4,15]. See also [5].

LECTURE 4: Communication Mechanisms: communication patterns, communication protocols (IEEE 802.15.4, IEEE 802.11, PLC).
Reference: [1-ch. 12].

LECTURE 5: Energy-efficient MAC Protocols: power consumption, problems in wireless networking (hidden/exposed terminal, near-far), centralized access, traditional contention protocols, energy efficient MAC protocols-unscheduled (MACA, PAMAS, STEM, B-MAC, WiseMAC, X-MAC) and scheduled (S-MAC,ContikiMAC).
References: [6]-[13].

LECTURE 6: 6LoWPAN: a LoWPAN, the adaptation layer, header structure, header compression.
References: [1-ch. 16].

LECTURE 7: Routing in LLNs & RPL: From WSNs to RPL; link model in LLNs, routing requirements, RPL approach; metrics, constraints, objective function; RPL basics, operations, multiple DODAGs; DIO e DAO messages; an example of DAG construction and maintenance.
References: [1-ch. 17],[19].

LECTURE 8: [Simone Cirani] Communication paradigms for the IoT: Representational State Transfer (REST) architectures, Web of Things, Publish/Subscribe communications.
References: [15],[16],[17].

LECTURE 9: [Marco Picone] Operating systems and hardware for the IoT: Hardware overview; classes of constrained devices; main IoT boards; sensors and actuators; media types for Sensor Markup Language (SENML); CoRE interfaces; operating systems for IoT.
References: [1-ch. 11],[20]-[37]

LECTURE 10: [Simone Cirani] Constrained Application Protocol (CoAP): IETF CoRE WG RFCs and Internet drafts, characteristics of CoAP, message format, CoAP options, CoAP extensions (resource observation, block-wise transfer, group communications, resource directory and CoRE interfaces, HTTP-to-CoAP mapping).
References: [17],[2],[18].

LECTURE 11: [Marco Picone] Service Discovery: CoAP service discovery; resource discovery; ZeroConf; jMDNS; Lightweight multicast forwarding
for service discovery in low-power IoT networks; scalable and self-configuring architecture for service discovery in the Internet of Things.
References: [1-ch. 7][18.1],[39]-[43]

LECTURE 12: [Luca Veltri] Security for IoT: threats and coutermeasures; IP layer security (IPSec, HIP); transport layer security (TLS, DTLS); application layer security (S/MIME, SRTP); key agreement and distribution; cryptographic algorithms.
Reference: [1-ch. 8][38]

LECTURE 13: Discussion on the material of the theory part of the course.


LECTURE 14: [Gaia Codeluppi] Seminar 1: IoT systems for smart agriculture

LECTURE 15: [Antonio Cilfone] Seminar 2: An overview on LoRa technology

LECTURE 16: [Luca Davoli] Introduction to Java: Object-Oriented Programming; Java basics; Classes and objects; Methods; Interfaces; OOP principles; Practical Java; Design patterns Californium (Cf) Framework-CoAP (1/2): Californium (Cf) Framework; Client/Server Architecture; CoAP Server API; CoAP Client API.
Reference: [44]

LECTURE 17: [Luca Davoli] Californium (Cf) Framework-CoAP (2/2): completion of tutorial.

LECTURE 18: Lab exercise.

LECTURE 19: Project assignment.

LECTURE 20: Project development.

LECTURE 21: Project development.

LECTURE 22: Project development.

LECTURE 23: Project development.

LECTURE 24: Project development.

Course Slides
Slides provided by G. Ferrari and colleagues for all lectures. The teaching material is available upon request to Prof. Ferrari and in Elly.

[0] S. Cirani, G. Ferrari, M. Picone, and L. Veltri, Internet of Things: Architectures, Protocols and Standards, Wiley, UK: 2018. ISBN: 9781119359678.

[1] J. P. Vasseur and A. Dunkels, Interconnecting Smart Objects with IP, Morgan Kaufmann, 2010. Course main textbook.

[2] C. Bormann, "Protocols for the Real "Internet of Things"," keynote speech at the Internet of Things and Smart Cities Ph.D. School 2014, Lerici (SP), Italy, September 2014. []

[3] M. R. Palattella, N. Accettura, X. Vilajosana, T. Watteyne, L. A. Grieco, G. Boggia, and M. Dohler, "Standardized protocol stack for the Internet of (Important) Things," IEEE Communications Surveys & Tutorials, vol.15, no.3, pp.1389-1406, Third Quarter 2013. DOI: 10.1109/SURV.2012.111412.00158.

[4] Princeton (Computer Networks) and Virginia Tech (Internet Teaching Lab) lectures.

[5] IPv6, lectures notes by Prof. Luca Veltri, Corso di Reti di Telecomunicazioni C, University of Parma, Italy, a.y. 2009/2010.

[6] A. Bachir, M. Dohler, T. Watteyne, K. K. Leung, "MAC Essentials for Wireless Sensor Networks," IEEE Communications Surveys & Tutorials, vol.12, no.2, pp.222-248, Second Quarter 2010. DOI: 10.1109/SURV.2010.020510.00058.

[7] [MACA] P. Karn,"MACA - a New Channel Access Method for Packet Radio", in ARRL/CRRL Amateur Radio 9th Computer Networking Conference, pp. 134-140, 1990.

[8] [PAMAS] Suresh Singh and C. S. Raghavendra, "PAMAS-power aware multi-access protocol with signalling for ad hoc networks," SIGCOMM Comput. Commun. Rev. vol. 28, no. 3, pp. 5-26, July 1998. DOI: 10.1145/293927.293928.

[9] [STEM] C. Schurgers, V. Tsiatsis, S. Ganeriwal, M. Srivastava, "Optimizing sensor networks in the energy-latency-density design space," IEEE Transactions on Mobile Computing, vol.1, no.1, pp.70,80, Jan-Mar 2002. DOI: 10.1109/TMC.2002.1011060.

[10] [B-MAC] J. Polastre, J. Hill, and D. Culler, "Versatile low power media access for wireless sensor networks." Proc. 2nd international conference on Embedded networked sensor systems (SenSys '04), pp. 95-107, Baltimore, MA, USA November 2014. DOI: 10.1145/1031495.1031508.

[11] [S-MAC] W. Ye, J. Heidemann, D. Estrin, "An energy-efficient MAC protocol for wireless sensor networks," Proc. 21st Annual Joint Conference of the IEEE Computer and Communications Societies (INFOCOM 2002), pp.1567-1576, 2002. DOI: 10.1109/INFCOM.2002.1019408.

[12] [X-MAC] M. Buettner, G. V. Yee, E. Anderson, and R. Han, "X-MAC: a short preamble MAC protocol for duty-cycled wireless sensor networks," Proc. of the 4th ACM International Conference on Embedded Networked Sensor Systems (SenSys '06), pp. 307-320. DOI: 10.1145/1182807.1182838.

[13] [ContikiMAC] A. Dunkels, "The ContikiMAC Radio Duty Cycling Protocol," SICS Technical Report T2011:13. ISSN 1100-3154. December 2011.

[14] Shelby & Bormann, 6LoWPAN: The Wireless Embedded Internet, John Wiley & Sons Ltd, 2009. ISBN: 978-0-470-74799-5.

[15] Jim Webber, Savas Parastatidis, Ian Robinson, "REST in Practice," O'Reilly Media, September 2010 [].

[16] O. Vermesan and P. Friess (eds), Internet of Things Applications - From Research and Innovation to Market Deployment, pp. 287-313, The River Publishers Series in Communications, Alborg, Denmark, 2014. ISBN: 9788793102941 [].

[17] Matthias Kovatsch, "CoAP: The Web-based Application-layer Protocol for the Internet of Things," Lecture COLLECT at the Internet of Things and Smart Cities Ph.D. School 2014, Lerici (SP), Italy, September 2014. []

[18] IETF CoRE Working Group Documents (
  • [18.1] Z. Shelby, K. Hartke, and C. Bormann, "The Constrained Application Protocol (CoAP)," RFC 7252, IETF, June 2014
  • [18.2] Z. Shelby, "Constrained RESTful Environments (CoRE) Link Format," RFC 6690, IETF, August 2012
  • [18.3] K. Hartke, "Observing Resources in CoAP," I-d draft-ietf-core-observe-16, IETF, December 30, 2014
  • [18.4] C. Bormann and Z. Shelby, "Block-wise transfers in CoAP," I-d draft-ietf-core-block-17, IETF, March 9, 2015
  • [18.5] Z. Shelby and C. Bormann, "CoRE Resource Directory," I-d draft-ietf-core-resource-directory-02, IETF, November 9, 2014
  • [18.6] Z. Shelby and M. Vial, "CoRE Interfaces," I-d draft-ietf-core-interfaces-02, IETF, November 9, 2014
  • [18.7] A. Castellani, S. Loreto, A. Rahman, T. Fossati and E. Dijk, "Guidelines for HTTP-CoAP Mapping Implementations," I-d draft-ietf-core-http-mapping-06, IETF, March 9, 2015

    [19] Brandtr, Clausen, Dawson-Haggerty, Hui, Pister, Thubert, Winter, "RPL (ripple): Routing Protocol for Low Power and Lossy Networks - Walkthrough," IETF draft-dt-roll-rpl-01, IETF 75 - Roll WG - July 2009.

    [20] Terminology for Constrained-Node Networks - RFC 7228:

    [21] TelosB Data Sheet:

    [22] Zolertia Z1:

    [23] OpenMote CC2538:

    [24] OpenMote CC2538:

    [25] Arduino Official Web Page:

    [26] Intel Galileo Board:

    [27] Arduino Intel Galileo:

    [28] Raspberry Pi Official Web Page:

    [29] Media Types for Sensor Markup Language (SENML) Internet-Draft:

    [30] OpenWSN:

    [31] IoT-Lab OpenWSN:

    [32] TinyOS Official Web Page:

    [33] FreeRTOS Official Web Page:

    [34] TI-RTOS Official Web Page:

    [35] RIoT Official Web Page:

    [36] Emmanuel Baccelli, Oliver Hahm, Mesut Günes, Matthias Wählisch, Thomas Schmidt, "RIOT OS: Towards an OS for the Internet of Things," The 32nd IEEE International Conference on Computer Communications (INFOCOM 2013), Apr 2013, Turin, Italy. (

    [37] Contiki:

    [38] S. Cirani, G. Ferrari, and L. Veltri, "Enforcing security mechanisms in the IP-based Internet of Things: an algorithmic overview," Algorithms, Special Issue "Sensor Network," vol. 6, no. 2, pp. 197-226, 2013. DOI:10.3390/a6020197.

    [39] M. Antonini, S. Cirani, G. Ferrari, P. Medagliani, M. Picone, L. Veltri, "Lightweight multicast forwarding for service discovery in low-power IoT networks," IEEE 22st International Conference on Software, Telecommunications and Computer Networks (SoftCOM'14), Split (Croatia), September 2014. Best conference paper award (Symposium on RFID Technologies and Internet of Things).

    [40] S. Cirani, L. Davoli, G. Ferrari, R. Léone, P. Medagliani, M. Picone, and L. Veltri, "A scalable and self-configuring architecture for service discovery in the Internet of Things," IEEE Internet of Things Journal, vol. 1, no. 5, pp. 508--521, October 2014. DOI: 10.1109/JIOT.2014.2358296.

    [41] S. Cirani and L. Veltri, "Implementation of a Framework for a DHT- based distributed location service," 16th International Conference on Software, Telecommunications and Computer Networks (SoftCOM 2008), Split (Croatia), September 2008.

    [42] M. Picone, M. Amoretti, and F. Zanichelli, "GeoKad: a P2P distributed localization protocol," in 8th IEEE International Conference on Pervasive Computing and Communications Workshops (PERCOM Workshops), pp. 800-803, Mannheim, Germany, March-April 2010.

    [43] M. Picone, M. Amoretti, and F. Zanichelli, "Proactive neighbor localization based on Distributed Geographic Table," International Journal of Pervasive Computing and Communications, vol. 7, pp. 240-263, 2011. DOI: 10.1108/17427371111173022.

    [44] M. Kovatsch and J. Vermillard, "Hands-on with CoAP: Embrace the Internet of Things!" Tutorial available at (


    The exam consists in a written exam on the "Theory Part" and on the submission on a project (experimental testbed and report) relative to the "Practice Part." During the written test no personal notes can be used.


    Networking and programming courses.