CFU: 6
Prerequisites
None.
Preliminary Courses
None.
Learning Goals
The aim of the course is to provide the fundamental concepts as well as the basic operational skills regarding computer networks and, more generally, packet-switched communication networks. The course follows a top-down approach, that favors an application-oriented view of network technologies complemented with a thorough understanding of software and hardware technologies at the basis of computer networks. The learning goals of this course include understanding the communication requirements of modern distributed applications; the characteristics of packet-switched communication technologies; the architecture of the Internet and the main Internet protocols; the methodologies adopted to design and manage a computer network; the technologies currently adopted in both wired and wireless local area networks; the basics of client/server applications programming; the basic skills required to operate a TCP/IP network and use simple monitoring and analysis tools.
Expected Learning Outcomes
Knowledge and understanding
The student should be able to show a clear understanding of the fundamental concepts behind the layered design of a computer network system. In particular, the student need to show a precise understanding and ability to describe the communication protocols as well as the technologies described throughout the course, their advantages, limitations and tradeoffs.
Applying knowledge and understanding
The student should be able to show ability to apply the learned concepts and techniques to solve simple network configuration problems as well as to perform the analysis of traffic traces. The student also needs to show the ability to use simple software tools for the analysis of traffic traces and simulation of network systems.
Course Content - Syllabus
Part I – General concepts.
Computer networks and network services. Layered architectures for computer networks. The ISO/OSI model. Packet-switched networks. Communication protocols. Quality of Service in packet-switched networks. Datagram networks and virtual-circuit networks. The TCP/IP protocol stack and the IETF.
Part II – The application layer.
Characteristics of application layer protocols. The client/server paradigm. The HTTP, FTP and SMTP protocols. The DNS system. The peer-to-peer paradigm. Development of distributed software applications with the socket API in C and Python.
Part III – The transport layer.
Reliable end-to-end transmission techniques. Go-back-N and Selective Repeat. End-to-end error control, flow control and congestion control. TCP, UDP and RTP protocols. TCP congestion control. Fairness. Checksum.
Part IV – The network layer.
The IP protocol. Addressing in IP networks. Subnetting. NAT. The IPv6 network protocol. Unicast and multicast intradomain routing. Distance-vector and link-state routing. RIP and OSPF protocols. Hierarchical routing in the Internet. Autonomous Systems. First introduction to interdomain routing. Internet Exchange Points. Relations between Autonomous Systems.
Part V – LAN networks.
Medium access control techniques in LAN contexts. Aloha. CSMA/CD. The Ethernet technology and its evolution.
LAN interconnection: bridging and switching. VLAN. Structured cabling systems. Wide area connection of LANs: access technologies. LAN configuration and management: addressing, NAT, DHCP. VLANs. Wireless LANs and PANs. 802.11 and Bluetooth technologies.
Readings/Bibliography
- Kurose, K. Ross - Reti di calcolatori e Internet. Un approccio top-down. (7a ed.) - Pearson 2017
- Lecture notes
Teaching Method
The course will consist of: a) lectures for approx. 80% of total hours; b) laboratories and/or practical lessons for the remaining 20% of total hours.
Examination/Evaluation criteria
Exam type
Written and oral. Questions of the written exam refer to multiple choice answers.
Evaluation pattern
The written exam performance is binding to have access to the oral exam.