Learning outcomes of the course unit
The course aims at introducing the general aspects of communications networks, providing common models and basic knowledge of communication protocols and architectures. The main technologies and protocols currently used in communications networks will be deeply analyzed, with particular focus on the Internet.
At the end of the course the student will be able to apply the acquired knowledge in order to analyze and design architectures and protocols of a communication network.
Prerequisites are not required. However, it may be useful to have attended basic telecommunications and programming courses.
Course contents summary
Network architectures and protocols. Network and transport protocols in Internet. Tools for the analysis and the design of telecommunications networks.
LECTURE 1: Introduction to the course of Telecommunication Networks. Introduction to networks: definitions and classifications. Branches, nodes and topologies. Standardization organisms.
LECTURE 2: Information types: user, control and management. Network performance: end-to-end delay, errors and losses. Information integrity and temporal transparency.
LECTURE 3: Functions and protocols in data communication. Protocol architectures. Management of information units in a protocol architecture. Interconnected systems.
LECTURE 4: OSI protocol architectures and Internet. Communication models based on involved entities and on information transfer modes.
LECTURE 5: Delimitation: bit and char staffing. Sequence control. Error correction: error detection codes and automatic retransmission techniques.
LECTURE 6: Multiplexing. Time division multiplexing (TDM) and frequency division multiplexing (FDM) techniques. Medium access control function. Random and fixed medium access.
LECTURE 7: Local area network (LAN): subnetworking protocols. Ethernet networks and wireless LAN. Medium access control protocols in wired and wireless networks.
LECTURE 8: Classroom exercises.
LECTURE 9: Introduction to Internet and to its architecture. Internet Protocol (IP): operational principles and fragmentation function.
LECTURE 10: Addressing in IP protocol. Subnetting and supernetting in IP addressing.
LECTURE 11: Direct and indirect routing in IP protocol. Routing tables. Dynamic routing protocols: Routing Information Protocol (RIP) and Open Shortest Path First (OSPF). Autonomous systems.
LECTURE 12: Internet Control Message Protocol (ICMP) and Address Resolution Protocol (ARP). Dynamic Host Configuration Protocol (DHCP) and Point-to-Point Protocol (PPP). Domain name system (DNS).
LECTURE 13: Q&A on the first part of the course.
LECTURE 14: Transport layer functionalities in the Internet. Addressing and ports. User Datagram Protocol (UDP). Transmission Control Protocol (TCP). Opening and tearing down connections in TCP. Network Address Translation (NAT) techniques.
LAB 1: Lab session carried out in collaboration with Dr. Luca Veltri. Creation and configuration of an IP network with Linux virtual machines on VirtualBox or local VMware platforms. Creation and configuration of virtual machines and virtualized networks. On Linux nodes: configuration of network interfaces, routing tables, and forwarding functionalities. Connectivity check.
LECTURE 15: Error control, flow control and congestion control function in TCP protocol. Performance comparison between UDP and TCP.
LAB2: Lab session carried out in collaboration with Dr. Luca Veltri. Presentation of software Wireshark to analyze network protocols. Illustrative example of utilization for packet analysis in protocols ICMP, ARP, UDP, TCP, DHCP, etc. Protocol analyzer 'tcpdump' from terminal.
LECTURE 16: IPv6 protocol: introduction and packet format. Addressing in IPv6. Management of transition from IPv4 to IPv6.
LAB 3: Lab session carried out in collaboration with Dr. Luca Veltri. Creation and configuration of an IP network over a remote virtualization environment. Single node configuration and subnetting utilization. Connectivity checks.
LECTURE 17: Classroom exercises.
LAB 4: Lab session carried out in collaboration with Dr. Luca Veltri. Description of the Java-based platform NEMO for network emulation (NEtwork EMulatOr). Examples of IP networks with linear, Manhattan and tree topologies. Development of an Ethernet switch.
LECTURE 18: Classroom exercises. Seminar on advanced networking applications: Software-Defined Networking (SDN) and Internet of Things (IoT).
LAB 5: Lab session carried out in collaboration with Dr. Luca Veltri. Application development with NEMO.
LECTURE 19: Q&A on the cours material.
Lectures will be based on material produced by the instructor and available to the students. Some reference books are the following.
 B. A. Forouzan, “Reti di calcolatori e Internet”, 2008, McGraw-Hill
 A. Pattavina, “Reti di telecomunicazione - Networking e Internet”, 2007, McGraw-Hill
 A. S. Tanenbaum, D.J. Wetherall, “Reti di calcolatori” 2011, Pearson, Prentice Hall
 J. F. Kurose, K. W. Ross, “Internet e Reti di calcolatori”, 2008, Pearson
The course is divided into theoretical lessons and classroom exercise sessions. There will be some complementary laboratory sessions to also acquire practice with proper software tools.
Assessment methods and criteria
FOR THE STUDENTS OF THE LIET COURSE (DEGREE IN COMPUTER ENGINEERING, ELECTRONICS AND TELECOMMUNICATIONS)
The exam consists of a few activities to be carried out compulsorily during the lab hours, followed by a written test. It is foreseen the use of an on-going evaluation in substitution of the written test. An additional oral exam may be requested by the instructor.
FOR STUDENTS OF THE LISI COURSE (DEGREE IN INFORMATION SYSTEM ENGINEERING)
The exam consists in the implementation and discussion of a project partially based on the tools presented during the lab activities.
Related information and material will be published on a properly prepared course webpage.