From 909583c97730891da8df55271814edbd7e8ceef1 Mon Sep 17 00:00:00 2001 From: Jana Iyengar Date: Thu, 30 Nov 2017 22:57:26 -0800 Subject: [PATCH 1/6] remove unnecessary pacing text --- draft-ietf-quic-recovery.md | 43 ++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/draft-ietf-quic-recovery.md b/draft-ietf-quic-recovery.md index e746d21a11..e27d92239c 100644 --- a/draft-ietf-quic-recovery.md +++ b/draft-ietf-quic-recovery.md @@ -812,10 +812,10 @@ both the median and mean min_rtt typically observed on the public internet. # Congestion Control -QUIC's congestion control is based on TCP NewReno{{?RFC6582}} -congestion control to determine the congestion window and -pacing rate. QUIC congestion control is specified in bytes due to -finer control and the ease of appropriate byte counting{{?RFC3465}}. +QUIC's congestion control is based on TCP NewReno{{?RFC6582}} congestion control +to determine the congestion window. QUIC congestion control is specified in +bytes due to finer control and the ease of appropriate byte +counting{{?RFC3465}}. ## Slow Start @@ -850,30 +850,23 @@ the reduction to once per round trip. ## Tail Loss Probe -If recovery sends a tail loss probe, no change is made to the congestion -window or pacing rate. Acknowledgement or loss of tail loss probes are -treated like any other packet. +If recovery sends a tail loss probe, no change is made to the congestion window. +Acknowledgement or loss of tail loss probes are treated like any other packet. ## Retransmission Timeout -When retransmissions are sent due to a retransmission timeout alarm, no -change is made to the congestion window or pacing rate until the next -acknowledgement arrives. When an ack arrives, if packets prior to the first -retransmission timeout are acknowledged, then the congestion window -remains the same. If no packets prior to the first retransmission timeout -are acknowledged, the retransmission timeout has been validated and the -congestion window must be reduced to the minimum congestion window and -slow start is begun. - -## Pacing Rate - -The pacing rate is a function of the mode, the congestion window, and -the smoothed rtt. Specifically, the pacing rate is 2 times the -congestion window divided by the smoothed RTT during slow start -and 1.25 times the congestion window divided by the smoothed RTT during -congestion avoidance. In order to fairly compete with flows that are not -pacing, it is recommended to not pace the first 10 sent packets when -exiting quiescence. +When retransmissions are sent due to a retransmission timeout alarm, no change +is made to the congestion window until the next acknowledgement arrives. When +an ack arrives, if packets prior to the first retransmission timeout are +acknowledged, then the congestion window remains the same. If no packets prior +to the first retransmission timeout are acknowledged, the retransmission timeout +has been validated and the congestion window must be reduced to the minimum +congestion window and slow start is begun. + +## Pacing + +It is RECOMMENDED that senders pace sending of all data, distributing the +congestion window over the SRTT. ## Pseudocode From af81664cce07a876ca0d3f789bd0045bca5d9b90 Mon Sep 17 00:00:00 2001 From: Jana Iyengar Date: Thu, 30 Nov 2017 22:59:30 -0800 Subject: [PATCH 2/6] spaces --- draft-ietf-quic-recovery.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/draft-ietf-quic-recovery.md b/draft-ietf-quic-recovery.md index e27d92239c..6662c83db1 100644 --- a/draft-ietf-quic-recovery.md +++ b/draft-ietf-quic-recovery.md @@ -812,10 +812,10 @@ both the median and mean min_rtt typically observed on the public internet. # Congestion Control -QUIC's congestion control is based on TCP NewReno{{?RFC6582}} congestion control -to determine the congestion window. QUIC congestion control is specified in -bytes due to finer control and the ease of appropriate byte -counting{{?RFC3465}}. +QUIC's congestion control is based on TCP NewReno {{?RFC6582}} congestion +control to determine the congestion window. QUIC congestion control is +specified in bytes due to finer control and the ease of appropriate byte +counting {{?RFC3465}}. ## Slow Start From e92305c3f01bf74680ccd5fff06ba54bfa0444d0 Mon Sep 17 00:00:00 2001 From: Jana Iyengar Date: Wed, 6 Dec 2017 16:21:38 -0800 Subject: [PATCH 3/6] add generic language about linux fq --- draft-ietf-quic-recovery.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/draft-ietf-quic-recovery.md b/draft-ietf-quic-recovery.md index 6662c83db1..31fdf0cc4d 100644 --- a/draft-ietf-quic-recovery.md +++ b/draft-ietf-quic-recovery.md @@ -865,8 +865,11 @@ congestion window and slow start is begun. ## Pacing -It is RECOMMENDED that senders pace sending of all data, distributing the -congestion window over the SRTT. +It is RECOMMENDED that a sender pace sending of all data, distributing the +congestion window over the SRTT. This document does not specify a pacer. As an +example pacer, implementers are referred to the Fair Queue packet scheduler (fq +qdisc) in Linux (3.11 onwards) as a well-known and publicly available +implementation of a flow pacer. ## Pseudocode From daa95fe8abbac0b5ba5fd00bfd18605c82df1cf1 Mon Sep 17 00:00:00 2001 From: Jana Iyengar Date: Wed, 6 Dec 2017 17:34:42 -0800 Subject: [PATCH 4/6] rto text --- draft-ietf-quic-recovery.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/draft-ietf-quic-recovery.md b/draft-ietf-quic-recovery.md index 31fdf0cc4d..e1ab3f85db 100644 --- a/draft-ietf-quic-recovery.md +++ b/draft-ietf-quic-recovery.md @@ -856,12 +856,13 @@ Acknowledgement or loss of tail loss probes are treated like any other packet. ## Retransmission Timeout When retransmissions are sent due to a retransmission timeout alarm, no change -is made to the congestion window until the next acknowledgement arrives. When -an ack arrives, if packets prior to the first retransmission timeout are -acknowledged, then the congestion window remains the same. If no packets prior -to the first retransmission timeout are acknowledged, the retransmission timeout -has been validated and the congestion window must be reduced to the minimum -congestion window and slow start is begun. +is made to the congestion window until the next acknowledgement arrives. The +retransmission timeout is considered spurious when an ack is received that +acknowledges packets sent prior to the first retransmission timeout. The +retransmission timeout is considered valid when an ack is received that +acknowledges no packets sent prior to the first retransmission timeout. In this +case, the congestion window MUST be reduced to the minimum congestion window and +slow start is re-entered. ## Pacing From 72c98c4afdc64d1e3dd147526b68dae42021c1ee Mon Sep 17 00:00:00 2001 From: Jana Iyengar Date: Wed, 6 Dec 2017 17:47:04 -0800 Subject: [PATCH 5/6] ian comments --- draft-ietf-quic-recovery.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/draft-ietf-quic-recovery.md b/draft-ietf-quic-recovery.md index e1ab3f85db..3bde4977d4 100644 --- a/draft-ietf-quic-recovery.md +++ b/draft-ietf-quic-recovery.md @@ -857,9 +857,9 @@ Acknowledgement or loss of tail loss probes are treated like any other packet. When retransmissions are sent due to a retransmission timeout alarm, no change is made to the congestion window until the next acknowledgement arrives. The -retransmission timeout is considered spurious when an ack is received that +retransmission timeout is considered spurious when the next acknowledgement acknowledges packets sent prior to the first retransmission timeout. The -retransmission timeout is considered valid when an ack is received that +retransmission timeout is considered valid when the next acknowledgement acknowledges no packets sent prior to the first retransmission timeout. In this case, the congestion window MUST be reduced to the minimum congestion window and slow start is re-entered. From 252c8cee6c2fa39eb1291eb3ffc9a011e7be813a Mon Sep 17 00:00:00 2001 From: Jana Iyengar Date: Wed, 6 Dec 2017 17:48:33 -0800 Subject: [PATCH 6/6] ian comments --- draft-ietf-quic-recovery.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/draft-ietf-quic-recovery.md b/draft-ietf-quic-recovery.md index 3bde4977d4..1c121bd52d 100644 --- a/draft-ietf-quic-recovery.md +++ b/draft-ietf-quic-recovery.md @@ -857,9 +857,9 @@ Acknowledgement or loss of tail loss probes are treated like any other packet. When retransmissions are sent due to a retransmission timeout alarm, no change is made to the congestion window until the next acknowledgement arrives. The -retransmission timeout is considered spurious when the next acknowledgement +retransmission timeout is considered spurious when this acknowledgement acknowledges packets sent prior to the first retransmission timeout. The -retransmission timeout is considered valid when the next acknowledgement +retransmission timeout is considered valid when this acknowledgement acknowledges no packets sent prior to the first retransmission timeout. In this case, the congestion window MUST be reduced to the minimum congestion window and slow start is re-entered.