DragonFly BSD
DragonFly bugs List (threaded) for 2005-07
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: Possible burst from TCP NewReno when a partial ACK is received


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Mon, 4 Jul 2005 09:52:23 -0700 (PDT)

:I think TCP NewReno in DragonFlyBSD has a bug which may send
:a burst of data when a partial ACK is received.
:
:More precisely, when a partial ACK is received, if acked bytes is
:larger than congestion window, new congestion window becomes awfully
:huge value.
:
:This bug is the same as the one reported in the following mail:
:http://lists.freebsd.org/pipermail/freebsd-net/2005-June/007723.html
:
:I think tcp_newreno_partial_ack() should be modified as below.
:Through my experiences, I observed that in somecases (ocwnd > acked)
:is false (I inserted printf() there for test).  Without the change
:below, snd_cwnd would become awfully huge value.
:
:Regards,
:Noritoshi Demizu
:...
:
:-	tp->snd_cwnd = ocwnd - acked + tp->t_maxseg;
:+	if (ocwnd > acked)
:+		tp->snd_cwnd = ocwnd - acked + tp->t_maxseg;
:+	else
:+		tp->snd_cwnd = tp->t_maxseg;

    I'm not an expert on TCP but that patch looks reasonable.  I would
    like to wait for Jeff (who is traveling right now) to take a look at
    it before we make any commits.

					-Matt
					Matthew Dillon 
					<dillon@xxxxxxxxxxxxx>





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