From b2144658e256b02511dc607574ada4db9d71d838 Mon Sep 17 00:00:00 2001 From: ianswett Date: Fri, 17 Jan 2020 16:31:33 -0500 Subject: [PATCH 1/3] Only send one immediate ACK Fixes #3357 --- draft-ietf-quic-transport.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/draft-ietf-quic-transport.md b/draft-ietf-quic-transport.md index ba5a3539ee..4039111259 100644 --- a/draft-ietf-quic-transport.md +++ b/draft-ietf-quic-transport.md @@ -3136,12 +3136,10 @@ This recommendation is in keeping with standard practice for TCP {{?RFC5681}}. In order to assist loss detection at the sender, an endpoint SHOULD send an ACK frame immediately on receiving an ack-eliciting packet that is out of order. The -endpoint MAY continue sending ACK frames immediately on each subsequently -received packet, but the endpoint SHOULD return to acknowledging every other -packet within a period of 1/8 x RTT, unless more ack-eliciting packets are -received out of order. If every subsequent ack-eliciting packet arrives out of -order, then an ACK frame SHOULD be sent immediately for every received -ack-eliciting packet. +endpoint MUST not continue sending ACK frames immediately unless more +ack-eliciting packets are received out of order. If every subsequent +ack-eliciting packet arrives out of order, then an ACK frame SHOULD be sent +immediately for every received ack-eliciting packet. Similarly, packets marked with the ECN Congestion Experienced (CE) codepoint in the IP header SHOULD be acknowledged immediately, to reduce the peer's response From 0a2fed988a64ca0767c045fd677e641aacbd50a0 Mon Sep 17 00:00:00 2001 From: ianswett Date: Sat, 18 Jan 2020 07:30:49 -0500 Subject: [PATCH 2/3] MUST -> SHOULD --- draft-ietf-quic-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-quic-transport.md b/draft-ietf-quic-transport.md index 4039111259..e167e5b354 100644 --- a/draft-ietf-quic-transport.md +++ b/draft-ietf-quic-transport.md @@ -3136,7 +3136,7 @@ This recommendation is in keeping with standard practice for TCP {{?RFC5681}}. In order to assist loss detection at the sender, an endpoint SHOULD send an ACK frame immediately on receiving an ack-eliciting packet that is out of order. The -endpoint MUST not continue sending ACK frames immediately unless more +endpoint SHOULD not continue sending ACK frames immediately unless more ack-eliciting packets are received out of order. If every subsequent ack-eliciting packet arrives out of order, then an ACK frame SHOULD be sent immediately for every received ack-eliciting packet. From 5af33e54216e64024779612263152c8cff7d04bf Mon Sep 17 00:00:00 2001 From: ianswett Date: Sat, 18 Jan 2020 08:37:54 -0500 Subject: [PATCH 3/3] Kazuho's suggestion --- draft-ietf-quic-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-quic-transport.md b/draft-ietf-quic-transport.md index e167e5b354..3f98210f09 100644 --- a/draft-ietf-quic-transport.md +++ b/draft-ietf-quic-transport.md @@ -3136,7 +3136,7 @@ This recommendation is in keeping with standard practice for TCP {{?RFC5681}}. In order to assist loss detection at the sender, an endpoint SHOULD send an ACK frame immediately on receiving an ack-eliciting packet that is out of order. The -endpoint SHOULD not continue sending ACK frames immediately unless more +endpoint SHOULD NOT continue sending ACK frames immediately unless more ack-eliciting packets are received out of order. If every subsequent ack-eliciting packet arrives out of order, then an ACK frame SHOULD be sent immediately for every received ack-eliciting packet.