From 46486dc1191b0ca0f08203597dde6d419e466bf0 Mon Sep 17 00:00:00 2001 From: martinduke Date: Thu, 6 Dec 2018 12:02:35 -0800 Subject: [PATCH 1/2] Make in_flight the criterion for declaring loss If a packet contains just ACKs and PADDING, it is not retransmittable but must be declared lost to free up the congestion window space. --- draft-ietf-quic-recovery.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/draft-ietf-quic-recovery.md b/draft-ietf-quic-recovery.md index 2057166369..ed11adb1ba 100644 --- a/draft-ietf-quic-recovery.md +++ b/draft-ietf-quic-recovery.md @@ -302,10 +302,9 @@ Ack-based loss detection implements the spirit of TCP's Fast Retransmit {{?RFC6675}}, and RACK {{?RACK=I-D.ietf-tcpm-rack}}. This section provides an overview of how these algorithms are implemented in QUIC. -A packet is declared lost under the following conditions: +A packet is declared lost if it meets both of the following conditions: -* The packet is unacknowledged, retransmittable, and was sent prior to an - acknowledged packet. +* The packet is in-flight, and was sent prior to an acknowledged packet. * Either its packet number is kPacketThreshold smaller than an acknowledged packet ({{packet-threshold}}), or it was sent long enough in the past @@ -875,7 +874,7 @@ DetectLostPackets(largest_acked): if (time_since_sent > delay_until_lost || delta > kPacketThreshold): sent_packets.remove(unacked.packet_number) - if (unacked.retransmittable): + if (unacked.in_flight): lost_packets.insert(unacked) else if (loss_time == 0 && delay_until_lost != infinite): loss_time = now() + delay_until_lost - time_since_sent From b290a95ceecc5df8ef291211502af941bbbf045b Mon Sep 17 00:00:00 2001 From: ianswett Date: Fri, 7 Dec 2018 10:55:50 -0500 Subject: [PATCH 2/2] Update draft-ietf-quic-recovery.md --- draft-ietf-quic-recovery.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-quic-recovery.md b/draft-ietf-quic-recovery.md index 9136305793..82702b0be9 100644 --- a/draft-ietf-quic-recovery.md +++ b/draft-ietf-quic-recovery.md @@ -304,7 +304,7 @@ Ack-based loss detection implements the spirit of TCP's Fast Retransmit {{?RFC6675}}, and RACK {{?RACK=I-D.ietf-tcpm-rack}}. This section provides an overview of how these algorithms are implemented in QUIC. -A packet is declared lost if it meets both of the following conditions: +A packet is declared lost if it meets all the following conditions: * The packet is unacknowledged, in-flight, and was sent prior to an acknowledged packet.