|
|
Il livello transport di Internet è basato su due protocolli:
TCP (Transmission Control Protocol)
UDP (User Data Protocol)
Il secondo è di fatto IP con l'aggiunta di un breve header, e fornisce un servizio di trasporto datagra 525i85f m (quindi non affidabile). Lo vedremo brevemente nel seguito.
Il protocollo TCP è stato progettato per fornire un flusso di byte affidabile, da sorgente a destinazione, su una rete non affidabile.
Il protocollo TCP |
Le caratteristiche più importanti sono le seguenti:
ogni byte del flusso TCP è numerato con un numero d'ordine a 32 bit, usato sia per il controllo di flusso che per la gestione degli ack;
un segmento TCP non può superare i 65.535 byte;
un segmento TCP è formato da:
uno header, a sua volta costituito da:
una parte fissa di 20 byte;
una parte opzionale;
i dati da trasportare;
TCP usa un meccanismo di sliding window di tipo go-back-n con timeout. Se questo scade, il segmento si ritrasmette. Si noti che le dimensioni della finestra scorrevole e i valori degli ack sono espressi in numero di byte, non in numero di segmenti.
I campi dell'header hanno le seguenti funzioni:
|
Source port, destination port |
identificano gli end point (locali ai due host) della connessione. Essi, assieme ai corrispondenti numeri IP, formano i due TSAP. |
|
Sequence number |
il numero d'ordine del primo byte contenuto nel campo dati. |
|
Ack. number |
il numero d'ordine del prossimo byte aspettato. |
|
TCP header length |
quante parole di 32 bit ci sono nell'header (necessario perché il campo options è di dimensione variabile). |
|
URG |
1 se urgent pointer è usato, 0 altrimenti. |
|
ACK |
1 se l'ack number è valido (cioè se si convoglia un ack), 0 altrimenti. |
|
PSH |
dati urgenti (pushed data), da consegnare senza aspettare che il buffer si riempia. |
|
RST |
richiesta di reset della connessione (ci sono problemi!). |
SYN |
usato nella fase di setup della connessione: SYN=1 ACK=0 richiesta connessione; SYN=1 ACK=1 accettata connessione. |
|
|
FIN |
usato per rilasciare una connessione. |
|
Window size |
il controllo di flusso è di tipo sliding window di dimensione variabile. Window size dice quanti byte possono essere spediti a partire da quello (compreso) che viene confermato con l'ack number. Un valore zero significa: fermati per un pò, riprenderai quando ti arriverà un uguale ack number con un valore di window size diverso da zero. |
|
Checksum |
simile a quello di IP; il calcolo include uno pseudoheader. |
|
Urgent pointer |
puntatore ai dati urgenti. |
Options |
fra le più importanti, negoziabili al setup: dimensione massima dei segmenti da spedire; uso di selective repeat invece che go-back-n; uso di NAK. |
|
Nel calcolo del checksum entra anche uno pseudo-preambolo,, in aperta violazione della gerarchia, dato che il livello TCP in questo calcolo opera su indirizzi IP.
Lo pseudo-preambolo non viene trasmesso, ma precede
concettualmente l'header. I suoi campi hanno le seguenti funzioni:
Source IP address, destination IP address |
indirizzi IP (a 32 bit) di sorgente e destinatario. |
Protocol |
il codice numerico del protocollo TCP (pari a 6). |
TCP segment length |
il numero di byte del segmento TCP, header compreso. |
Il protocollo UDP |
Il livello transport fornisce anche un protocollo non connesso e non affidabile, utile per inviare dati senza stabilire connessioni (ad esempio per applicazioni client-server).
Lo header di un segmento UDP è molto semplice:
La funzione di calcolo del checksum può essere disattivata, tipicamente nel caso di traffico in tempo reale (come voce e video) per il quale è in genere più importante mantenere un elevato tasso di arrivo dei segmenti piuttosto che evitare i rari errori che possono accadere.
Privacy |
Articolo informazione
Commentare questo articolo:Non sei registratoDevi essere registrato per commentare ISCRIVITI |
Copiare il codice nella pagina web del tuo sito. |
Copyright InfTub.com 2024