Una connessione TCP ha due endpoint

Stabilire una connessione

Inviare e ricevere dati

Il client invia un segmento con un numero di sequenza di 101, un numero di riconoscimento 501, un po 'ACK del 1 °, un po' SYN pari a zero, e otto byte di dati nella parte dati del segmento. L'ACK e SYN bit non cambia per il resto della connessione. Il server riconosce che riceve gli 8 byte di dati mediante l'invio di un segmento con un numero di sequenza di 501 e un numero di riconoscimento del 109. Porzione di dati di questo segmento può anche contenere i nuovi dati da inviare al client, che il cliente riconosce in un altro segmento. I segmenti inviati al momento di stabilire una connessione può includere dati come bene. In questo caso, la destinazione deve contenere i dati ricevuti fino a quando la connessione è stabilita.

Una stretta di mano con successo dice al computer di origine che i dati arrivati al livello del computer di destinazione TCP. C'è ancora spazio per gli errori, però, perché la stretta di mano non può garantire che il processo designato al computer di destinazione ha ricevuto i dati dal livello TCP. Quindi, per essere assolutamente certi che l'applicazione della destinazione ricevuto i dati, è necessario un protocollo a livello di applicazione per fornire il riconoscimento.

Chiusura di una connessione

Riguardo, una chiusura richiede anche handshaking. Per chiudere una connessione del tutto, ogni computer invia un segmento con il bit di controllo FIN impostato a 1 per indicare che il computer non ha più dati da inviare. Ogni destinazione deve aver ricevuto il FIN. Articolo Network 5-5 mostra un esempio:

  

1. Il client invia un segmento con il bit di controllo FIN impostato a 1. Ciò indica che il client invierà più dati su questa connessione. Il client può continuare a ricevere dal server.

2. Il server invia un segmento riconoscendo la FIN ha ricevuto. Se il server non ha più dati da inviare, si imposta il suo bit FIN a 1. In caso contrario, il server continua a inviare dati e imposta il bit FIN a 1 quando tutti i dati è stato inviato.

3. Il client invia un segmento riconoscendo la FIN ha ricevuto. La connessione è ora chiuso.

Naturalmente, è possibile che uno dei computer si blocca o essere rimosso dalla rete prima che la stretta di mano di chiusura completa. In questo caso, il computer può decidere, dopo un momento di considerare chiusa la connessione e libero le risorse stanziate per la connessione.

Flow Control

Un processo di invio può avere più segmenti pronto per essere inviato a destinazione. Prima di inviare ogni segmento, il processo di invio potrebbe aspettare per un riconoscimento per il segmento precedente. Ma questo non è il modo più efficace per il trasferimento dei dati, se la destinazione sia spazio per memorizzare i dati in più di un segmento.

Per ulteriori trasferimenti efficienti, il processo di invio è possibile utilizzare campo ha ricevuto un colpo di testa di finestra per aiutare a determinare la quantità di dati per l'invio senza aspettare una conferma. La destinazione può regolare la dimensione secondo il suo stato attuale, modificando il contenuto del campo Window se necessario nelle intestazioni che invia. Un numero ricevuto conferma dice il mittente che il destinatario ha ricevuto tutti i dati con i numeri del segmento fino ad un meno il numero di conferma. Se il mittente non riceve alcuna conferma, si può inviare nuovamente i dati. In genere, su invio di un segmento, la fonte di memorizzare temporaneamente i dati del segmento in una coda di ritrasmissione e avvia un timer. Dopo aver ricevuto un riconoscimento, la fonte elimina i dati dalla coda di ritrasmissione. Se la fonte non riceve una conferma per il momento in cui i tempi di timer, la fonte presuppone che la destinazione non ha ricevuto il segmento e rinvia, utilizzando i dati nella coda di ritrasmissione. La quantità di tempo di attesa prima di inviare nuovamente possibile variano con la rete. ospita spesso uso il round-trip time medio per una trasmissione nel determinare un valore di timeout.

Miglioramento delle prestazioni

Nel tempo, diversi metodi sono entrati in uso popolare per contribuire a rendere i dati TCP trasferimento più efficiente. I metodi limite di quantità di dati da un mittente può inviare in alcune situazioni, e può anche eliminare la necessità di attendere un timeout prima di ritrasmettere. I metodi sono Slow Start, Congestion Avoidance, ritrasmissione veloce, e Fast Recovery. RFC2581: TCP Congestion documenti di controllo dei metodi. I metodi hanno tutte a che fare con l'indicazione del numero di segmenti di una fonte in grado di trasmettere prima di ricevere un riconoscimento. Se una fonte di attesa per il riconoscimento del segmento precedente prima di inviare il segmento successivo, la fonte è conforme ai requisiti delle norme approvate e proposte. Un sistema integrato che trasferisce i dati di rado è possibile utilizzare questa semplice, anche se meno efficienti, approccio.

Supportano il protocollo TCP in Embedded Systems

Supportano il protocollo TCP in un sistema embedded è più complicata di supporto UDP. Oltre ad aggiungere e rimuovere le intestazioni e il sostegno IP, il computer deve eseguire il 3-way handshake per connettersi a un host remoto, mantenere la sequenza di numeri di riconoscimento e nello scambio di dati, stretta di mano, quando la chiusura di una connessione, e rispondere agli errori rilevati. Per inviare un messaggio utilizzando il protocollo TCP, un computer in una rete Ethernet devono effettuare le seguenti operazioni:

• Stabilire una connessione con il 3-way handshake.

• Utilizzare la ricevuta dimensioni della finestra per determinare la quantità di dati al computer remoto può accettare.

• Inserire la sorgente e il numero della porta di destinazione, numero progressivo, il numero di riconoscimento, la lunghezza di intestazione, la dimensione della finestra di origine e di controllo nei luoghi appropriati nell'intestazione TCP. Calcolare il checksum è necessario conoscere l'indirizzo IP sorgente e destinazione.

• Inserire i dati per l'invio nella parte dati del segmento.

• Inserire il segmento TCP nella parte dei dati di un datagramma IP. Il datagramma IP richiede indirizzo IP sorgente e destinazione e calcolo di una somma di controllo sulla intestazione.

• Passare il datagramma IP al driver del controller Ethernet per la trasmissione sulla rete e avviare un timer timeout.

• aspettare di ricevere un numero di riconoscimento che indica che il computer remoto ha ricevuto i dati. Se la conferma non arriva entro un timeout, inviare nuovamente il segmento. Per ricevere un datagramma utilizzando il protocollo TCP, un computer in una rete Ethernet devono effettuare le seguenti operazioni:

• Stabilire una connessione con il 3-way handshake.

• Ricevere un datagramma IP dal driver del controller Ethernet.

• Striscia l'intestazione IP dal datagramma. Calcolare il checksum e confrontare con il valore ricevuto.

• Se il checksum match, striscia l'intestazione del segmento TCP. Calcolare la somma di controllo e di confrontarlo con il valore ricevuto.

• Esaminare il numero di conferma ricevuto per scoprire se il segmento si conferma di aver ricevuto i dati inviati precedentemente e in caso affermativo, eliminare i dati riconosciuti dalla coda di ritrasmissione.

• Confrontare il numero di sequenza ricevuto per il valore atteso. Se la partita numeri, impostare il numero di riconoscimento per tornare al mittente in un segmento TCP.

• Utilizzare il numero di porta di destinazione per decidere dove passare i dati. Inoltre, in qualsiasi momento, uno dei computer può chiedere di chiudere o reimpostare la connessione e l'altro computer prende atto della richiesta e può chiedere di chiudere o reimpostare la connessione dal altra estremità, se del caso.

Come dimostrano gli esempi all'inizio del tutorial in rete ha dimostrato, se si sta utilizzando un modulo con il supporto TCP, i dettagli della creazione di segmenti e di affrontare i checksum e la sequenza e il numero di riconoscimento sono gestiti per voi.

un articolo presentato da Daniel R.


Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni.
Importante: Questo articolo "Una connessione TCP ha due estremi" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.


Online: 366 users browsing the articles directory