From owner-freebsd-net@freebsd.org Thu Dec 27 18:34:08 2018 Return-Path: Delivered-To: freebsd-net@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 50A9A141F2BB for ; Thu, 27 Dec 2018 18:34:08 +0000 (UTC) (envelope-from prvs=892099ce6=youssef.ghorbal@pasteur.fr) Received: from mx1.pasteur.fr (mx1.pasteur.fr [157.99.45.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Cisco Appliance Demo Certificate", Issuer "Cisco Appliance Demo Certificate" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 04762868A4 for ; Thu, 27 Dec 2018 18:34:06 +0000 (UTC) (envelope-from prvs=892099ce6=youssef.ghorbal@pasteur.fr) Received-SPF: None (mx1.pasteur.fr: no sender authenticity information available from domain of youssef.ghorbal@pasteur.fr) identity=pra; client-ip=157.99.211.33; receiver=mx1.pasteur.fr; envelope-from="youssef.ghorbal@pasteur.fr"; x-sender="youssef.ghorbal@pasteur.fr"; x-conformance=sidf_compatible Received-SPF: None (mx1.pasteur.fr: no sender authenticity information available from domain of youssef.ghorbal@pasteur.fr) identity=mailfrom; client-ip=157.99.211.33; receiver=mx1.pasteur.fr; envelope-from="youssef.ghorbal@pasteur.fr"; x-sender="youssef.ghorbal@pasteur.fr"; x-conformance=sidf_compatible Received-SPF: None (mx1.pasteur.fr: no sender authenticity information available from domain of postmaster@EXCHANGE03.corp.pasteur.fr) identity=helo; client-ip=157.99.211.33; receiver=mx1.pasteur.fr; envelope-from="youssef.ghorbal@pasteur.fr"; x-sender="postmaster@EXCHANGE03.corp.pasteur.fr"; x-conformance=sidf_compatible X-IronPort-AV: E=Sophos;i="5.56,406,1539640800"; d="scan'208";a="36079963" Received: from exchange03.corp.pasteur.fr ([157.99.211.33]) by mx1.pasteur.fr with ESMTP/TLS/AES256-GCM-SHA384; 27 Dec 2018 19:32:57 +0100 Received: from EXCHANGE03.corp.pasteur.fr (2002:9d63:d321::9d63:d321) by EXCHANGE03.corp.pasteur.fr (2002:9d63:d321::9d63:d321) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1415.2; Thu, 27 Dec 2018 19:32:54 +0100 Received: from EXCHANGE03.corp.pasteur.fr ([fe80::cce4:ae6a:ec0a:16c9]) by EXCHANGE03.corp.pasteur.fr ([fe80::cce4:ae6a:ec0a:16c9%18]) with mapi id 15.01.1415.002; Thu, 27 Dec 2018 19:32:54 +0100 From: "Youssef GHORBAL" To: "freebsd-net@freebsd.org" Subject: DUP ACKs sent with no reason Thread-Topic: DUP ACKs sent with no reason Thread-Index: AQHUnhKUyPRjMgyJWU6wWxKq+ZDpLQ== Date: Thu, 27 Dec 2018 18:32:54 +0000 Message-ID: Accept-Language: en-US, fr-FR Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [157.99.101.116] Content-Type: text/plain; charset="us-ascii" Content-ID: <9D8C8F3804944341A875BCA8F4FEA032@corp.pasteur.fr> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Rspamd-Queue-Id: 04762868A4 X-Spamd-Bar: ++++ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [4.13 / 15.00]; HAS_XOIP(0.00)[]; ENVFROM_PRVS(0.00)[]; RCVD_COUNT_THREE(0.00)[4]; MX_GOOD(-0.01)[mx0.pasteur.fr,mx1.pasteur.fr]; FORGED_SENDER(0.00)[youssef.ghorbal@pasteur.fr,prvs=892099ce6=youssef.ghorbal@pasteur.fr]; MIME_TRACE(0.00)[0:+]; R_DKIM_NA(0.00)[]; ASN(0.00)[asn:29110, ipnet:157.99.0.0/16, country:FR]; RCVD_TLS_LAST(0.00)[]; FROM_NEQ_ENVFROM(0.00)[youssef.ghorbal@pasteur.fr,prvs=892099ce6=youssef.ghorbal@pasteur.fr]; ARC_NA(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_SPAM_SHORT(0.65)[0.647,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[pasteur.fr]; FORGED_SENDER_VERP_SRS(0.00)[]; AUTH_NA(1.00)[]; RCPT_COUNT_ONE(0.00)[1]; NEURAL_SPAM_MEDIUM(0.87)[0.867,0]; IP_SCORE(-0.00)[country: FR(-0.02)]; NEURAL_SPAM_LONG(0.74)[0.736,0]; RCVD_IN_DNSWL_NONE(0.00)[51.45.99.157.list.dnswl.org : 127.0.10.0]; TO_DN_EQ_ADDR_ALL(0.00)[]; R_SPF_NA(0.00)[]; FROM_NAME_EXCESS_SPACE(1.00)[] X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Dec 2018 18:34:08 -0000 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=