Vinaora Nivo Slider 3.x

Computer Networks

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.

 

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.