Qual è la differenza tra TCP e UDP?
Probabilmente hai visto riferimenti a TCP e UDP quando configuri il port forwarding su un router o quando configuri un software firewall. Questi due protocolli vengono utilizzati per diversi tipi di dati.
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: il Transmission Control Protocol (TCP) e l'Internet Protocol (IP). TCP fornisce alle app un modo per fornire (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. Durante la configurazione di alcuni componenti 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 sono trattati in modo simile, poiché vengono inoltrati dal tuo computer ai router intermedi e fino alla destinazione.
TCP e UDP non sono gli unici protocolli che funzionano su IP. Tuttavia, sono i più usati.
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 tuo browser Web ricuce per formare la pagina web. Quando fai clic su un link, accedi, posta un commento o fai qualsiasi altra cosa, il tuo browser invia pacchetti TCP al server e il server invia pacchetti TCP indietro.
Il protocollo TCP riguarda l'affidabilità: i pacchetti inviati con TCP vengono tracciati, quindi nessun dato viene perso o corrotto durante il trasporto. Questo è il motivo per cui i download di file non vengono danneggiati 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 di un processo: 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 per assicurarsi 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 verifica una minore perdita 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 in modo simile 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 ti mancano, 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 TCP, ma alcune applicazioni necessitano della velocità e dell'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.
A meno che tu non sia un amministratore di rete o uno sviluppatore di software, questo non dovrebbe influire negativamente su di te. Se stai configurando il tuo software router o firewall e non sei sicuro che un'applicazione utilizzi TCP o UDP, in genere puoi selezionare l'opzione "Entrambi" in modo che il router o il firewall applichino la stessa regola al traffico sia TCP che UDP.