91760 - Network Programming (2nd cycle)

Academic Year 2021/2022

  • Docente: Giovanni Pau
  • Credits: 6
  • SSD: ING-INF/05
  • Language: Italian

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 for building network infrastructures, to design distributed software applications and to implement them.

Course contents

  • Internet and computer networks: Internet, protocols, client-server architecture, access networks, network medium, packet and circuit switching, ISPs and Internet backbones, packet delay, packet loss, end-to-end delay, throughput, protocol layers and service models, computer and network security.
  • 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, pipeline protocols, Go-Back-N, selective repeat, connection-oriented communication, TCP protocol, congestion control.
  • Network Layer: IP protocol, Network Data Path. 

Readings/Bibliography

  • James F. Kurose, Keith W. Ross. Reti di Calcolatori e Internet, un approccio top-down. Pearson. Settima edizione.
  • A. S. Tanenbaum, D. J. Wetherall. Reti di Calcolatori. Pearson. Quinta edizione.
  • B. Forouzan, F. Mosharraf. Reti di Calcolatori. Un approccio top-down. McGraw-Hill Companies, 2013. ISBN: 978.8838668197.

Teaching methods

Lessons.

Assessment methods

Written test.

Teaching tools

The slides and additional resources used during the lessons are available on: https://iol.unibo.it/ to access the repository you will need your official student username/password given by the University.

Office hours

See the website of Giovanni Pau

See the website of Andrea Piroddi