TCP vs UDP: confronto, criteri di scelta e applicazioni reali

✓Confrontare sistematicamente TCP e UDP su tutte le caratteristiche principali attraverso la tabella comparativa
✓Applicare i criteri di scelta tra TCP e UDP in scenari applicativi reali
✓Comprendere l’architettura e i vantaggi di QUIC (RFC 9000) come evoluzione del trasporto su UDP
✓Consolidare la visione del livello Transport TCP/IP come insieme coerente di meccanismi a servizio delle applicazioni

UDP: caratteristiche, struttura e applicazioni

✓Descrivere le caratteristiche principali di UDP e il suo modello connectionless best-effort
✓Analizzare la struttura dell’header UDP a 8 byte e comprendere il calcolo del checksum
✓Classificare le applicazioni che preferiscono UDP e spiegare perché la latenza supera l’affidabilità in questi contesti
✓Comprendere il concetto di UDP come base per protocolli applicativi che implementano affidabilità custom (QUIC, DTLS)

TCP: congestione

✓Distinguere il problema della congestione di rete dal problema del controllo del flusso
✓Descrivere le quattro fasi dell’algoritmo di controllo della congestione TCP: Slow Start, Congestion Avoidance, Fast Retransmit, Fast Recovery
✓Comprendere il principio AIMD e il comportamento della cwnd nel tempo
✓Confrontare le varianti moderne TCP CUBIC e BBR con il TCP Reno classico

TCP: controllo del flusso

✓Spiegare il problema del trasmettitore veloce vs ricevitore lento e la sua conseguenza sull’overflow del buffer
✓Descrivere il meccanismo della Receive Window (rwnd) e la regola del mittente
✓Comprendere il comportamento in caso di Zero Window e il meccanismo dei Window Probe
✓Analizzare la Silly Window Syndrome e le soluzioni: algoritmo di Nagle e Clark’s Solution

TCP: affidabilità e error recovery

✓Spiegare come TCP garantisce la consegna ordinata e affidabile tramite numeri di sequenza e ACK cumulativi
✓Descrivere il meccanismo di stima dell’RTT (algoritmo di Jacobson/Karels) e il calcolo del timeout RTO
✓Comprendere il funzionamento di SACK (Selective Acknowledgment) e il vantaggio rispetto agli ACK cumulativi
✓Distinguere il ruolo degli ACK duplicati come segnale di perdita e il meccanismo di Fast Retransmit

TCP: handshake a tre vie e chiusura della connessione

✓Descrivere passo per passo il three-way handshake TCP e spiegare il ruolo di SYN, SYN-ACK e ACK
✓Comprendere il concetto di ISN (Initial Sequence Number) e perché viene scelto casualmente
✓Analizzare il four-way handshake di chiusura e la finalità del periodo TIME_WAIT
✓Distinguere tra chiusura graceful (FIN) e chiusura anomala (RST)

TCP: caratteristiche principali e struttura del segmento

✓ Elencare e spiegare le sei caratteristiche principali di TCP: connection-oriented, affidabile, full-duplex, byte-stream, controllo del flusso e della congestione
✓ Descrivere la struttura dell’header TCP (20 byte fissi + opzioni) identificando il ruolo di ogni campo
✓ Spiegare il ruolo di Sequence Number, Acknowledgment Number e dei flag SYN, FIN, ACK, RST, PSH, URG
✓ Conoscere le principali opzioni TCP (MSS, Window Scale, SACK, Timestamps) e il loro scopo

Indirizzamento: porte logiche, socket e connessioni

✓ Descrivere il numero di porta come intero a 16 bit e spiegare le tre categorie IANA (well-known, registered, dynamic/ephemeral)
✓ Definire il concetto di socket come 5-tupla e spiegare perché un server può gestire N connessioni TCP simultanee sulla stessa porta
✓ Riconoscere le porte notevoli dei principali protocolli applicativi (HTTP, HTTPS, SSH, DNS, SMTP, FTP, POP3, IMAP, DHCP)
✓ Usare i comandi netstat e ss per visualizzare porte in ascolto e connessioni attive su un sistema Linux

Il livello Transport: ruolo, compiti e multiplexing

✓ Collocare il livello Transport nel modello TCP/IP e spiegare perché risiede solo negli end-host (non nei router)
✓ Descrivere i compiti principali del livello Transport: segmentazione, indirizzamento ai processi, controllo errori
✓ Distinguere multiplexing (lato mittente) e demultiplexing (lato ricevitore) e spiegare il ruolo del numero di porta come SAP
✓ Confrontare il demux connection-oriented TCP (4-tupla) con il demux connectionless UDP (2-tupla)

Internet, Autonomous System e protocollo BGP

✓Spiegare come Internet è strutturata come insieme di Autonomous System interconnessi
✓Distinguere IGP ed EGP e comprendere perché BGP è l’unico EGP di Internet
✓Descrivere il funzionamento di BGP come protocollo path-vector e i suoi principali attributi
✓Comprendere il ruolo degli IXP, la differenza tra peering e transit, e come una route-leak può abbattere Internet