Quando si parla di reti di computer e di router, si troveranno spesso riferimenti a TCP e UDP che sono due protocolli utilizzati per inviare dati su Internet o in una rete locale. Durante la configurazione di alcuni componenti di rete hardware o software, potrebbe essere importante conoscere la differenza tra UDP e TCP.
TCP e UDP sono protocolli utilizzati per l'invio di bit di dati, noti come pacchetti. Sono entrambi posti al livello immediatamente superiore al protocollo internet IP, quindi, se si sta inviando un pacchetto tramite TCP o UDP, quel pacchetto viene inviato sicuramente a un indirizzo IP.
TCP e UDP non sono i soli protocolli che lavorano su IP, tuttavia sono quelli più ampiamente utilizzati. Ad esempio un altro protocollo comune e ICMP, quello usato dal PING.
TCP
TCP è l’acronimo di Transmission Control Protocol ed è il protocollo più comunemente usato su Internet.
Quando si carica una pagina web, il computer invia pacchetti TCP all'indirizzo del server web, chiedendo di farci vedere quella pagina web. Il web server risponde inviando un flusso di pacchetti TCP, che il browser web mette insieme per formare la pagina web e mostrarla sullo schermo.
Quando si clicca su un link, si accede a un sito o si invia un commento, il browser invia pacchetti TCP al server e il server risponde con altri pacchetti TCP.
Il protocollo TCP garantisce che il destinatario riceva i pacchetti. Il destinatario (ad esempio il web server) invia la conferma di ricezione al mittente (il nostro computer). Se il mittente non riceve conferma, rispedisce i pacchetti, e smette solo dopo un certo periodo di tempo se il destinatario non risponde perché offline.
I pacchetti vengono inoltre controllati per eventuali errori.
Il protocollo TCP è molto affidabile e i pacchetti sono tracciati in modo che nessun dato venga perso o danneggiato durante il transito. Questo è il motivo per cui i download di file non vengono danneggiati anche se si utilizza una rete lenta o che si interrompe spesso.
UDP
UDP è l'acronimo di User Datagram Protocol.
Un datagramma è uguale a un pacchetto di informazioni, quindi il protocollo UDP funziona in modo simile a quello TCP, con la differenza che non controlla gli errori.
Quando si utilizza UDP, i pacchetti vengono inviati al destinatario velocemente senza attendere e senza assicurarsi che il destinatario li abbia ricevuti, continuando a inviare pacchetti. Se il destinatario perdesse alcuni pacchetti UDP, non ha alcun modo di chiederli nuovamente.
In pratica una comunicazione UDP non dà alcuna garanzia di ricezione dei dati. Il vantaggio è che i computer possono comunicare tra loro più rapidamente. UDP viene utilizzato quando la velocità di rete è elevata e può essere superfluo il controllo di errori.
Ad esempio, UDP è spesso utilizzato per il video in diretta streaming e per i giochi online. Un video in diretta streaming è un flusso di dati continuo che viene inviato al computer. Se si perde qualche fotogramma, esso viene saltato e di certo non sarà possibile chiedere di vederlo dopo.
I flussi di streaming UDP si differenziano rispetto a quelli TCP proprio perché i pezzi di video non ricevuti vengono saltati. Se si perde la connessione per alcuni secondi, il video si blocca per un attimo e poi passa al punto di ripresa saltando i pacchetti persi. Se si verifica una minore perdita di pacchetti, il video o l'audio possono essere distorti per qualche istante e tornare buoni subito dopo.
Con i giochi online la storia è simile, se si perde qualche pacchetto UDP, i giocatori passano da un punto a un altro senza che si veda movimento. Quello che conta è rimanere attuali nel gioco, senza guardare al passato e a ciò che eventualmente è stato perso.
Saltando la correzione di errori che farebbe TCP, si velocizza la connessione del gioco e si riduce la latenza.
Conclusione
Se un'applicazione utilizza il protocollo TCP o UDP dipende dal suo sviluppatore e non si può cambiare.
La maggior parte dei programmi vogliono la correzione degli errori e preferiscono la robustezza del protocollo TCP, mentre alcune applicazioni hanno bisogno di velocità e si affidano a UDP.