Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoRosina Di Giacomo Modificato 9 anni fa
1
Controllo di flusso TCP
2
Elementi base del flusso TCP (1) Comunicazione punto-punto Un mittente, un destinatario. Flusso di byte affidabile Flusso suddiviso in segmenti e non in messaggi indipendenti (come i datagram UDP). Pipeline controllata Il controllo di flusso stabilisce le dimensioni della finestra. Buffer di invio e ricezione Come abbiamo visto nelle lezioni precedenti.
3
Elementi base del flusso TCP (2) Full duplex Flusso bidirezionale in una singola connessione. Orientato alla connessione Handshaking tra mittente e destinatario prima dell’invio dati. Controllato Adattamento alle diverse velocità relative del mittente e del destinatario.
4
Elementi base del flusso TCP (3) SEGMENTO L’applicazione SCRIVE i dati Porta Socket TCP Buffer Invio L’applicazione LEGGE i dati TCP Buffer Ricezione Porta Socket
5
Segmento TCP porta sorg. # porta dest. # 32 bit Dati applicativi (lunghezza variabile) numero di sequenza numero di acknowledgement dim. fin. ricev. ptr dati urgenti somma di controllo F SR PAU lungh. intest. non usato Opzioni (lunghezza variabile) Advertised window: # byte che il ricevente accetta Conteggio in byte (NON in segmenti!) Internet checksum (come UDP) # porta mittente e destinatario URG: dati urgenti (non usato) ACK: ACK valido PSH: push data (non usato) RST, SYN, FIN: Inizio, fine connessione
6
Intestazione TCP : campi principali Numero di sequenza (32 bit) Numero del primo byte del segmento. Dimensioni finestra ricevente (16 bit) Dimensione finestra come nel GBN o nel selective repeat; in TCP la dimensione della finestra è variabile. Acknowledgment (32 bit) Contiene il successivo numero di sequenza atteso.
7
Server di eco Host A Host B Seq=42, ACK=79, data = ‘C’ Seq=79, ACK=43, data = ‘C’ Seq=43, ACK=80 Utente digita ‘C’ A invia ACK per la ricezione di ‘C’ B invia ACK per la ricezione di ‘C’, invia a sua volta ‘C’ Tempo Numeri di sequenza e ACK TCP La gestione dei segmenti arrivati fuori ordine dipende dall’implementazione.
8
Intestazione TCP: campi principali Lunghezza d’intestazione (4 bit) I campi opzione possono variare la lunghezza dell’intestazione. Il valore della lunghezza espresso in numero di parole da 32 bit = 4 byte. 4 bit => 2 4 * 4 byte = 64 byte; poiché l’intestazione standard è lunga 20 byte ci sono 44 byte disponibili per le opzioni. L’intestazione UDP, invece, è lunga solo 8 byte.
9
Numeri di sequenza e finestra (1) L’intestazione comprende: 32 bit per il numero di sequenza (e di acknowledgement); 16 bit per la dimensione della finestra. Per la dimensione massima della finestra deve anzitutto valere: Dimensione finestra <= ½ SpazioNumeriSequenza Condizione facilmente soddisfatta: la dimensione della finestra è di 16 bit 2 32 >> 2 * 2 16
10
Numeri di sequenza e finestra (2) La dimensione finestra è un campo di 16 bit => la finestra massima è di 64 KB È sufficiente per riempire il pipeline? Non sempre Lunghezza pipeline = delay*BW Esempio: 100 ms roundtrip e 100 Mbps => 1.19 MB Numero di sequenza è un campo di 32 bit => 4 GB Il tempo di vita massimo del segmento è di 120 sec. Il wrap-around può arrivare troppo presto? Sì, è possibile per i seguenti motivi: – 4 GB/120 sec = 273 Mbps – < Gigabit Ethernet e STS-12 a 622 Mbps FINE
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.