TCP / IP è una suite di protocolli utilizzati dai dispositivi per comunicare su Internet e sulla maggior parte delle reti locali. Prende il nome da due dei suoi protocolli originali: Transmission Control Protocol (TCP) e Internet Protocol (IP). TCP fornisce alle app un modo per consegnare (e ricevere) un flusso di pacchetti di informazioni ordinato e con errori sulla rete. L'UDP (User Datagram Protocol) viene utilizzato dalle app per fornire un flusso più rapido di informazioni eliminando il controllo degli errori. Quando si configura hardware o software di rete, potrebbe essere necessario conoscere la differenza.
Cosa hanno in comune
Sia TCP che UDP sono protocolli utilizzati per l'invio di bit di dati, noti come pacchetti, su Internet. Entrambi i protocolli si basano sul protocollo IP. In altre parole, se invii un pacchetto via TCP o UDP, quel pacchetto viene inviato a un indirizzo IP. Questi pacchetti vengono trattati in modo simile, poiché vengono inoltrati dal computer ai router intermedi e fino alla destinazione.
Come funziona TCP
TCP è il protocollo più utilizzato su Internet.
Quando richiedi una pagina web nel tuo browser, il tuo computer invia pacchetti TCP all'indirizzo del server web, chiedendogli di rispedirti la pagina web. Il server Web risponde inviando un flusso di pacchetti TCP, che il browser Web ricuce per formare la pagina Web. Quando si fa clic su un collegamento, si accede, si invia un commento o si fa qualcos'altro, il browser Web invia pacchetti TCP al server e il server invia di nuovo i pacchetti TCP.
Il protocollo TCP riguarda l'affidabilità: i pacchetti inviati con TCP vengono tracciati, quindi nessun dato viene perso o corrotto durante il transito. Questo è il motivo per cui i download di file non si corrompono anche se ci sono problemi di rete. Naturalmente, se il destinatario è completamente offline, il computer si arrenderà e vedrai un messaggio di errore che dice che non può comunicare con l'host remoto.
TCP lo ottiene in due modi. Innanzitutto, ordina i pacchetti numerandoli. In secondo luogo, controlla gli errori facendo in modo che il destinatario risponda al mittente affermando di aver ricevuto il messaggio. Se il mittente non ottiene una risposta corretta, può inviare nuovamente i pacchetti per assicurarsi che il destinatario li riceva correttamente.
Process Explorer e altre utilità di sistema possono mostrare il tipo di connessioni che un processo fa: qui possiamo vedere il browser Chrome con connessioni TCP aperte a una varietà di server web.
Come funziona UDP
Il protocollo UDP funziona in modo simile a TCP, ma elimina tutti i problemi di controllo degli errori. Tutta la comunicazione avanti e indietro introduce la latenza, rallentando le cose.
Quando un'app utilizza UDP, i pacchetti vengono semplicemente inviati al destinatario. Il mittente non aspetta di essere sicuro che il destinatario abbia ricevuto il pacchetto: continua semplicemente a inviare i pacchetti successivi. Se il destinatario perde alcuni pacchetti UDP qua e là, sono semplicemente persi - il mittente non li reinvia. Perdendo tutto questo sovraccarico significa che i dispositivi possono comunicare più rapidamente.
UDP viene utilizzato quando la velocità è desiderabile e la correzione degli errori non è necessaria. Ad esempio, UDP viene spesso utilizzato per trasmissioni in diretta e giochi online.
Ad esempio, supponiamo che stai guardando un flusso video in diretta, che viene spesso trasmesso tramite UDP anziché TCP. Il server invia semplicemente un flusso costante di pacchetti UDP ai computer che guardano. Se si perde la connessione per alcuni secondi, il video potrebbe bloccarsi o rimanere nervoso per un momento e quindi saltare al bit corrente della trasmissione. Se si verificano minori perdite di pacchetti, il video o l'audio potrebbero essere distorti per un momento mentre il video continua a essere riprodotto senza i dati mancanti.
Funziona allo stesso modo nei giochi online. Se si dimenticano alcuni pacchetti UDP, è possibile che i personaggi dei giocatori si teletrasporino sulla mappa man mano che si ricevono i pacchetti UDP più recenti. Non ha senso chiedere i vecchi pacchetti se li hai persi, visto che il gioco continua senza di te. Tutto quello che conta è cosa sta succedendo in questo momento sul server di gioco, non quello che è successo pochi secondi fa. La correzione degli errori di Ditching TCP aiuta ad accelerare la connessione di gioco e ridurre la latenza.
E allora?
Se un'applicazione utilizza TCP o UDP è fino al suo sviluppatore e la scelta dipende da ciò che un'applicazione ha bisogno. La maggior parte delle app richiede la correzione degli errori e la robustezza del protocollo TCP, ma alcune applicazioni richiedono la velocità e l'overhead ridotto di UDP. Se si attiva uno strumento di analisi di rete come Wireshark, è possibile visualizzare i diversi tipi di pacchetti che viaggiano avanti e indietro.