Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Dec 2018 18:32:54 +0000
From:      "Youssef  GHORBAL" <youssef.ghorbal@pasteur.fr>
To:        "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>
Subject:   DUP ACKs sent with no reason
Message-ID:  <D15A92F5-91C2-44C3-A794-D3B399F67D8C@pasteur.fr>

next in thread | raw e-mail | index | archive | help
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.16=
8.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             sende=
r
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 i=
t 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 th=
e 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 clie=
nt sends one small data packet, that gets ACKed quickly afterword by the wa=
y.
=09
	What can explain those DUP ACKs sent by the FreeBSD host? (DUP ACKs sent b=
y 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-y=
apws5gx-kidhq4mb
[2] server side pcap : https://cp.sync.com/dl/323677c10#gh3gy88t-ge3gyyxn-h=
ka5ya6q-q6ydp5fn=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D15A92F5-91C2-44C3-A794-D3B399F67D8C>