Appropriate Byte Counting during Congestion Avoidance

Michael Tuexen Michael.Tuexen at lurchi.franken.de
Tue Aug 25 09:43:53 UTC 2020


> On 19. Aug 2020, at 10:14, 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
Now fixed in https://svnweb.freebsd.org/changeset/base/364754

Thanks again for reporting.

Best regards
Michael
> 
> 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"
> 
> _______________________________________________
> 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