Concetti Chiave

  • Il protocollo IP non garantisce la consegna affidabile dei datagrammi, mentre il TCP offre meccanismi per la consegna sicura e orientata alla connessione.
  • Il TCP segmenta i dati ricevuti in base alla dimensione massima del carico utile (MTU), sottraendo 40 byte per le intestazioni IP e TCP.
  • I campi principali dell'intestazione TCP includono Source port, Destination port e Sequence number, essenziali per la gestione della trasmissione dei dati.
  • L'UDP, a differenza del TCP, è un protocollo di trasporto senza connessione che non prevede controlli di errore, favorendo una maggiore velocità ma riducendo la sicurezza nella trasmissione.
  • L'intestazione di un segmento UDP è composta da soli 8 byte e include Source Port, Destination Port e UDP length, con un checksum opzionale per il controllo degli errori.

Il protocollo IP dello strato di rete in internet non è orientato alla connessione (senza controllo di flusso e senza correzione di errori), non garantisce quindi la consegna affidabile dei datagrammi. Il TCP è invece orientato alla connessione, è in grado di garantire una consegna affidabile grazie a dei meccanismi di timeout e di ritrasmissione che permettono di ridurre gli errori o comunque di impedire di validre informazioni corrotte; è un protocollo a finestra scorrevole.

Come funziona il TCP?

Quando il TCP riceve da un'applicazione del livello superiore una sequenza di byte, la memorizza temporaneamente in uno slot temporaneo per poi dividerla in segmenti TCP. La dimensione massima effettiva del segmento dipende dalla dimensione massima del carico utile (1500 byte) detta MTU (maximum transfer unit).
Anche segmenti TCP sono formati da un'intestazione di dimensione variabile (minimo 20 byte) e da un campo dati la cui dimensione massima detta MSS (maximum segment size) si ottiene:

MTU - 20 byte (intestazione IP)-20 byte (intestazione TCP) = MTU - 40 byte

Campi dell'intestazione TCP

Sono evidenziati i seguenti campi:

  • Source port (16 bit) contiene il numero di porta sorgente che individua l'applicazione locale;
  • Destination port (16bit) contiene il numero di porta destinazione che individua l'applicazione remota;
  • Sequence number (32 bit) indica il numero progressivo di sequenza del primo byte di dati contenuto nel segmento TCP;
  • Acknowledgement number (32 bit) indica il numero di sequenza del prossimo segmento che ci si aspetta di ricevere;
  • Data offset (4 bit) indica il numero di parole da 32 bit che compongono l'intestazione TCP (TCP header lenght);
  • RES (6 bit) campo riservato e non utilizzato;
  • URG, ACK, PSH, RST, SYN, FIN sono flag da un bit utilizzati per la connessione;
  • Window (16 bit) indica il numero di byte che possono essere inviati a partire da quello che ha ricevuto il flag ACK;
  • Checksum (16 bit) contiene il controllo su tutto il segmento comprensivo di intestazione e dati;
  • Urgent pointer (16 bit) indica i byte urgenti considerati a partire da quello indicato nel sequence number;
  • Options (variabile) campo opzionale che può essere usato per comunicare il proprio MSS;
  • Padding (variabile) campo di riempimento per portare la dimensione dell'intestazione ad un un multiplo di 32 bit;

I campi sopra menzionati, fanno parte dell'intestazione del segmento TCP.

È un altro protocollo di trasporto utilizzato da applicazioni di tipo client-server senza connessione che scambiano tra loro pochissimi datagrammi. UDP non prevede il controllo degli errori e il controllo di flusso (compiti svolti dalle applicazioni di livello superiore) per offrire una velocità di molto maggiore a quella del protocollo TCP, a discapito della sicurezza nella riuscita della trasmissione.

Dettagli tecnici dei segmenti UDP

I segmenti UDP sono formati da una breve intestazione di 8 byte e dal campo dati. I campi dell'intestazione sono:

  • Source Port (16 bit) contiene il numero di porta sorgente che individua l'applicazione locale;
  • Destination Port (16 bit) contiene il numero di porta destinazione che individua l'applicazione remota;
  • UDP lenght (16 bit) indica la dimensione totale del segmento, comprensiva di intestazione e dati; la dimensione massima di un datagramma UDP è quindi di 2^16=65536 byte;
  • UDP checksum (16 bit) è un campo opzionale che contiene il controllo per gli errori nell'intestazione.

Domande da interrogazione

  1. Qual è la principale differenza tra il protocollo IP e il TCP?
  2. Il protocollo IP non è orientato alla connessione e non garantisce la consegna affidabile dei datagrammi, mentre il TCP è orientato alla connessione e garantisce una consegna affidabile tramite meccanismi di timeout e ritrasmissione.

  3. Come funziona il processo di segmentazione nel TCP?
  4. Il TCP memorizza temporaneamente una sequenza di byte ricevuta da un'applicazione e la divide in segmenti TCP, la cui dimensione massima è determinata dalla MTU, sottraendo 40 byte per le intestazioni IP e TCP.

  5. Quali sono i campi principali dell'intestazione TCP?
  6. I campi principali dell'intestazione TCP includono il numero di porta sorgente, il numero di porta destinazione, il numero di sequenza, il numero di riconoscimento, e vari flag per la gestione della connessione.

  7. Quali sono le caratteristiche del protocollo UDP rispetto al TCP?
  8. L'UDP è un protocollo di trasporto senza connessione che non prevede il controllo degli errori e il controllo di flusso, offrendo maggiore velocità rispetto al TCP, ma a scapito della sicurezza nella trasmissione.

  9. Qual è la struttura di un segmento UDP?
  10. Un segmento UDP è composto da un'intestazione di 8 byte e da un campo dati; l'intestazione include il numero di porta sorgente, il numero di porta destinazione, la lunghezza totale del segmento e un checksum opzionale per il controllo degli errori.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community