Lezione 6 · Canale 1 · lunedì 5 ottobre 2026

Modello a strati e protocolli di rete

FCI · Reti

L'idea

Computer, telefoni, router e access point Wi-Fi sono sistemi interconnessi che devono comunicare. Le loro funzioni si organizzano in strati: funzioni simili per il compito che svolgono stanno nello stesso strato, e fra gli strati c'è una gerarchia.

  • Ogni strato offre un servizio allo strato superiore e si basa sul servizio dello strato inferiore.
  • Il più basso è lo strato fisico: parte dal mezzo trasmissivo e offre la trasmissione di bit.
  • Il modello OSI ha sette strati. Il modello Internet ne ha cinque: gli strati OSI 5, 6 e 7 si fondono nello strato applicativo. Numerando dal basso: 1 fisico, 2 collegamento (data link), 3 rete, 4 trasporto, 5 applicazione.
  • Le entità di alcuni strati, come le applicazioni, comunicano da estremo a estremo; in altri strati le entità presenti nei diversi sistemi interagiscono sezione per sezione.

PDU, SDU e PCI

Le entità dello strato nn in sistemi diversi, dette alla pari, cooperano secondo il protocollo di strato nn: il formato dell'unità di dati e le regole da applicare. Si scambiano nn-PDU (Protocol Data Unit). La comunicazione avviene solo fra strati adiacenti.

Una PDU ha due parti:

  • la SDU (Service Data Unit), i dati che lo strato riceve da quello superiore e che sono l'oggetto del suo servizio;
  • la PCI (Protocol Control Information), le informazioni di controllo che servono al protocollo. È l'header, detto anche overhead.
n-PDU=n-PCI⏟header+n-SDU⏟datin\text{-PDU}=\underbrace{n\text{-PCI}}_{\text{header}}+\underbrace{n\text{-SDU}}_{\text{dati}}

La PDU di uno strato diventa la SDU di quello sotto: (n+1)-PDU=n-SDU(n+1)\text{-PDU}=n\text{-SDU}. Lo strato lavora sulla PCI senza leggere la SDU, salvo operazioni che ne hanno bisogno, come il controllo d'errore. La SDU può anche essere cifrata: lo strato continua a trovare ciò che gli serve nella PCI.

Incapsulamento e decapsulamento

Scendendo dall'applicazione al mezzo, ogni strato aggiunge il proprio header all'unità ricevuta. Questa ripetizione è l'incapsulamento. L'unità cambia nome a ogni strato:

messaggio (applicazione): Msegmento (trasporto): Ht Mpacchetto (rete): Hn Ht Mframe (collegamento): Hl Hn Ht M\begin{aligned} \text{messaggio (applicazione)}&:\ M\\ \text{segmento (trasporto)}&:\ H_t\,M\\ \text{pacchetto (rete)}&:\ H_n\,H_t\,M\\ \text{frame (collegamento)}&:\ H_l\,H_n\,H_t\,M \end{aligned}

MM è il messaggio applicativo, per esempio una mail con oggetto, destinatario, testo e allegati. Gli header portano le regole del protocollo di strato: nel collegamento servono per esempio al controllo d'errore, nella rete c'è l'indirizzo di rete. Il contenuto applicativo resta dentro, via via incapsulato; sullo strato fisico viaggia un flusso di bit.

In ricezione avviene il decapsulamento: lo strato elabora e toglie il proprio header, poi passa la PDU a quello sopra. Un nodo intermedio sale solo fino allo strato che gli serve per inoltrare, poi ridiscende incapsulando di nuovo. La destinazione sale fino all'applicazione. Incapsulare e decapsulare richiedono tempo, oltre ad aggiungere e togliere informazioni.

Incapsulamento lungo il percorso

OrigineApplicazioneTrasportoReteCollegamentoFisicoSwitchCollegamentoFisicoRouterReteCollegamentoFisicoDestinatarioApplicazioneTrasportoReteCollegamentoFisico
I dati scendono nella pila dell'origine, salgono nello switch fino al collegamento e nel router fino alla rete, poi ridiscendono. Solo il destinatario risale fino all'applicazione.

Perché gli strati

  • Ogni strato interagisce solo con quelli adiacenti, anche se il sistema è complesso, e gestisce le informazioni e l'overhead che gli competono. Chi vende il biglietto aereo non è chi pilota l'aeroplano.
  • Il protocollo di uno strato si cambia senza toccare gli altri. Da HTTP a HTTPS si aggiungono autenticazione e cifratura nell'applicazione; da IPv4 a IPv6 cambia lo strato di rete. Gli altri strati restano uguali.
  • Nei nodi intermedi non si attraversano tutti e cinque gli strati: si risparmiano lavoro e tempo di elaborazione. Alcune funzioni devono invece stare agli estremi.

Segmentazione e riassemblaggio

La SDU ha una lunghezza limitata: fissa, oppure variabile fino a un massimo. Un messaggio più lungo viene segmentato: o in segmenti tutti uguali, o in più segmenti con l'ultimo più corto.

Per ricomporre il messaggio serve l'ordine dei segmenti. Il numero di segmento sta nella PCI, e il riassemblaggio lo usa per rimettere le parti al loro posto.

Servizi con e senza connessione

Due entità alla pari possono accordarsi per comunicare. L'accordo è una connessione, e si stabilisce con quattro passi:

  1. una entità invia una richiesta;
  2. all'altra arriva come indicazione, e questa decide se accettare;
  3. se accetta, invia una risposta;
  4. la prima riceve la conferma.

Poi le due entità si scambiano i dati secondo l'accordo. È un servizio connection-oriented: TCP, a strato 4. Nel servizio connectionless l'entità invia i dati senza accordo preventivo: IP a strato 3, UDP a strato 4.

  • Con connessione ci sono riscontri durante lo scambio. In TCP c'è il controllo di flusso: il ricevente può chiedere al mittente di rallentare. Lo usano applicazioni come lo streaming e il trasferimento di file.
  • Senza connessione non c'è negoziazione iniziale, né garanzia di consegna né di sequenza delle unità di dati: ognuna è autonoma. Si evita il tempo dell'accordo, che può anche fallire se l'altra parte non vuole parlare, e il servizio è più versatile.

Tempo di ricezione di quattro pacchetti

Il tempo di trasmissione di un pacchetto di LL bit su un collegamento di bitrate CC è L/CL/C. Il ritardo di propagazione τi\tau_i dipende dal collegamento. Un nodo ritrasmette un pacchetto solo dopo averlo ricevuto per intero (store and forward), quindi i due contributi si sommano a ogni collegamento.

Due router, R1 e R2, sono collegati fra loro. Da R2 partono due rami, verso le destinazioni A e B. I pacchetti sono lunghi L=512L=512 bit.

CollegamentoBitratePropagazioneTrasmissione di L=512L=512 bit
R1–R2C1=256C_1=256 kbit/sτ1=1\tau_1=1 msL/C1=2L/C_1=2 ms
R2–AC2=512C_2=512 kbit/sτ2=2\tau_2=2 msL/C2=1L/C_2=1 ms
R2–BC3=64C_3=64 kbit/sτ3=4\tau_3=4 msL/C3=8L/C_3=8 ms
R1R2AB, , ,
La rete dell'esercizio: i quattro pacchetti partono da R1, e in R2 i primi due vanno verso A, gli altri verso B.

All'istante 0 la coda di uscita di R1 contiene quattro pacchetti, che partono uno dopo l'altro. I pacchetti 1 e 2 vanno ad A, i pacchetti 3 e 4 a B. Si cerca l'istante tkt_k in cui il pacchetto kk è ricevuto per intero. Conviene disegnare il diagramma spazio-tempo: la lunghezza di un pacchetto sull'asse dei tempi è L/CL/C, e la propagazione è l'inclinazione dei segmenti.

t1=LC1+τ1+LC2+τ2=2+1+1+2=6 mst2=2LC1+τ1+LC2+τ2=4+1+1+2=8 mst3=3LC1+τ1+LC3+τ3=6+1+8+4=19 ms\begin{aligned} t_1&=\frac{L}{C_1}+\tau_1+\frac{L}{C_2}+\tau_2\\ &=2+1+1+2=6\ \text{ms}\\[0.6em] t_2&=2\frac{L}{C_1}+\tau_1+\frac{L}{C_2}+\tau_2\\ &=4+1+1+2=8\ \text{ms}\\[0.6em] t_3&=3\frac{L}{C_1}+\tau_1+\frac{L}{C_3}+\tau_3\\ &=6+1+8+4=19\ \text{ms} \end{aligned}

Il pacchetto 2 parte da R1 quando il primo è stato trasmesso per intero, all'istante 2. A R2 non attende, perché il ramo verso A è libero: arriva ad A 2 ms dopo il primo.

Pacchetti 1 e 2 verso A, tempi in ms

1212tempoR1R2A
Su R2–A il pacchetto 1 ha già finito quando arriva il 2: nessuna attesa, e il 2 arriva ms dopo il primo.

Il pacchetto 3 parte da R1 all'istante 4, quando i primi due sono passati, e finisce di essere trasmesso all'istante 6.

Il pacchetto 4 arriva a R2 all'istante 4⋅2+1=94\cdot 2+1=9 ms. Il ramo verso B è però occupato dal pacchetto 3, che lo trasmette dall'istante 7 all'istante 15. Il pacchetto 4 aspetta 15−9=615-9=6 ms, poi si trasmette per 8 ms:

t4=3LC1+τ1+LC3⏟15 ms+LC3+τ3=15+8+4=27 ms\begin{aligned} t_4&=\underbrace{3\frac{L}{C_1}+\tau_1+\frac{L}{C_3}}_{15\ \text{ms}}\\ &\quad+\frac{L}{C_3}+\tau_3\\ &=15+8+4=27\ \text{ms} \end{aligned}

Il pacchetto 4 parte appena il 3 ha finito, quindi t4=t3+L/C3t_4=t_3+L/C_3. Se il pacchetto 4 andasse ad A non aspetterebbe: il ramo verso A è libero, perché il pacchetto 2 l'ha già lasciato. Arriverebbe in 4⋅2+1+1+2=124\cdot 2+1+1+2=12 ms.

Il pacchetto 4 attende solo se il ramo verso B è ancora occupato quando arriva: il pacchetto 3 impiega a uscire L/C3L/C_3, il 4 arriva a R2 L/C1L/C_1 dopo il 3. Quindi c'è attesa quando L/C3>L/C1L/C_3>L/C_1, cioè C3<C1C_3<C_1, come qui. Altrimenti il ramo è già libero e il pacchetto 4 prosegue senza fermarsi.

Pacchetti 3 e 4 verso B, tempi in ms

1212tempoR1R2B
R1 trasmette prima i pacchetti 1 e 2, poi il 3 e il 4. Il 4 aspetta in R2 che il ramo verso B si liberi; spostando fino a kbit/s l'attesa sparisce.

Formulario

Unità informative

n-PDU=n-PCI+n-SDUn\text{-PDU}=n\text{-PCI}+n\text{-SDU} (n+1)-PDU=n-SDU(n+1)\text{-PDU}=n\text{-SDU}

Incapsulamento

segmento: Ht Mpacchetto: Hn Ht Mframe: Hl Hn Ht M\begin{aligned} \text{segmento}&:\ H_t\,M\\ \text{pacchetto}&:\ H_n\,H_t\,M\\ \text{frame}&:\ H_l\,H_n\,H_t\,M \end{aligned}

Tempo di trasmissione

LC\frac{L}{C}

Pacchetto 1 verso A

t1=LC1+τ1+LC2+τ2\begin{aligned} t_1&=\frac{L}{C_1}+\tau_1\\ &\quad+\frac{L}{C_2}+\tau_2 \end{aligned}

Pacchetto 3 verso B

t3=3LC1+τ1+LC3+τ3\begin{aligned} t_3&=3\frac{L}{C_1}+\tau_1\\ &\quad+\frac{L}{C_3}+\tau_3 \end{aligned}

Pacchetto 4 con attesa

t4=t3+LC3t_4=t_3+\frac{L}{C_3}