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 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 byte, trasmissioni che partono a 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 |
|---|---|---|---|
| S – R1 | Mbit/s | ms | |
| A – R1 | Mbit/s | ms | |
| R1 – R2 | Mbit/s | ms | |
| R2 – B | Mbit/s | ms | |
| R2 – R3 | Mbit/s | ms | |
| R3 – C | Mbit/s | ms | |
| 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 non serve
Nel testo e sono "?". Non servono: 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: ;
- A→B: (condivide con S solo ).
Regola di calcolo
, , il pacchetto è pronto al nodo successivo a . Code FIFO per ordine di arrivo del pacchetto completo al router. Con bit (e , per esempio s ms su ):
| Collegamento | |||||
|---|---|---|---|---|---|
| (ms) |
Passo 1: arrivi in R1
S manda i suoi pacchetti a intervalli di ms, A a intervalli di ms:
| S1 | S2 | S3 | A1 | A2 | A3 |
|---|---|---|---|---|---|
Ordine di arrivo in R1: A1 (), S1 (), S2 (), A2 (), S3 (), A3 (). Si nota che S2 arriva appena prima di A2 (): l'ordine di servizio dipende da questo.
Passo 2: la coda su ( Mbit/s, ms per pacchetto)
| Ordine | Pacchetto | pronto | inizio | fine | pronto in R2 () |
|---|---|---|---|---|---|
| 1 | A1 | ||||
| 2 | S1 | ||||
| 3 | S2 | ||||
| 4 | A2 | ||||
| 5 | S3 | ||||
| 6 | A3 |
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
è il collo di bottiglia ( Mbit/s, contro e prima e dopo): S1 e S2 escono consecutivi (distanziati di ms), mentre tra S2 e S3 c'è in mezzo il pacchetto A2 e la distanza sale a ms.
Passo 3: (R2 → R3) e (R3 → C)
( Mbit/s, ms) è più veloce di e i pacchetti di S arrivano in R2 a , , ms, già distanziati di più di ms: nessuna coda. Anche ( Mbit/s) non fa coda.
| Pacchetto | pronto in R3 () | arrivo a C () | ||
|---|---|---|---|---|
| S1 | ||||
| S2 | ||||
| S3 |
Confronto con la soluzione ufficiale
Ufficiale: , , ms. Coincide. I valori non dipendono da e , come previsto.
Errori comuni
- Provare a usare (incognito): il suo ramo non è nel cammino.
- Ordinare la coda di 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 come Mbit/s (capacità del primo tratto).
- Aggiungere coda su o : sono più veloci di .
(Verificato con Python: simulatore a eventi FIFO; S1 , S2 , S3 ms; per i pacchetti di A: , , ms a B.)
Versione ripasso
Dati. Pacchetti da B bit, partiti a . Il server S ha tre pacchetti per C; l'host A ne ha tre per B. Collegamenti del cammino S→C: ( Mbit/s, ms), ( Mbit/s, ms), ( Mbit/s, ms), ( Mbit/s, ms). Cammino A→B: ( Mbit/s, ms), , ( Mbit/s, ms). Il collegamento (R3–D) non è sul cammino, quindi i suoi dati mancanti non servono (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. , poi e . Code FIFO nell'ordine di arrivo del pacchetto completo.
Passo 1, arrivi in R1. S1 a , S2 a , S3 a ms; A1 a , A2 a , A3 a ms. Ordine: A1, S1, S2, A2, S3, A3.
Passo 2, coda su (collo di bottiglia, ms). Il servizio segue l'ordine di arrivo: A1 da a ; S1 da a ; S2 da a ; A2 da a ; S3 da a ; A3 da a . I pacchetti di S sono pronti in R2 a , e ms, distanziati di più di ms.
Passo 3, e . Nessuna coda: S1 su da a , pronto in R3 a ; su da a , arrivo a C a ms. S2: , poi , arrivo a ms. S3: , poi , arrivo a ms.
Risultati ufficiali. , e ms: coincidono.
Errori tipici.
- Ordinare la coda di per partenza dagli host invece che per arrivo in R1: S2 () passa prima di A2 ().
- Contare il tempo di trasmissione su con la capacità del primo tratto ( Mbit/s).
- Aggiungere code su o : sono più veloci di .
- Usare , che non è sul cammino.