Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp669639ybl; Fri, 31 Jan 2020 06:01:43 -0800 (PST) X-Google-Smtp-Source: APXvYqxS2bEPsN1FobUGukioB0ky37AQt9xZmgZAJmVcRMadk5R2qNheKygxKe6mP2kE4/UISm44 X-Received: by 2002:a9d:d0b:: with SMTP id 11mr7963017oti.287.1580479303545; Fri, 31 Jan 2020 06:01:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580479303; cv=none; d=google.com; s=arc-20160816; b=GmSZ1WOw+dEaOHceemNA/Uql1pVldBO0G7qkxEEiLQNaJ4rv5MjNIIaz0VB4w5bv83 Wj5hbg1+MdrR+jiDqTuvA1zIH6dISXeQ6ec9X2+qx7cIUTHsCtEfkyTYrhdkxybZpr5C BixxyGDqw4nq/ecrw32gbW+95/ML0ucyDoGorN5kXpJUm13MfVNgkpxU/ZFrYw4umRru 8wnMDzBB2oxp1MeIdMD7aPEdR22hqY9nXjmLlhLKjYOx4E63byPKDcNaN3dsN6V3P6Gh GRDJ9jG8LU4F0svz7hTJMXwqFrZQaRio20Xp05iUwxm0sVMhZkyCl0sctXzmSbXUBTVh jx8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from; bh=VwRzWxMRoSlqptkBitn4whZXICnqtbUGYncIlRFglNE=; b=zwm3ml8D8ZvO/vkvssM5fyj0XA4C3SbCX843z9dXQWfMQw48uD2M8xJQleSNWWVDB7 5P8R7JSeRorBh4meUgSEnm1IN8Sp1D/oKgCERXQmGgPfZjzcgz6I/N67AtqUAMbSTRYl PvlpRqlsLpwYaVp8p2aIB0zDJMB+Mr8O1b8+CYt/H/DUVuuwxy5oReRbjfumusHavNLH 7f+AHqlkFHyyArowrK+jcrILoI/ncHnxOkiEWan8f5FSpPQNRKUtrJKpwPM8jt5mPDmR 2mlwbqDJMgIfBxG9qznT/yyTBj85r+vlys3uvLiUWmPKkbbJAUQobzVBK932YfmzQEBc GlPw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=aculab.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e23si3582376oie.105.2020.01.31.06.01.30; Fri, 31 Jan 2020 06:01:43 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=aculab.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728854AbgAaOAc convert rfc822-to-8bit (ORCPT + 99 others); Fri, 31 Jan 2020 09:00:32 -0500 Received: from eu-smtp-delivery-151.mimecast.com ([207.82.80.151]:56889 "EHLO eu-smtp-delivery-151.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728711AbgAaOAb (ORCPT ); Fri, 31 Jan 2020 09:00:31 -0500 Received: from AcuMS.aculab.com (156.67.243.126 [156.67.243.126]) (Using TLS) by relay.mimecast.com with ESMTP id uk-mta-242-JHDjgXV-PJqc_fZ2W4bcWg-1; Fri, 31 Jan 2020 14:00:28 +0000 Received: from AcuMS.Aculab.com (fd9f:af1c:a25b:0:43c:695e:880f:8750) by AcuMS.aculab.com (fd9f:af1c:a25b:0:43c:695e:880f:8750) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Fri, 31 Jan 2020 14:00:27 +0000 Received: from AcuMS.Aculab.com ([fe80::43c:695e:880f:8750]) by AcuMS.aculab.com ([fe80::43c:695e:880f:8750%12]) with mapi id 15.00.1347.000; Fri, 31 Jan 2020 14:00:27 +0000 From: David Laight To: "'sjpark@amazon.com'" , "edumazet@google.com" , "davem@davemloft.net" CC: "shuah@kernel.org" , "netdev@vger.kernel.org" , "linux-kselftest@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "sj38.park@gmail.com" , "aams@amazon.com" , SeongJae Park Subject: RE: [PATCH 0/3] Fix reconnection latency caused by FIN/ACK handling race Thread-Topic: [PATCH 0/3] Fix reconnection latency caused by FIN/ACK handling race Thread-Index: AQHV2DFvc3pd6ARlHUK3D8H5esqW/agEyn3w Date: Fri, 31 Jan 2020 14:00:27 +0000 Message-ID: References: <20200131122421.23286-1-sjpark@amazon.com> In-Reply-To: <20200131122421.23286-1-sjpark@amazon.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.202.205.107] MIME-Version: 1.0 X-MC-Unique: JHDjgXV-PJqc_fZ2W4bcWg-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: aculab.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: sjpark@amazon.com > Sent: 31 January 2020 12:24 ... > The acks in lines 6 and 8 are the acks. If the line 8 packet is > processed before the line 6 packet, it will be just ignored as it is not > a expected packet, and the later process of the line 6 packet will > change the status of Process A to FIN_WAIT_2, but as it has already > handled line 8 packet, it will not go to TIME_WAIT and thus will not > send the line 10 packet to Process B. Thus, Process B will left in > CLOSE_WAIT status, as below. > > 00 (Process A) (Process B) > 01 ESTABLISHED ESTABLISHED > 02 close() > 03 FIN_WAIT_1 > 04 ---FIN--> > 05 CLOSE_WAIT > 06 (<--ACK---) > 07 (<--FIN/ACK---) > 08 (fired in right order) > 09 <--FIN/ACK--- > 10 <--ACK--- > 11 (processed in reverse order) > 12 FIN_WAIT_2 Why doesn't A treat the FIN/ACK (09) as valid (as if the ACK had got lost) and then ignore the ACK (10) because it refers to a closed socket? I presume that B sends two ACKs (06 and 07) because it can sit in an intermediate state and the first ACK stops the FIN being resent? I've implemented lots of protocols in my time, but not TCP. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)