[quic-protocol] "outstanding data" retransmission
Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> Thu, 24 November 2016 15:46 UTC
Return-Path: <tatsuhiro.t@gmail.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 26AE9129644 for <quic@ietfa.amsl.com>; Thu, 24 Nov 2016 07:46:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 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] 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 oSTH3vowDRE5 for <quic@ietfa.amsl.com>; Thu, 24 Nov 2016 07:46:35 -0800 (PST)
Received: from mail-qt0-x22e.google.com (mail-qt0-x22e.google.com [IPv6:2607:f8b0:400d:c0d::22e]) (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 849111293F9 for <quic@ietf.org>; Thu, 24 Nov 2016 07:46:35 -0800 (PST)
Received: by mail-qt0-x22e.google.com with SMTP id p16so43398650qta.0 for <quic@ietf.org>; Thu, 24 Nov 2016 07:46:35 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to; bh=J+I/2L1Qor5PNMMc29vEj2jpDgA6uAWTpcDQkjeMwQ4=; b=XtmtwT9nvHFwVS5TVt/LIk/3NVAB55pwUCvVnA9fhM+v6FiVVnGQrXIbi3bdys65V1 g5ef1HNHGxMxZLVT+TNAjkw61WcDKAHOorCPIjyRluQsuVw1RK5offsc5bTYsL7JdztT 2gKG4padLJSVFZRwtXHe1+UO9pjWp4A2VIbr3tB9yC6eNK4LlVSr+RwYYpk7mFa8TDoY qyPmdznVYm1OPmjENLNEJqYAy/lcgpawJH6fdLlIrAF0DnRg0uPJTr8EqyKgtgmSr+j3 FXQhVXFrNoGG747Tw/sD4aeY9Ay4/XS/E+Wyr34qXjNjUDmZ/o1REqsgafmmARvuRH+l yjag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=J+I/2L1Qor5PNMMc29vEj2jpDgA6uAWTpcDQkjeMwQ4=; b=Yw7N0hTI8o+0qbXYx8nLOCGhvy6npfIJ9061hYe7pppZy7pR3WyqAS9b0nc4tQeYLh QFNFlqJGTQtnjdu0CNAVy7ZsKHtMxjpqhcaeb1xK1nEo0IN5OFnSX6ixYua1sRSx2NQu peF1EMA2cmWekTqL1zSzjZ5Fy3S2lPOb+NWXN2qr2eSf5CQ63vCrKKgBC75Ypji73DUt OOkNWLB2aFvKPvl7J8DVKFj/89ISsBY0MBPgwjeQ+SnVO+JPwan8WaKGPwTfyv1EvSK0 58+xeUkoTx+OwfZ1ya6Pqtl9r38T1KlPdALMVjL3kczodDkRnrHVNpOVxLDlndZudL90 Uh5w==
X-Gm-Message-State: AKaTC01GBh9Xsp1zFmY1uU+2Ms8cd4ZUmnP9Hn2+xkhlgdviYr3yyjbQ3wamCb6TNNFHAY90uENr6UHlPtnVIA==
X-Received: by 10.200.36.171 with SMTP id s40mr2462347qts.142.1480002394505; Thu, 24 Nov 2016 07:46:34 -0800 (PST)
MIME-Version: 1.0
Received: by 10.12.162.226 with HTTP; Thu, 24 Nov 2016 07:46:14 -0800 (PST)
From: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
Date: Fri, 25 Nov 2016 00:46:14 +0900
Message-ID: <CAPyZ6=+BddxUKLwT+799TYMre-zGj-ZXFu4eRCagnrBoy29V-w@mail.gmail.com>
Subject: [quic-protocol] "outstanding data" retransmission
To: quic@ietf.org
Content-Type: multipart/alternative; boundary="001a11403342fdc80205420de856"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/SfaNFpfHcjlIn59bLsxm3QOyqx8>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.17
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: Thu, 24 Nov 2016 15:46:39 -0000
Hi, I have a question regarding "outstanding data" retransmission specifically, https://tools.ietf.org/html/draft-hamilton-quic-transport-protocol-01#section-7 """ A packet may contain frames and/or application data, only some of which may require reliability. When a packet is detected as lost, the sender SHOULD only resend frames that require retransmission. o All application data sent in STREAM frames MUST be retransmitted, with one exception. When an endpoint sends a RST_STREAM frame, data outstanding on that stream SHOULD NOT be retransmitted, since subsequent data on this stream is expected to not be delivered by the receiver. """ First bullet states that endpoint should not retransmit data outstanding on the stream where it sent RST_STREAM. The question is: what "data outstanding" actually means? Is the STREAM frame that has been sent before sending RST_STREAM and not ACKed yet? Or it the STREAM frame which has not sent yet? Or both? I suspect that it means the STREAM frame that has been sent before RST_STREAM but not ACKed yet. This is because the above text uses "retransmitted" which indicates that they have been sent once. And sending STREAM frame after RST_STREAM is obviously protocol error. If it is correct, and if we assume that RST_STREAM of HTTP/2 is directly mapped to quic's RST_STREAM (well, this is not mentioned in h2 mapping document, not sure why), we might miss the valid use case described in RFC 7540, section 8.1: https://tools.ietf.org/html/rfc7540#section-8.1 """ An HTTP response is complete after the server sends -- or the client receives -- a frame with the END_STREAM flag set (including any CONTINUATION frames needed to complete a header block). A server can send a complete response prior to the client sending an entire request if the response does not depend on any portion of the request that has not been sent and received. When this is true, a server MAY request that the client abort transmission of a request without error by sending a RST_STREAM with an error code of NO_ERROR after sending a complete response (i.e., a frame with the END_STREAM flag). Clients MUST NOT discard responses as a result of receiving such a RST_STREAM, though clients can always discard responses at their discretion for other reasons. """ If packet containing STREAM and RST_STREAM frames is lost, then we will retransmit, but we are only allowed to retransmit RST_STREAM. We can still send RST_STREAM after getting ACK against STREAM frame from peer, but it incurs latency, and it is unnecessarily complicated. Over TCP, we just send them in one packet, and it works fine. Best regards, Tatsuhiro Tsujikawa
- [quic-protocol] "outstanding data" retransmission Tatsuhiro Tsujikawa
- Re: [quic-protocol] "outstanding data" retransmis… Ryan Hamilton
- Re: [quic-protocol] "outstanding data" retransmis… Martin Thomson
- Re: [quic-protocol] "outstanding data" retransmis… Ryan Hamilton
- RE: [quic-protocol] "outstanding data" retransmis… Mike Bishop
- Re: [quic-protocol] "outstanding data" retransmis… Martin Thomson