Salta al contenuto
Note per Studenti Esercizio - capacita e ritardo di propagazione di un collegamento con due messaggi echo

Esercizio - capacita e ritardo di propagazione di un collegamento con due messaggi echo

In questa pagina 5

Testo. Nodo AA è collegato a BB tramite il router R1R_1: il collegamento 1 (AA-R1R_1) ha C1=80C_1=80 kbit/s e τ1=10\tau_1=10 ms, il collegamento 2 (R1R_1-BB) ha capacità C2C_2 e ritardo di propagazione τ2\tau_2 incogniti. AA vuole stimare C2C_2 e τ2\tau_2 e invia due messaggi echo: M1M_1 di m1=1000m_1=1000 byte e M2M_2 di m2=1500m_2=1500 byte. Misura un tempo di andata e ritorno (Round-Trip Time, RTT) di 780780 ms per M1M_1 e di 11301130 ms per M2M_2. Le risposte di BB hanno la stessa lunghezza dei messaggi. Determinare C2C_2 e τ2\tau_2, trascurando la lunghezza delle intestazioni.

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 →, Livello di trasporto - porte e multiplexingIl livello di trasporto (transport layer) offre la comunicazione logica end-to-end tra processi applicativi di host diversi, ed è realizzato solo negli host finali, non nei router. Il livello di rete consegna al computer giusto (indirizzo IP), il trasporto consegna al processo giusto (numero di porta di 16 bit, 0-65535). Una porta più un indirizzo IP formano un socket; la quaterna (IP sorgente, porta sorgente, IP destinazione, porta destinazione) identifica una connessione. I servizi sono: comunicazione processo-processo, indirizzamento, incapsulamento/decapsulamento, multiplexing/demultiplexing e, se il protocollo è affidabile, controllo di errore, di flusso e di congestione. I protocolli sono UDP (senza connessione, inaffidabile), TCP (con connessione, affidabile) e SCTP (combina i due).Livello di trasporto - porte e multiplexing →.

Idea: due equazioni, due incognite

Il metodo è lo stesso che usa il comando ping per misurare un cammino: un messaggio di mm bit attraversa i due collegamenti in modalità store-and-forward (il router lo riceve per intero prima di rinviarlo), poi la risposta, lunga uguale, rifà il percorso al contrario. Su ogni collegamento il messaggio impiega il tempo di trasmissione m/Cm/C (per mettere sul filo tutti i bit) più il ritardo di propagazione τ\tau. Non c'è accodamento (non c'è altro traffico) né elaborazione.

Un giro completo costa quindi due volte (andata e ritorno) la somma dei due collegamenti: RTT(m)=2(mC1+τ1+mC2+τ2).\text{RTT}(m)=2\left(\frac m{C_1}+\tau_1+\frac m{C_2}+\tau_2\right). Il RTT dipende dalla lunghezza mm solo attraverso i termini m/Cm/C, mentre τ1+τ2\tau_1+\tau_2 ne è indipendente. Misurando con due lunghezze diverse la differenza dei RTT elimina i ritardi di propagazione (che non conosciamo) e lascia solo le capacità: è il motivo per cui l'esercizio fornisce due messaggi.

Visto in funzione di mm, l'RTT è una retta: la pendenza dipende dalle capacità, l'intercetta (RTT di un messaggio vuoto) è la sola propagazione 2(τ1+τ2)2(\tau_1+\tau_2). Con i risultati trovati sotto, la pendenza è 2(180 000+132 000)⋅8=0,72\left(\frac1{80\,000}+\frac1{32\,000}\right)\cdot8=0{,}7 ms per byte e l'intercetta 2(10+30)=802(10+30)=80 ms:

Grafico interattivo: RTT dell'echo in funzione della lunghezza m del messaggio (in byte): retta RTT = 80 ms + 0,7 ms/B · m, che passa per (1000 B, 780 ms) e (1500 B, 1130 ms); l'intercetta 80 ms è la propagazione di andata e ritorno 2·(10 + 30) ms

Passo 1: la capacità C2C_2 dalla differenza dei RTT

Passiamo ai bit: m1=1000⋅8=8000m_1=1000\cdot8=8000 bit, m2=1500⋅8=12 000m_2=1500\cdot8=12\,000 bit, C1=80 000C_1=80\,000 bit/s. Sottraendo le due equazioni RTT2−RTT1=2 (m2−m1)(1C1+1C2).\text{RTT}_2-\text{RTT}_1=2\,(m_2-m_1)\left(\frac1{C_1}+\frac1{C_2}\right). Numeri: RTT2−RTT1=1130−780=350\text{RTT}_2-\text{RTT}_1=1130-780=350 ms =0,35=0{,}35 s e m2−m1=4000m_2-m_1=4000 bit, quindi 0,35=2⋅4000(180 000+1C2) ⟹ 180 000+1C2=0,358000=4,375⋅10−5 s/bit.0{,}35=2\cdot4000\left(\frac1{80\,000}+\frac1{C_2}\right)\ \Longrightarrow\ \frac1{80\,000}+\frac1{C_2}=\frac{0{,}35}{8000}=4{,}375\cdot10^{-5}\ \text{s/bit}. Poiché 1/80 000=1,25⋅10−51/80\,000=1{,}25\cdot10^{-5}, resta 1/C2=3,125⋅10−51/C_2=3{,}125\cdot10^{-5} s/bit, cioè C2=32 000 bit/s=32 kbit/s.\boxed{C_2=32\,000\ \text{bit/s}=32\ \text{kbit/s}}.

Passo 2: il ritardo τ2\tau_2 da uno dei due RTT

Con C2C_2 noto usiamo, per esempio, RTT1=780\text{RTT}_1=780 ms, cioè metà giro =390=390 ms: 390=800080 000+τ1+800032 000+τ2=100+10+250+τ2 ms,390=\frac{8000}{80\,000}+\tau_1+\frac{8000}{32\,000}+\tau_2=100+10+250+\tau_2\ \text{ms}, quindi τ2=390−360=30\tau_2=390-360=30 ms. Controllo con M2M_2: metà giro =565=565 ms =12 00080 000+10+12 00032 000+τ2=150+10+375+30=565=\frac{12\,000}{80\,000}+10+\frac{12\,000}{32\,000}+\tau_2=150+10+375+30=565 ms ✓.

τ2=30 ms\boxed{\tau_2=30\ \text{ms}}

(Verificato con Python: C2=32C_2=32 kbit/s e τ2=30\tau_2=30 ms riproducono entrambi i RTT misurati.)

Confronto con la soluzione ufficiale

Le slide danno C2=32C_2=32 kbit/s e per il ritardo scrivono "m2=30m_2=30 Kbps": è un refuso evidente, il valore corretto è τ2=30\tau_2=30 ms (lo conferma il controllo con M2M_2 qui sopra).

Errori comuni

  • Contare una sola volta il percorso: il RTT include l'andata e il ritorno, quindi il fattore 2 davanti alla parentesi (e l'eco ha la stessa lunghezza, quindi ripaga gli stessi tempi di trasmissione).
  • Dimenticare il tempo di trasmissione sul collegamento 1: τ1\tau_1 da solo non basta, m1/C1=100m_1/C_1=100 ms è molto più grande di τ1=10\tau_1=10 ms.
  • Confondere byte e bit nelle capacità (le capacità sono in bit/s, i messaggi in byte).

Versione ripasso

Dati. AA-R1R_1-BB; C1=80C_1=80 kbit/s, τ1=10\tau_1=10 ms; C2C_2, τ2\tau_2 incogniti. Echo M1=1000M_1=1000 B (80008000 bit) e M2=1500M_2=1500 B (12 00012\,000 bit), risposta di pari lunghezza; RTT 780780 e 11301130 ms (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 →).

  • Store-and-forward, andata e ritorno: RTT(m)=2(mC1+τ1+mC2+τ2)\text{RTT}(m)=2\left(\frac m{C_1}+\tau_1+\frac m{C_2}+\tau_2\right); la differenza dei RTT elimina i τ\tau.
  • 1130−780=3501130-780=350 ms =2⋅4000(1C1+1C2)⇒1C1+1C2=4,375⋅10−5=2\cdot4000\left(\frac1{C_1}+\frac1{C_2}\right)\Rightarrow\frac1{C_1}+\frac1{C_2}=4{,}375\cdot10^{-5}; con 1C1=1,25⋅10−5\frac1{C_1}=1{,}25\cdot10^{-5} resta 3,125⋅10−53{,}125\cdot10^{-5}, cioè C2=32C_2=32 kbit/s.
  • Mezzo giro di M1M_1: 390=100+10+250+τ2⇒τ2=30390=100+10+250+\tau_2\Rightarrow\tau_2=30 ms. Controllo con M2M_2: 565=150+10+375+30565=150+10+375+30.
  • Slide: refuso "m2=30m_2=30 Kbps" per τ2=30\tau_2=30 ms.

Errori: dimenticare il ritorno (fattore 22); trascurare m1/C1=100m_1/C_1=100 ms; confondere bit e byte.

Lezioni in cui compare

Teoria collegata