Quando si parla di networking, configurazione di un router o utilizzando un software capita spesso di imbattersi negli acronimi TCP e UDP. Questi sono due protocolli utilizzati per inviare e ricevere dati su Internet o su una rete locale. E’ molto importante conoscere la differenza da protocollo TCP e UDP in quanto un utilizza scorretto può veramente portare a risultati inaspettati.
Questi due protocolli determinano le regole con le quali incapsulare un insieme di bit dati da far navigare nella rete. Superficialmente, quando si creano questi pacchetti, i protocolli TCP e UDP forniscono informazioni diverse al ricevente istruendolo sulle azioni da intraprendere.

Protocollo TCP: Transmission Control Protocol

Questo è il protocollo più utilizzato in networking. Quando ad esempio effettuiamo una ricerca sul web, il motore di ricerca preparerà una serie di pacchetti contenenti Bit che andranno a costituire, una volta riassemblati, i nostri risultati di ricerca. La peculiarità principale del protocollo TCP è che il mittente di un pacchetto si assicura della ricezione dello stesso in quanto il destinatario invia un altro pacchetto TCP confermando di aver ricevuto quanto inviato. Se il mittente non riceve conferma entro un tempo massimo reinvia il pacchetto mancante per un numero di volte definito finchè il destinatario non viene identificato come irraggiungibile. Il protocollo TCP, per questa sua caratteristica è molto affidabile in quanto è progettato per garantire che nessun dato venga perso. Anche quando abbiamo una connessione lenta o interrotta per pochi secondi infatti, abbiamo ad esempio garanzia che un file che stiamo scaricando venga completato senza perdita di dati.
Facciamo un esempio molto semplicistico. Il Computer di Pippo, deve inviare un’immagine a quello di Pluto. L’immagine è costituita da una serie di bit ad esempio: 011 101 110 110 110 100 010 . Per inviare questa sequenza di bit, il computer di Pippo suddivide la stringa in tanti pacchetti contenenti ognuno una porzione di bit ad esempio:
Pacchetto 1: 011
Pacchetto 2: 101
Pacchetto 3: 110
Pacchetto 4: 110
Pacchetto 5: 110
Pacchetto 6: 100
Pacchetto 7: 010
Nel Pacchetto 1 vengono inviate anche delle altre informazioni tra cui il numero di pacchetti che si sta inviando. Vediamo quindi un esempio molto semplificato del funzionamento del protocollo TCP tra Pippo e Pluto che si inviano l’immagine di cui sopra:
STEP PC PLUTO PC PIPPO
1 Ciao Pluto, sono Pippo e ti sto mandando un’immagine composta da 7 pacchetti
2 Grazie Pippo, ho ricevuto la tua comunicazione e conterò i pacchetti che mi arrivano e ti notifico quando mi arrivano, nel caso in cui non ti arrivi la notifica reinviami il pacchetto
3 Pacchetto 1 inviato
4 Pacchetto 1 Ricevuto
5 Pacchetto 2 Inviato
6 Pacchetto 2 Ricevuto
7 Pacchetto 3 inviato
8 Pacchetto 3 Ricevuto
9 Pacchetto 4 inviato
10 Pacchetto 4 Ricevuto
11 Pacchetto 5 inviato
12 Pacchetto 5 Ricevuto
13 Pacchetto 6 Inviato
14 (Mancata Risposta da Pluto)
15 (Mancata Risposta da Pluto)
16 Non mi è arrivata la notifica per il pacchetto 6, te lo rimando
17 Pacchetto 6 Ricevuto
18 Pacchetto 7 Inviato
19 Pacchetto 7 Ricevuto. Grazie
Come abbiamo visto, quando Pippo si accorge che Pluto non ha dato conferma di ricezione in un tempo stabilito a rinviato il pacchetto mancante.

Protocollo UDP: User Datagram Protocol

Il funzionamento del protocollo UDP è molto simile all’TCP con una differenza sostanziale: non controlla gli errori e non richiede notifiche di ricezione:
Utilizzando questo protocollo, i pacchetti vengono inviati più velocemente al destinatario e qualora questo ne perdesse qualcuno non avrà modo di richiederlo ma andrà semplicemente perso. Il vantaggio è però una comunicazione molto più veloce. Questo tipo di protocollo è utilizzato per lo più nei casi dove la perdita di qualche pacchetto è ritenuto un evento ininfluente come ad esempio uno streaming video (in cui al massimo perdiamo qualche fotogramma) e noi giochi online. Nell’esempio Precedente la comunicazione sarebbe in questo modo:
STEP PC PLUTO PC PIPPO
1 Ciao Pluto, sono Pippo e ti sto mandando un’immagine composta da 7 pacchetti
2 Pacchetto 1 inviato
3 Pacchetto 2 Inviato
4 Pacchetto 3 inviato
5 Pacchetto 4 inviato
6 Pacchetto 5 inviato
7 Pacchetto 6 Inviato
8 Pacchetto 7 Inviato

Approfondimenti

Per visionare una reale comunicazione tra 2 PC utilizzando i protocolli TCP e UDP si può utilizzare il software Wireshark.
Il protocollo TCP è disciplinato dall’RFC 793
Il protocollo UDP è disciplinato dall’RFC 768

Disclaimer

Le nozioni fornite in questa guida sono volutamente espresse in modo estremamente semplicistico al fine di fornire un concetto abbozzato di differenza tra i due protocolli.

Chicca

Una bella immagine che riassume brevemente le differenza tra protocollo TCP e UDP 😉
Hai bisogno di una consulenza o assistenza?
Apri un ticket di richiesta, ti risponderò in brevissimo tempo! Chiedere non costa nulla 😉

Lascia un commento