Lezione 10 · Canale 1 · giovedì 15 ottobre 2026

Frammentazione dei pacchetti ed effetto pipeline

FCI · Reti

Un messaggio, uno o più pacchetti

Un messaggio di XX bit può viaggiare in un unico pacchetto o diviso in PP frammenti, ciascuno con la propria intestazione. Dividerlo sembra solo un costo, perché le intestazioni si ripetono. Ma un pacchetto solo occupa un'interfaccia alla volta, mentre i frammenti possono trovarsi insieme su interfacce diverse: questa sovrapposizione è l'effetto pipeline. Il ritardo di trasferimento è il bilancio fra i due effetti, e per questo la dimensione dell'unità informativa di uno strato, fissata da uno standard, non è indifferente.

Notazione:

  • HH è l'intestazione, in bit e uguale in ogni pacchetto; LL sono i bit di testo di un pacchetto, che è quindi lungo H+LH+L. Con testi uguali i frammenti sono P=X/LP=X/L.
  • NN è il numero di interfacce attraversate, CiC_i il bit rate dell'interfaccia ii e dprop,id_{\text{prop},i} il suo ritardo di propagazione.
  • DPACD_{\text{PAC}} è il ritardo di trasferimento di un pacchetto, DMESD_{\text{MES}} quello del messaggio: dall'emissione del primo bit alla ricezione dell'ultimo.

La rete è scarica, senza altro traffico che faccia attendere i pacchetti nei nodi (dmem=0d_{\text{mem}}=0), e l'elaborazione nei nodi è trascurabile (delab=0d_{\text{elab}}=0). Un nodo ritrasmette un pacchetto solo quando l'ha ricevuto per intero.

Tre interfacce da A a B

AN1N2B, , ,
Ogni interfaccia ha il suo bit rate e il suo ritardo di propagazione. Un nodo ritrasmette quando ha ricevuto il pacchetto per intero.

Un pacchetto intero

Su ogni interfaccia il pacchetto paga la trasmissione e poi la propagazione. I contributi delle interfacce si sommano, perché ogni nodo aspetta il pacchetto intero:

DPAC=∑i=1N(H+LCi+dprop,i)D_{\text{PAC}}=\sum_{i=1}^{N}\Bigl(\frac{H+L}{C_i}+d_{\text{prop},i}\Bigr)

Con lo stesso CC e lo stesso dpropd_{\text{prop}} su tutte le interfacce:

DPAC=N H+LC+dprop,ABdprop,AB=N dprop\begin{aligned} D_{\text{PAC}}&=N\,\frac{H+L}{C}+d_{\text{prop,AB}}\\ d_{\text{prop,AB}}&=N\,d_{\text{prop}} \end{aligned}

Il messaggio in un solo pacchetto ha L=XL=X.

Due frammenti

Con P=2P=2 si ha L=X/2L=X/2 e ogni frammento è lungo H+X/2H+X/2. Il secondo porta un'intestazione in più, ma DMESD_{\text{MES}} non è la somma di due ritardi di pacchetto: mentre il primo frammento è sull'interfaccia 2, il secondo è già sulla 1.

Si legge il ritardo sul diagramma spazio-tempo, nel caso in cui C2C_2 è più lento di C1C_1 e di C3C_3. Tre tratti:

  • il primo frammento da solo sull'interfaccia 1: (H+L)/C1+dprop,1(H+L)/C_1+d_{\text{prop},1};
  • tutti i frammenti sull'interfaccia 2, la più lenta, dove si susseguono senza pause: P (H+L)/C2+dprop,2P\,(H+L)/C_2+d_{\text{prop},2};
  • l'ultimo frammento da solo sull'interfaccia 3: (H+L)/C3+dprop,3(H+L)/C_3+d_{\text{prop},3}.

I frammenti arrivano in N1 più in fretta di quanto l'interfaccia 2 riesca a trasmetterli, quindi aspettano in N1 e la occupano di seguito. L'interfaccia 3 è più veloce e trova libero ogni frammento che arriva. Le trasmissioni sovrapposte si contano una volta sola. Moltiplicare per PP il ritardo di un frammento, come se i frammenti si susseguissero lungo tutto il percorso, sarebbe sbagliato.

Il messaggio in P frammenti

121212tempoAN1N2B
Mentre un frammento è sul secondo collegamento, il successivo è già sul primo. Il collegamento più lento resta occupato dai frammenti uno dopo l'altro. Muovendo cambiano numero e durata dei frammenti.

Con L=X/PL=X/P e le tre interfacce:

DMES(P)=(H+XP)(1C1+PC2+1C3)+∑i=13dprop,i\begin{aligned} D_{\text{MES}}(P)&=\Bigl(H+\frac XP\Bigr)\Bigl(\frac1{C_1}+\frac P{C_2}+\frac1{C_3}\Bigr)\\ &\quad+\sum_{i=1}^{3}d_{\text{prop},i} \end{aligned}

Per P=1P=1 ritorna DPACD_{\text{PAC}}.

Interfacce uguali: contare gli intervalli

Con N=3N=3 interfacce uguali e senza propagazione, ogni frammento dura (H+X/3)/C(H+X/3)/C su ogni interfaccia. Il messaggio intero impiega 3(H+X)/C3(H+X)/C. Diviso in tre frammenti, il diagramma non contiene 3⋅3=93\cdot 3=9 intervalli ma 5: il secondo frammento viaggia insieme al primo, il terzo insieme al secondo, e quelle trasmissioni si contano una volta.

Tre interfacce uguali, senza propagazione

123123123tempoAN1N2B
Il primo frammento attraversa tutte le interfacce; ognuno degli altri aggiunge un solo intervallo, sull'ultima. Con gli intervalli sono 5.

La regola vale per NN e PP qualsiasi: il primo frammento percorre tutte le NN interfacce; ognuno dei P−1P-1 restanti viaggia insieme al precedente, un'interfaccia più indietro, e solo sull'ultima interfaccia aggiunge un intervallo. Con la propagazione uguale su ogni interfaccia:

DMES=(N+P−1) H+LC+dprop,ABL=XP\begin{aligned} D_{\text{MES}}&=(N+P-1)\,\frac{H+L}{C}+d_{\text{prop,AB}}\\ L&=\frac XP \end{aligned}

Con cinque nodi intermedi le interfacce sono N=6N=6. Due frammenti occupano 6+2−1=76+2-1=7 intervalli, non 1212; tre frammenti ne occupano 88. Il parallelismo c'è solo nel tratto intermedio: se le interfacce crescono più dei frammenti, quel tratto pesa sempre meno sul totale, ma il guadagno resta.

Quanti frammenti

Sviluppando il prodotto di DMES(P)D_{\text{MES}}(P) solo due termini dipendono da PP:

DMES(P)=H PC2+XP(1C1+1C3)+H(1C1+1C3)+XC2+∑i=13dprop,i\begin{aligned} D_{\text{MES}}(P)&=\frac{H\,P}{C_2}+\frac XP\Bigl(\frac1{C_1}+\frac1{C_3}\Bigr)\\ &\quad+H\Bigl(\frac1{C_1}+\frac1{C_3}\Bigr)+\frac X{C_2}+\sum_{i=1}^{3}d_{\text{prop},i} \end{aligned}

Il primo cresce con PP: sono le intestazioni in più sull'interfaccia più lenta. Il secondo decresce: il primo e l'ultimo frammento, che viaggiano da soli, diventano più brevi. Ogni frammento in più aggiunge HH bit: in tutto se ne trasmettono X+P HX+P\,H. Quindi DMESD_{\text{MES}} scende finché prevale la pipeline e poi risale per il peso delle intestazioni.

Il minimo, con PP trattato come numero reale, si trova annullando la derivata:

dDMESdP=HC2−XP2(1C1+1C3)=0P∗=X C2H(1C1+1C3)\begin{aligned} \frac{dD_{\text{MES}}}{dP}&=\frac H{C_2}-\frac X{P^2}\Bigl(\frac1{C_1}+\frac1{C_3}\Bigr)=0\\ P^*&=\sqrt{\frac{X\,C_2}{H}\Bigl(\frac1{C_1}+\frac1{C_3}\Bigr)} \end{aligned}

I frammenti sono un numero intero, quindi si confrontano gli interi vicini a P∗P^*.

Esempio. Sia C1=C3=1C_1=C_3=1 Mb/s =1000=1000 kb/s, C2=900C_2=900 kb/s, dprop,i=1, 2, 3d_{\text{prop},i}=1,\,2,\,3 ms, H=400H=400 bit e X=10 000X=10\,000 bit. Con i bit rate in kb/s i tempi escono in ms. Sostituendo nella formula, il messaggio intero dà DMES≈38,36D_{\text{MES}}\approx 38{,}36 ms; con due frammenti il ritardo scende a 28,828{,}8 ms, nonostante la seconda intestazione.

P∗=10 000⋅900400⋅21000=45≈6,71P^*=\sqrt{\frac{10\,000\cdot 900}{400}\cdot\frac{2}{1000}}=\sqrt{45}\approx 6{,}71

Per P=6P=6 si ha 23,9123{,}91 ms e per P=7P=7 si ha 23,8823{,}88 ms: il valore intero migliore è 7.

Il ritardo al variare dei frammenti

2468101214162025303540 (ms)
Con pochi frammenti prevale la pipeline, con molti il peso delle intestazioni. Aumentando il minimo si sposta verso meno frammenti.

Formulario

Un pacchetto, NN interfacce

DPAC=∑i(H+LCi+dprop,i)D_{\text{PAC}}=\sum_i\Bigl(\frac{H+L}{C_i}+d_{\text{prop},i}\Bigr)

Interfacce uguali

DPAC=N H+LC+N dpropD_{\text{PAC}}=N\,\frac{H+L}{C}+N\,d_{\text{prop}}

Messaggio in PP frammenti, L=X/PL=X/P

DMES=(N+P−1) H+LC+N dprop\begin{aligned} D_{\text{MES}}&=(N+P-1)\,\frac{H+L}{C}\\ &\quad+N\,d_{\text{prop}} \end{aligned}

Tre interfacce, C2C_2 la più lenta

DMES=(H+XP)⋅(1C1+PC2+1C3)+∑i=13dprop,i\begin{aligned} D_{\text{MES}}&=\Bigl(H+\frac XP\Bigr)\\ &\quad\cdot\Bigl(\frac1{C_1}+\frac P{C_2}+\frac1{C_3}\Bigr)\\ &\quad+\sum_{i=1}^{3}d_{\text{prop},i} \end{aligned}

Numero di frammenti per il minimo

P∗=X C2H(1C1+1C3)P^*=\sqrt{\frac{X\,C_2}{H}\Bigl(\frac1{C_1}+\frac1{C_3}\Bigr)}