From 737a4f47c1acc59695d49fbeeda4fa10d7f1cb04 Mon Sep 17 00:00:00 2001 From: ianswett Date: Tue, 28 Mar 2017 23:28:06 -0500 Subject: [PATCH 1/2] Resolve remaining TODOs --- draft-ietf-quic-recovery.md | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/draft-ietf-quic-recovery.md b/draft-ietf-quic-recovery.md index 604c9e5108..e4b5545b25 100644 --- a/draft-ietf-quic-recovery.md +++ b/draft-ietf-quic-recovery.md @@ -450,7 +450,7 @@ Pseudocode for SetLossDetectionAlarm follows: ~~~ SetLossDetectionAlarm(): if (retransmittable packets are not outstanding): - loss_detection_alarm.cancel(); + loss_detection_alarm.cancel() return if (handshake packets are outstanding): @@ -491,9 +491,8 @@ Pseudocode for OnLossDetectionAlarm follows: OnLossDetectionAlarm(): if (handshake packets are outstanding): // Handshake retransmission alarm. - RetransmitAllHandshakePackets(); - handshake_count++; - // TODO: Clarify early retransmit and time loss. + RetransmitAllHandshakePackets() + handshake_count++ else if (loss_time != 0): // Early retransmit or Time Loss Detection DetectLostPackets(largest_acked_packet) @@ -535,7 +534,7 @@ Pseudocode for DetectLostPackets follows: DetectLostPackets(largest_acked): loss_time = 0 lost_packets = {} - delay_until_lost = infinite; + delay_until_lost = infinite if (time_reordering_fraction != infinite): delay_until_lost = (1 + time_reordering_fraction) * max(latest_rtt, smoothed_rtt) @@ -561,7 +560,16 @@ Pseudocode for DetectLostPackets follows: ~~~ ## Discussion -TODO: Discuss why constants are chosen as they are. +The majority of constants were derived from best common practices among widely +deployed TCP implementations on the internet. Exceptions follow. + +A shorter delayed ack time of 25ms was chosen because longer delayed acks can +delay loss recovery and for the small number of connections where less than +packet per 25ms is delievered, acking every packet is beneficial to congestion +control and loss recovery. + +The default initial RTT of 100ms was chosen because it's slightl higher than +both the median and mean min_rtt typically observed on the public internet. # Congestion Control From bdb9c0e90e80f8763cbeb04e59f46c182cb303f0 Mon Sep 17 00:00:00 2001 From: ianswett Date: Wed, 29 Mar 2017 18:34:23 -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 e4b5545b25..56ec6b537c 100644 --- a/draft-ietf-quic-recovery.md +++ b/draft-ietf-quic-recovery.md @@ -568,7 +568,7 @@ delay loss recovery and for the small number of connections where less than packet per 25ms is delievered, acking every packet is beneficial to congestion control and loss recovery. -The default initial RTT of 100ms was chosen because it's slightl higher than +The default initial RTT of 100ms was chosen because it is slightly higher than both the median and mean min_rtt typically observed on the public internet.