Re: [tsvwg] Adoption call: draft-fairhurst-tsvwg-datagram-plpmtud-02 to end 10th January 2018

Mikkel Fahnøe Jørgensen <> Sun, 21 January 2018 08:28 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 1CAA1127241; Sun, 21 Jan 2018 00:28:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.698
X-Spam-Status: No, score=-2.698 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id QCm3NIf0nT6c; Sun, 21 Jan 2018 00:28:34 -0800 (PST)
Received: from ( [IPv6:2607:f8b0:4001:c06::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id C8C8F120725; Sun, 21 Jan 2018 00:28:34 -0800 (PST)
Received: by with SMTP id t22so6384721ioa.7; Sun, 21 Jan 2018 00:28:34 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=from:in-reply-to:references:mime-version:date:message-id:subject:to :cc; bh=pHvLDSoPhIToZ2A7CUeArUyLwpGyphMOE7TAXm5L1VM=; b=c20a58TC4Qx06hfRqJqVITAuiZjqTY5OYgUwipsxCyoGazwaL3yfJGsO97AbvBOVbh arM0KMgoEqpW2x1DgOAqm4JN7fYsvTcIa0ZNprrnNR9q8kT2IA4h+QJ/Oxs/Z3F+RF9a XygoIPDYwE4LDTLZ8Ox3exVRAahBie0DAYl512Ro/jONdD8cnNle0i4gdV98+bf/l2bh XuHRwBLzp0UjXeVt+R+Jawjz38nufftXJD9CWUKEwghBkFK5c1Cf+k9i0FGNvDceJ4QX bKNLQr6INezZPIiObzkSxf1RU2QmDBGrv5N0qNml8+JKw7lBAPBLidDZjXt5hE3pNoRb XG+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=pHvLDSoPhIToZ2A7CUeArUyLwpGyphMOE7TAXm5L1VM=; b=ggSminGFYZjsmfsULjZ5EgY3G4JzckzN4rKIl5Ice0BBOLwfiVpGRYbiFNK1uLAJ42 UW2EM/tNnmlx2jl6bYFBgU7i9Gvy1+59zxcyjMZubd4sBOYSAVurysr1eHUjgrHonFea RKxn4PHFlCggj+WjugDC49uIblX6xHYWZq3KxnevYXk1a0au9PQ6TDnlsfHkIVfAknSI x69ZPE1t9o8KPRzv7EWKmkwwDqmX6HUnCOP8nKPrNo8Yn3zrCSig3y4xvn4jzZfo6Kqg qgwUEFGit05EfCN6uxDkwUR3tu3riI0KYFL3SedKNoIszhu4KHQiiRIAeSEinqOSZT2B JfqA==
X-Gm-Message-State: AKwxyte36gXNeQiYyqRcRL70IQjEpwg5n0vFlQgsibnxHP8VmhYCe3WK JlHsM1ciBTFcnHMXa3CjA1HVbfuiymvFajbGGlY=
X-Google-Smtp-Source: AH8x227NzXt1LSCiVGkSc+vfI3cuPWnTLsy5oBnniCzZJPI6aoe9k8+3kTXA30amVF3Dd7LFFWSdDrVDq6N+MlOUNdI=
X-Received: by with SMTP id e78mr3870586ioi.96.1516523313813; Sun, 21 Jan 2018 00:28:33 -0800 (PST)
Received: from 1058052472880 named unknown by with HTTPREST; Sun, 21 Jan 2018 00:28:32 -0800
From: =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <>
In-Reply-To: <>
References: <> <> <> <> <> <>
X-Mailer: Airmail (420)
MIME-Version: 1.0
Date: Sun, 21 Jan 2018 00:28:32 -0800
Message-ID: <>
Subject: Re: [tsvwg] Adoption call: draft-fairhurst-tsvwg-datagram-plpmtud-02 to end 10th January 2018
To: Christian Huitema <>, Michael Tuexen <>
Cc: Gorry Fairhurst <>, "Black, David" <>, QUIC WG <>, "Eggert, Lars" <>, "" <>
Content-Type: multipart/alternative; boundary="001a113dea6469dcbc05634519de"
Archived-At: <>
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Sun, 21 Jan 2018 08:28:37 -0000

Since you mentioned it, I implemented "application level" PMTUD in my
implementation of QUIC ( Basic
"probe" strategy. Start with the min value (from IPv6), then learn the
peer-supported value during the handshake (standard QUIC), then send probes
to perform a binary search between min and max. Stop the binary search if
the range of search is less than 10 bytes. No ICMP dependency. Some
overhead, but that is amortized by sending a dozen packets or so at the
maximum size instead of the default size.

-- Christian Huitema

How you considered exponential search where you start with a conservative
limit for the upper bound, then exponentially increase that limit until
maxPMTU. It is not faster than binary search if each size is equally
likely, but that is probably not true.
I assume it would use less bandwidth if the max is much larger than the
typical PMTU, and allow the application to start using larger MTU’s earlier
since early guesses are more likely to succeed.

/* roughly like this - untestet */
a = minPMTU
b = maxPMTU
k = initDelta /* 1 or larger, e.g. minPMTU / 4 */
while a <= b
  k = min(a + k, b) - a
  n = binsearch(a, a + k - 1)
  if n return n
  a = a + k /* this doubles the search range */
return not found