[quicwg/base-drafts] Complicated Retransmission Corner Cases (#765)
martinduke <notifications@github.com> Wed, 06 September 2017 23:00 UTC
Return-Path: <bounces+848413-a050-quic-issues=ietf.org@sgmail.github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0356F1320BD for <quic-issues@ietfa.amsl.com>; Wed, 6 Sep 2017 16:00:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.02
X-Spam-Level:
X-Spam-Status: No, score=-2.02 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.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 PThAAV3qIZPJ for <quic-issues@ietfa.amsl.com>; Wed, 6 Sep 2017 16:00:13 -0700 (PDT)
Received: from o4.sgmail.github.com (o4.sgmail.github.com [192.254.112.99]) (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 32FE412EC30 for <quic-issues@ietf.org>; Wed, 6 Sep 2017 16:00:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=github.com; h=from:reply-to:to:cc:subject:mime-version:content-type:content-transfer-encoding:list-id:list-archive:list-post:list-unsubscribe; s=s20150108; bh=7Its9hrpmXQdmIzuOtT8KVANBWY=; b=jXSqeJr0+YDommZG CVi5s6VIk4K4hZwA0/3p9Pyo/07CJdu2qPm4jz2wtY7hNGfbgYfDeMGe1ra6lH7L 2oTjlAqfErguMMlg3tF4qBAk+FL62HjZIDI23iyNxKR35kz2ZZ1zXknImaPftXK2 EOXs44DkqXBItprMKfHjoEKN1bw=
Received: by filter1082p1mdw1.sendgrid.net with SMTP id filter1082p1mdw1-7403-59B070C2-DC 2017-09-06 22:03:47.23656085 +0000 UTC
Received: from github-smtp2a-ext-cp1-prd.iad.github.net (github-smtp2a-ext-cp1-prd.iad.github.net [192.30.253.16]) by ismtpd0005p1iad1.sendgrid.net (SG) with ESMTP id fGqBdKQER76vBNhMNVgAHg for <quic-issues@ietf.org>; Wed, 06 Sep 2017 21:57:04.648 +0000 (UTC)
Date: Wed, 06 Sep 2017 23:00:12 +0000
From: martinduke <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab0639ca8c2edb0924df9e4c3c12fbbbdccdf2ae7092cf0000000115c8310b92a169ce0f3e8128@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/765@github.com>
Subject: [quicwg/base-drafts] Complicated Retransmission Corner Cases (#765)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_59b06f0b48d0e_69603fdecd669c346163b"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: martinduke
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
X-SG-EID: l64QuQ2uJCcEyUykJbxN122A6QRmEpucztpreh3Pak1M26nxXV0jW7Ybhq3Gk/tdfms8X5nRbS/Tf7 SMANcWOdgG9SiTwpqzLdHER7paRVzJVM1Ge6HXwSQYcEdzY3+zEje6GOtxM+TEibdnKY6F7t51A3jt oDRplf/2cBxmhOO3A3P6Jm7LEBYbMioS+eJgMNFLHENpRwSIshty6Cg/gQtVVgEy+HvTHZdY76opUh Y=
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/Q0NTvnOSjposekXFmJv3NtdxY0w>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.22
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Sep 2017 23:00:15 -0000
The basic case for retransmission is pretty straightforward. I detect a packet loss, so I take all the stuff in that packet and send it in a new packet. There has to be some sort of data structure in the PCB to track what's in the packet. I can clear that data structure once the packet is acked. There are two ambiguities here: (1) How long do I hold on to the packet data if lost? I can delete it immediately, hold it for _n_ retransmissions, or hold it until all acks and data in the packet are acked. Deleting it immediately is very simple, but if the ack comes back for that packet later and the first retransmission is lost, I will needlessly resend that data. Offline, Jana suggested keeping it for 1 retransmission. That is fine with me (minus the second item below) but I think some implementation guidance on when it is acceptable to throw away old packet data would be helpful. (2) More importantly, fitting the whole retransmission into a single packet does not hold in the general case. There might be an MTU change; the updated ack might be bigger; optimizers like me might want to aggregate multiple small packets into a single retransmission; some ack frames might be supersets of other ack frames, so although there is no direct retransmission relationship acking one of those packets might obviate the ack frame of the other. What all this implies is a many-to-many mapping where every time data or acks are acked, we have to clear that from all other packets that contain it. I started down this road before seeing that it was way too hairy to continue. **** So we're at a point where the optimal wire performance -- never throw it away until acked, allow mix-and-match of retransmissions -- is close to unimplementable. Some implementation guidance about what it's OK to not worry about, and perhaps some judicious prohibitions on particularly gnarly stuff, might help some. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/quicwg/base-drafts/issues/765
- [quicwg/base-drafts] Complicated Retransmission C… martinduke
- Re: [quicwg/base-drafts] Complicated Retransmissi… Martin Thomson
- Re: [quicwg/base-drafts] Complicated Retransmissi… Mike Bishop
- Re: [quicwg/base-drafts] Complicated Retransmissi… martinduke
- Re: [quicwg/base-drafts] Complicated Retransmissi… janaiyengar
- Re: [quicwg/base-drafts] Complicated Retransmissi… ianswett
- Re: [quicwg/base-drafts] Complicated Retransmissi… ianswett