Esercizio - Frammentazione di un pacchetto su tre collegamenti
In questa pagina 7
Testo. Si consideri la connessione in catena formata da tre collegamenti:
| Collegamento | Tra | Bitrate | Propagazione |
|---|---|---|---|
| 1 | - | ||
| 2 | - | ||
| 3 | - |
- Esprimere in forma parametrica il tempo necessario per trasmettere un pacchetto di lunghezza bit da a .
- Supporre che il pacchetto sia diviso in due frammenti. Esprimere in forma parametrica il tempo per inviare tutti i frammenti da a , con .
- Qual è il numero di frammenti che dà il tempo totale di trasmissione più breve?
Teoria usata: Commutazione di circuito e di pacchettoUn nodo di commutazione (switch) può collegare ingresso e uscita in tre modi. Commutazione di circuito: si stabilisce prima un collegamento fisico dedicato (rete telefonica), tempo di consegna $T=3Nt_p+Nt_s+M/R$. Commutazione di pacchetto a datagramma: il messaggio è diviso in $K$ pacchetti con intestazione, ognuno è instradato indipendentemente con store-and-forward, $T=Nt_p+(N+K-1)\frac{M/K+H}{R}$, con $K_{ott}=\sqrt{(N-1)M/H}$. A circuito virtuale: tre fasi (setup, dati, chiusura), connessione logica dedicata ma senza risorse dedicate, identificatore locale che cambia a ogni salto.Commutazione di circuito e di pacchetto →, Analisi delle prestazioni di reteLe prestazioni di una rete si misurano con tre famiglie di metriche: traffico (bitrate $R_0$ massimo del collegamento, throughput $S\le R_0$ dati consegnati con successo, goodput al livello applicazione), ritardo (end-to-end $d_{tot}=d_{proc}+d_{queue}+d_{trans}+d_{prop}$ con $d_{trans}=L/R$ e $d_{prop}=d/v$; jitter; RTT) e capacità del tubo (BDP $=R\cdot$ ritardo, bit che riempiono il collegamento), più l'affidabilità (PER, PDR, PLR). Il throughput di un percorso è quello del collegamento collo di bottiglia, $\min$ dei bitrate, ricordando che i collegamenti condivisi dividono la capacità.Analisi delle prestazioni di rete →.
Modello e simboli
Router store-and-forward senza elaborazione né accodamento da altro traffico. è l'intestazione e il carico utile in bit. Quando si frammenta, ogni frammento porta una propria intestazione (è l'ipotesi standard: ogni pezzo deve poter essere instradato e ricomposto), quindi un frammento di è lungo bit. Il tempo di trasmissione di un frammento sul collegamento è .
(1) Un solo pacchetto
Il pacchetto viene ricevuto per intero ad ogni nodo e poi ritrasmesso: si sommano le tre trasmissioni e le tre propagazioni,
(2) Due frammenti
Sia e . Per le ipotesi si ha e : il collegamento 2 è il collo di bottiglia (il più lento), che serve i frammenti uno dopo l'altro. Seguiamo i due frammenti:
- Frammento 1. Fine tx su a , arriva a a ; viene trasmesso su fino a , poi arriva a e così via.
- Frammento 2. Finisce su a e arriva a a . Poiché , a quel tempo () il collegamento 2 sta ancora trasmettendo il frammento 1: il frammento 2 aspetta e parte subito dopo, a , finendo a .
- A il frammento 2 arriva a ; il collegamento 3 ha già finito il frammento 1 (a quel valore perché ), quindi non c'è attesa: lo trasmette in e dopo è in .
Il tempo totale è quello dell'ultimo frammento: Il collo di bottiglia viene "pagato" due volte (una per frammento); gli altri due collegamenti una volta.
(3) Numero ottimo di frammenti
Con lo stesso ragionamento, con frammenti il collegamento 2 trasmette frammenti consecutivi mentre gli altri due collegamenti trasmettono ciascuno un frammento in più della fila (il primo sul collegamento 1 prima del collo di bottiglia, l'ultimo sul collegamento 3 dopo). Il perché: dato che , il frammento arriva a (a ) quando il collegamento 2 sta ancora trasmettendo il precedente, quindi il collegamento 2 lavora senza pause da fino a . Dato che , il collegamento 3 smaltisce ogni frammento prima che arrivi il successivo e l'ultimo frammento paga solo la propria trasmissione . Sommando, il tempo di arrivo dell'ultimo frammento è , cioè: Sviluppando: Il termine decresce con (frammenti più piccoli attraversano più in fretta i collegamenti non critici), mentre cresce (ogni frammento in più ripaga un'intestazione sul collo di bottiglia). Si pone a zero la derivata (Massimi e minimi relativi e teorema di Fermatx0 è punto di minimo (massimo) relativo se f(x0) ≤ f(x) (≥) per gli x del dominio vicini a x0. I candidati sono gli estremi del dominio, i punti dove f non è derivabile e i punti interni con f'(x0) = 0 (punti critici o stazionari). Teorema di Fermat: in un punto interno di minimo o massimo relativo dove f è derivabile, f'(x0) = 0. È solo una condizione necessaria: x³ in 0.Massimi e minimi relativi e teorema di Fermat →; la derivata di rispetto a è , con costante, per la regola della potenzala derivata di K elevato a n è n per K elevato a n-1, qui con n uguale a -1Regole di derivazione →; la derivata di è , e le costanti , , spariscono): Passaggio algebrico: (si prende la radice positiva, perché ). È davvero un minimo: la derivata seconda è positiva per , quindi è convessa (Funzioni convesse, concave e punti di flessof è convessa se ogni corda sta sopra il grafico (concava se sta sotto). Una funzione convessa è continua e ha derivate destra e sinistra in ogni punto interno. Per f derivabile: convessa ⇔ grafico sopra ogni tangente ⇔ f' crescente ⇔ (se esiste) f'' ≥ 0. f'' > 0 ⇒ strettamente convessa, non viceversa (x⁴). Flesso: punto in cui f passa da convessa a concava; lì, se esiste, f''(x0) = 0, ma non basta (x⁴ in 0).Funzioni convesse, concave e punti di flesso →) e il punto stazionario è il minimo.
Grafico interattivo: Tempo totale T(K) in ms per C1=10, C2=2, C3=20 Mbps
La curva vale per reale; solo i valori interi hanno senso fisico, e il minimo intero è (la curva è molto piatta attorno al minimo: e ms differiscono di ms). Poiché e , vale , quindi ; se i tre collegamenti hanno la stessa capacità (e la formula coincide con quella di Esercizio - Commutazione di pacchetto e numero ottimo di pacchetti con ). Il numero intero migliore è quello tra i due vicini a con minore. La formula vale finché il collegamento 2 resta il collo di bottiglia, cioè sempre, perché conserva l'ordine dei collegamenti.
Esempio numerico
Mbps, Mbps, Mbps (rispetta ), bit, bit, ms.
- ms.
- Due frammenti: bit, ms, ms, ms:
| tx link 1 | tx link 2 | tx link 3 | arrivo a | |
|---|---|---|---|---|
| frammento 1 | ms | |||
| frammento 2 | (attende in coda) | ms |
(formula: ms).
- . Confronto:
| 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | |
|---|---|---|---|---|---|---|---|---|
| (ms) |
Il minimo è ( ms), seguito da ( ms): coerente con . La frammentazione fa guadagnare circa il rispetto a un solo pacchetto.
Confronto con la soluzione ufficiale
Per questo esercizio le slide delle soluzioni non riportano un risultato (la serie delle soluzioni salta dal 4 al 6), quindi non c'è un numero da confrontare. I risultati sono stati controllati con una simulazione store-and-forward (tempi di fine trasmissione e arrivo di ogni frammento su ogni collegamento), che coincide con le formule per tutti i provati.
Errori comuni
- Dimenticare che ogni frammento ha la propria intestazione : senza il tempo decrescerebbe sempre con e non esisterebbe un ottimo.
- Pagare il collo di bottiglia una sola volta (o tutti i collegamenti volte): solo il collegamento più lento viene "pagato" volte, gli altri una sola.
- Usare come collo di bottiglia quando l'ordine delle capacità è diverso: la formula di vale solo se il collegamento più lento è il 2.
(Verificato con Python: ms; ms (formula e simulazione); ; minimo intero con ms.)
Versione ripasso
Dati. , , , pacchetto bit, store-and-forward; ogni frammento ha l'intestazione (Commutazione di circuito e di pacchettoUn nodo di commutazione (switch) può collegare ingresso e uscita in tre modi. Commutazione di circuito: si stabilisce prima un collegamento fisico dedicato (rete telefonica), tempo di consegna $T=3Nt_p+Nt_s+M/R$. Commutazione di pacchetto a datagramma: il messaggio è diviso in $K$ pacchetti con intestazione, ognuno è instradato indipendentemente con store-and-forward, $T=Nt_p+(N+K-1)\frac{M/K+H}{R}$, con $K_{ott}=\sqrt{(N-1)M/H}$. A circuito virtuale: tre fasi (setup, dati, chiusura), connessione logica dedicata ma senza risorse dedicate, identificatore locale che cambia a ogni salto.Commutazione di circuito e di pacchetto →).
- (1) .
- (2) Con il collegamento 2 è il collo di bottiglia (, ): il frammento 2 aspetta fino a . .
- (3) ; derivata nulla: (uguaglianza con capacità uguali, come in Esercizio - Commutazione di pacchetto e numero ottimo di pacchetti). Si prende il migliore tra i due interi vicini (Analisi delle prestazioni di reteLe prestazioni di una rete si misurano con tre famiglie di metriche: traffico (bitrate $R_0$ massimo del collegamento, throughput $S\le R_0$ dati consegnati con successo, goodput al livello applicazione), ritardo (end-to-end $d_{tot}=d_{proc}+d_{queue}+d_{trans}+d_{prop}$ con $d_{trans}=L/R$ e $d_{prop}=d/v$; jitter; RTT) e capacità del tubo (BDP $=R\cdot$ ritardo, bit che riempiono il collegamento), più l'affidabilità (PER, PDR, PLR). Il throughput di un percorso è quello del collegamento collo di bottiglia, $\min$ dei bitrate, ricordando che i collegamenti condivisi dividono la capacità.Analisi delle prestazioni di rete →).
Esempio. Mbps, , bit, ms: ms; : ms, arrivo ms; .
| 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | |
|---|---|---|---|---|---|---|---|---|
| (ms) |
Minimo a . Nessuna soluzione ufficiale (risultati simulati).
Errori: omettere nei frammenti (nessun ottimo); pagare volte tutti i collegamenti.