Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Oct 2022 10:51:32 +0800
From:      Zhenlei Huang <zlei.huang@gmail.com>
To:        Michael Tuexen <michael.tuexen@lurchi.franken.de>
Cc:        freebsd-net@freebsd.org
Subject:   Re: Too aggressive TCP ACKs
Message-ID:  <330A9146-F7CC-4CAB-9003-2F90B872AC3E@gmail.com>
In-Reply-To: <0FED34A9-D093-442A-83B7-08C06D11F8B5@lurchi.franken.de>
References:  <75D35F36-7759-4168-ADBA-C2414F5B53BC@gmail.com> <712641B3-5196-40CC-9B64-04637F16F649@lurchi.franken.de> <62A0DD30-B3ED-48BE-9C01-146487599092@gmail.com> <0FED34A9-D093-442A-83B7-08C06D11F8B5@lurchi.franken.de>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]

> On Oct 22, 2022, at 2:16 AM, Michael Tuexen <michael.tuexen@lurchi.franken.de <mailto:michael.tuexen@lurchi.franken.de>> wrote:
> 
>> On 21. Oct 2022, at 17:00, Zhenlei Huang <zlei.huang@gmail.com <mailto:zlei.huang@gmail.com>> wrote:
>> 
>> 
>>> On Oct 21, 2022, at 10:34 PM, Michael Tuexen <michael.tuexen@lurchi.franken.de <mailto:michael.tuexen@lurchi.franken.de>> wrote:
>>> 
>>>> On 21. Oct 2022, at 16:19, Zhenlei Huang <zlei.huang@gmail.com <mailto:zlei.huang@gmail.com>> wrote:
>>>> 
>>>> Hi,
>>>> 
>>>> While I was repeating https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258755 <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258755>, I observed a
>>>> strange behavior. The TCP ACKs from FreeBSD host are too aggressive.
>>>> 
>>>> My setup is simple:
>>>>        A                                 B
>>>>  [ MacOS ]  <====> [ FreeBSD VM ]
>>>> 192.168.120.1            192.168.12.134 (disable tso and lro)
>>>> While A <--- B, i.e. A as server and B as client, the packets rate looks good.
>>>> 
>>>> One session on B:
>>>> 
>>>> root@:~ # iperf3 -c 192.168.120.1 -b 10m
>>>> Connecting to host 192.168.120.1, port 5201
>>>> [  5] local 192.168.120.134 port 54459 connected to 192.168.120.1 port 5201
>>>> [ ID] Interval           Transfer     Bitrate         Retr  Cwnd
>>>> [  5]   0.00-1.00   sec  1.25 MBytes  10.5 Mbits/sec    0    257 KBytes       
>>>> [  5]   1.00-2.00   sec  1.25 MBytes  10.5 Mbits/sec    0    257 KBytes       
>>>> [  5]   2.00-3.00   sec  1.12 MBytes  9.44 Mbits/sec    0    257 KBytes       
>>>> [  5]   3.00-4.00   sec  1.25 MBytes  10.5 Mbits/sec    0    257 KBytes       
>>>> [  5]   4.00-5.00   sec  1.12 MBytes  9.44 Mbits/sec    0    257 KBytes       
>>>> [  5]   5.00-6.00   sec  1.25 MBytes  10.5 Mbits/sec    0    257 KBytes       
>>>> [  5]   6.00-7.00   sec  1.12 MBytes  9.44 Mbits/sec    0    257 KBytes       
>>>> [  5]   7.00-8.00   sec  1.25 MBytes  10.5 Mbits/sec    0    257 KBytes       
>>>> [  5]   8.00-9.00   sec  1.12 MBytes  9.44 Mbits/sec    0    257 KBytes       
>>>> [  5]   9.00-10.00  sec  1.25 MBytes  10.5 Mbits/sec    0    257 KBytes       
>>>> - - - - - - - - - - - - - - - - - - - - - - - - -
>>>> [ ID] Interval           Transfer     Bitrate         Retr
>>>> [  5]   0.00-10.00  sec  12.0 MBytes  10.1 Mbits/sec    0             sender
>>>> [  5]   0.00-10.00  sec  12.0 MBytes  10.1 Mbits/sec                  receiver
>>>> 
>>>> iperf Done.
>>>> 
>>>> Another session on B:
>>>> 
>>>> root@:~ # netstat -w 1 -I vmx0
>>>>           input           vmx0           output
>>>>  packets  errs idrops      bytes    packets  errs      bytes colls
>>>>        0     0     0          0          0     0          0     0
>>>>        0     0     0          0          0     0          0     0
>>>>      342     0     0      22600        526     0     775724     0
>>>>      150     0     0       9900        851     0    1281454     0
>>>>      109     0     0       7194        901     0    1357850     0
>>>>      126     0     0       8316        828     0    1246632     0
>>>>      122     0     0       8052        910     0    1370780     0
>>>>      109     0     0       7194        819     0    1233702     0
>>>>      120     0     0       7920        910     0    1370780     0
>>>>      110     0     0       7260        819     0    1233702     0
>>>>      123     0     0       8118        910     0    1370780     0
>>>>      109     0     0       7194        819     0    1233702     0
>>>>       73     0     0       5088        465     0     686342     0
>>>>        0     0     0          0          0     0          0     0
>>>>        0     0     0          0          0     0          0     0
>>>> 
>>>> 
>>>> 
>>>> ================================================================
>>>> 
>>>> 
>>>> While A ---> B, i.e. A as client and B as server, the ACKs sent from B looks strange.
>>>> 
>>>> Session on A:
>>>> 
>>>> % iperf3 -c 192.168.120.134 -b 10m
>>>> Connecting to host 192.168.120.134, port 5201
>>>> [  5] local 192.168.120.1 port 52370 connected to 192.168.120.134 port 5201
>>>> [ ID] Interval           Transfer     Bitrate
>>>> [  5]   0.00-1.00   sec  1.25 MBytes  10.5 Mbits/sec                  
>>>> [  5]   1.00-2.00   sec  1.25 MBytes  10.5 Mbits/sec                  
>>>> [  5]   2.00-3.00   sec  1.12 MBytes  9.44 Mbits/sec                  
>>>> [  5]   3.00-4.00   sec  1.25 MBytes  10.5 Mbits/sec                  
>>>> [  5]   4.00-5.00   sec  1.12 MBytes  9.44 Mbits/sec                  
>>>> [  5]   5.00-6.00   sec  1.25 MBytes  10.5 Mbits/sec                  
>>>> [  5]   6.00-7.00   sec  1.12 MBytes  9.44 Mbits/sec                  
>>>> [  5]   7.00-8.00   sec  1.25 MBytes  10.5 Mbits/sec                  
>>>> [  5]   8.00-9.00   sec  1.12 MBytes  9.44 Mbits/sec                  
>>>> [  5]   9.00-10.00  sec  1.25 MBytes  10.5 Mbits/sec                  
>>>> - - - - - - - - - - - - - - - - - - - - - - - - -
>>>> [ ID] Interval           Transfer     Bitrate
>>>> [  5]   0.00-10.00  sec  12.0 MBytes  10.1 Mbits/sec                  sender
>>>> [  5]   0.00-10.00  sec  12.0 MBytes  10.1 Mbits/sec                  receiver
>>>> 
>>>> iperf Done.
>>>> 
>>>> Session on B:
>>>> 
>>>> root@:~ # netstat -w 1 -I vmx0
>>>>           input           vmx0           output
>>>>  packets  errs idrops      bytes    packets  errs      bytes colls
>>>>        0     0     0          0          0     0          0     0
>>>>        0     0     0          0          0     0          0     0
>>>>      649     0     0     960562        330     0      21800     0
>>>>      819     0     0    1233702        415     0      27390     0
>>>>      910     0     0    1370780        459     0      30294     0
>>>>      819     0     0    1233702        415     0      27390     0
>>>>      910     0     0    1370780        459     0      30294     0
>>>>      910     0     0    1370780        460     0      30360     0
>>>>      819     0     0    1233702        414     0      27324     0
>>>>      910     0     0    1370780        460     0      30360     0
>>>>      819     0     0    1233702        414     0      27324     0
>>>>      910     0     0    1370780        460     0      30360     0
>>>>      285     0     0     412287        147     0       9981     0
>>>>        0     0     0          0          0     0          0     0
>>>>        0     0     0          0          0     0          0     0
>>>>        0     0     0          0          0     0          0     0
>>>> 
>>>> 
>>>> The ACK packets replied from B (the FreeBSD VM) are too aggressive. They are
>>>> about one half of TCP packets received from A.
>>>> 
>>>> I've tested with different bitrates, from 10m to 300m, all behave the same.
>>>> Tested with baremetal FreeBSD 13.1 Box as B (with intel em driver), the 
>>>> bitrates is 1g, also  behaves the same.
>>>> 
>>>> Also tried different FreeBSD versions, 11.4, 12.3, stable/13 and current/14 all 
>>>> behave the same.
>>>> 
>>>> 
>>>> My question is, is that the expected behavior of current default TCP stack?
>>> That is what I would expect. TCP (on FreeBSD) is acking every other packet. This
>>> is also what is specified. MacOS, at least newer versions, send less ACKs.
>> Thanks for fast response!
>> 
>> My have old memories about SACK which helps TCP performance. This behavior
>> seems odd from my mind. But those memories date back to 2008, that is 14 years ago.
> I don't think anything has changed since then from a specification point of view
Hacked some RFCs from 1122, and the transport protocol is stable, and apparently
it should be.
>> 
>> The current implementation of TCP stack in FreeBSD head is too complexed for me.
>> Can you please point me the RFCs specifying this? So I can start over with a quick glue.
> Send an ACK for every other frame if everything is OK, send it immediately if there are some gaps:
> https://datatracker.ietf.org/doc/html/rfc9293#section-3.8.6.3 <https://datatracker.ietf.org/doc/html/rfc9293#section-3.8.6.3>;
> This applies also to the case where you use SACK.
I think I confused SACK with delayed ACK.

Thanks!
> 
> Best regards
> Michael
>> 
>> Thanks!
>>> 
>>> Best regards
>>> Michael
>>>> 
>>>> 
>>>> 
>>>> Best regards,
>>>> Zhenlei


[-- Attachment #2 --]
<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><div><br class=""></div></div><div><blockquote type="cite" class=""><div class="">On Oct 22, 2022, at 2:16 AM, Michael Tuexen &lt;<a href="mailto:michael.tuexen@lurchi.franken.de" class="">michael.tuexen@lurchi.franken.de</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">On 21. Oct 2022, at 17:00, Zhenlei Huang &lt;<a href="mailto:zlei.huang@gmail.com" class="">zlei.huang@gmail.com</a>&gt; wrote:<br class=""><br class=""><br class=""><blockquote type="cite" class="">On Oct 21, 2022, at 10:34 PM, Michael Tuexen &lt;<a href="mailto:michael.tuexen@lurchi.franken.de" class="">michael.tuexen@lurchi.franken.de</a>&gt; wrote:<br class=""><br class=""><blockquote type="cite" class="">On 21. Oct 2022, at 16:19, Zhenlei Huang &lt;<a href="mailto:zlei.huang@gmail.com" class="">zlei.huang@gmail.com</a>&gt; wrote:<br class=""><br class="">Hi,<br class=""><br class="">While I was repeating <a href="https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258755" class="">https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258755</a>, I observed a<br class="">strange behavior. The TCP ACKs from FreeBSD host are too aggressive.<br class=""><br class="">My setup is simple:<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B<br class="">&nbsp;[ MacOS ] &nbsp;&lt;====&gt; [ FreeBSD VM ]<br class="">192.168.120.1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;192.168.12.134 (disable tso and lro)<br class="">While A &lt;--- B, i.e. A as server and B as client, the packets rate looks good.<br class=""><br class="">One session on B:<br class=""><br class="">root@:~ # iperf3 -c 192.168.120.1 -b 10m<br class="">Connecting to host 192.168.120.1, port 5201<br class="">[ &nbsp;5] local 192.168.120.134 port 54459 connected to 192.168.120.1 port 5201<br class="">[ ID] Interval &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transfer &nbsp;&nbsp;&nbsp;&nbsp;Bitrate &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Retr &nbsp;Cwnd<br class="">[ &nbsp;5] &nbsp;&nbsp;0.00-1.00 &nbsp;&nbsp;sec &nbsp;1.25 MBytes &nbsp;10.5 Mbits/sec &nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;257 KBytes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">[ &nbsp;5] &nbsp;&nbsp;1.00-2.00 &nbsp;&nbsp;sec &nbsp;1.25 MBytes &nbsp;10.5 Mbits/sec &nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;257 KBytes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">[ &nbsp;5] &nbsp;&nbsp;2.00-3.00 &nbsp;&nbsp;sec &nbsp;1.12 MBytes &nbsp;9.44 Mbits/sec &nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;257 KBytes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">[ &nbsp;5] &nbsp;&nbsp;3.00-4.00 &nbsp;&nbsp;sec &nbsp;1.25 MBytes &nbsp;10.5 Mbits/sec &nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;257 KBytes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">[ &nbsp;5] &nbsp;&nbsp;4.00-5.00 &nbsp;&nbsp;sec &nbsp;1.12 MBytes &nbsp;9.44 Mbits/sec &nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;257 KBytes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">[ &nbsp;5] &nbsp;&nbsp;5.00-6.00 &nbsp;&nbsp;sec &nbsp;1.25 MBytes &nbsp;10.5 Mbits/sec &nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;257 KBytes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">[ &nbsp;5] &nbsp;&nbsp;6.00-7.00 &nbsp;&nbsp;sec &nbsp;1.12 MBytes &nbsp;9.44 Mbits/sec &nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;257 KBytes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">[ &nbsp;5] &nbsp;&nbsp;7.00-8.00 &nbsp;&nbsp;sec &nbsp;1.25 MBytes &nbsp;10.5 Mbits/sec &nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;257 KBytes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">[ &nbsp;5] &nbsp;&nbsp;8.00-9.00 &nbsp;&nbsp;sec &nbsp;1.12 MBytes &nbsp;9.44 Mbits/sec &nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;257 KBytes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">[ &nbsp;5] &nbsp;&nbsp;9.00-10.00 &nbsp;sec &nbsp;1.25 MBytes &nbsp;10.5 Mbits/sec &nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;257 KBytes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">- - - - - - - - - - - - - - - - - - - - - - - - -<br class="">[ ID] Interval &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transfer &nbsp;&nbsp;&nbsp;&nbsp;Bitrate &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Retr<br class="">[ &nbsp;5] &nbsp;&nbsp;0.00-10.00 &nbsp;sec &nbsp;12.0 MBytes &nbsp;10.1 Mbits/sec &nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sender<br class="">[ &nbsp;5] &nbsp;&nbsp;0.00-10.00 &nbsp;sec &nbsp;12.0 MBytes &nbsp;10.1 Mbits/sec &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;receiver<br class=""><br class="">iperf Done.<br class=""><br class="">Another session on B:<br class=""><br class="">root@:~ # netstat -w 1 -I vmx0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vmx0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;output<br class="">&nbsp;packets &nbsp;errs idrops &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes &nbsp;&nbsp;&nbsp;packets &nbsp;errs &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes colls<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;342 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;22600 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;526 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;775724 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;150 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9900 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;851 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;1281454 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;109 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7194 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;901 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;1357850 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;126 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8316 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;828 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;1246632 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;122 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8052 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;910 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;1370780 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;109 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7194 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;819 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;1233702 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;120 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7920 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;910 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;1370780 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;110 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7260 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;819 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;1233702 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;123 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8118 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;910 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;1370780 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;109 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7194 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;819 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;1233702 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;73 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5088 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;465 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;686342 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0<br class=""><br class=""><br class=""><br class="">================================================================<br class=""><br class=""><br class="">While A ---&gt; B, i.e. A as client and B as server, the ACKs sent from B looks strange.<br class=""><br class="">Session on A:<br class=""><br class="">% iperf3 -c 192.168.120.134 -b 10m<br class="">Connecting to host 192.168.120.134, port 5201<br class="">[ &nbsp;5] local 192.168.120.1 port 52370 connected to 192.168.120.134 port 5201<br class="">[ ID] Interval &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transfer &nbsp;&nbsp;&nbsp;&nbsp;Bitrate<br class="">[ &nbsp;5] &nbsp;&nbsp;0.00-1.00 &nbsp;&nbsp;sec &nbsp;1.25 MBytes &nbsp;10.5 Mbits/sec &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">[ &nbsp;5] &nbsp;&nbsp;1.00-2.00 &nbsp;&nbsp;sec &nbsp;1.25 MBytes &nbsp;10.5 Mbits/sec &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">[ &nbsp;5] &nbsp;&nbsp;2.00-3.00 &nbsp;&nbsp;sec &nbsp;1.12 MBytes &nbsp;9.44 Mbits/sec &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">[ &nbsp;5] &nbsp;&nbsp;3.00-4.00 &nbsp;&nbsp;sec &nbsp;1.25 MBytes &nbsp;10.5 Mbits/sec &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">[ &nbsp;5] &nbsp;&nbsp;4.00-5.00 &nbsp;&nbsp;sec &nbsp;1.12 MBytes &nbsp;9.44 Mbits/sec &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">[ &nbsp;5] &nbsp;&nbsp;5.00-6.00 &nbsp;&nbsp;sec &nbsp;1.25 MBytes &nbsp;10.5 Mbits/sec &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">[ &nbsp;5] &nbsp;&nbsp;6.00-7.00 &nbsp;&nbsp;sec &nbsp;1.12 MBytes &nbsp;9.44 Mbits/sec &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">[ &nbsp;5] &nbsp;&nbsp;7.00-8.00 &nbsp;&nbsp;sec &nbsp;1.25 MBytes &nbsp;10.5 Mbits/sec &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">[ &nbsp;5] &nbsp;&nbsp;8.00-9.00 &nbsp;&nbsp;sec &nbsp;1.12 MBytes &nbsp;9.44 Mbits/sec &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">[ &nbsp;5] &nbsp;&nbsp;9.00-10.00 &nbsp;sec &nbsp;1.25 MBytes &nbsp;10.5 Mbits/sec &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br class="">- - - - - - - - - - - - - - - - - - - - - - - - -<br class="">[ ID] Interval &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transfer &nbsp;&nbsp;&nbsp;&nbsp;Bitrate<br class="">[ &nbsp;5] &nbsp;&nbsp;0.00-10.00 &nbsp;sec &nbsp;12.0 MBytes &nbsp;10.1 Mbits/sec &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sender<br class="">[ &nbsp;5] &nbsp;&nbsp;0.00-10.00 &nbsp;sec &nbsp;12.0 MBytes &nbsp;10.1 Mbits/sec &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;receiver<br class=""><br class="">iperf Done.<br class=""><br class="">Session on B:<br class=""><br class="">root@:~ # netstat -w 1 -I vmx0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vmx0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;output<br class="">&nbsp;packets &nbsp;errs idrops &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes &nbsp;&nbsp;&nbsp;packets &nbsp;errs &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes colls<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;649 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;960562 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;330 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;21800 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;819 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;1233702 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;415 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;27390 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;910 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;1370780 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;459 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;30294 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;819 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;1233702 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;415 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;27390 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;910 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;1370780 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;459 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;30294 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;910 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;1370780 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;460 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;30360 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;819 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;1233702 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;414 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;27324 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;910 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;1370780 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;460 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;30360 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;819 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;1233702 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;414 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;27324 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;910 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;1370780 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;460 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;30360 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;285 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;412287 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;147 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9981 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0<br class="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;0<br class=""><br class=""><br class="">The ACK packets replied from B (the FreeBSD VM) are too aggressive. They are<br class="">about one half of TCP packets received from A.<br class=""><br class="">I've tested with different bitrates, from 10m to 300m, all behave the same.<br class="">Tested with baremetal FreeBSD 13.1 Box as B (with intel em driver), the<span class="Apple-converted-space">&nbsp;</span><br class="">bitrates is 1g, also &nbsp;behaves the same.<br class=""><br class="">Also tried different FreeBSD versions, 11.4, 12.3, stable/13 and current/14 all<span class="Apple-converted-space">&nbsp;</span><br class="">behave the same.<br class=""><br class=""><br class="">My question is, is that the expected behavior of current default TCP stack?<br class=""></blockquote>That is what I would expect. TCP (on FreeBSD) is acking every other packet. This<br class="">is also what is specified. MacOS, at least newer versions, send less ACKs.<br class=""></blockquote>Thanks for fast response!<br class=""><br class="">My have old memories about SACK which helps TCP performance. This behavior<br class="">seems odd from my mind. But those memories date back to 2008, that is 14 years ago.<br class=""></blockquote><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">I don't think anything has changed since then from a specification point of view</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""></div></blockquote>Hacked some RFCs from 1122, and the transport protocol is stable, and apparently</div><div>it should be.</div><div><blockquote type="cite" class=""><div class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br class="">The current implementation of TCP stack in FreeBSD head is too complexed for me.<br class="">Can you please point me the RFCs specifying this? So I can start over with a quick glue.<br class=""></blockquote><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Send an ACK for every other frame if everything is OK, send it immediately if there are some gaps:</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><a href="https://datatracker.ietf.org/doc/html/rfc9293#section-3.8.6.3" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">https://datatracker.ietf.org/doc/html/rfc9293#section-3.8.6.3</a><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">This applies also to the case where you use SACK.</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""></div></blockquote>I think I confused SACK with delayed ACK.</div><div><br class=""></div><div>Thanks!<br class=""><blockquote type="cite" class=""><div class=""><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Best regards</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Michael</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br class="">Thanks!<br class=""><blockquote type="cite" class=""><br class="">Best regards<br class="">Michael<br class=""><blockquote type="cite" class=""><br class=""><br class=""><br class="">Best regards,<br class="">Zhenlei</blockquote></blockquote></blockquote></div></blockquote></div><br class=""></body></html>

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?330A9146-F7CC-4CAB-9003-2F90B872AC3E>