I singoli componenti e/o campi dell’intestazione del protocollo TCP hanno il seguente significato:
Porta di origine (16 bit): indica il numero di porta del mittente.
Porta di destinazione (16 bit): indica il numero di porta del destinatario.
Numero sequenziale (32 bit): il numero sequenziale indica il primo byte del carico utile allegato oppure viene inviato durante l’instaurazione e/o l’abbattimento della connessione. Serve al tempo stesso a convalidare e a ordinare (dopo il trasferimento) i segmenti.
Numero di conferma (32 bit): in questo campo viene indicato il numero di conferma che il mittente attende successivamente. Affinché il numero sia valido, deve essere preceduto da un flag ACK (nel campo “Flags”).
Offset (4 bit): il campo “Offset” indica la lunghezza dell’header TCP in blocchi da 32 bit per evidenziare il punto di inizio del carico utile. Poiché questo campo opzionale è variabile, il punto di inizio è diverso da segmento a segmento.
Riservato (6 bit): riservato per usi futuri secondo la RFC 793, fino ad oggi non utilizzato. Questo campo deve sempre avere il valore “0”.
Flags (6 bit): attraverso i sei possibili bit singoli nel campo Flags è possibile attivare diverse azioni TCP per organizzare la comunicazione e l’elaborazione dei dati. I Flag che vengono attivati o non attivati a questo scopo sono i seguenti:
- URG: il flag “Urgent” (urgente) segnala all’applicazione TCP che il carico utile deve essere elaborato immediatamente fino all’Urgent Pointer definito.
- ACK: in combinazione con il numero di conferma, il flag ACK ha la funzione di confermare la ricezione dei pacchetti TCP. Se il flag non è attivato, anche il numero di conferma è automaticamente non valido.
- PSH: il flag “Push” fa sì che un segmento TCP venga inviato immediatamente, senza dapprima essere accumulato nel buffer interno del mittente e del destinatario.
- RST: se si è verificato un errore durante la trasmissione, un pacchetto TCP con flag RST (“Reset”) attivato permette il ripristino della connessione.
- SYN: i messaggi con flag SYN attivato rappresentano il primo passaggio dell’handshake a tre vie, vale a dire che danno inizio all’instaurazione della connessione.
- FIN: il flag “Finish” segnala alla controparte che un partecipante alla comunicazione termina la trasmissione.
Dimensione della finestra (16 bit): in questo campo, al partner della comunicazione viene trasmesso il numero di byte che il destinatario è in grado di ricevere.
Checksum (16 bit): il Transmission Control Protocol è in grado di individuare gli errori di trasmissione in modo affidabile. A questo scopo viene fatto ricorso alla checksum, calcolata in base all’header, al carico utile e al cosiddetto pseudo header.
Urgent Pointer (16 bit): l’Urgent Pointer (puntatore di “urgenza”) indica la posizione del primo byte dopo il carico utile da elaborare con urgenza. Di conseguenza, questo campo è valido e rilevante solo se il flag URG è attivato.
Opzioni (0–320 bit): se è necessario attivare funzioni TCP non comprese nell’header generale, è possibile farlo attraverso il campo delle opzioni. Questo può essere utile ad esempio qualora sia necessario definire la dimensione massima dei segmenti. Le opzioni devono sempre avere una lunghezza pari a un multiplo di 32 bit; in caso contrario è necessario eseguire una compilazione con una serie di bit zero (padding).