Salta al contenuto
Note per Studenti Esercizio - Tre pacchetti del server S verso C con traffico concorrente

Esercizio - Tre pacchetti del server S verso C con traffico concorrente

In questa pagina 7

Testo. Rete a commutazione di pacchetto a datagramma (store-and-forward), code indipendenti per ogni interfaccia di uscita. A t=0t=0 la coda di uscita del server S ha tre pacchetti diretti a C, quella dell'host A ha tre pacchetti diretti a B. Pacchetti da L=1500L=1500 byte, trasmissioni che partono a t=0t=0 in tutti i nodi. Calcolare l'istante di arrivo dei soli tre pacchetti di S.

Topologia: S e A sono collegati a R1; R1 – R2 – R3 in catena; B è collegato a R2; C e D sono collegati a R3.

Collegamento Estremi Capacità Propagazione
C1C_1 S – R1 2424 Mbit/s 11 ms
C5C_5 A – R1 1515 Mbit/s 0,50{,}5 ms
C2C_2 R1 – R2 66 Mbit/s 55 ms
C6C_6 R2 – B 2424 Mbit/s 1,51{,}5 ms
C3C_3 R2 – R3 1212 Mbit/s 44 ms
C4C_4 R3 – C 4848 Mbit/s 22 ms
C7C_7 R3 – D ?? ??

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 →.

Dati mancanti: il collegamento C7C_7 non serve

Nel testo C7C_7 e τ7\tau_7 sono "?". Non servono: C7C_7 collega R3 a D, e nessun pacchetto passa di lì (i pacchetti di S vanno a C, quelli di A a B). Cammini:

  • S→C: C1→C2→C3→C4C_1\to C_2\to C_3\to C_4;
  • A→B: C5→C2→C6C_5\to C_2\to C_6 (condivide con S solo C2C_2).

Regola di calcolo

tinizio=max⁡(tpronto,tlibero)t_{inizio}=\max(t_{pronto},t_{libero}), tfine=tinizio+L/Ct_{fine}=t_{inizio}+L/C, il pacchetto è pronto al nodo successivo a tfine+τt_{fine}+\tau. Code FIFO per ordine di arrivo del pacchetto completo al router. Con L=12000L=12000 bit (e T=L/CT=L/C, per esempio 12 000/(6⋅106)=2⋅10−312\,000/(6\cdot10^{6})=2\cdot10^{-3} s =2=2 ms su C2C_2):

Collegamento C1C_1 C5C_5 C2C_2 C3C_3 C4C_4
T=L/CT=L/C (ms) 0,50{,}5 0,80{,}8 22 11 0,250{,}25

Passo 1: arrivi in R1

S manda i suoi pacchetti a intervalli di 0,50{,}5 ms, A a intervalli di 0,80{,}8 ms:

S1 S2 S3 A1 A2 A3
0,5+1=1,50{,}5+1=1{,}5 1,0+1=2,01{,}0+1=2{,}0 1,5+1=2,51{,}5+1=2{,}5 0,8+0,5=1,30{,}8+0{,}5=1{,}3 1,6+0,5=2,11{,}6+0{,}5=2{,}1 2,4+0,5=2,92{,}4+0{,}5=2{,}9

Ordine di arrivo in R1: A1 (1,31{,}3), S1 (1,51{,}5), S2 (2,02{,}0), A2 (2,12{,}1), S3 (2,52{,}5), A3 (2,92{,}9). Si nota che S2 arriva appena prima di A2 (2,0<2,12{,}0<2{,}1): l'ordine di servizio dipende da questo.

Passo 2: la coda su C2C_2 (66 Mbit/s, 22 ms per pacchetto)

Ordine Pacchetto pronto inizio fine pronto in R2 (+5+5)
1 A1 1,31{,}3 1,31{,}3 3,33{,}3 8,38{,}3
2 S1 1,51{,}5 3,33{,}3 5,35{,}3 10,310{,}3
3 S2 2,02{,}0 5,35{,}3 7,37{,}3 12,312{,}3
4 A2 2,12{,}1 7,37{,}3 9,39{,}3 14,314{,}3
5 S3 2,52{,}5 9,39{,}3 11,311{,}3 16,316{,}3
6 A3 2,92{,}9 11,311{,}3 13,313{,}3 18,318{,}3

Grafico interattivo: Occupazione dei collegamenti (ms): su C2 (6 Mbit/s) i pacchetti di S (colore 1) e di A (colore 2) si alternano in ordine di arrivo in R1; i pacchetti di S, dopo C2, passano senza coda su C3 e C4 e arrivano a C a 17,55, 19,55 e 23,55 ms

C2C_2 è il collo di bottiglia (66 Mbit/s, contro 2424 e 1515 prima e 1212 dopo): S1 e S2 escono consecutivi (distanziati di 22 ms), mentre tra S2 e S3 c'è in mezzo il pacchetto A2 e la distanza sale a 44 ms.

Passo 3: C3C_3 (R2 → R3) e C4C_4 (R3 → C)

C3C_3 (1212 Mbit/s, 11 ms) è più veloce di C2C_2 e i pacchetti di S arrivano in R2 a 10,310{,}3, 12,312{,}3, 16,316{,}3 ms, già distanziati di più di 11 ms: nessuna coda. Anche C4C_4 (4848 Mbit/s) non fa coda.

Pacchetto C3C_3 pronto in R3 (+4+4) C4C_4 arrivo a C (+2+2)
S1 10,3→11,310{,}3\to11{,}3 15,315{,}3 15,3→15,5515{,}3\to15{,}55 17,55\mathbf{17{,}55}
S2 12,3→13,312{,}3\to13{,}3 17,317{,}3 17,3→17,5517{,}3\to17{,}55 19,55\mathbf{19{,}55}
S3 16,3→17,316{,}3\to17{,}3 21,321{,}3 21,3→21,5521{,}3\to21{,}55 23,55\mathbf{23{,}55}

Confronto con la soluzione ufficiale

Ufficiale: 17,5517{,}55, 19,5519{,}55, 23,5523{,}55 ms. Coincide. I valori non dipendono da C7C_7 e τ7\tau_7, come previsto.

Errori comuni

  • Provare a usare C7C_7 (incognito): il suo ramo non è nel cammino.
  • Ordinare la coda di C2C_2 per istante di partenza (S prima di A) invece che di arrivo: così A1 non passerebbe per primo e tutti i tempi cambierebbero.
  • Contare il tempo di trasmissione su C2C_2 come L/24L/24 Mbit/s (capacità del primo tratto).
  • Aggiungere coda su C3C_3 o C4C_4: sono più veloci di C2C_2.

(Verificato con Python: simulatore a eventi FIFO; S1 17,5517{,}55, S2 19,5519{,}55, S3 23,5523{,}55 ms; per i pacchetti di A: 10,310{,}3, 16,316{,}3, 20,320{,}3 ms a B.)

Versione ripasso

Dati. L=12000L=12000 bit; S→C: C1(24 Mbit/s,1 ms),C2(6,5),C3(12,4),C4(48,2)C_1(24\text{ Mbit/s},1\text{ ms}),C_2(6,5),C_3(12,4),C_4(48,2); A→B: C5(15,0,5),C2,C6(24,1,5)C_5(15,0{,}5),C_2,C_6(24,1{,}5). C7C_7 (R3–D) non è sul cammino. (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 →)

Regola. tinizio=max⁡(tpronto,tlibero)t_{inizio}=\max(t_{pronto},t_{libero}), +L/C+L/C, +τ+\tau; code FIFO per arrivo.

  • Arrivi in R1: A1 1,31{,}3; S1 1,51{,}5; S2 2,02{,}0; A2 2,12{,}1; S3 2,52{,}5; A3 2,92{,}9 ms.
  • C2C_2 (T=2T=2 ms): A1 →3,3\to3{,}3, S1 →5,3\to5{,}3, S2 →7,3\to7{,}3, A2 →9,3\to9{,}3, S3 →11,3\to11{,}3, A3 →13,3\to13{,}3; S in R2 a 10,3; 12,3; 16,310{,}3;\ 12{,}3;\ 16{,}3.
  • C3C_3 (T=1T=1 ms) e C4C_4 (0,250{,}25 ms) senza coda: S in R3 a 15,3; 17,3; 21,315{,}3;\ 17{,}3;\ 21{,}3.
  • Arrivi a C: 17,55; 19,55; 23,5517{,}55;\ 19{,}55;\ 23{,}55 ms (ufficiale: uguale).
  • Errore tipico: ordine sbagliato in R1 (S2 arriva a 2,02{,}0, prima di A2 a 2,12{,}1); coda dove non c'è.

Esercizi su questo argomento

Lezioni in cui compare

Teoria collegata