Re: NewReno and the 2001 Revision
- Tom Henderson wrote:
>I'll have to ask the guys currently supporting MPE/iX, but I think that
> On Wed, 23 Sep 1998, Kacheong Poon wrote:
> > Can you describe what you meant by SACK with Reno and SACK with NewReno? With
> First, let me define NewReno for the purpose of this discussion. NewReno is
> Reno with the following changes:
> i) define a variable (snd_recover) that is set to snd_max upon entering fast
> recovery. When snd_una reaches snd_recover, the fast recovery phase is
> considered to be over.
> ii) if a partial cumulative ack is received (ti_ack < snd_recover), retransmit
> the next segment beyond ti_ack, deflate snd_cwnd by the amount of new
> data acknowledged, add back one segment to snd_cwnd, and send a new segment
> if permitted.
> iii) if a new ack is received with (ti_ack >= snd_recover), set snd_cwnd to
> min(snd_ssthresh, amount of outstanding data in the network + 1 segment)
> and otherwise exit fast recovery as in Reno.
the behaviour described in i has been present in the MPE/XL (now iX) TCP
stack since we implemented congestion control and avoidance. ii has been
present in that the next segment after the ACK would be sent, but I do
not recall new data being allowed. that stack would then start from a
cwnd of 1 upon iii.
At the time (89-90ish) it worked pretty well for aggregate file
transfers over 9600 baud dial-ups.
these opinions are mine, all mine; HP might not want them anyway... :)
feel free to email, or post, but please do not do both...
my email address is raj in the cup.hp.com domain...