View syllabus
PROTOCOLS AND NETWORK SERVICES
BARBARA GUIDI
Academic year2023/24
CourseDIGITAL HUMANITIES
Code712AA
Credits6
PeriodSemester 1
LanguageItalian

ModulesAreaTypeHoursTeacher(s)
PROTOCOLLI E SERVIZI DI RETEINF/01LEZIONI42
BARBARA GUIDI unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

L'obiettivo del corso è spiegare Internet a chi deve contribuire in modo creativo al suo utilizzo. Per questo il corso  esamina e spiega i meccanismi che ne realizzano le funzioni partendo da quelle che ci sono familiari, ma che sono solo la superficie di un manufatto molto complesso.

Il corso esamina i concetti fondamentali della struttura di Internet, secondo la sua organizzazione stratificata.

Si inizia dallo strato di network per spiegare la complessa organizzazione globale del sistema, Successivamente vengono descritte alcune tecnologie rilevanti dello strato di link focalizzandosi sulle reti locali. Quindi si ritorna allo strato network per studiarne i meccanismi di routing. Poi si introducono i protocolli di trasporto ed infine il protocollo di applicazione HTML. In questa prima parte il contenuto è organizzato per protocolli, spiegando le relazioni esistenti tra essi e limitando i dettagli a quelli necessari a comprenderne la funzione ed il ruolo, 

La parte finale del corso esamina il livello applicazione, fornendo un esame dettagliato delle architetture centralizzate e decentralizzate e fornendo, per entrambe, degli esempi. Per comprendere meglio la programmazione di rete, verrà introdotta la programmazione concorrente e verranno fornite metodologie e tecniche specifiche per lo sviluppo di applicazioni web.

Knowledge

The objective of the course is to explain the Internet to those who have to contribute creatively to its use. For this reason, the course examines and explains the mechanisms that perform its functions starting from those that are familiar to us, but which are only the surface of a very complex artefact.

The course examines the fundamental concepts of the structure of the Internet, according to its stratified organization. It starts from the network layer to explain the complex global organization of the system, and then some relevant technologies of the link layer are described, focusing on local networks. Then we return to the network layer to study its routing mechanisms. Then we introduce the transport protocols and finally the HTML application protocol. In this first part, the content is organised by protocols, explaining the relationships between them and limiting the details to those necessary to understand their function and role, The final part of the course examined the application layer, providing a detailed examination of centralized and decentralized architectures and providing examples for both. To better understand network programming, concurrent programming will be presented, and specific methodologies and techniques for web development will be provided.

 

The student who successfully completes the course will have the ability to use applications that require an understanding of network operation and to diagnose the presence of network-related problems. He/she will be able to demonstrate a solid knowledge of the networking protocols currently used for web browsing, peer 2 peer applications and web-based applications.

Modalità di verifica delle conoscenze

La verifica consiste di una prova scritta, dove verranno esamine le conoscenze relative al programma del corso. Ed infine una prova orale, durante il quale si richiede l'inquadramento di un argomento specifico, la descrizione di un dettagliio tecnico specifico di un argomento, e lo svolgimento di una attività di laboratorio.

Assessment criteria of knowledge

The exam consists of a written test, where the knowledge related to the course program will be evaluated. And finally, an oral test to verify the efficacy and appropriateness of the terms used and includes the execution of one of the laboratory exercises in order to verify practical skills.

 

Capacità

Utilizzo consapevole di Internet, conoscenza della terminologia correlata, capacità di interagire con professionisti del settore, comprensione delle potenzialità e dei rischi correlati ad Internet, competenza nello operazioni di gestione fondamentali.

Skills

Knowledgeable use of the Internet, knowledge of related terminology, ability to interact with specialists, understanding of the potentials and of the risks correlated with the Internet, competence in carrying out fundamental tasks.

Modalità di verifica delle capacità

L’esame scritto verifica la conoscenza degli argomenti del corso, mentre la parte orale verifica l'efficacia e l'appropriatezza terminologica ed include lo svolgimento di attività pratiche.

Assessment criteria of skills

The student will be assessed on his/her demonstrated ability to discuss the main course contents using the appropriate terminology. 

Methods:

  • Written Test
  • Final oral exam
Comportamenti

Proprietà d'uso e comprensione della terminologia tecnica.

Behaviors

Correct use and understanding of topic terminology.

Modalità di verifica dei comportamenti

Durante la prova scritta si valuta la conoscenza degli argomenti del corso. Il superamento della prova scritta è fondamentale e necessaria per poter effettuare la prova orale, durante la quale viene considerata la comprensione dei concetti e la proprietà del lessico. 

Assessment criteria of behaviors

During the written test the knowledge of the course topics is evaluated. Passing the written test is essential and necessary in order to be able to carry out the oral examination, during which the understanding of the concepts and the property of the vocabulary are considered.

Prerequisiti (conoscenze iniziali)

Conoscenza elementare del linguaggio Python e della commandline Unix (Linux).

Prerequisites

Basic knowledge of the Python programming language and of Unix commands.

Indicazioni metodologiche

Vengono affiancate lezioni teoriche, pause di riflessione (domande) e attività pratiche (suggerite o svolte in classe). Le esercitazioni pratiche che non possono essere svolte in classe per motivi di tempo possono essere svolte a casa utilizzando gli strumenti suggeriti a lezione.

Teaching methods

Delivery: face to face

Learning activities:

  • attending lectures
  • individual study
  • Laboratory work

Attendance: Not mandatory

Teaching methods:

  • Lectures
  • Seminar
Programma (contenuti dell'insegnamento)
  • Introduzione alle reti
  • Suite dei protocolli di Internet
  • Strato Link: il protocollo Ethernet, 803.11 (WiFi), 803.1Q (Virtual Network)
  • Livello IP e routing
  • Pacchetti e incapsulamento
  • Strato IP: lo header IP e UDP
  • Strato IP: DHCP, DNS, multicast con IGMP e routing RIP e OSPF
  • Python, algoritmi di routing in Python.
  • TCP: connessione e finestra scorrevole ;API python per TCP
  • Network Address Translation (NAT) Sicurezza in Internet
  • Crittografia simmetrica e asimmetrica
  • Il protocollo HTTP 
  • Paradigmi client-server e peer-to-peer
  • Applicazioni client-server.  Applicazioni Web (Protocollo http). File Transfer (Protocollo FTP), Posta Elettronica (Protocollo SMTP,  MIME, Protocolli di accesso POP3 e IMAP). DNS.
  • Applicazioni Peer-To-Peer (P2P).  Ricerca di contenuti. Distribuzione/condivisione di file. Blockchain e File Storage distribuiti
  • Programmazione concorrente 
  • Programmazione di applicazioni di rete. Interfaccia a socket. Client e server comunicanti tramite socket.
  • Introduzione al Web3.0
  • Esempi di Web Applications
Syllabus
  • Introduction to the Networks structure 
  • The Link layer: Ethernet, WiFi and VLan
  • The network layer: IP and UDP
  • The network layer: DHCP, DNS, IGMP multicast and routing
  • Dijkstra and Bellman-Ford in Python
  • The transport layer: TCP, Python API, TCP congestion
  • Internet security (symmetric and asymmetric keys)
  • The protocol HTTP
  • Client-server and Peer-to-Peer paradigms
  • Client-server Applications
  • Peer-to-Peer Applications
  • Concurrent Programming and Web Programming
  • Web3.0
  • Examples of Web Applications
Bibliografia e materiale didattico

Il moodle del corso include:

  • le trasparenze presentate a lezione
  • le istruzioni per l'installazione degli strumenti necessari allo svolgimento delle attività pratiche
  • eventuali test e quiz di autovalutazione
  • Links a materiale consultabile per la preparazione dell’esame finale

 

Parte del corso si ispira al materiale contenuto nei libri: 

  • “Reti di calcolatori”. di Andrew S. Tanenbaum, David J. Wetherall, Nick Feamster. Editore: Pearson. Il libro può essere utilizzato per consultazione e per estendere eventuali conoscenze sugli argomenti trattati nel corso.
  • Reti di calcolatori e internet. Un approccio top-down. Ediz. mylab. Con eText. Con aggiornamento online. James F. Kurose (Autore), Keith W. Ross (Autore), Antonio Capone.
Bibliography

The Moodle dedicated to the course include:

  • lecture transparencies
  • Instructions for tools
  • lab activities
  • self-assessment questionnaires

 

The course is inspired by the content of:

  • “Reti di calcolatori”. di Andrew S. Tanenbaum, David J. Wetherall, Nick Feamster. Editor: Pearson. The book can be used to extend the knowledge provided by the slides.
  • Reti di calcolatori e internet. Un approccio top-down. Ediz. mylab. Con eText. Con aggiornamento online. James F. Kurose (Autore), Keith W. Ross (Autore), Antonio Capone.
Indicazioni per non frequentanti

Nessuna indicazione particolare. Il materiale richiesto per la prova finale è fornito ed accessibile tramite moodle.

Non-attending students info

No particular indications. The material required for the final test is provided and accessible via Moodle.

Modalità d'esame

Prova scritta della durata di circa 2 ore. Esame orale della durata di 30' circa. 

Assessment methods

Written test with a duration of about 2 hours. Oral examination with a duration of about 30 minutes.

Note

Commissione d'esame:

Barbara Guidi

Andrea Michienzi

Anna Bernasconi

 

Supplenti

Alessio Malizia

Letizia Milli

Vincenzo Ambriola

Updated: 04/08/2023 23:11