Salta al contenuto
Note per Studenti Esercizio - Pacchetti di C verso E e G con traffico concorrente

Esercizio - Pacchetti di C verso E e G 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 dell'host A ha due pacchetti diretti a D, D; quella dell'host B un pacchetto diretto a F; quella dell'host C due pacchetti diretti rispettivamente a E e G. Tutti i pacchetti sono lunghi L=1500L=1500 byte e le trasmissioni partono a t=0t=0 in tutti gli host. Calcolare l'istante di arrivo dei soli due pacchetti di C.

Topologia: A, B e C sono collegati al router R1; R1 – R2 – R3 sono in catena; D ed E sono collegati a R2; F e G sono collegati a R3.

Collegamento Estremi Capacità Propagazione
C1C_1 A – R1 2424 Mbit/s 11 ms
C5C_5 B – R1 2020 Mbit/s 11 ms
C6C_6 C – R1 1515 Mbit/s 0,50{,}5 ms
C2C_2 R1 – R2 66 Mbit/s 44 ms
C7C_7 R2 – D 2424 Mbit/s 44 ms
C8C_8 R2 – E 44 Mbit/s 1,51{,}5 ms
C3C_3 R2 – R3 1212 Mbit/s 44 ms
C4C_4 R3 – F 2424 Mbit/s 22 ms
C9C_9 R3 – G 2424 Mbit/s 66 ms

Cammini: A→D: C1,C2,C7C_1,C_2,C_7; B→F: C5,C2,C3,C4C_5,C_2,C_3,C_4; C→E: C6,C2,C8C_6,C_2,C_8; C→G: C6,C2,C3,C9C_6,C_2,C_3,C_9. Il traffico di A e B serve solo a occupare C2C_2.

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

Regola di calcolo

Per ogni collegamento: 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. Le code sono FIFO, nell'ordine in cui i pacchetti sono arrivati per intero al router. Con L=1500⋅8=12000L=1500\cdot8=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 C6C_6 C2C_2 C8C_8 C3C_3 C9C_9
T=L/CT=L/C (ms) 0,50{,}5 0,60{,}6 0,80{,}8 22 33 11 0,50{,}5

Passo 1: dagli host a R1

Gli host trasmettono i pacchetti uno dietro l'altro; il tempo di arrivo in R1 è tfine+τt_{fine}+\tau:

Pacchetto fine trasmissione arrivo in R1
C→E (primo di C) 0,80{,}8 1,31{,}3
A1 0,50{,}5 1,51{,}5
B→F 0,60{,}6 1,61{,}6
A2 1,01{,}0 2,02{,}0
C→G (secondo di C) 1,61{,}6 2,12{,}1

(ms; tabella già ordinata per arrivo.) Nessun pacchetto aspetta in questo tratto: ogni host usa un collegamento suo.

Passo 2: la coda su C2C_2 (R1 → R2), il collo di bottiglia

Tutti e cinque i pacchetti devono passare da C2C_2 (66 Mbit/s, 22 ms ciascuno). R1 li serve nell'ordine di arrivo:

Ordine Pacchetto pronto inizio fine pronto in R2 (+4+4)
1 C→E 1,31{,}3 1,31{,}3 3,33{,}3 7,37{,}3
2 A1 1,51{,}5 3,33{,}3 5,35{,}3 9,39{,}3
3 B→F 1,61{,}6 5,35{,}3 7,37{,}3 11,311{,}3
4 A2 2,02{,}0 7,37{,}3 9,39{,}3 13,313{,}3
5 C→G 2,12{,}1 9,39{,}3 11,311{,}3 15,315{,}3

Il pacchetto C→G aspetta 9,3−2,1=7,29{,}3-2{,}1=7{,}2 ms in coda: è l'ultimo ad arrivare e deve cedere il passo agli altri quattro. Il diagramma riassume l'occupazione di C2C_2 e dei collegamenti successivi usati dai pacchetti di C (il colore 2 sono i pacchetti di A, il colore 3 quello di B):

Grafico interattivo: Occupazione dei collegamenti (ms): su C2 (6 Mbit/s) i cinque pacchetti passano uno dopo l'altro in ordine di arrivo in R1; il pacchetto di C verso G (colore 1) è l'ultimo e aspetta fino a 9,3 ms; C→E (colore 1) esce subito su C8 e arriva a 11,8 ms

Passo 3: il pacchetto verso E

In R2 il pacchetto parte su C8C_8 (44 Mbit/s, 33 ms). L'interfaccia C8C_8 è libera (nessun altro la usa): inizio 7,37{,}3, fine 10,310{,}3, arrivo a E a 10,3+1,5=11,810{,}3+1{,}5=\mathbf{11{,}8} ms.

Passo 4: il pacchetto verso G

Pronto in R2 a 15,315{,}3 ms, esce su C3C_3 (1212 Mbit/s). Controllo della coda su C3C_3: l'unico altro pacchetto che la usa è B→F, arrivato in R2 a 11,311{,}3 e già uscito a 12,312{,}3; quindi C3C_3 è libera a 15,315{,}3 e non c'è attesa. C3C_3: 15,3→16,315{,}3\to16{,}3, pronto in R3 a 16,3+4=20,316{,}3+4=20{,}3. C9C_9: 20,3→20,820{,}3\to20{,}8 (tempo 0,50{,}5 ms), arrivo a G a 20,8+6=26,820{,}8+6=\mathbf{26{,}8} ms.

Pacchetto di C arrivo a destinazione
verso E 11,811{,}8 ms
verso G 26,826{,}8 ms

(Per completezza: A1 arriva a D a 13,813{,}8 ms, A2 a 17,817{,}8 ms, B→F a 18,818{,}8 ms.)

Confronto con la soluzione ufficiale

Ufficiale: 11,811{,}8 ms (verso E) e 26,826{,}8 ms (verso G). Coincide. Il testo ufficiale parla di "first packet towards E" e "first packet towards G": sono i due pacchetti di C, uno per destinazione.

Errori comuni

  • Servire C2C_2 nell'ordine di partenza dagli host invece che di arrivo in R1: C→E e C→G non arrivano insieme (distano 0,80{,}8 ms).
  • Dimenticare che il secondo pacchetto di C parte solo quando il primo è uscito dall'host (a 0,80{,}8 ms, non a 00).
  • Contare in coda su C3C_3 anche i pacchetti di A (vanno su C7C_7, non su C3C_3).
  • Dimenticare di sommare la propagazione di ogni salto, anche dell'ultimo.

(Verificato con Python: simulatore a eventi FIFO; C→E 11,811{,}8 ms, C→G 26,826{,}8 ms, A1 13,813{,}8, A2 17,817{,}8, B→F 18,818{,}8.)

Versione ripasso

Dati. L=12000L=12000 bit; A: D,D; B: F; C: E,G. Cammini C→E: C6(15,0,5),C2(6,4),C8(4,1,5)C_6(15,0{,}5),C_2(6,4),C_8(4,1{,}5); C→G: C6,C2,C3(12,4),C9(24,6)C_6,C_2,C_3(12,4),C_9(24,6). (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}), tfine=+L/Ct_{fine}=+L/C, poi +τ+\tau; code FIFO per ordine di arrivo.

  • Arrivi in R1: C→E 1,31{,}3; A1 1,51{,}5; B 1,61{,}6; A2 2,02{,}0; C→G 2,12{,}1 ms.
  • C2C_2 (T=2T=2 ms) in ordine: C→E 1,3–3,31{,}3\text{–}3{,}3, A1 →5,3\to5{,}3, B →7,3\to7{,}3, A2 →9,3\to9{,}3, C→G 9,3–11,39{,}3\text{–}11{,}3; in R2 a 7,3; 9,3; 11,3; 13,3; 15,37{,}3;\ 9{,}3;\ 11{,}3;\ 13{,}3;\ 15{,}3.
  • E: C8C_8 7,3→10,37{,}3\to10{,}3, +1,5=11,8+1{,}5=\mathbf{11{,}8} ms.
  • G: C3C_3 libera, 15,3→16,315{,}3\to16{,}3, in R3 a 20,320{,}3; C9C_9 →20,8\to20{,}8, +6=26,8+6=\mathbf{26{,}8} ms.
  • Ufficiale: uguale.
  • Errore tipico: ordine di servizio sbagliato in R1; secondo pacchetto di C contato come partito a t=0t=0.

Esercizi su questo argomento

Lezioni in cui compare

Teoria collegata