[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bug in TCPReno ?...



>    I am observing that in ns, TCPReno dupack_action() does not retransmit
>    the TCP packet even after getting 3 dupacks, if this event is preceded
>    by a timeout.
>
>    In  RenoTcpAgent::timeout(), the recover_ is set to maxseq_, if bug_fix_
>    flag is ON. 

This is discussed in RFC 2582, "NewReno Modification to TCP's Fast
Recovery", available from
"http://www.aciri.org/floyd/papers/rfc2582.txt".

In particular, Section 5 on "Avoiding Multiple Fast Retransmits"
has a paragraph that begins "There are two separate scenarios in
which the TCP sender could receive three duplicate acknowledgements
acknowledging "send_high" but no more than "send_high".
The text discusses "Careful" and "Less Careful" variants of
bug_fix_ for Reno and NewReno TCP.  The Less Careful variant
is implemented in NS, and it sounds like you would prefer the
Careful variant.  The answer would be to make this a configurable
parameter of TCP, I would say, but I don't know when I would be
able to get to it...

The relevant scenarios are illustrated in
"./test-all-newreno".

- Sally