Appropriate Byte Counting during Congestion Avoidance

Liang Tian l.tian.email at gmail.com
Wed Aug 19 12:48:55 UTC 2020


Great, thanks!

On Wed, Aug 19, 2020 at 4:14 AM Michael Tuexen
<Michael.Tuexen at lurchi.franken.de> wrote:
>
> > On 19. Aug 2020, at 06:51, Liang Tian <l.tian.email at gmail.com> wrote:
> >
> > Hi everyone,
> >
> > We noticed CWND is growing much slower than expected during congestion
> > avoidance with new reno, and we came to this piece of code in
> > cc_ack_received() at tcp_input.c:353
> >
> > if (type == CC_ACK) {
> > ....
> >        if (tp->snd_cwnd > tp->snd_ssthresh) {
> >            tp->t_bytes_acked += min(tp->ccv->bytes_this_ack,
> >                 nsegs * V_tcp_abc_l_var * tcp_maxseg(tp));
> >            if (tp->t_bytes_acked >= tp->snd_cwnd) {
> >                tp->t_bytes_acked -= tp->snd_cwnd;
> >                tp->ccv->flags |= CCF_ABC_SENTAWND;
> >            }
> > The increment of t_bytes_acked is capped at 2*maxseg.
> > The description of the sysctl variable tcp_abc_l_var(default value 2) is
> > "Cap the max cwnd increment during slow-start to this number of segments"
> > After reading RFC3465, it doesn't look like this cap should be applied
> > here since this is clearly not during slow-start.
> > We've seen in some cases the receiver is ACKing every 16 packets, and
> > CWND is growing at 1/8 of the expected rate because of this.
> >
> > I would appreciate your opinion on this. Thanks a lot.
> Hi Liang,
>
> thanks for bringing this up. I agree. A patch is under review:
> https://reviews.freebsd.org/D26120
>
> Best regards
> Michael
> >
> > Regards,
> > Liang
> > _______________________________________________
> > freebsd-net at freebsd.org mailing list
> > https://lists.freebsd.org/mailman/listinfo/freebsd-net
> > To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
>


More information about the freebsd-net mailing list