RE: Speeding up tail loss detection (Re: Congestion control algorithm questions)

Praveen Balasubramanian <pravb@microsoft.com> Sun, 01 July 2018 16:32 UTC

Return-Path: <pravb@microsoft.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 377E4130DC8 for <quic@ietfa.amsl.com>; Sun, 1 Jul 2018 09:32:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.011
X-Spam-Level:
X-Spam-Status: No, score=-2.011 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fKSlOBBhZHaf for <quic@ietfa.amsl.com>; Sun, 1 Jul 2018 09:32:38 -0700 (PDT)
Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0134.outbound.protection.outlook.com [104.47.38.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1938C12F1A5 for <quic@ietf.org>; Sun, 1 Jul 2018 09:32:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QcBvBdTFiz9Cx7+TKUB5dgBmcRG/Cj+viu0FWMkcTvw=; b=Cd5X/KaCmfaGE936tqBoK8yzICeVl36AsvktYC9GKUqaqEZ68DKaBpuhzDt1vW9zZ4rZqAXgc9U2PwskGv+m4P897bsjZGUHjkQJNFGAs/ZA03ZH3ni06sWpy4nUEpVo+PZkDvq9Qqfa7S7kfG9xfBrZcWDYSjuJt00KjC06sp4=
Received: from MW2PR2101MB1098.namprd21.prod.outlook.com (52.132.149.27) by MW2PR2101MB1097.namprd21.prod.outlook.com (52.132.149.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.952.4; Sun, 1 Jul 2018 16:32:34 +0000
Received: from MW2PR2101MB1098.namprd21.prod.outlook.com ([fe80::ca9:e464:9c1b:dd55]) by MW2PR2101MB1098.namprd21.prod.outlook.com ([fe80::ca9:e464:9c1b:dd55%5]) with mapi id 15.20.0952.003; Sun, 1 Jul 2018 16:32:34 +0000
From: Praveen Balasubramanian <pravb@microsoft.com>
To: Kazuho Oku <kazuhooku@gmail.com>, "Lubashev, Igor" <ilubashe@akamai.com>
CC: huitema <huitema@huitema.net>, "quic@ietf.org" <quic@ietf.org>
Subject: RE: Speeding up tail loss detection (Re: Congestion control algorithm questions)
Thread-Topic: Speeding up tail loss detection (Re: Congestion control algorithm questions)
Thread-Index: AQHUECByHqG/zftGOUq9fkJj1zXpE6R4KKgAgAJn9ICAAAA6YA==
Date: Sun, 01 Jul 2018 16:32:34 +0000
Message-ID: <MW2PR2101MB1098869CB84F0FD75A52E961B64C0@MW2PR2101MB1098.namprd21.prod.outlook.com>
References: <CANatvzwoHL1_MtkHM53+PKhR8Rs52Y2y=mVt+f5kFwpDGTNn2Q@mail.gmail.com> <037175748de14b49a815a91a883ee0e1@ustx2ex-dag1mb5.msg.corp.akamai.com> <CANatvzy5JvUOqkhdFzutskWC9fpKxdByHXjaW5AhCo78BX69GA@mail.gmail.com>
In-Reply-To: <CANatvzy5JvUOqkhdFzutskWC9fpKxdByHXjaW5AhCo78BX69GA@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [2001:4898:80e8:2:a1c6:60df:b76a:58b5]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; MW2PR2101MB1097; 7:sdsYL5s9HaOMUcnSIXEmzV5spBw3fvYVoiPb8sPklNmgvy3KR/2toynCXtZDx4w737doUSJRHoS9JTxByR6O4KvypLMMrs5nTukV0uQktAEFEtktKTIcoYBIOez0epWDPYGFWQ325mGwnAA0R/nwaGbJELWJc29Bai0PvSqJuSz32RgBEw66XyBMmCVK4gR+0IIawoHJ07vsyv4OYRhS8dQwW7OMLVV4+N7T6h+W0R7+kxojZH0247+vQyPczd+1
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: b7fa16b2-be4f-46c3-061c-08d5df70401a
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(5600053)(711020)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7193020); SRVR:MW2PR2101MB1097;
x-ms-traffictypediagnostic: MW2PR2101MB1097:
x-ld-processed: 72f988bf-86f1-41af-91ab-2d7cd011db47,ExtAddr
x-microsoft-antispam-prvs: <MW2PR2101MB10970B91F9DE42E296A95782B64C0@MW2PR2101MB1097.namprd21.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(28532068793085)(89211679590171)(85827821059158);
x-ms-exchange-senderadcheck: 1
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(10201501046)(3231270)(2018427008)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123562045)(6072148)(201708071742011)(7699016); SRVR:MW2PR2101MB1097; BCL:0; PCL:0; RULEID:; SRVR:MW2PR2101MB1097;
x-forefront-prvs: 07200C0526
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(366004)(376002)(346002)(396003)(39860400002)(136003)(199004)(189003)(13464003)(229853002)(2900100001)(46003)(105586002)(486006)(55016002)(33656002)(6116002)(68736007)(97736004)(446003)(11346002)(5660300001)(256004)(14444005)(2906002)(476003)(316002)(102836004)(186003)(25786009)(6346003)(14454004)(86612001)(22452003)(6506007)(10290500003)(54906003)(305945005)(4326008)(74316002)(7736002)(110136005)(8676002)(10090500001)(81156014)(86362001)(53936002)(8936002)(106356001)(81166006)(478600001)(6436002)(8990500004)(7696005)(9686003)(39060400002)(53546011)(99286004)(6246003)(76176011)(5250100002); DIR:OUT; SFP:1102; SCL:1; SRVR:MW2PR2101MB1097; H:MW2PR2101MB1098.namprd21.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
authentication-results: spf=none (sender IP is ) smtp.mailfrom=pravb@microsoft.com;
x-microsoft-antispam-message-info: K3qqQe89/1hUWgVhATRoKC9VMzASeUoHKsLSky/0Nfgvtl725EWnKD8KcKpVeHBt7L2UKkEOpu/kfopZUAptf8RHgQOYIo/ekuv+dTqChBZdhW9DvUhenshHbCcT+4yNBSPNXatr5QsnDByEfDXt2UCUD99+amncqtr1OGdZsxUT4ETD3LJhhrUO8RK8182S4zGtIt0g6bNwFMkh8xrmBM6jV9KCNkdg58us/aDD/ZTNYj69gyMTyqtvFgxONfb0CXbdOU0BgRLuOFtY8g10axsvWJ2eENDo8xTWGAjFuLD0lzd6Y/O7yxSkhzSUZQJ9/naOcqAy87Sjr1wE+dsb/kicjJ/e6D0ZWXKaiPOyCw8=
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b7fa16b2-be4f-46c3-061c-08d5df70401a
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Jul 2018 16:32:34.5670 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR2101MB1097
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/ub_GN3u4ERzbHbMVMUE2SpGNHzg>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.26
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 01 Jul 2018 16:32:41 -0000

Doesn’t the PING frame serves this purpose? The language in the transport draft isn’t very clear:
	The receiver of a PING frame simply needs to acknowledge the packet containing this frame.

Ideally this should say:
	The receiver of a PING frame SHOULD send an immediate ACK acknowledging the packet containing this frame.

> that there are cases that a sender wants to trigger immediate ACK even if gap is not observed on the receiver side
If this is for timing measurements or liveness then PING should work. If you have examples where loss recovery can be further improved using such a mechanism then we should certainly address it. I don’t think we can make any assumptions on the sender that receiver will ACK because pure ACK can also be dropped and not retransmitted.

-----Original Message-----
From: Kazuho Oku [mailto:kazuhooku@gmail.com] 
Sent: Sunday, July 1, 2018 9:28 AM
To: Lubashev, Igor <ilubashe@akamai.com>; Praveen Balasubramanian <pravb@microsoft.com>
Cc: huitema <huitema@huitema.net>; quic@ietf.org
Subject: Re: Speeding up tail loss detection (Re: Congestion control algorithm questions)

2018-06-30 12:43 GMT+09:00 Lubashev, Igor <ilubashe@akamai.com>:
> It would make sense to define PING to require an ACK as soon as possible.
> The need for an immediate ACK is not just in tail loss probes. It is 
> also PMTU probes. Come to think of this, PATH_CHALLENGE should require 
> an expedited ACK as well.

That approach would work well.

In my view, there are two ways; i) define a frame that requests immediate ACK, and bundle that frame with other frames if immediate ACK is required, ii) define which frames trigger immediate ACK. I think either of the two are workable.

Re Praveen's comment, my understanding is that there are cases that a sender wants to trigger immediate ACK even if gap is not observed on the receiver side. In case of TLP, such behavior is desirable because it gives the peers to recover earlier from the loss of a previous packet that contained an ACK.

>
> - Igor
>
>
> -----Original Message-----
> From: Kazuho Oku [kazuhooku@gmail.com]
> Received: Friday, 29 Jun 2018, 11:14PM
> To: Christian Huitema [huitema@huitema.net]
> CC: IETF QUIC WG [quic@ietf.org]
> Subject: Speeding up tail loss detection (Re: Congestion control 
> algorithm
> questions)
>
> I know that the recovery draft defines TLP, but it does not provide a 
> way for a sender to request client to send an ACK immediately. I think 
> that there should be a way to request that, because it would help the 
> sender detect the loss at the earliest moment.
>
> One way is to specify a TLP frame, which is identical to a PING frame 
> with only one difference: it suggests the peer to send ACK 
> immediately. A sender sending a TLP will include the frame in the 
> packet to evoke the peer to send ACK without waiting for the delay.
>
> Searching the mailing list archive told me that Christian raised the 
> issue about a year ago (in the mail cited below), but it seems to me 
> that the issue has not been resolved yet.
>
> 2017-08-25 14:52 GMT+09:00 Christian Huitema <huitema@huitema.net>:
>
>> 3) Can the senders do something to speed up retransmission?
>> In the absence of continuous traffic flow, the previous decision tree 
>> degenerates to timer based retransmission. To speed things up, 
>> implementations can generate extra traffic. For example, if no 
>> acknowledgement is received after a short timer, they can send a 
>> gratuitous packet that may trigger a further acknowledgement. That's 
>> the essence of the "tail loss probe" algorithm of TCP, but things are 
>> really simpler with monotonously increasing packet sequence numbers. 
>> There are various plausible ways to send a gratuitous packet -- a 
>> Ping, a Max Data Update, or repeating the oldest packet will all work.
>>
>> Of course, implementations should avoid sending too many gratuitous 
>> packets, because it can cause congestion. The typical implementation 
>> will wait one min-RTT before sending the first tail loss probe, then 
>> just wait for the regular timer based retransmission. But we may 
>> start being creative. For example, if packets are waiting and the 
>> implementation is sending a naked ACK for whatever reason, it does 
>> not cost much to add a Ping to that.
>>
>> This simple text encompasses SACK, RACK, and Tail-Loss Probe. And it 
>> is very easy to implement.
>>
>> --
>> Christian Huitema
>>
>>
>
>
>
> --
> Kazuho Oku
>



--
Kazuho Oku