Passa al contenuto principale

4.1. Riavvio di connessioni inattive

Un problema noto degli algoritmi di controllo della congestione TCP descritti sopra è che essi consentono la trasmissione di una raffica di traffico potenzialmente inappropriata dopo che TCP è rimasto inattivo per un periodo di tempo relativamente lungo. Dopo un periodo di inattività, TCP non può utilizzare l'orologio degli ACK per scandire nuovi segmenti nella rete, poiché tutti gli ACK si sono esauriti dalla rete. Pertanto, come specificato sopra, TCP può potenzialmente inviare nella rete una raffica alla velocità della linea pari a cwnd dopo un periodo di inattività. Inoltre, il cambiamento delle condizioni della rete può aver reso imprecisa, nel corso di un lungo periodo di inattività, la nozione che TCP ha della capacità di rete end-to-end disponibile tra due endpoint, come stimata da cwnd.

[Jac88] raccomanda che un TCP utilizzi l'avvio lento per riavviare la trasmissione dopo un periodo di inattività relativamente lungo. L'avvio lento serve a riavviare l'orologio degli ACK, proprio come fa all'inizio di un trasferimento. Questo meccanismo è stato ampiamente implementato nel modo seguente. Quando TCP non ha ricevuto un segmento per più di un timeout di ritrasmissione, cwnd viene ridotto al valore della finestra di riavvio (RW) prima che inizi la trasmissione.

Ai fini di questo standard, definiamo RW = min(IW,cwnd).

L'utilizzo dell'ultima volta in cui è stato ricevuto un segmento per determinare se ridurre o meno cwnd può non riuscire a sgonfiare cwnd nel caso comune delle connessioni HTTP persistenti [HTH98]. In questo caso, un server Web riceve una richiesta prima di trasmettere dati al client Web. La ricezione della richiesta fa fallire il controllo di connessione inattiva e consente al TCP di iniziare la trasmissione con un cwnd possibilmente inappropriatamente grande.

Pertanto, un TCP DOVREBBE (SHOULD) impostare cwnd a un valore non superiore a RW prima di iniziare la trasmissione se il TCP non ha inviato dati in un intervallo superiore al timeout di ritrasmissione.