Salta al contenuto
Note per Studenti Analisi delle prestazioni di rete

Analisi delle prestazioni di rete

In questa pagina 9

Unità di misura: la prima trappola

  • bit/s (anche bps o b/s): bit trasmessi o ricevuti al secondo. 11 kbit/s =103=10^3 bit/s, 11 Mbit/s =106=10^6 bit/s, 11 Gbit/s =109=10^9 bit/s, 11 Tbit/s =1012=10^{12} bit/s. Nelle reti i prefissi sono potenze di 10, non di 2.
  • byte/s (B/s o Bps): 11 B =8=8 bit, quindi 11 kB/s =8=8 kbit/s.

Nei compiti la maiuscola o minuscola nell'unità è spesso il tranello (MB contro Mb, kB contro kbit): convertire sempre tutto in bit e secondi prima di calcolare.

Esempio. Un file da 2525 MB (megabyte) vale 25⋅8=20025\cdot8=200 Mbit; a 100100 Mbit/s richiede 200/100=2200/100=2 s, non 0,250{,}25 s.

Le metriche principali

Famiglia Metriche
Traffico bitrate, throughput, goodput
Ritardo ritardo end-to-end, jitter, RTT
Capacità del tubo prodotto banda-ritardo (BDP)
Affidabilità PER, PDR, PLR

Bitrate e larghezza di banda

La parola «banda» (bandwidth) ha due significati, da non confondere:

I due significati sono legati dalla capacità di canale: su un canale con rumore gaussiano bianco, con rapporto segnale-rumore SNR (rapporto tra potenza del segnale e del rumore, da usare in rapporto lineare e non in dB: Decibel, dBW e dBmIl decibel misura un rapporto tra due potenze su scala logaritmica: $[x]{dB}=10\log{10}x$ (per le ampiezze $20\log_{10}$). Prodotti diventano somme e rapporti differenze, quindi guadagni e attenuazioni in cascata si sommano. Per una potenza assoluta si usa un riferimento: $P_{dBW}=10\log_{10}P_W$, $P_{dBm}=10\log_{10}P_{mW}=P_{dBW}+30$. Valori da ricordare: $3\ \text{dB}\approx\times2$, $10\ \text{dB}=\times10$, $20\ \text{dB}=\times100$.Decibel, dBW e dBm →), si può trasmettere senza errori solo se R0<C=Wlog⁡2(1+SNR)R_0<C=W\log_2(1+\text{SNR}) (Capacità di canale - canale binario simmetrico, a cancellazione e AWGNLa capacità $C=\max_{p_x}I(x;y)$ è il massimo di informazione mutua tra ingresso e uscita del canale; per il teorema di Shannon si può comunicare con probabilità d'errore arbitrariamente piccola se e solo se il rate è minore di $C$. Per il canale binario simmetrico $C=1-H_2(p)$ bit per uso (ingresso uniforme), per il canale a cancellazione $C=1-\varepsilon$, per l'AWGN $C=\frac12\log_2(1+\text{SNR})$ per uso reale, cioè $C=B\log_2(1+\text{SNR})$ bit/s su una banda $B$. Il limite $R_b<C$ dà il minimo $\frac{E_b}{N_0}\ge\frac{2^\nu-1}\nu$ ($-1{,}59$ dB per $\nu\to0$).Capacità di canale - canale binario simmetrico, a cancellazione e AWGN →). Esempio: W=1W=1 MHz e SNR =30=30 dB =103=10^{3} (rapporto lineare): C=106log⁡2(1001)=9,97C=10^{6}\log_2(1001)=9{,}97 Mbit/s. Per avere più bitrate servono più banda WW o più SNR.

Throughput e goodput

Definizione (throughput). Il throughput SS [bit/s, pacchetti/s, pacchetti/slot] è il ritmo medio con cui le unità di informazione (PDU) dell'utente sono effettivamente consegnate con successo all'entità pari di destinazione. Dipende dall'intervallo di tempo su cui si calcola. Vale sempre S≤R0S\le R_0.

Perché SS è minore di R0R_0:

  1. l'utente può non saturare il collegamento (trasmette meno di quanto potrebbe);
  2. il collegamento può essere congestionato o condiviso tra più flussi;
  3. possono esserci ritrasmissioni di pacchetti già inviati (per affidabilità): i bit ritrasmessi occupano il collegamento ma non portano informazione nuova al destinatario;
  4. i protocolli di accesso al mezzo introducono tempi morti (Protocolli di accesso multiplo - ALOHA e CSMAQuando più stazioni condividono lo stesso mezzo serve un protocollo di accesso (MAC) che decida chi trasmette. Accesso casuale: ALOHA puro (si trasmette subito, tempo vulnerabile $2t_F$), slotted ALOHA (si parte solo a inizio slot, vulnerabile $t_F$), CSMA (si ascolta prima di parlare, vulnerabile $\tau_p$) con le varianti 1-persistent, non persistent e p-persistent, CSMA/CD (rileva la collisione mentre trasmette: serve $t_F\ge2\tau_p$, quindi un frame minimo) e CSMA/CA del Wi-Fi (IFS, finestra di contesa con backoff esponenziale, ACK, RTS/CTS e NAV). Accesso controllato: prenotazione, polling, token. Canalizzazione: FDMA, TDMA, OFDMA, CDMA, SDMA.Protocolli di accesso multiplo - ALOHA e CSMA →).

Esempio. Un protocollo sopra il livello fisico offre 10001000 bit/s; se rivela errori e chiede di ritrasmettere 1010 bit ogni 10001000, il throughput scende a 990990 bit/s.

Definizione (goodput). Il goodput è il throughput al livello applicazione: conta solo i bit utili consegnati all'applicazione, senza le intestazioni aggiunte dai livelli inferiori e senza le ritrasmissioni. Il rapporto tra i bit aggiunti dalle intestazioni e i bit utili è l'overhead.

Esempio. L'applicazione genera un pacchetto da 12001200 B ogni 1010 ms; i livelli inferiori aggiungono 6060 B, quindi al livello fisico passano 12601260 B ogni 1010 ms. Throughput al PHY =1260⋅8/0,01=1,008=1260\cdot8/0{,}01=1{,}008 Mbit/s; goodput all'applicazione =1200⋅8/0,01=960=1200\cdot8/0{,}01=960 kbit/s; overhead =60/1200=5 %=60/1200=5\,\%. Si veda Esercizio - Throughput al livello fisico e goodput all'applicazione.

Collo di bottiglia (bottleneck)

Proprietà (throughput di un percorso). Su un percorso con collegamenti di bitrate R1,…,RnR_1,\dots,R_n in serie, il throughput è S=min⁡{R1,…,Rn},S=\min\{R_1,\dots,R_n\}, cioè quello del collegamento collo di bottiglia.

Perché: se Rs<RcR_s<R_c i bit pompati dal server (a RsR_s) passano attraverso il router e arrivano al client a RsR_s. Se Rc<RsR_c<R_s il router non riesce a inoltrare i bit così in fretta come li riceve: escono a RcR_c e quel che non esce si accumula in coda.

Esempio. Server Rs=2R_s=2 Mbit/s, client Rc=1R_c=1 Mbit/s: throughput =min⁡{2,1}=1=\min\{2,1\}=1 Mbit/s.

Attenzione ai collegamenti condivisi. Se 1010 server e 1010 client scaricano attraverso un collegamento comune di capacità R=5R=5 Mbit/s, con Rs=2R_s=2 Mbit/s e Rc=1R_c=1 Mbit/s, la risposta «il collo di bottiglia è l'accesso del client perché Rc<Rs<RR_c<R_s<R» è sbagliata: il collegamento comune divide la sua capacità in parti uguali tra i 1010 scaricamenti, quindi ognuno ne riceve 5/10=0,55/10=0{,}5 Mbit/s <Rc=1<R_c=1 Mbit/s, e il collegamento condiviso è il collo di bottiglia: ogni download ha 500500 kbit/s.

Il ritardo end-to-end

Formula (ritardo end-to-end). Il tempo per consegnare un messaggio al destinatario, dall'istante in cui il primo bit esce dalla sorgente, è la somma di quattro contributi: dtot=dproc+dqueue+dtrans+dprop.d_{tot}=d_{proc}+d_{queue}+d_{trans}+d_{prop}.

Ognuno ha una causa e un rimedio diversi. (Nelle slide lo stesso ritardo si indica con de2ed_{e2e}.)

Ritardo di elaborazione dprocd_{proc}: tempo con cui un router o l'host di destinazione riceve il pacchetto dalla porta di ingresso, ne toglie l'intestazione (PCI), fa il controllo d'errore e lo consegna alla porta di uscita (router) o al livello superiore (host). Può variare da pacchetto a pacchetto ma si calcola in media ed è spesso trascurabile. Si riduce con meccanismi di instradamento efficienti.

Ritardo di accodamento dqueued_{queue}: tempo che un pacchetto passa nelle code di ingresso e di uscita di un router. Dipende non solo dalle caratteristiche dei collegamenti ma dall'intensità del traffico. È solo in parte controllabile (priorità del traffico, scheduling, controllo di ammissione delle chiamate). Per calcolarlo si modella il collegamento come un sistema a coda: Introduzione alla teoria delle codeUn sistema a coda (QS) è fatto da un processo di arrivi (di Poisson, tasso $\lambda$), una coda e uno o più servitori con tasso di servizio $\mu$. Carico offerto $G=\lambda/\mu$, fattore di carico $\rho=\lambda/(m\mu)$: il sistema è stabile solo se $\rho<1$, e allora il throughput è $\lambda$ (altrimenti è $m\mu$). Legge di Little: $E[x]=\lambda E[s]$, valida per qualsiasi disciplina. Coda M/M/1: $E[x]=\frac{\rho}{1-\rho}$, $E[s]=\frac{1/\mu}{1-\rho}$, $E[w]=\frac{\rho/\mu}{1-\rho}$. Con servizio deterministico (M/D/1, caso particolare di Pollaczek-Khinchin): $E[w]=\frac{\rho}{2\mu(1-\rho)}$. Il ritardo cresce senza limite quando $\rho\to1$.Introduzione alla teoria delle code →.

Formula (ritardo di trasmissione). Per mettere sulla linea tutti i bit di un pacchetto di lunghezza LL (un bit dopo l'altro, dal primo all'ultimo) a bitrate RR: dtrans=LR.d_{trans}=\frac{L}{R}.

Esempio. Pacchetto di 1010 kbit su Fast Ethernet a 100100 Mbit/s: dtrans=104/108=100 μsd_{trans}=10^4/10^8=100\ \mu\text{s}. (La slide scrive «10 Mbps» ma il calcolo 10 000/100 000 000=100 μ10\,000/100\,000\,000=100\ \mus corrisponde a 100100 Mbit/s; a 1010 Mbit/s verrebbe 11 ms.) Si riduce aumentando il bitrate del collegamento.

Formula (ritardo di propagazione). Tempo che un bit impiega per andare da un estremo all'altro del mezzo, a velocità vv su distanza dd: dprop=dv.d_{prop}=\frac{d}{v}. Nel vuoto v=c=3⋅108v=c=3\cdot10^{8} m/s; nei mezzi cablati v≈2⋅108v\approx2\cdot10^{8} m/s (rame e fibra: la luce nel mezzo va a c/nc/n, con indice di rifrazione n≈1,5n\approx1{,}5, quindi 3⋅108/1,5=2⋅1083\cdot10^8/1{,}5=2\cdot10^8 m/s; si veda Mezzi di trasmissione - cavi, fibre e collegamenti radioIl mezzo di trasmissione fissa l'attenuazione $a_{ch}$ nel link budget. Nei cavi $H_{ch}=e^{-\gamma d}$ e l'attenuazione in dB cresce con la distanza ($a=\tilde a,d$, dB/km) e con $\sqrt f$. Le fibre ottiche hanno banda larghissima (10¹⁴-10¹⁵ Hz), attenuazione bassa in tre finestre di lunghezza d'onda e limitazione dalla dispersione. Nei collegamenti radio vale la formula di Friis, $g_{ch}=g_{tx}g_{rx}\left(\frac\lambda{4\pi d}\right)^2$, cioè $a_{ch}=32{,}4+20\log_{10}d_{km}+20\log_{10}f_{MHz}-G_{tx}-G_{rx}$ dB.Mezzi di trasmissione - cavi, fibre e collegamenti radio →).

Esempio. Cavo transoceanico di 60006000 km: dprop=6⋅106/2⋅108=30d_{prop}=6\cdot10^{6}/2\cdot10^{8}=30 ms. Il ritardo di propagazione non si può ridurre («è la fisica»); è trascurabile solo nelle reti terrestri corte, ma non nei collegamenti satellitari, nei cavi lunghi e nei collegamenti ad altissima velocità.

Quali termini tenere (regola pratica)

  • Di solito si trascurano dprocd_{proc} e dqueued_{queue}.
  • dpropd_{prop} si trascura per le reti radio terrestri a corto raggio, non per i satelliti e per i cavi lunghi.
  • Se il testo dà la lunghezza del collegamento o il ritardo di propagazione, quel termine va incluso.

Attraversare più collegamenti

Con kk collegamenti uguali in serie e un solo pacchetto, ogni router riceve tutto il pacchetto prima di inoltrarlo (store-and-forward, vedi 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 →), quindi ogni collegamento aggiunge dtrans+dpropd_{trans}+d_{prop}: dtot=k(LR+dv)(senza elaborazione neˊ coda).d_{tot}=k\left(\frac LR+\frac dv\right)\quad(\text{senza elaborazione né coda}).

Esempio. k=10k=10 collegamenti da 1010 km a 100100 Mbit/s, pacchetto 12601260 B (con v=2⋅108v=2\cdot10^{8} m/s). Passo per passo, su un collegamento:

  • il pacchetto vale 1260⋅8=10 0801260\cdot8=10\,080 bit (si converte prima in bit);
  • trasmissione: dtrans=L/R=10 080/108=1,008⋅10−4d_{trans}=L/R=10\,080/10^{8}=1{,}008\cdot10^{-4} s =100,8 μ=100{,}8\ \mus;
  • propagazione: dprop=d/v=104/(2⋅108)=5⋅10−5d_{prop}=d/v=10^{4}/(2\cdot10^{8})=5\cdot10^{-5} s =50 μ=50\ \mus;
  • un collegamento: 100,8+50=150,8 μ100{,}8+50=150{,}8\ \mus; dieci in serie, perché ogni router aspetta il pacchetto intero: dtot=10⋅150,8=1508 μd_{tot}=10\cdot150{,}8=1508\ \mus.

Il ritardo cresce linearmente col numero di collegamenti, con pendenza dtrans+dpropd_{trans}+d_{prop} per collegamento (Esercizio - Ritardo end-to-end su 10 collegamenti e BDP):

Grafico interattivo: Ritardo end-to-end d_tot = k·150,8 µs in funzione del numero k di collegamenti in serie (pacchetto da 1260 B, 100 Mbit/s, 10 km per collegamento): per k = 10 vale 1508 µs

Jitter

Definizione (jitter). Il jitter JJ [s] è la variazione del ritardo tra pacchetti di uno stesso flusso: pacchetti diversi incontrano ritardi diversi (code diverse), e l'applicazione al ricevitore, se è sensibile al tempo, ne soffre.

Un ritardo costante non è un problema per un video in streaming, ma congelare l'immagine a metà riproduzione è molto fastidioso. Con un jitter grande occorrono un ritardo di riproduzione (playout delay) lungo e buffer di riproduzione grandi: il contenuto viene bufferizzato per un po' prima di partire. La variabilità del ritardo di coda si studia con la formula di Pollaczek-Khinchin per le code M/G/1 (Introduzione alla teoria delle codeUn sistema a coda (QS) è fatto da un processo di arrivi (di Poisson, tasso $\lambda$), una coda e uno o più servitori con tasso di servizio $\mu$. Carico offerto $G=\lambda/\mu$, fattore di carico $\rho=\lambda/(m\mu)$: il sistema è stabile solo se $\rho<1$, e allora il throughput è $\lambda$ (altrimenti è $m\mu$). Legge di Little: $E[x]=\lambda E[s]$, valida per qualsiasi disciplina. Coda M/M/1: $E[x]=\frac{\rho}{1-\rho}$, $E[s]=\frac{1/\mu}{1-\rho}$, $E[w]=\frac{\rho/\mu}{1-\rho}$. Con servizio deterministico (M/D/1, caso particolare di Pollaczek-Khinchin): $E[w]=\frac{\rho}{2\mu(1-\rho)}$. Il ritardo cresce senza limite quando $\rho\to1$.Introduzione alla teoria delle code →).

Round Trip Time (RTT)

Definizione (RTT). Il round trip time di una connessione A→BA\to B è il tempo che passa da quando un pacchetto parte da AA a quando ad AA torna il corrispondente riscontro (ACK): RTT=dproc+dqueue+dtrans+dprop⏟A→B, dati+dproc+dqueue+dtrans+dprop⏟B→A, ACK.RTT=\underbrace{d_{proc}+d_{queue}+d_{trans}+d_{prop}}_{A\to B,\ \text{dati}}+\underbrace{d_{proc}+d_{queue}+d_{trans}+d_{prop}}_{B\to A,\ \text{ACK}}. Trascurando elaborazione e coda, con tFt_F tempo di trasmissione del frame, tAt_A dell'ACK e τp\tau_p propagazione in un verso: RTT=tF+tA+2τpRTT=t_F+t_A+2\tau_p. Se l'ACK è piccolo (tA≈0t_A\approx0) e il frame piccolo: RTTmin≈2τpRTT_{min}\approx2\tau_p.

L'ACK è in genere molto più piccolo dei dati (altrimenti è inefficiente). Attenzione: RTT non è il ritardo end-to-end. Il ritardo end-to-end è il tempo che impiega qualcosa a andare da sorgente a destinazione; l'RTT è il tempo di una richiesta e della sua risposta.

Esempio. Frame di 1010 kbit su collegamento a 1010 Mbit/s (tF=1t_F=1 ms), ACK di 100100 bit (tA=10 μt_A=10\ \mus), propagazione τp=5\tau_p=5 ms: RTT=1+0,01+2⋅5=11,01RTT=1+0{,}01+2\cdot5=11{,}01 ms.

Capacità del tubo: prodotto banda-ritardo

Definizione (BDP). Il bandwidth-delay product è il massimo numero medio di bit che si possono trasferire in un intervallo pari al ritardo, cioè i bit che «riempiono» il collegamento: BDP [bit]=throughput massimo [bit/s]⋅ritardo [s].\text{BDP [bit]}=\text{throughput massimo [bit/s]}\cdot\text{ritardo [s]}. Spesso si definisce con l'RTT: allora è il numero di bit che si possono trasmettere senza aver ancora ricevuto riscontro (unacknowledged). In pacchetti: BDP/F\text{BDP}/F (capacità del tubo, pipe capacity).

Immagine: bitrate 55 bit/s e ritardo 55 s; dopo 55 s il primo gruppo di 55 bit arriva e nel tubo ce ne sono 5⋅5=255\cdot5=25. Non sempre conviene «usare» tutto il BDP.

Esempio. Collegamento a 1010 Mbit/s con τp=5\tau_p=5 ms (RTT≈2τp=10RTT\approx2\tau_p=10 ms =0,01=0{,}01 s): BDP=107 bit/s⋅0,01 s=105BDP=10^{7}\ \text{bit/s}\cdot0{,}01\ \text{s}=10^{5} bit =100=100 kbit (i secondi si semplificano e resta un numero di bit); con pacchetti da 1010 kbit la capacità del tubo è 1010 pacchetti. Cioè per tenere il canale pieno bisogna spedire 1010 pacchetti prima che torni il primo ACK: è il legame con la finestra dei protocolli Protocolli ARQ - Stop-and-Wait, Go-Back-N e Selective RepeatARQ (Automatic Repeat reQuest) rende affidabile un collegamento che sbaglia: il ricevitore conferma (ACK) i frame ricevuti bene, il trasmettitore ritrasmette allo scadere del timeout. Servono timeout (contro il deadlock) e numeri di sequenza (contro i duplicati). Con $t_G=t_F+2\tau_p+t_A$ e probabilità di errore $p$: Stop-and-Wait $\rho=\frac{t_F(1-p)}{t_G}$; Go-Back-N con finestra $N\ge t_G/t_F$ $\rho=\frac{1-p}{1+(N-1)p}$; Selective Repeat $\rho=1-p$. Efficienza $\eta=\rho,I/F$. La finestra ottima è la capacità del tubo in pacchetti. In Selective Repeat esiste anche una lunghezza ottima del frame: con overhead $o$ e probabilità di errore sul bit $P_b$, $x_{ott}\simeq\frac o2+\sqrt{o/P_b}$ (frame più corti se il canale sbaglia di più).Protocolli ARQ - Stop-and-Wait, Go-Back-N e Selective Repeat →.

Definizione (efficienza del collegamento). Se si trasmettono BsentB_{sent} bit prima di ricevere un riscontro, l'efficienza (link utilization) è la frazione di tubo riempita: η=BsentBDP(≤1).\eta=\frac{B_{sent}}{BDP}\quad(\le1).

Esempio. Se il tubo contiene 100100 kbit e si inviano 1010 kbit e poi si aspetta l'ACK: η=10/100=10 %\eta=10/100=10\,\%. Si veda Esercizio - Collegamento Terra-Luna, RTT, BDP ed efficienza.

L'efficienza di un protocollo stop-and-wait (Tecniche ARQ - stop-and-wait, go-back-N e selective repeatL'ARQ (automatic repeat request) usa un codice che rivela gli errori e fa ritrasmettere i pacchetti sbagliati, con conferme ACK/NACK. Con $p=1-(1-P_{bit})^L$ la probabilità che un pacchetto sia errato, $t_P$ il tempo di pacchetto, $t_A$ quello dell'ACK e $\tau_P$ il ritardo di propagazione: stop-and-wait $S=\frac{t_P(1-p)}{t_P+t_A+2\tau_P}$; go-back-N $S=\frac{(1-p),t_P}{1+(N-1)p}$ con $N-1=\left\lceil\frac{2\tau_P}{t_P+t_A}\right\rceil$; selective repeat $S=(1-p)\frac{t_P}{t_P+t_A}$. Il numero medio di trasmissioni di un pacchetto è $\frac1{1-p}$.Tecniche ARQ - stop-and-wait, go-back-N e selective repeat →; il protocollo è descritto in Protocolli ARQ - Stop-and-Wait, Go-Back-N e Selective RepeatARQ (Automatic Repeat reQuest) rende affidabile un collegamento che sbaglia: il ricevitore conferma (ACK) i frame ricevuti bene, il trasmettitore ritrasmette allo scadere del timeout. Servono timeout (contro il deadlock) e numeri di sequenza (contro i duplicati). Con $t_G=t_F+2\tau_p+t_A$ e probabilità di errore $p$: Stop-and-Wait $\rho=\frac{t_F(1-p)}{t_G}$; Go-Back-N con finestra $N\ge t_G/t_F$ $\rho=\frac{1-p}{1+(N-1)p}$; Selective Repeat $\rho=1-p$. Efficienza $\eta=\rho,I/F$. La finestra ottima è la capacità del tubo in pacchetti. In Selective Repeat esiste anche una lunghezza ottima del frame: con overhead $o$ e probabilità di errore sul bit $P_b$, $x_{ott}\simeq\frac o2+\sqrt{o/P_b}$ (frame più corti se il canale sbaglia di più).Protocolli ARQ - Stop-and-Wait, Go-Back-N e Selective Repeat →) si ricava così. Il trasmettitore invia un frame (occupa il canale per tFt_F) e poi aspetta l'ACK: in ogni ciclo di durata tF+2τpt_F+2\tau_p (ACK trascurabile) il canale è usato solo per tFt_F. L'efficienza è il rapporto tra tempo utile e durata del ciclo; dividendo numeratore e denominatore per tFt_F e ponendo a=τp/tFa=\tau_p/t_F (propagazione normalizzata): η=tFtF+2τp=11+2τp/tF=11+2a.\eta=\frac{t_F}{t_F+2\tau_p}=\frac{1}{1+2\tau_p/t_F}=\frac1{1+2a}. Crolla quando il collegamento è «lungo» rispetto al tempo di trasmissione. È lo stesso η=Bsent/BDP\eta=B_{sent}/BDP di prima: infatti Bsent=RtFB_{sent}=Rt_F e BDP=R(tF+2τp)BDP=R(t_F+2\tau_p), e RR si semplifica.

Grafico interattivo: Efficienza dello stop-and-wait η = 1/(1+2a) in funzione di a = τp/tF: vale 1 per a = 0, 1/3 per a = 1, circa 0,05 per a = 10

Affidabilità

Il livello fisico può consegnare pacchetti con errori: rapporto segnale/rumore (SNR) basso al ricevitore (per l'attenuazione), forte interferenza o collisioni.

Esempio (dal bit al pacchetto). p=10−5p=10^{-5} e L=12 000L=12\,000 bit (15001500 B): PER=1−(1−10−5)12000≈1−e−0,12=0,113PER=1-(1-10^{-5})^{12000}\approx1-e^{-0{,}12}=0{,}113, cioè l'11 %11\,\% dei pacchetti ha errori anche se solo un bit su centomila è sbagliato (per pp piccolo (1−p)L≈e−pL(1-p)^L\approx e^{-pL}, dal limite notevole (1−x/n)n→e−x(1-x/n)^n\to e^{-x}: Limiti notevoli di funzioniI limiti notevoli per le forme 0/0 (log(1+x)/x, (e^x − 1)/x, ((1+x)^α − 1)/x, sin x/x, (1 − cos x)/x², arctan x/x...) con le dimostrazioni, e la loro forma come asintoticità: log(1+f) ~ f, e^f − 1 ~ f, sin f ~ f, 1 − cos f ~ f²/2 quando f → 0.Limiti notevoli di funzioni →).

Esempio. Su 10001000 pacchetti, 3030 arrivano con errori e 1010 vengono scartati per buffer pieno: PER=30/1000=3 %PER=30/1000=3\,\%, PDR=97 %PDR=97\,\% (se si contano solo gli errori), PLR=(30+10)/1000=4 %PLR=(30+10)/1000=4\,\%.

Versione ripasso

Unità di misura. 11 B =8=8 bit. I prefissi sono potenze di 10: 11 kbit/s =103=10^3 bit/s, 11 Mbit/s =106=10^6 bit/s, 11 Gbit/s =109=10^9 bit/s. Convertire tutto in bit e secondi prima di calcolare.

  • Esempio: un file da 2525 MB vale 25⋅8=20025\cdot8=200 Mbit; a 100100 Mbit/s richiede 22 s, non 0,250{,}25 s.

Traffico.

Collo di bottiglia.

  • Collegamenti in serie: S=min⁡{R1,…,Rn}S=\min\{R_1,\dots,R_n\}.
    • Esempio: server 22 Mbit/s, client 11 Mbit/s: S=1S=1 Mbit/s.
  • Collegamento condiviso: con nn flussi ognuno riceve circa R/nR/n. Se 1010 download condividono R=5R=5 Mbit/s, ognuno ha 500500 kbit/s: il collo di bottiglia è il collegamento comune, non l'accesso del client, anche se Rc<Rs<RR_c<R_s<R farebbe pensare il contrario.

Ritardo end-to-end.

Jitter. JJ [s] è la variazione del ritardo tra pacchetti dello stesso flusso. Un ritardo costante non disturba; un jitter grande richiede un ritardo di riproduzione (playout delay) e buffer più grandi.

Round trip time (RTT).

  • RTT=tF+tA+2τpRTT=t_F+t_A+2\tau_p, con tFt_F tempo di trasmissione del frame, tAt_A dell'ACK e τp\tau_p propagazione in un verso. Con frame e ACK piccoli RTTmin≈2τpRTT_{min}\approx2\tau_p.
    • Esempio: tF=1t_F=1 ms, tA=10 μt_A=10\ \mus, τp=5\tau_p=5 ms: RTT=1+0,01+10=11,01RTT=1+0{,}01+10=11{,}01 ms.
  • L'RTT è andata e ritorno (richiesta e riscontro). Non è il ritardo end-to-end, che è solo andata.

Capacità del tubo (BDP).

Affidabilità.

  • PERPER = pacchetti consegnati con errori // pacchetti trasmessi.
  • PDR=1−PERPDR=1-PER = pacchetti consegnati con successo // trasmessi.
  • PLRPLR = frazione non consegnata per qualsiasi motivo, errori o buffer pieno.
    • Esempio: 10001000 pacchetti, 3030 con errori e 1010 scartati per buffer pieno: PER=3 %PER=3\,\%, PDR=97 %PDR=97\,\%, PLR=4 %PLR=4\,\%.

Errori tipici:

  • dimenticare dpropd_{prop} quando il testo dà la distanza;
  • confondere RTT e ritardo end-to-end;
  • scrivere MB al posto di Mb (fattore 88);
  • scegliere come collo di bottiglia l'accesso più lento, dimenticando che il collegamento condiviso divide RR tra i flussi.

Esercizi su questo argomento

Lezioni in cui compare

Teoria collegata