Riceviamo spesso richieste rispetto alla velocità di collegamento che non pare essere quella che ci si aspetta. Il più delle volte, il cliente utilizza strumenti come “speetest.net” per effettuare la verifica della situazione corrente. Per vari motivi, questo metodo per il calcolo della velocità, non è affidabile e sicuramente non misura la velocità di trasferimento dal computer al POP del provider, che è l’effettiva “velocità contrattualizzata”. Tentiamo qui di fornire alcune brevi spiegazioni sul funzionamento della trasmissione dei dati, allo scopo di chiarire la inaffidabilità dei vari strumenti on-line di speed-testing. In fondo al post, troverete una proposta di metodo che riteniamo affidabile e che consigliamo di adottare per verificare la situazione prima di richiedere interventi. La prima cosa da mettere in chiaro è la differenza tra velocità di trasmissione (banda) e velocità di trasferimento. Gli speedtest basano i loro calcoli sulla velocità di trasferimento ovvero sulla velocità con cui i dati che si desidera trasferire raggiungono il punto di destinazione. La velocità di trasferimento, viceversa, considera la velocità (massima, minima, media, garantita) con cui trasferisco i dati. Facendo il parallelo con il trasferimento in auto, la velocità di trasmissione è la velocità con cui viaggio sull’auto, il valore che leggo sul tachimetro, mentre la velocità di trasferimento è il tempo che impiego per arrivare a destinazione. Il parallelo poi, come vedremo, finisce qui.

La collisione delle trasmissioni

Nella comunicazione TCP/IP (il protocollo alla base di internet) ci sono vari aspetti che la rendono assolutamente “non predicibile” la effettiva velocità di trasferimento. Il primo aspetto è intrinseco nel protocollo e riguarda la collisione delle trasmissioni. Il computer che vuole trasferire i dati “tenta” mandando un pacchetto sul network (un pacchetto è formato mediamente da circa 1500 byte). Se nessun altro, nello stesso momento, sta tentando di mandare pacchetti, il pacchetto trasmesso raggiunge la sua destinazione e il mittente procede con il pacchetto successivo. Se, viceversa, il pacchetto incontra un altro pacchetto di dati lungo il percorso, avviene una “collisione” ed entrambi i pacchetti devono essere ritrasmessi. Algoritmi complessi evitano, nella maggior parte dei casi, che gli stessi pacchetti collidano nuovamente, ma nel frattempo altri potrebbero trasmettere altri dati … E’ abbastanza intuitivo che non è possibile a priori stabilire il numero di collisioni e quindi non è possibile predire il tempo entro il quale un pacchetto riuscirà a raggiungere la sua destinazione. Il numero di collisioni è dunque uno dei parametri che limita la velocità di trasferimento, senza incidere sulla velocità di trasmissione.

Il percorso dei dati

Altra peculiarità della trasmissione dati in TCP/IP è che non è certo il percorso che i dati effettueranno nel network per raggiungere la destinazione. Il network e il protocollo sono costruiti con una certa ridondanza e i percorsi possibili sono molto spesso più di uno. Proprio allo scopo di evitare collisioni, i router in mezzo al percorso possono decidere di instradare in modo differente pacchetti successivi della stessa trasmissione dati. Mantenendo quindi la stessa velocità di trasmissione, effettuo un percorso più lungo e questo può incidere sul tempo di arrivo del pacchetto (e quindi la velocità di trasferimento) pur senza incidere sulla velocità di trasmissione.

L’over-head di dati trasmessi

Altro e ultimo aspetto che analizziamo e che rende differenti la velocità di trasferimento e di trasmissione è la struttura del pacchetto dati che viene trasmesso. Abbiamo detto che il pacchetto “standard” è di circa 1500 byte. Se devo trasferire un file di 10.000 byte, devo quindi spezzarlo in più parti. Il ricevente deve poi essere in grado di capire il pacchetto da dove arriva e in quale ordine è da mettere (abbiamo detto che alcuni pacchetti potrebbero arrivare prima di altri spediti successivamente). Questo tipo di problemi vengono risolti inserendo informazioni di controllo nel pacchetto che viene spedito. Il cosiddetto “header” del pacchetto di dati trasmessi, contiene le informazioni necessarie alla identificazione del mittente, all’ordine del pacchetto, etc… E’ intuitivo che queste informazioni non sono le informazioni che voglio trasferire però devo trasmetterle quindi “occupo banda” con dati che non fanno parte del calcolo sui dati trasferiti. Mediamente, si può calcolare l’overhead in un 8-9% dei dati trasmessi ovvero, su una linea da 100 Mbps, si trasferiscono i dati alla velocità di 92-93 Mbps.

QUINDI?

Quindi, per un utente finale, la misurazione della velocità della banda può essere effettuata in un solo modo: calcolando la velocità di trasferimento dati tra la sua sede e il POP del provider, tenendo comunque presente l’over-head dei dati trasmessi. Il modo più semplice per farlo è trasferire un file di dimensioni significative via FTP ad un FTP server presente presso il POP del provider. Praticamente tutti i programmi FTP visualizzano, durante il trasferimento, la velocità di trasmissione e/o comunque la velcoità effettiva al termine del trasferimento. QUEL dato può essere considerato ragionevolmente affidabile.