Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Flow Congestion Control - Odt 1.odt
Flow Congestion Control - Odt 1.odt
Congestion Control
1)
Supponiamo che l’host A stia inviando dati sulla connessione a una frequenza
λ(in) byte/s(i dati sono detti originali poiché vengono mandati sulla
connessione 1 sola volta). Pertanto A invia dati a λ(in) byte/s, ignorando
l’overhead dovuto all’incapsulamento dei dati in segmenti da parte del livello
di sotto. L’host B si comporta allo stesso modo.
Consideriamo un caso più realistico, il sender rinvia solo quando è certo che il
pacchetto sia andato perso(per far questo imposta un timeout molto alto), la
situazione è quella della seconda figura, abbiamo λ’(in) = R/2 e λ(out)=R/3,
abbiamo quindi costi maggiori dovuti alla ritrasmissione
i router sono condivisi tra gli hosts per le connessioni, con valori molto
piccoli di λ(in) non abbiamo overflow e risulta essere uguale a il thoroughput
del ricevente, aumentando λ(in) abbiamo un conseguente aumento del λ(out).
Approcci:
Il meccanismo di controllo
della congestione TCP fa tener
traccia agli estremi di un
buffer di ricezione, uno di
invio e diverse variabili, tra
cui rwnd e LastByteRead di una
cwnd, che impone un vincolo
sulla velocità di traffico
sulla rete da parte del
mittente.
La quantità dati massima per cui si può continuare a inviare senza aver ricevuto
gli ACK precedenti è LastByteSent – LastByteAcked <= cwnd(assumiamo che rwnd sia
abbastanza grande da poter ignorare il vincolo della finestra di ricezione,
quindi la quantità di pacchetti che non hanno ricevuto riscontro è limitata da
cwnd)
Algoritmo TCP
1) Slow Start
la cwnd viene inizializzata a 1 MSS, a
seguito di ogni ACK, di segmento, viene
incrementata di 1 MSS, parte lentamente
(slow start), ma raddoppia la velocità
trasmissiva a ogni RTT, in maniera
esponenziale.
Congestion Avoiance
TCP quando entra in questa fase ha un valore di ssthresh, aumenta di 1 MSS ogni
RTT cioè cwnd+1/cwnd ogni ACK. A seguito di un timeout si comporta come slow
start, in caso di 3 ACK TCP dimezza il valore di cwnd aggiungendo 3MSS, quelli
degli ACK duplicati, ssthresh viene impostato a cwnd al momento della ricezione
degli ACK duplicati e entra in fast recovery.
Fast Recovery
Throughput TCP
durante un dato intervallo di RTT la velocità di invio dei dati è funzione della
cwnd e RTT corrente; se l’ampiezza della finestra vale w e la frequenza
trasmissiva è w/RTT byte/s. TCP aggiunge 1 MSS a w ogni RTT finché non si
verifica una perdita W(valore di w durante la perdità), se W e RTT sono costanti
durante la connessione abbimo che il throughput varia tra W/(2xRTT) e W/RTT
throughput(medio) = (0,75*W)
Fairness