Re: Greasing the QUIC Bit

Dmitri Tikhonov <> Sun, 05 July 2020 20:27 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 499433A0AE5 for <>; Sun, 5 Jul 2020 13:27:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-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 UKsp5qWzdS33 for <>; Sun, 5 Jul 2020 13:27:05 -0700 (PDT)
Received: from ( [IPv6:2607:f8b0:4864:20::82b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 0BB7D3A0AE3 for <>; Sun, 5 Jul 2020 13:27:04 -0700 (PDT)
Received: by with SMTP id b25so6123838qto.2 for <>; Sun, 05 Jul 2020 13:27:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20150623; h=date:from:to:subject:message-id:mail-followup-to:references :mime-version:content-disposition:in-reply-to:user-agent; bh=RjrzA3obfITttu+1O9Pa2a67iTP0cGwFGBW0GOKg0Bg=; b=Uf8D7/R7qmwlw97GjIU8hHrf/9bCV20h2gOzudUDxuO1f22+mgs6Hy/2klKvSEWJZu 0uou3pnar5Qzkfyd8R0yb+ENUbxCSTzsGSH9WXPgK4V+2KlIR3pHzao/SO2v0hYxsPwB st4fSPFH/TULk+LV/5EwNUT/MqXo7Duo1nCmJBa/BavCFrwg3gxlKrhAEmZn80vVqfyZ rkAquSD+xeGYbFNC8b8mp33vy2lKEGyfEZ9hfnin3q+HyMY4pLiZwkoNTEYoKWNaqXmm mRFXvGAZWSjE5KZ2lX+TJ9iYqS8c4CDwGME4IkCAKQQNcNGKIxnO9xASbYhHFlhGNXhU XsnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:mail-followup-to :references:mime-version:content-disposition:in-reply-to:user-agent; bh=RjrzA3obfITttu+1O9Pa2a67iTP0cGwFGBW0GOKg0Bg=; b=tXs/u7394+9q7LD1bOAK9i0a4h511KrysWjdkWplZFFh2qIOQ/p8UPF2L246zO83Ap GjBJlA/t1bja4oP0SPSqAdOUS23zX1ulo1H2Y3erG3uD5n3FosafiCPo3TqZlCiwE1Bq Wa6rVv0eN9Uz9zf/DZJhOpSF2I2pkNb5UEBUuGZKt9AA2fWra+sE2BTgXlbkps6QFgNv 0XI03XKqEiwkWncWPLAM4QHotK3pt2HAQyBj06knFKhKHmV0XpvZ7DbaFE0mwJu8G9N8 u1JU2sU5m8p98lG/c3TbQzwMHm8BFYj9JLngHiCTI8z4kMrctQZmtlVGm4H3HHzlEFBb juaA==
X-Gm-Message-State: AOAM533pSxxca5to3S7Coz/QlyqSJ3dTajz29FYAwUi2Bs1iVQUxUScS L/3+P+agJhatKSZloBnEdd9GykiiwpeGfg==
X-Google-Smtp-Source: ABdhPJy6p1kiwAgIzhA5kTHajFI/LeU/VGr2Yvx1ogcZG4JiEyDVkVRsEGq2dUwu7C8iY0XQPA0LMg==
X-Received: by 2002:aed:35d8:: with SMTP id d24mr47956042qte.246.1593980823832; Sun, 05 Jul 2020 13:27:03 -0700 (PDT)
Received: from lubuntu ( []) by with ESMTPSA id z4sm17055127qkb.66.2020. for <> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 05 Jul 2020 13:27:03 -0700 (PDT)
Date: Sun, 05 Jul 2020 16:26:53 -0400
From: Dmitri Tikhonov <>
Subject: Re: Greasing the QUIC Bit
Message-ID: <20200705202652.GB3335@lubuntu>
References: <> <> <> <>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <>
User-Agent: Mutt/1.10.1 (2018-07-13)
Archived-At: <>
X-Mailman-Version: 2.1.29
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, 05 Jul 2020 20:27:06 -0000

On Fri, Jul 03, 2020 at 07:02:55PM -0700, Christian Huitema wrote:
> I am almost done implementing this in picoquic, I just have a question
> about to set the quic bit if the option is negotiated
> The spec says "use an unpredictable value", and I am hesitating between
> three options:
> 1) flip a coin upon negotiation of the TP, and set all Quic Bits for the
> connection to the selected value.
> 2) flip the bit at every packet.
> 3) run a random number generator for each packet.

The draft does not make it clear whether the "unpredicable value" is
per connection or per packet:

 " Endpoints that receive the grease_quic_bit transport parameter from a
 " peer MAY set the QUIC Bit to any value in packets they sent to that
 " peer.  Endpoints SHOULD set the QUIC Bit to an unpredictable value
 " unless another extension assigns specific meaning to the value of the
 " bit.

When I read it the first time around, I interpreted it as "per packet."
If one interprets it as "per connection," it makes for the most efficient
method, which would be my preference.

  - Dmitri.