Esercizio - Commutazione di pacchetto e numero ottimo di pacchetti
In questa pagina 6
Testo. Calcolare il tempo di consegna di un messaggio dall'host A all'host B con in mezzo uno switch che implementa la commutazione di pacchetto con approccio a datagramma (store-and-forward). Il messaggio è diviso in pacchetti. Si trascurano accodamento ed elaborazione. Tutti i collegamenti sono uguali (stessa lunghezza, stesso bitrate). Calcolare il valore ottimo di che minimizza il tempo di consegna del messaggio.
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 →; per la derivata e il minimo Regole di derivazioneDerivate delle funzioni elementari e delle loro inverse (arcsin, arctan, settcosh...) e regole di calcolo: linearità, prodotto (Leibniz), quoziente, funzione composta (regola della catena), funzione inversa, f(x)^g(x).Regole di derivazione → e 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 →.
Simboli
- : numero di collegamenti da A a B (hop); switch intermedi. Nell'esercizio , ma si ricava la formula generale.
- : propagazione di un collegamento; : bitrate di ogni collegamento.
- : lunghezza del messaggio in bit; : numero di pacchetti.
- : lunghezza dell'intestazione di ciascun pacchetto in bit (indirizzi di sorgente e destinazione, necessari nel datagramma: ogni pacchetto è instradato da solo).
- Lunghezza di un pacchetto: ; tempo di trasmissione di un pacchetto su un collegamento: .
Ricavo del tempo di consegna
Sul primo collegamento A trasmette i pacchetti uno dopo l'altro: la trasmissione dell'ultimo termina a . Poi quest'ultimo pacchetto deve ancora attraversare i collegamenti restanti: su ciascuno viene ricevuto per intero (store), poi ritrasmesso (forward, ) e poi si propaga (). Il primo collegamento aggiunge anche la sua propagazione, quindi: Uno sguardo al diagramma temporale aiuta a vedere perché non serve ritrasmettere per intero ogni pacchetto: appena lo switch finisce di ricevere il pacchetto 1 comincia a trasmetterlo verso B mentre A sta già trasmettendo il pacchetto 2 (pipeline). I collegamenti lavorano in parallelo su pacchetti diversi: il tempo non è ma , perché il pacchetto che chiude la sequenza paga trasmissioni (una per hop) e gli altri si "nascondono" dietro di lui. In forma completa:
Perché esiste un ottimo
Sviluppando il prodotto: Quindi Dividere in più pacchetti accorcia il tempo perché gli hop lavorano in parallelo (primo termine); ma ogni pacchetto in più porta un'intestazione in più (secondo termine). Il minimo si trova derivando rispetto a e ponendo la derivata uguale a zero: Passo per passo: i termini , e non contengono e la loro derivata è ; (potenza ) e . Porre la derivata a zero significa , cioè , e si prende la radice positiva. La derivata seconda è positiva per , quindi è un minimo. Se il numero risultante non è intero si confrontano i due interi vicini.
Caso del testo (): .
Esempio numerico
bit, bit, hop, Mbps, ms. Allora e
| ms | |
| ms | |
| ms | |
| ms (minimo) | |
| ms | |
| ms |
Controllo di passo per passo: dimensione del pacchetto bit; tempo di trasmissione ms; numero di tempi ; ms.
Grafico interattivo: Tempo di consegna T(K) in millisecondi per M = 10^6 bit, H = 100 bit, N = 3, R = 10 Mbit/s, tp = 1 ms: 303 ms con K = 1, minimo 105,85 ms in K ≈ 141, poi risale lentamente per l'effetto delle intestazioni (113 ms con K = 1000)
Il minimo cade tra e (i due valori differiscono per meno di un microsecondo, ms), ed è molto piatto: scegliere da a perde meno del . Con (nessuna segmentazione) il messaggio dovrebbe essere ritrasmesso per intero a ogni hop: ms.
Confronto con la soluzione ufficiale
Ufficiale: e : coincidono esattamente. La soluzione ufficiale cita anche il tempo di commutazione tra i simboli ma poi lo omette nella formula: qui si trascura, come da testo (elaborazione trascurabile). Nel testo c'è un solo switch ( collegamenti), dove .
Errori comuni
- Moltiplicare : ignora la pipeline tra gli hop.
- Dimenticare l'intestazione in ogni pacchetto: senza , decresce sempre con e non c'è un ottimo.
- Confondere (collegamenti) con il numero di switch (): il fattore nella formula di è .
- Arrotondare senza confrontare i due interi vicini quando è piccolo.
(Verificato con Python: con , , , Mbps, ms: , ms, ms, minimo intero .)
Versione ripasso
Dati. collegamenti uguali ( nel testo), , , messaggio bit in pacchetti con 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 →).
- . Pipeline: l'ultimo pacchetto paga trasmissioni, gli altri si sovrappongono.
- .
- : segmentare accorcia, le intestazioni allungano.
- (: ).
- Esempio , , : , ms (con : ms).
- Coincide con l'ufficiale.
- Errori: (niente pipeline); omettere ; al posto di .