Re: [TLS] [DTLS1.3]About the retransmission of Handshake records
Xuan k <kxuanobj@gmail.com> Mon, 02 December 2019 11:21 UTC
Return-Path: <kxuanobj@gmail.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3ADF212002E for <tls@ietfa.amsl.com>; Mon, 2 Dec 2019 03:21:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level:
X-Spam-Status: No, score=-1.997 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_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 n4hdyO_4Z5pn for <tls@ietfa.amsl.com>; Mon, 2 Dec 2019 03:21:21 -0800 (PST)
Received: from mail-ua1-x92f.google.com (mail-ua1-x92f.google.com [IPv6:2607:f8b0:4864:20::92f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 56CB9120020 for <tls@ietf.org>; Mon, 2 Dec 2019 03:21:21 -0800 (PST)
Received: by mail-ua1-x92f.google.com with SMTP id i31so11454738uae.13 for <tls@ietf.org>; Mon, 02 Dec 2019 03:21:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=or/8M8raychvftSHWfbBhASbQq54bWe8hqn2vhnBmZo=; b=lNJizuwwtRjCXm9UC9ZGKAPIpB3Z7g7kVGAXrDopt9m1zGSkX9fYhHVmlKZd+K5N51 R2uauXYGsqUwCDymE4addEZVE88W94JexRjHrstOGGAMVYoDnz9G9zAxHSYynVXVSr4m Ug8Y/rIX4Mo5aXZ4fjaTrWaJZFvc0vpoJmYPEfHtIgqyVH0f892bkW5+dOF2NeYoX3E1 XSK2uiSU/mpEMK08luQKvNMlAqJAiIbfhO9URG1IV3t4m+jaHq5yJkd2EMvbUKdbJ0Pu rJUyEyifN9uUHE4RQAzpGzcyanV3ZJjlraGHlyfbZAllZOgJgMu7mCUabVKzrw+gQ0oW BQ3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=or/8M8raychvftSHWfbBhASbQq54bWe8hqn2vhnBmZo=; b=hVc7Klp0gaOsGvVtucySmUd4UsOWj1VNN6ye9Wmb1pNkIJaU8ZYmI3Al2CdxVmHjOM 78fTdp8fiJeVyI4L1hg8gT3rg96I4digNiHZ7CpTf5NqipsWmRzewA9Pky8DukrOiHTh GXf+jd0DH6rReDhf3lJqzBuv4uNXuEbcCd5Bsb0RJOHW4UfP9jOR++ufhdwzw5/gYA+9 ZL/+EmZHvVOXbzwWvq2ESUAMETRKwCuCPATHVYTxqZRB6PJeAgTn4+CjB7cpuOrhZ+9s 3RBOg3XvtKFsYfhfsLwWJZ2qVV9idysG+gdPtlkvCNwjEIMtM0mfKPXfmZ3bvwuxq3JR dMmg==
X-Gm-Message-State: APjAAAVpSiJKdn5RMEsYw50i0ltK191m74Ac8+X9fwZMBgGayLLkdE9b FV4yINNVUx12s1Og3Di+fFhd86LYRNkAjS2Lixo=
X-Google-Smtp-Source: APXvYqx+289UbMMAc1A4MhcnwOBRirA9xEImb/9N1wf5/n2x97ttbcni3ri4on/HK2hrCJVUOLjknKNWndrrcLxHgdA=
X-Received: by 2002:ab0:786:: with SMTP id c6mr17322408uaf.62.1575285680060; Mon, 02 Dec 2019 03:21:20 -0800 (PST)
MIME-Version: 1.0
References: <CAAnY7J27g1Df0XBe1U66z98ThQgRaom1YBF9k2UGTi4YL9i+Ng@mail.gmail.com> <CABcZeBOuJ3bOKOt6vFRJzOZbwkXzZK0jUJNyAxeAmkpxQJCzzA@mail.gmail.com> <CAAnY7J0z_btrQYzGtZavQqJwrEJ6H-+tho7xqhy9Y6RM6atv+Q@mail.gmail.com> <20191202075444.GI3397@akamai.com> <CAAnY7J0842L2qVptNz7dVpV-Jt3Tdttt8Y2YeUPHhVq+e6dbfQ@mail.gmail.com>
In-Reply-To: <CAAnY7J0842L2qVptNz7dVpV-Jt3Tdttt8Y2YeUPHhVq+e6dbfQ@mail.gmail.com>
From: Xuan k <kxuanobj@gmail.com>
Date: Mon, 02 Dec 2019 19:20:43 +0800
Message-ID: <CAAnY7J26WHvZcWRjVg7su5=yUdh3kzca=tkdtQEaSoTj_Ac7fg@mail.gmail.com>
To: Benjamin Kaduk <bkaduk@akamai.com>
Cc: Eric Rescorla <ekr@rtfm.com>, "<tls@ietf.org>" <tls@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000006140870598b6c74d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/ObFvHd_yuoxfkHIb81NuooAEmxM>
Subject: Re: [TLS] [DTLS1.3]About the retransmission of Handshake records
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Dec 2019 11:21:24 -0000
Sorry for my mistake. The HelloVerifyRequest in the previous email should be replace with "HelloRetryRequest". On Mon, Dec 2, 2019 at 7:17 PM Xuan k <kxuanobj@gmail.com> wrote: > Hi Ben, > > Thanks for your reply. But we understand may not be the same. > > Since ACK messages are not retransmitted, I think they should not consume > message_seqs. > If an ACK really use a message_seq and it is lost in network, new > handshake records will > always use a larger message_seq than the peer expected (next_receive_seq). > The peer will unable to continue the handshake process. > > And I think the ServerHello in the figure should start with 1, as the > figure shows. > The message_seq = 0 is used by HelloVerifyRequest, which is also been > processed by client > and been fed into its transcript hash function. > > So I think the HelloVerifyRequest should be counted and new ServerHello in > the figure > should start with message_seq = 1. > > Thanks, > > Zhai Zhaoxuan > > On Mon, Dec 2, 2019 at 3:54 PM Benjamin Kaduk <bkaduk@akamai.com> wrote: > >> That might be an artifact from Ack having at one point (the -00) been >> a handshake message. Though, it seems that the Server's message_seq >> space should also start at 0 with ServerHello, if I am understanding >> correctly. >> >> -Ben >> >> On Thu, Nov 28, 2019 at 03:15:38PM +0800, Xuan k wrote: >> > Hi Ekr, >> > >> > Thanks for your help. >> > >> > I have another question about the "message_seq" in section "6. Example >> of >> > Handshake with Timeout and Retransmission". >> > Could you please explain it? >> > >> > In the secion 6, the Client send message_seq = 0 in Record 0 and >> > message_seq = 2,3,4 in Record 2. >> > >> > Why message_seq = 1 is skipped by Client? >> > I think the ClientHello in the figure should begin with message_seq=1. >> The >> > message_seq = 0 is used by the first ClientHello which is the one >> without >> > cookies. >> > >> > >> > Thanks, >> > Zhai Zhaoxuan >> > >> > On 11/28/19 5:37 AM, Eric Rescorla wrote: >> > >> > >> > >> > On Tue, Nov 26, 2019 at 10:05 PM Xuan k <kxuanobj@gmail.com> wrote: >> > >> > > Hi all, >> > > >> > > I'm trying to implement a DTLS1.3 library for embedded devices. But It >> > > seems something weird about retransmissions and ACKs. >> > > >> > > In the section "5.2. DTLS Handshake Message Format": >> > > >> > > The first message each side transmits in each association always >> has >> > > message_seq = 0. Whenever a new message is generated, the >> > > message_seq value is incremented by one. When a message is >> > > retransmitted, the old *message_seq value is re-used*, i.e., not >> > > incremented. From the perspective of the DTLS record layer, the >> > > retransmission is a new record. This record will have a *new* >> > > * DTLSPlaintext.sequence_number* value. >> > > >> > > >> > > In the section "7. ACK Message", the ACK message use the >> record_numbers >> > > (corresponds to *DTLSPlaintext.sequence_number*). >> > > >> > > For my understanding, the "message_seq" belongs to "Handshake" and the >> > > "sequence_number" or "record_numbers" belongs to >> > > record layer. >> > > >> > >> > Yes. >> > >> > The retransmission detection is done by "Handshake" using "message_seq", >> > > but the "acknowledge" is done by "record layer" using >> "record_numbers". >> > > It is so weird. >> > > >> > >> > Hmm... I don't think that this is particularly weird. This is, for >> > instance, how QUIC stream acknowledgement and retransmission works. >> > >> > >> > The retransmission, retransmission detection and acknowledge should be >> done >> > > in handshake process, but we need the record layer passing the >> > > record_numebrs to the handshake process. >> > > >> > > Since a new "sequence_number" is used for retransmission, we have to >> > > maintain a "record_numbers" to "message_seq" map with dynamic size. >> > > Each retransmission attempt creates a new relationship between a new >> > > "record_numbers" to an old "message_seq". >> > > >> > >> > Yes, that's how it works in NSS. >> > >> > >> > Since ACK is only used with Handshake messages, is it possible that we >> use >> > > "message_seq" in ACK messages? >> > > >> > Or we use *old* "sequence_number" for retransmission, >> > > >> > >> > Both of these give you strictly less information about the network. One >> of >> > the cool innovations in QUIC is to label each packet separately so you >> can >> > determine whether an ACK is an ACK of the original packet or a >> retransmit. >> > We are trying to inherit tha there >> > >> > -Ekr >> > >> > so we do not need maintain the dynamic map. And if replay detection is >> > > implemented, the retransmitted >> > > record can be dropped by record layer (by replay detection), the >> > > "Handshake Protocol" do not need to do retransmission detection. >> > > >> > > Thanks >> > > Zhai Zhaoxuan >> > > _______________________________________________ >> > > TLS mailing list >> > > TLS@ietf.org >> > > https://www.ietf.org/mailman/listinfo/tls >> > > >> >> > _______________________________________________ >> > TLS mailing list >> > TLS@ietf.org >> > https://www.ietf.org/mailman/listinfo/tls >> >>
- [TLS] [DTLS1.3]About the retransmission of Handsh… Xuan k
- Re: [TLS] [DTLS1.3]About the retransmission of Ha… Eric Rescorla
- Re: [TLS] [DTLS1.3]About the retransmission of Ha… Xuan k
- Re: [TLS] [DTLS1.3]About the retransmission of Ha… Benjamin Kaduk
- Re: [TLS] [DTLS1.3]About the retransmission of Ha… Xuan k
- Re: [TLS] [DTLS1.3]About the retransmission of Ha… Xuan k
- Re: [TLS] [DTLS1.3]About the retransmission of Ha… Eric Rescorla
- Re: [TLS] [DTLS1.3]About the retransmission of Ha… Benjamin Kaduk