Programmazione di Reti
Appunti di
Andrea Zammarchi
Unibo - Cesena
Ingegneria e Scienze Informatiche
A.A. 2020/2021 1
Sommario
1. Reti di calcolatori e Internet .................................................. 5
1.1 Protocolli di rete ................................................................................................. 5
1.2 Interazione tra sistemi periferici....................................................................... 5
1.3 Metodi di accesso residenziale........................................................................... 5
DSL, via cavo, FTTH, dial-up e satellite ................................................................................................... 5
Ethernet e WiFi .......................................................................................................................................... 5
3G e LTE ................................................................................................................................................... 5
1.4 Mezzi trasmissivi ................................................................................................ 5
1.5 Il nucleo della rete .............................................................................................. 5
Commutazione di pacchetto ...................................................................................................................... 5
Commutazione di circuito ......................................................................................................................... 6
1.6 Ritardi, perdite e throughput nelle reti di commutazione di pacchetto ....... 6
1.7 Livelli di protocolli e loro modelli di servizio .................................................. 6
Architettura a livelli ................................................................................................................................... 6
Analisi del traffico .................................................................................................... 7
2. Livello di applicazione ........................................................... 7
2.1 Architetture delle applicazioni di rete .............................................................. 7
Client-server .............................................................................................................................................. 7
P2P ............................................................................................................................................................. 7
2.2 Processi comunicanti .......................................................................................... 7
2.3 Servizi di trasporto offerti da Internet ............................................................. 8
Servizi TCP ............................................................................................................................................... 8
Servizi UDP ............................................................................................................................................... 8
2.4 Web e HTTP ....................................................................................................... 8
Panoramica di HTTP ................................................................................................................................. 8
Interazione utente-server ........................................................................................................................... 9
Web caching ............................................................................................................................................ 10
2.5 Posta elettronica ............................................................................................... 10
SMTP ....................................................................................................................................................... 10
2.6 DNS .................................................................................................................... 10
Panoramica del funzionamento di DNS .................................................................................................. 11
Record e messaggi DNS .......................................................................................................................... 11
2 2.7 Distribuzione di file P2P .................................................................................. 11
BitTorrent ................................................................................................................................................ 11
2.8 Streaming video e reti per la distribuzione di contenuti .............................. 12
Streaming HTTP e DASH ....................................................................................................................... 12
Reti per la distribuzione di contenuti ....................................................................................................... 12
2.9 Programmazione delle socket .......................................................................... 12
UDP client ............................................................................................................................................... 12
UDP server .............................................................................................................................................. 12
TCP client ................................................................................................................................................ 13
TCP server ............................................................................................................................................... 13
3. Livello di trasporto ............................................................... 13
3.1 Multiplexing e demultiplexing ........................................................................ 13
3.2 Trasporto non orientato alla connessione: UDP ........................................... 14
Struttura dei segmenti UDP e checksum ................................................................................................. 14
3.3 Principi del trasferimento dati affidabile ...................................................... 14
Trasferimento dati affidabile su un canale perfettamente affidabile: rdt1.0 ............................................ 14
Trasferimento dati affidabile su un canale con errori sui bit: rdt2.0 ........................................................ 15
Trasferimento dati affidabile su un canale con perdite ed errori sui bit: rdt3.0 ....................................... 16
Trasferimento dati affidabile con pipeline ............................................................................................... 16
3.4 Trasporto orientato alla connessione: TCP ................................................... 17
Struttura dei segmenti TCP...................................................................................................................... 17
Time-out e stima del tempo di andata e ritorno ....................................................................................... 18
Raccomandazioni sulla generazione di acknowledgement ...................................................................... 18
Controllo di flusso ................................................................................................................................... 18
Cause e costi della congestione ............................................................................................................... 19
3.5 Controllo di congestione TCP ......................................................................... 20
Algoritmo di controllo di congestione di TCP ........................................................................................ 20
Retrospettiva sul controllo di congestione di TCP .................................................................................. 20
Fairness .................................................................................................................................................... 21
Notifica esplicita di congestione (ECN): controllo di congestione assistita dalla rete ............................ 21
4. Livello di rete ....................................................................... 21
4.1 Panoramica del livello di rete .......................................................................... 21
Piano di controllo: approccio tradizionale ............................................................................................... 21
Piano di controllo: approccio SDN .......................................................................................................... 21
Modelli di servizio ................................................................................................................................... 21
3
4.2 Interno di un router ......................................................................................... 22
Elaborazione alle porte di ingresso e inoltro basato sull’indirizzo di destinazione ................................. 22
Struttura di commutazione....................................................................................................................... 22
Accodamento in ingresso......................................................................................................................... 22
Accodamento in uscita............................................................................................................................. 23
Schedulazione dei pacchetti ..................................................................................................................... 23
4.3 Il protocollo Internet (IP) ................................................................................ 23
Datagrammi IPv4 ..................................................................................................................................... 23
Indirizzamento IPv4 ................................................................................................................................ 24
NAT (network address translation) ......................................................................................................... 25
IPv6.......................................................................................................................................................... 25
4.4 Inoltro generalizzato e SDN ............................................................................ 26
Match ....................................................................................................................................................... 26
Action ...................................................................................................................................................... 27
5. Ultimi argomenti vari ........................................................... 27
5.1 Recap del piano di rete .................................................................................... 27
5.2 Algoritmi di instradamento ............................................................................. 27
5.3 Rendere sicure le connessioni TCP: SSL ....................................................... 27
4
1. Reti di calcolatori e Internet
1.1 Protocolli di rete
Qualsiasi attività in Internet che coinvolga due o più entità remote viene governata da un protocollo. Sapendo
che ora è possibile richiedere un documento web, il vostro computer invierà il nome della pagina che vuole
definisce il formato e l’ordine dei messaggi
prelevare dal server tramite un messaggio GET. Un protocollo
scambiati tra due o più entità in comunicazione, così come le azioni intraprese in fase di trasmissione e/o di
ricezione di un messaggio o di un altro evento.
1.2 Interazione tra sistemi periferici
Talvolta gli host vengono ulteriormente suddivisi in due categorie: client e server. In modo informale, i
client sono host che richiedono dei servizi e tendono a essere PC, smartphone e via dicendo, mentre i server
si occupano di erogare dei servizi e sono sostanzialmente macchine più potenti che memorizzano e
distribuiscono pagine web o flussi video, ritrasmettono la posta elettronica e così via.
1.3 Metodi di accesso residenziale
DSL, via cavo, FTTH, dial-up e satellite
Il modem DSL residenziale converte i dati digitali in toni ad alta frequenza per poterli trasmettere alla centrale
locale sul cavo telefonico. Le linee telefoniche residenziali trasportano contemporaneamente dati e segnali
telefonici tradizionali codificandoli in tre bande di frequenza non sovrapposte:
Un canale di downstream (verso l’abitazione) ad alta velocita, nella banda tra 50 kHz e 1 MHZ.
-
- Un canale in upstream (verso il DSLAM) a velocità media, nella banda tra 4 e 50 kHz.
- Un canale telefonico ordinario a due vie, nella banda tra 0 e 4 kHz.
Ethernet e WiFi
Nelle aziende e nelle università, e sempre di più nelle abitazioni, per collegare i sistemi periferici al router di
bordo si utilizza una rete locale. Ethernet utilizza un doppino di rame intrecciato per collegare numerosi
sistemi periferici tra loro e connetterli a uno switch Ethernet. Tale accesso ha generalmente velocità di 100
Mbps, che possono arrivare fino a 1 o anche 10 Gbps.
3G e LTE
Le compagnie di telecomunicazioni hanno investito somme enormi nelle cosiddette reti wireless di terza
generazione (3G), che consentono accesso wireless a Internet con commutazione a pacchetto e su scala
geografica a velocità che superano 1 Mbps. Tuttavia, sono già disponibili tecnologie di accesso su scala
geografica ancora più alta: 4G e 5G.
1.4 Mezzi trasmissivi
- Doppino di rame intrecciato
- Cavo coassiale
- Fibra ottica
- Canali radio terrestri
- Canali radio satellitari
1.5 Il nucleo della rete
Commutazione di pacchetto
Le applicazioni distribuite scambiano messaggi che possono contenere qualsiasi cosa il progettista del
protocollo desideri. La sorgente suddivide i messaggi lunghi in parti più piccole note come pacchetti. Tra la
sorgente e la destinazione, questi pacchetti viaggiano attraverso collegamenti e commutatori di pacchetto (i
due tipi principali: router e commutatori a livello di collegamento). I pacchetti vengono trasmessi su ciascun
collegamento a una velocità pari alla velocità totale di trasmissione del collegamento stesso. 5
La maggior parte dei commutatori di pacchetto utilizza la trasmissione store-and-forward. Ciò significa che
il commutatore deve ricevere l’intero pacchetto prima di poterne cominciare a trasmettere sul collegamento in
uscita il primo bit.
Ogni commutatore di pacchetto connette più collegamenti. Per ciascuno di questi, il commutatore mantiene un
buffer di output per conservare i pacchetti che sta per inviare su quel collegamento. Di conseguenza, oltre ai
ritardi store-and-forward, i pacchetti subiscono anche ritardi di accodamento nei buffer fi output. Tali ritardi
sono variabili e dipendono dal traffico di rete. Siccome la dimensione del buffer è finita, può capitare che un
pacchetto in arrivo trovi il buffer completamente pieno. In questo caso di verifica una perdita di pacchetto.
Commutazione di circuito
Un circuito all’interno di un collegamento è implementato tramite multiplexing a divisione di frequenza
(FDM) o multiplexing a divisione di tempo (TDM). Nel primo caso, il collegamento dedica una banda di
frequenza a ciascuna connessione per la durata della connessione stessa. La larghezza di tale banda è detta
ampiezza di banda. Nel caso del TDM il tempo viene suddiviso in frame di durata fissa, a loro volta ripartiti
in un numero fisso di slot temporali. Quando la rete stabilisce una connessione attraverso un collegamento, le
dedica uno slot di tempo in ogni frame.
La commutazione di pacchetto risulta più efficiente, in quanto essa fornisce sostanzialmente le stesso
prestazioni della commutazione di circuito, ma consente più del triplo degli utenti.
1.6 Ritardi, perdite e throughput nelle reti di commutazione di
pacchetto
I principali ritardi che investono un pacchetto durante il suo viaggio sono:
il tempo richiesto per esaminare l’intestazione del
- Ritardo di elaborazione: pacchetto e per
determinare dove dirigerlo.
- Ritardo di accodamento: il tempo che attende la trasmissione sul collegamento, che dipenderà dal
numero di pacchetti precedentemente arrivati.
- Ritardo di trasmissione: risulta essere L/R, ovvero lunghezza del pacchetto in bit diviso la velocità
di trasmissione del collegamento dal router.
- Ritardo di propagazione: una volta immesso sul collegamento, un bit deve propagarsi fino al router
la velocità dipende dal mezzo fisico (fibra ottica, doppino di rame, …).
B,
Il throughput massimo di un router rappresenta la velocità massima alla quale il router può inoltrare i
pacchetti.
Oltre al ritardo e alla perdita di pacchetti, un’altra misura critica delle prestazioni in una rete di calcolatori è il
throughput end-to-end. Il throughput istantaneo in ogni istante di tempo è la velocità (bps) alla quale B sta
ricevendo il file. Se il file consiste di F bit e il trasferimento richiede T secondi affinché B riceva tutti gli F bit,
allora il throughput medio del trasferimento del file è di F/T bps.
Sia Rs la velocità del collegamento tra il server e il router e Rc quella del collegamento tra il router e il client,
il throughput è il minimo tra Rs e Rc, cioè la velocità di trasmissione del collegamento che fa da collo di
bottiglia.
1.7 Livelli di protocolli e loro modelli di servizio
Architettura a livelli
Per dare struttura alla loro progettazione, i progettisti organizzano i protocolli e l’hardware e software che li
effettuando determinate azioni all’interno del
implementano in livelli. Ogni livello fornisce il suo servizio
livello stesso e utilizzando i servizi del livello immediatamente inferiore.
6
I livelli sono:
- Livello di applicazione: è la sede delle applicazioni di rete e dei relativi protocolli (es: http, SMTP,
FTP). I pacchetti di questo livello sono detti messaggi.
- Livello di trasporto: trasferisce i messaggi del livello di applicazione tra punti periferici gestiti dalle
applicazioni. I due principali sono TCP e UDP. I pacchetti di questo livello sono detti segmenti.
- Livello di rete: si occupa di trasferire i pacchetti a livello di rete, detti datagrammi, da un host
all’altro. Questo livello include il famoso prot
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Appunti di Reti
-
Appunti Fondamenti di informatica
-
Appunti reti di telecomunicazioni
-
Appunti Reti di calcolatori