Appropriate Byte Counting during Congestion Avoidance
Michael Tuexen
Michael.Tuexen at lurchi.franken.de
Wed Aug 19 08:14:39 UTC 2020
> 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