Flusso TCP (parte I)
Flusso TCP: piano degli argomenti
• Tipi di flusso di dati
− Interattivo
− Con grandi quantità di dati (Bulk Transfer)
• Tipi di controllo
− Timeout/Ritrasmissione
• Tecniche di gestione della congestione
− Slow Start/Congestion Avoidance
Dati interattivi: pacchetti piccoli
Esempio
Terminale connesso via rete (Telnet/Rlogin):
• invio di ogni sequenza di dati interattiva in un pacchetto
TCP separato;
• il lato server rimanda al mittente quello stesso carattere
perché venga visualizzato sullo schermo locale.
Grandezza di questi pacchetti TCP che contengono
un singolo byte di dati:
• dati di 1 byte;
• 20 byte (almeno) per l’intestazione TCP;
• 20 byte per l’intestazione IP;
• < 3% sono dati!
Trasporto di dati in piggyback
• Ogni sequenza di dati interattiva viaggia in un
pacchetto TCP separato.
• Il lato server invia a sua volta quello stesso carattere
perché venga visualizzato sullo schermo locale.
• L’ACK dei dati inviati dal terminale al server è
trasportato in piggyback sull’eco dei dati inviati dal
server al terminale.
Trasporto in piggyback di ACK
Host B
Host A
Utente
digita
‘C’
B invia ACK
per la ricezione di
‘C’, e rimanda l’eco
’C’
Tempo
Semplice scenario telnet
ACK ritardati
Se si desidera eseguire il piggyback negli ACK si ritarda un po’
l’ACK sperando che arrivino dati nell’altra direzione (e magari
in arrivi multipli per un ACK cumulativo).
Host B
Host A
Utente
digita ‘C’
A invia ACK
per la ricezione
di ‘C’
L’ACK non viene inviato
immediatamente,
ma ritardato sperando di poter
eseguire il piggyback
Semplice scenario telnet
Algoritmo di Nagle
(1)
Se una connessione TCP ha dati in sospeso per
cui non è ancora stato ricevuto un ACK, non
vengono inviati segmenti piccoli.
• Si aspetta invece di ricevere un ACK e poi si inviano
tutti i dati raccolti fino a quel punto.
• Se si accumulano troppi dati, si va avanti e si invia
senza aspettare ACK.
Si adatta alle condizioni di rete:
• se gli ACK ritornano rapidamente (come su una LAN), i
dati verranno inviati rapidamente;
• se gli ACK ritornano lentamente (come su una rete
geografica), al mittente verranno accumulati dati da
inviare tutti insieme.
Algoritmo di Nagle
Host A
(2)
Host B
Utente digita
‘C’
Utente digita ‘A’
(il software TCP
aspetta ACK)
Utente digita ‘T’
(il software TCP
aspetta ACK)
B invia ACK per
la ricezione di ‘C’,
e rinvia l’eco di ‘C’
riceve AT in un unico
segmento
TCP
FINE
Scarica

parte I