70226 - Network Programming

Academic Year 2022/2023

Learning outcomes

Basic knowledge of network programming. At the end of the course the student should be able to understand the more common technologies used to design distributed software applications and to implement them.


Course contents

The course will present the basic principles of design and implementation of network applications. The theoretical concepts presented will be applied in laboratory projects aimed at understanding the implementation of network application in today Internet.

The course will follow the so called "top-down" approach.

  • Internet and computer networks: Internet, protocols, client-server architecture, protocol layers and service models.
  • Protocol analysis: sniffing, collection of traffic traces, analysis and debug, use of the Wireshark protocol analyzer.
  • Application layer: architectures, application level protocols (Web and HTTP, FTP, SMTP, POP3, IMAP, DNS), P2P architectures (BitTorrent), socket programming.
  • Transport layer: services, multiplexing and demultiplexing, connectionless service, UDP protocol, reliable data transfer, connection-oriented communication, TCP protocol, congestion control.
  • Basics of cybersecurity: authentication, authorization, digital signatures and certificates.

Readings/Bibliography

James Kurose, Keith W. Ross. Computer Networking [Global Edition] Pearson; 8th edition (June 10, 2021), ISBN 1292405465.

Teaching methods

Lessons for Module 1 (40 hours). Laboratory experiences for Module 2 (16 hours)

Assessment methods

Written test, please see on Virtuale for the information about the test.

Teaching tools

The slides and additional resources used during the lessons are available on Virtuale. To access the repository you will need your official student username/password given by the University.

Office hours

See the website of Franco Callegati

See the website of Roberto Girau

See the website of Andrea Piroddi

SDGs

Decent work and economic growth Industry, innovation and infrastructure

This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.