Esercizio - Stima di capacità e ritardo del collegamento R3-D con due ping
In questa pagina 5
Testo (tema d'esame, sessione di febbraio, esercizio 1, domanda 2). Nella rete della figura, con router R1, R2, R3 a commutazione di pacchetto a datagramma:
| Collegamento | Estremi | Capacità | Propagazione |
|---|---|---|---|
| B – R2 | Mbit/s | ms | |
| R2 – R3 | Mbit/s | ms | |
| R3 – D | incognita | incognita |
Si vogliono stimare la capacità e il ritardo di propagazione del collegamento R3–D. Da B a D si mandano due ping consecutivi (senza altro traffico): il primo da B, il secondo da B. L'RTT misurato (dall'invio del ping alla ricezione dell'ACK) è ms e ms. Ritardi di elaborazione e di coda trascurabili, intestazioni trascurabili, ACK di lunghezza trascurabile.
Le altre domande dello stesso esercizio sono svolte in Esercizio - Tre pacchetti del server S verso C con traffico concorrente (domanda 1) e in Esercizio - Go-Back-N su un collegamento e stop-and-wait sull'altro, messaggio da 300 KB (domande 3 e 4).
Teoria usata: 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 →, 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 →, Protocollo ICMPIPv4 non ha meccanismi per segnalare o correggere gli errori né per interrogare host e router: li fornisce l'ICMP (Internet Control Message Protocol), un protocollo di rete i cui messaggi viaggiano dentro datagrammi IP con campo Protocol $=1$. I messaggi sono di errore (destination unreachable, tipo 3; time exceeded, tipo 11; redirect, tipo 5; parameter problem, tipo 12), sempre inviati alla sorgente originale e con l'intestazione IP più i primi 8 byte del datagramma che ha causato l'errore, oppure di interrogazione (echo request 8 e reply 0, timestamp 13-14). ICMP segnala ma non corregge. Con l'echo si fanno ping (RTT) e scoperta dell'MTU (bit D, codice 4, payload massimo $1500-20-8=1472$ byte); con time exceeded e port unreachable si fa traceroute ($n+1$ messaggi con TTL crescente). Attacchi: smurf e redirect.Protocollo ICMP → (il ping è un messaggio echo di ICMP).
Idea
Il ping percorre B → R2 → R3 → D: tre collegamenti (, , ) in store-and-forward, quindi i tre tempi di trasmissione si sommano. Il ritorno è un ACK di lunghezza trascurabile: conta solo la propagazione. Quindi per un ping da bit:
Le incognite sono e ; i due ping danno due equazioni lineari. Visto in funzione di , l'RTT è una retta: la pendenza è la somma (secondi per bit) e l'intercetta, cioè l'RTT di un messaggio di lunghezza zero, è la sola propagazione di andata e ritorno . Due punti determinano una retta, ed è per questo che bastano due ping.
Grafico interattivo: RTT del ping in funzione della lunghezza L (in byte): retta di pendenza 1,333 µs per byte (somma degli inversi delle tre capacità) e intercetta 19 ms (= 2·(1,5 + 4 + 4) ms, solo propagazione); passa per (600 B, 19,8 ms) e (1500 B, 21 ms)
Controllo della pendenza: µs per bit, cioè µs per byte; dalla retta ms/B ✓.
Valori noti
- B bit: ms; ms.
- B bit: ms; ms.
- ms.
Calcolo
Primo ping. ms.
Secondo ping. ms.
Differenza. Sottraendo membro a membro le due equazioni (stesso termine in entrambe), si cancella:
Ritardo. Con Mbit/s: ms, quindi ms e
Verifica sul secondo ping: ms; ms ✓.
Confronto con la soluzione ufficiale
Ufficiale: Mbit/s, ms. Coincide. Questi sono anche i valori usati nelle domande 3 e 4.
Errori comuni
- Dimenticare che l'ACK torna sull'intero cammino (propagazioni ): la parte fissa dell'RTT è , non .
- Contare il tempo di trasmissione una volta sola invece che su ciascuno dei tre collegamenti.
- Attribuire tutta la differenza degli RTT ( ms) a : i bit in più si trasmettono su tutti e tre i collegamenti, e a spettano solo ms ( ms a , ms a ).
- Confondere byte e bit ( B bit).
(Verificato con Python: risolto il sistema lineare; Mbit/s e ms riproducono e ms.)
Versione ripasso
- bit: ms.
- bit: ms.
- Differenza: ms Mbit/s; ms.
- Errore tipico: propagazione del ritorno dimenticata; byte e bit.