mercoledì 30 luglio 2014

Velocità di trasmissione dati

Velocità trasmissione dati
In Ingegneria delle Telecomunicazioni una delle misure più utilizzate è la velocità di trasferimento dati in un canale di trasmissione. In tal caso si usano le unità di misura decimali aventi il bit come unità base.

In particolare, il dato di interesse è rappresentato dal numero di bit che attraversano ogni secondo il canale di comunicazione.

L'unità di misura della velocità di trasferimento dati è il bps (bits per second) ossia il numero di bit trasmessi al secondo.

A titolo di esempio, se consideriamo l'unità di misura Mbps (milioni di bit al secondo), abbiamo che:
1 Mbps = 125 kB/s ≈ 122,07 KiB/s (il simbolo "≈" significa "circa uguale a").

Velocità nominale e velocità reale

Un canale di comunicazione è una entità fisica (come un cavo) oppure logica (per esempio una connessione telefonica trasmessa su un mezzo condiviso con altre connessioni telefoniche). Ogni canale ha una specifica capacità di trasmettere informazioni, misurata dalla banda passante (espressa in Hertz) e dal data rate (tasso di dati), ossia il numero di bit trasmessi al secondo (che a sua volta dipende dalla larhezza di banda). Parlando di velocità di trasmissione distinguiamo tra:
  • VELOCITÀ NOMINALE: è la velocità massima teorica a cui può avvenire la trasmissione e dipende essenzialmente dal canale di comunicazione utilizzato.
  • VELOCITÀ REALE: è il numero totale di bit effettivamente trasmessi ed è sempre minore o al più uguale alla velocità nominale. La velocità reale dipende dalle condizioni fisiche del canale durante la comunicazione, per esempio è ridotta in presenza di interferenze, a causa di cavi usurati o danneggiati, dall'attenuazione del segnale al crescere della distanza. Infine, dipende dalla qualità ed efficienza dell'hardware deputato alla trasmissione/ricezione e dal tipo di codifica dei dati usato per trasmettere l'informazione.

Codifiche, protocolli e payload

L'informazione digitale viene codificata sul canale di trasmissione; codificare l'informazione significa rappresentarla con un insieme di bit che, in genere, è di dimensioni maggiori rispetto al dato "puro" da trasmettere. Per esempio, nella codifica 8b/10b per trasmettere 1 byte (8 bit) si trasmettono in realtà 10 bit. I bit in più introdotti da una codifica servono a compiti particolari, per esempio per il controllo e la correzione degli errori di trasmissione.

Un protocollo di comunicazione è un insieme di regole che governano il funzionamento di un sistema di comunicazione; in particolare, i protocolli di rete (come TCP/IP v. 4) offrono meccanismi di correzione degli errori ed algoritmi (procedure) di instradamento delle informazioni (mettono sulla "strada giusta" i dati trasmessi), inserendo una serie di informazioni necessarie al buon funzionamento della trasmissione e ricezione dei dati (per esempio inseriscono l'indirizzo del mittente e del destinatario).

Il payload è il numero di bit di dati utilizzabili dalle applicazioni, una sorta di "peso netto" dell'informazione una volta che sono stati eliminati i bit in più necessari alle codifiche ed ai protocolli di comunicazione.

In definitiva, codifiche e protocolli fanno transitare sul canale di comunicazione molti bit aggiuntivi (che si sommano ai dati veri e propri da trasmettere) ed inoltre introducono un notevole overhead (sovraccarico di lavoro) dovuto ai meccanismi di correzione degli errori e/o ad altri algoritmi indispensabili al funzionamento del sistema; tutto ciò, inevitabilmente, riduce la velocità reale di cui le applicazioni possono disporre.

ESEMPIO 1: codifica 8b/10b
La codifica 8b/10b è un metodo di trasmissione delle informazioni digitali che mappa 8 bit di dati in entità da 10 bit (chiamate simboli o caratteri). Questa codifica è utilizzata per la trasmissione seriale di dati ad alta velocità, per esempio nelle connessioni comunemente presenti sui personal computer, come SATA e USB 3.0. Poiché per trasmettere un payload di 8 bit se ne trasmettono 10, il payload reale massimo è al più pari all''80% della velocità nominale di connessione.
Codifica 8b10b
Per esempio, un canale di comunicazione da 1 Mbps con codifica 8b/10b, al massimo trasmette ogni secondo 1.000.000 di bit (125.000 byte), di cui 800.000 bit (100.000 byte) sono il payload e 200.000 bit (25000 byte) sono i bit in più, necessari al funzionamento della codifica.

ESEMPIO 2: protocollo TCP/IP versione 4
La suite di protocolli nota come TCP/IP versione 4 (in via di sostituzione con la versione 6) è utilizzata per le comunicazioni nella rete Internet. Si tratta di una famiglia di protocolli basata su livelli di comunicazione, dove dati ed informazioni sono suddivisi in pacchetti ed in cui ciascun livello aggiunge le prorie informazioni (bit aggiuntivi) all'interno di un header (intestazione).
Header TCP/IP
I dati vengono creati dalle normali applicazioni usate dall'utente; ciascun pacchetto dati è di piccole dimensioni (per esempio 1500 byte) e viene spedito separatamente dagli altri (verrà rimesso nel giusto ordine dal ricevente). Il livello TCP aggiunge il numero del pacchetto e un codice per la correzione degli errori; il livello IP inserisce l'indirizzo IP del mittente e del destinatario, il livello di rete aggiunge il MAC Address. Queste sono solo le principali informazioni aggiuntive ai dati da spedire (in realtà ce ne sono molte altre) e servono a ciascun livello per svolgere correttamente il proprio lavoro (riassemblare i dati finali, correggere gli errori, rispedire eventuali pacchetti persi, assicurarsi che la comunicazione sia andata a buon fine e così via).

Velocità delle connessioni ADSL

Filtro ADSL
ADSL è l'acronimo di Asymmetric Digital Subscriber Line (linea a sottoscrizione digitale asimmetrica). È una tecnica di trasmissione attraverso le connessioni via cavo della rete telefonica classica; i dati viaggiano sui normali doppini telefonici che connettono l'utente finale e la prima centrale telefonica utile (il cosiddetto "ultimo miglio"). La asimmetria riguarda la differenza di velocità in downstreaming (la fase in cui l'utente riceve i dati trasmessi dal server) e in upstreaming (la fase in cui l'utente invia dati al server): dal punto di vista dell'utente la velocità di download (ricezione) dei dati è notevolmente superiore a quella di upload (trasmissione).

Le offerte commerciali delle connessioni ADSL giocano sull'equivoco del prefisso "Mega": gli utenti sono abituati a parlare di "Megabyte", riferendosi allo spazio occupato dai file su disco; è la variante di un veccho trucco, usato a suo tempo anche per gli hard disk, per indurre gli utenti a pensare di avere a disposizione velocità di connessione molto più elevate di quanto siano in realtà.

Una ADSL ad N "mega" è una connessione ad Internet con velocità nominale di N megabit al secondo.

Non bisogna confondere uno spazio di memorizzazione (dove "mega" sta per megabyte) con una velocità di trasferimento dati (dove "mega" sta per megabit al secondo). Inoltre, le velocità sbandierate dai gestori sono molto lontane dalle effettive velocità disponibili agli utenti, infatti:
  • la velocità effettiva di connessione dipende dalla qualità del segnale sulla linea, in particolare dalla distanza della centrale telefonica (più siete vicini migliore è la qualità del segnale) e dalle condizioni fisiche dei cavi; essere lontani qualche chilometro dalle centrale equivale quasi sicuramente a navigare a bassa velocità (anche se i cavi sono in ottime condizioni); analogamente, se i cavi sono rovinati il segnala arriva degradato e la connessione sarà lenta anche se siete vicini alla centrale.
  • La banda totale sulla linea viene suddivisa tra tutti gli utenti connessi in un certo momento. Per esempio, supponiamo di avere un abbonamento ADSL da 20 Mbps e di essere connessi ad una linea con 400 Mbps di banda totale; avremo disponibili 20 Mbps se sulla linea sono connessi contemporaneamente un massimo di 20 utenti con il nostro stesso contratto (400 Mbps divisi per 20 utenti = 20 Mbps per ogni utente). 20 Mbps è il massimo che avremo anche se siamo gli unici ad essere connessi, perché abbiamo pagato per 20 Mbps. Ma se si connettono contemporaneamente 200 utenti, ciascuno avrà disposizione in media 2 Mbps anche se tutti hanno pagato per 20 Mbps. I provider Italiani sui contratti non dichiarano una "banda minima garantita" (e se la legge non lo impone si guardano bene dal dichiararla).
  • Il tempo di download di non si ottiene dividendo la dimensione di un file per la velocità di connessione. La velocità teorica massima in download di una ADSL a 20 Mbps è di 2,5 MB/s; tuttavia, anche se la linea funzionasse alla massima velocità teorica, per scaricare un file da 100 MB non si impiegherebbero 40 secondi (100/2,5=40), ne occorrono di più. Ciò avviene perchè i protocolli di comunicazione prevedono la spedizione/ricezione di molti bit in più, che non hanno nulla a che fare con i dati di nostro interesse, ma che sono necessari al buon funzionamento dei protocolli stessi. Tutto ciò comporta un notevole overhead nel processo di trasmissione/ricezione dati (per esempio, in condizioni non ottimali della rete per un file da 100 MB potrebbero essere elaborati 120 MB di dati o anche di più).

Velocità delle connessioni SATA

Velocità SATA
SATA è l'acronimo di Serial Advanced Technology Attachment (tecnologia avanzata di connessione seriale), un'interfaccia di connessione punto a punto tra periferiche di memorizzazione di massa (hard disk, drive ottici) ed i relativi controller integrati nel computer. La trasmissione del segnale, almeno fino a SATA 3, utilizza la codifica 8b/10b.

SATA è l'evoluzione di un insieme di vecchi standard noti genericamente come PATA (Parallel ATA), rispetto ai quali offre una velocità di connessione decisamente superiore, possibilità di hot-swap (collegamento/scollegamento dei dispositivi anche a sistema avviato, caratteristica che deve essere implementata nel controller), cavi di connessione poco ingombranti e più economici, trasferimento dati più efficiente attraverso appositi protocolli (opzionali) di accodamento.
Tebella velocità SATA
Al momento della pubblicazione di questo articolo, sono state definite anche le revisioni SATA 3.1 e 3.2 (strettamente connesse al bus PCI-Express) che portano la velocità nominale a 16 Gbps (2 GB/s ≈ 1,86 GiB/s), come supporto ai velocissimi SSD per cui la velocità garantita da SATA 3 non è sufficiente.

Velocità delle connessioni USB

Velocità USB
USB è l'acronimo di Universal Serial Bus (bus seriale universale), una connessione basata su bus tra computer e dispositivi elettronici di tutti i tipi (tastiere, mouse, hard disk e/o drive ottici esterni, fotocamere, stampanti, smartphone ecc.).

USB ha rimpiazzato le vecchie connessioni su porta seriale e parallela, così come la necessità di alimentatori esterni separati per dispositivi che richiedono poca energia elettrica per funzionare. Rispetto alle vecchie connessioni seriali/parallele offre una velocità molto maggiore, possibilità di hot-swap (collegamento/scollegamento dei dispositivi a sistema avviato) ed inoltre è Plug and Play ("collega e usa"), cioè le periferiche funzionano semplicemente collegandole al computer senza dover effettuare una particolare procedura di installazione (almeno in teoria).
Tabella velocità USB
A Luglio 2013 è stata definite la specifica USB 3.1 (SuperSpeed USB 10 Gbps), che porta la velocità nominale a 10 Gbps (1,25 GB/s ≈ 1,16 GiB/s) con codifica 128b/132b (per trasmettere 128 bit correttamente bisogna trasmetterne 132); questo porterebbe un payload teorico del 96,67% ossia circa 9,967 Gbps, tuttavia i test hanno evidenziato che l'hardware per ora è limitato a circa 7,2 Gbps (900 MB/s ≈ 858,31 MiB/s).