Hello,

        I'm having an issue with a FreeBSD 12 based system, sending DUP ACKs 
with no obvisous reason during an iperf3 test.
        The test consists of :
        - FreeBSD 12 server box running ./iperf3 -s -p 55556
        - Linux CentOS 7 client box running ./iperf3 --cport 3333 -t 60 -Rc 
192.168.133.2 -p 55556

        Server side iperf is reporting huge packet loss:

-----------------------------------------------------------
Server listening on 55556
-----------------------------------------------------------
Accepted connection from 192.168.131.140, port 60244
[  5] local 192.168.133.2 port 55556 connected to 192.168.131.140 port 3333
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  1.00 GBytes  8.60 Gbits/sec    0    472 KBytes
[  5]   1.00-2.00   sec  1.09 GBytes  9.39 Gbits/sec    0    676 KBytes
[  5]   2.00-3.00   sec  1.09 GBytes  9.39 Gbits/sec    0    820 KBytes
[  5]   3.00-4.00   sec  1.09 GBytes  9.39 Gbits/sec    0    954 KBytes
[  5]   4.00-5.00   sec  1.04 GBytes  8.98 Gbits/sec    7    107 KBytes
[  5]   5.00-6.00   sec   870 MBytes  7.30 Gbits/sec   24    182 KBytes
[  5]   6.00-7.00   sec   831 MBytes  6.97 Gbits/sec   45   84.8 KBytes
[  5]   7.00-8.00   sec   796 MBytes  6.67 Gbits/sec   43   94.7 KBytes
[  5]   8.00-9.00   sec  1.05 GBytes  9.02 Gbits/sec    9    115 KBytes
[  5]   9.00-10.00  sec   913 MBytes  7.66 Gbits/sec   40   83.4 KBytes
[  5]   9.00-10.00  sec   913 MBytes  7.66 Gbits/sec   40   83.4 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  9.96 GBytes  8.55 Gbits/sec  168             sender
iperf3: the client has terminated

        I've captured pcaps[1][2] on both sides that show that somehow the 
client is receiving packets out of order or sometimes missing segments, to 
which it reacts with selective ACKs. As far I can tell this is "normal" 
behaviour and clearly shows some issues on the path between those two hosts but 
that's not my main concern for now.
        However, what I can't explain is the huge amount a TCP DUP ACKs sent by 
the FreeBSD server for no obvious reason. In this setup client is connecting to 
server and due to -R option, data is flowing from server to client. The only 
data I see coming from the client is at test initialisation where client sends 
one small data packet, that gets ACKed quickly afterword by the way.
        
        What can explain those DUP ACKs sent by the FreeBSD host? (DUP ACKs 
sent by the client are "normal" in a way to report missing packet loss and 
carry Selective ACKs, but those sent by the BSD stack are hard to explain)

        How can I push the investigation further ?

Youssef Ghorbal

[1] client side pcap : 
https://cp.sync.com/dl/44f5d34b0#h8bb5gda-frp78vyt-yapws5gx-kidhq4mb
[2] server side pcap : 
https://cp.sync.com/dl/323677c10#gh3gy88t-ge3gyyxn-hka5ya6q-q6ydp5fn
_______________________________________________
freebsd-net@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to