Universita’



Scaricare 0.54 Mb.
Pagina9/38
29.03.2019
Dimensione del file0.54 Mb.
1   ...   5   6   7   8   9   10   11   12   ...   38

2.3 Il protocollo TCP


Il Transmission Control Protocol ( TCP ) è un protocollo del livello di trasporto che fornisce un flusso affidabile di byte, da sorgente a destinazione, su una rete non affidabile. Il protocollo TCP è definito nel RFC 793 [10].

Come il protocollo UDP ( User Datagram Protocol ), il TCP usa lo stesso livello di rete (IP), ma offre un servizio “connection-oriented” e affidabile tra i due host che vogliono comunicare, ovvero devono stabilire una connessione prima che possa avvenire lo scambio di dati.

I dati provenienti dal livello superiore, sono divisi in blocchi di dimensione stabilita dal protocollo TCP. La quantità dati inviata al protocollo IP, è suddivisa in unità chiamata segmento.

La figura 2.2 mostra il formato dell’header TCP. L’header è di 20 byte, se non sono presenti opzioni.




Figura 2.2 Header TCP
Il TCP garantisce l’affidabilità del trasporto mediante una serie di passi.

Quando il TCP riceve un segmento dall’altro lato della connessione, invia un ack.

Per ogni segmento trasmesso, viene calcolato e inviato un checksum, per individuare eventuali errori durante la trasmissione. Se si riceve un segmento con checksum non valido, il TCP lo scarta e non invia nessun ack.

Per sopperire al fatto che anche i segmenti TCP possono arrivare non in ordine, è previsto un meccanismo per riordinare i dati ricevuti, in modo da inoltrare al livello superiore i dati nell’ordine corretto.

Il TCP stabilisce un meccanismo per il controllo del flusso. Entrambi i lati della connessione TCP hanno un buffer di dimensioni finite. Il ricevente ha la possibilità di controllare la quantità di dati mandati dal mittente. Questo viene ottenuto inviando con ogni ack una finestra che indica il numero di byte che il ricevente è in grado di memorizzare.

Il TCP inoltre, per permettere a più processi nello stesso host di utilizzare questo protocollo, introduce il concetto di porta. La concatenazione di un indirizzo IP e di un numero di porta costruisce un socket. Una coppia di socket identifica univocamente una connessione3.

L’header di un pacchetto TCP è formato dai seguenti campi:


  • Il campo Source Port contiene il numero della porta utilizzata dall’host mittente.

  • Il campo Destination Port contiene il numero della porta utilizzata dall’host destinatario.

  • Il campo Sequence Number definisce l’ordine con cui i segmenti devono essere riassemblati.

  • Il campo Acknowledgment Number contiene il prossimo numero di sequenza che il destinatario si aspetta di ricevere dal mittente. Esprime quindi il numero di segmenti ricevuti correttamente fino a quel momento.

  • Il campo Data Offset definisce la lunghezza in parole a 32 bit dell’header TCP. Indica quindi dove iniziano i dati.

  • Il campo Reserved è riservato per utilizzi futuri.

  • Il campo Flag contiene 6 bit :

    • Il bit Syn è usato per aprire una connessione, è presente nel primo pacchetto dell’host che intende stabilire la connessione con un altro e nel primo pacchetto di risposta dell’host che intende accettare la connessione.

    • Il bit Fyn è usato per chiudere una connessione, quando non si hanno ulteriori dati da spedire.

    • Il bit Rst viene inviato da un host che riceve un pacchetto inatteso e che rifiuta la connessione.

    • Il bit Ack è usato per indicare se il valore riportato nel campo Acknowledgment Number è valido. È sempre attivato, tranne che nel primo segmento usato per aprire una connessione.

    • Il bit Push indica la presenza di dati che devono essere consegnati all’applicazione soprastante senza aspettare di riempire il buffer.

    • Il bit Urg è usato per indicare che nel segmento ci sono dato che il livello superiore ha contrassegnato come urgenti.

  • Il campo Window indica la grandezza massima della finestra del ricevente, cioè il numero massimo di byte che si è disposti a ricevere.

  • Il campo Checksum serve per un controllo di integrità sul segmento trasmesso.

  • Il campo Options serve per eventuali opzioni.

  • Il campo Padding serve per far in modo che l’intestazione TCP sia un multiplo di 32 bit.






Condividi con i tuoi amici:
1   ...   5   6   7   8   9   10   11   12   ...   38


©astratto.info 2019
invia messaggio

    Pagina principale