In questo articolo dedicato al corso di reti, vederemo un argomento molto importante che si trova spesso al centro dell’attenzione quando si parla di reti di elaboratori: le capacità e le prestazioni di una rete.

In una internet in continua espansione dove gli utenti hanno bisogno e desiderano sempre più servizi, non possiamo assolutamente permetterci sprechi.

In questa parte quindi, parleremo più approfonditamente del concetto di velocità: esso ha molti significati, ma in questo contesto normalmente con velocità di una rete intendiamo la velocità di trasferimento dei dati.

Nelle reti a commutazione di pacchetto, le prestazioni vengono misurate in  termini di:

  • Ampiezza di banda
  • Bit rate,
  • Throughtput,
  • Ritardi e perdite di pacchetti.

Vediamo quindi di analizzare ogni caratteristica cominciando dalla Bandwidth.

Ampiezza di banda e bitrate

Con Bandwidth, inglese di ampiezza di banda, si intendono due concetti diversi ma legati fra di loro:

Il primo significato associato si riferisce ad una quantità misurata in hertz dell’intervallo di frequenze utilizzato dal sistema trasmissivo.
Maggiore è questa frequenza, l’ampiezza di banda appunto, e maggiore sarà la quantità di dati che possono essere inviati nel sistema trasmissivo.

Il secondo significato caratterizza il collegamento ed indica una quantità espressa in bit per second (bps) che viene chiamata anche col nome di bit (o transmission) rate: la quantità di bit al secondo che il collegamento garantisce di trasmettere.

Il bit rate è proporzionale alla ampiezza di banda utilizzata dal sistema trasmissivo, ed offre una capacità indicativa della rete di trasferire dati. Ad esempio: una Fast Ethernet ha un bit rate di 100 Mbps quindi può trasferire al massimo 100 Mbps.

Il bit rate però, come già detto, è un valore indicativo: la nostra rete può idealmente trasferire dati a quella velocità, ma la quantità reale di Bps trasferiti è data dal Throughtput.

Throughtput

Come appena preannunciato, il Throughtput indica la capacità effettiva di una rete di inviare dati: il valore quindi è il numero di bit al secondo che passano attraverso alla rete.

Mentre il bitrate è un valore potenziale, il Throughtput indica un valore effettivo e reale.

Tra sorgente e destinazione, un pacchetto passa attraverso diversi link dl cui throughtput è diverso. Come stabilirlo quindi in un percorso?

In Internet, di solito la situazione è che abbiamo due reti di accesso e una dorsale Internet. Il throughtput di quest’ultima è di solito molto alto (nell’ ordine di Gbps).

Il collo di bottiglia quindi, si ha fra il minimo fra i throughtput delle due reti di accesso.

Un esempio pratico: cerchiamo di inviare un file dal computer A che è connesso tramite una connessione da 100 Mbps, a un computer B con una linea da 56kbps.

Il throughtput quindi è dato dalla linea di B, 56kbps.

Ritardi e perdite di pacchetti

Questo argomento è molto importante ed interessante: col termine Ritardo (in inglese delay) si intende il tempo necessario affinchè l’ultimo bit di un pacchetto arrivi a destinazione dal momento in cui il primo bit ha lasciato la sorgente.

Quando studiamo il ritardo di un pacchetto nelle reti a commutazione di pacchetto, dobbiamo prendere in considerazione vari fattori.

1 – Processing Delay: Ritardo di elaborazione di un nodo.

Questa fase identifica il momento in cui il router riceve i pacchetti: deve controllare se ci sono errori e su che canale devono essere inviati. Questo processo è solitamente molto rapido.

2 – Queueing Delay: Ritardo di coda.

Col termine queue si intende una coda: nel router è presente infatti un buffer dove vengono salvati i pacchetti da inviare in ordine di arrivo. Se la rete è sovrautilizzata (ovvero il tasso di arrivo dei pacchetti è maggiore della capacità del link di evaderli), potrebbe succedere che il buffer si riempi e se questo succede i pacchetti in eccesso vengono scartati con la loro conseguente perdita.
Questo tipo di ritardo è quindi relativo alla congestione del router: per calcolarlo si utilizza di solito fare statistiche.

3 – Transmission Delay: Ritardo di trasmissione.

Questo ritardo è il tempo che ci vuole ad trasmettere l’ultimo bit del pacchetto dopo che è uscito il primo. Se il primo bit è uscito al tempo T1 e l’ultimo al tempo Tn, il ritardo di trasmissione è dato da Tn-T1.

Possiamo prevedere il Transmission Delay, sapendo che: se con R indichiamo il bit-rate della rete e con L la lunghezza del pacchetto da trasmettere, il ritardo di trasmissione è dato da L/R.

4 – Propagation Delay: Ritardo di propagazione nel link.

Questo è l’ultimo fattore: con esso si intende il tempo che impiega un bit ad arrivare dal punto A al punto B.

Anche questo in genere può essere previsto:

  • Se con D intendiamo la distanza (e quindi la lunghezza del collegamento) fra A e B;
  • Con V intendiamo la velocità di propagazione (che tende alla velocità della luce – ~2×108 m/s);

Il ritardo di Propagazione è dato dalla formula: D/V.

Ritardo di Nodo

Dopo che abbiamo visto tutti i tipi di ritardo che è possibile incontrare, possiamo dire che il Ritardo di Nodo è dovuto dalla somma di:

Dnodo = Dproc + Dqueue + Dtrans + Dprop

  • Dproc: Ritardo  di elaborazione è di solito di microsecondi
  • Dqueue: Ritardo di accodamento dipende dalla congestione
  • Dtrans: Ritardo di trasmissione dato dalla formula L/R
  • Dprop: Ritardo di propagazione varia da microsecondi a centinaia di millisecondi

Perdita di pacchetti

Come già abbiamo visto la coda (o buffer) che si trova all’interno del router ha capacità limitata (magari molto grande, ma comunque non illimitata).

Se all’ arrivo di un pacchetto la trovasse piena, questo verrà scartato e quindi verrà perso. In  alcuni casi il pacchetto viene ritrasmesso dall’ end system che lo ha generato o dal nodo precedente, ed in altri viene solo saltato e quindi non viene ritrasmesso affatto.

TraceRoute: i ritardi nella vera Internet

Il traceroute è uno strumento di diagnostica presente nei sistemi Windows e Linux che permette di avere una misura del ritardo dalla  sorgente a tutti i router attraversati nel circuito fino alla destinazione.

Vediamo quindi come utilizzare questo strumento molto figo che ci permette di sapere quanto distante si trova un end system da noi.

Una volta lanciato il comando (da CUI) avremo 6 colonne che rappresentano rispettivamente:

  1. Numero del router sulla rotta
  2. Nome del router
  3. Indirizzo del router
  4. Tempo di andata e ritorno del 1° pacchetto
  5. Tempo di andata e ritorno del 2° pacchetto
  6. Tempo di andata e ritorno del 3° pacchetto

I valori temporali di andata e ritorno (Round Trip Time – RTT) dei 3 pacchetti inviati, includono i ritardi visti poco fa.

Se la sorgente non riceve risposta (o ne riceve meno di 3) allora mette degli asterischi al posto del tempo rtt.

Infine, ultima cosa da notare, è che può darsi che l’ RTT del router n potrebbe essere maggiore del router n+1: questo può succedere in base alla congestione della rete.

traceroute to informaticalab.com (108.162.199.183), 30 hops max, 60 byte packets
 1  login.ariadsl.it (10.150.0.1)  1.266 ms  1.416 ms  1.321 ms
 2  10.201.237.253 (10.201.237.253)  8.028 ms  7.989 ms  8.000 ms
 3  10.10.0.105 (10.10.0.105)  14.432 ms  14.380 ms  14.446 ms
 4  10.253.221.253 (10.253.221.253)  14.391 ms  14.394 ms  14.368 ms
 5  10.249.221.199 (10.249.221.199)  14.345 ms  14.365 ms  14.347 ms
 6  159.20.159.129 (159.20.159.129)  39.766 ms  33.399 ms  33.642 ms
 7  10.200.200.241 (10.200.200.241)  33.043 ms  50.489 ms  50.558 ms
 8  84.233.197.241 (84.233.197.241)  50.826 ms  24.743 ms  24.968 ms
 9  * * *
10  * * *
11  edge01.fra01.cloudflare.com (80.81.194.180)  53.257 ms  53.365 ms  53.322 ms
12  108.162.199.183 (108.162.199.183)  45.688 ms  45.522 ms  33.595 ms

Alla prima riga, notiamo:

  • L’indirizzo del sito che stiamo tracciando ed il suo indirizzo ip,
  • Il numero di “salti” massimi consentiti (30 hop)
  • La dimensione dei tre pacchetti inviati.