Subject: [quicwg/base-drafts] Update draft-ietf-quic-recovery.md (#2099)

From: ianswett <[email-masked]>
Date: Tue, 04 Dec 2018 17:51:25 -0800

Fixes part of #2060
You can view, comment on, or merge this pull request online at:

  https://github.com/quicwg/base-drafts/pull/2099

-- Commit Summary --

  * Update draft-ietf-quic-recovery.md

-- File Changes --

    M draft-ietf-quic-recovery.md (39)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/2099.patch
https://github.com/quicwg/base-drafts/pull/2099.diff

-- 
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/pull/2099

---

From: janaiyengar <[email-masked]>
Date: Tue, 04 Dec 2018 19:02:52 -0800

@kazuho pointed out offline (and I agree) that we need to exempt packets containing only non-retransmittable (argh, terminology) frames, since an ACK may be sent after an arbitrarily long period in this case.

-- 
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/pull/2099#issuecomment-444341629

---

From: janaiyengar <[email-masked]>
Date: Thu, 06 Dec 2018 16:51:02 -0800

janaiyengar approved this pull request.

-- 
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/pull/2099#pullrequestreview-182514451

---

From: janaiyengar <[email-masked]>
Date: Thu, 06 Dec 2018 16:55:05 -0800

janaiyengar commented on this pull request.

> @@ -267,6 +267,26 @@ all subsequent ACK frames containing them could be lost. In this case, the
 loss recovery algorithm may cause spurious retransmits, but the sender will
 continue making forward progress.
 
+# Computing the RTT estimate
+
+RTT is calculated when an ACK frame arrives by computing the difference between
+the current time and the time the largest acked packet was sent.  If the
+largest acked packet is not newly acknowledged, RTT cannot be calculated.
+
+When RTT is calculated, the ack delay field from the ACK frame SHOULD be limited
+to the max_ack_delay specified by the peer.  Limiting ack_delay to max_ack_delay
+ensures a peer specifying an extremely small max_ack_delay doesn't cause more
+spurious timeouts than a peer that correctly specifies max_ack_delay. It SHOULD
+be subtracted from the RTT as long as the result is larger than the Min RTT.

s/Min RTT/min_rtt

> @@ -267,6 +267,26 @@ all subsequent ACK frames containing them could be lost. In this case, the
 loss recovery algorithm may cause spurious retransmits, but the sender will
 continue making forward progress.
 
+# Computing the RTT estimate
+
+RTT is calculated when an ACK frame arrives by computing the difference between
+the current time and the time the largest acked packet was sent.  If the
+largest acked packet is not newly acknowledged, RTT cannot be calculated.
+
+When RTT is calculated, the ack delay field from the ACK frame SHOULD be limited
+to the max_ack_delay specified by the peer.  Limiting ack_delay to max_ack_delay
+ensures a peer specifying an extremely small max_ack_delay doesn't cause more
+spurious timeouts than a peer that correctly specifies max_ack_delay. It SHOULD
+be subtracted from the RTT as long as the result is larger than the Min RTT.
+If the result is smaller than the min_rtt, the RTT should be used, but the
+ack delay field should be ignored.

I wouldn't add this in before we resolve #2060.

> +RTT is calculated when an ACK frame arrives by computing the difference between
+the current time and the time the largest acked packet was sent.  If the
+largest acked packet is not newly acknowledged, RTT cannot be calculated.
+
+When RTT is calculated, the ack delay field from the ACK frame SHOULD be limited
+to the max_ack_delay specified by the peer.  Limiting ack_delay to max_ack_delay
+ensures a peer specifying an extremely small max_ack_delay doesn't cause more
+spurious timeouts than a peer that correctly specifies max_ack_delay. It SHOULD
+be subtracted from the RTT as long as the result is larger than the Min RTT.
+If the result is smaller than the min_rtt, the RTT should be used, but the
+ack delay field should be ignored.
+
+Like TCP, QUIC calculates both smoothed RTT and RTT variance similar to those
+specified in {{?RFC6298}}.
+
+Min RTT is the minimum RTT measured over the connection, prior to adjusting by

s/Min RTT/min_rtt

-- 
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/pull/2099#pullrequestreview-182515028

---

From: ianswett <[email-masked]>
Date: Thu, 06 Dec 2018 18:41:04 -0800

@ianswett pushed 1 commit.

95e654775e91ec18a64a60694f5898fe7886b369  Update draft-ietf-quic-recovery.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2099/files/5307d46b792b965e423cd8dbc7872bd5f769e749..95e654775e91ec18a64a60694f5898fe7886b369

---

From: ianswett <[email-masked]>
Date: Thu, 06 Dec 2018 18:42:21 -0800

ianswett commented on this pull request.

Thanks Jana, suggestions accepted, though I'll note one comment addresses text that was only moved, not changed.

This is just moving text from below, FYI

-- 
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/pull/2099#pullrequestreview-182533086

---

From: ianswett <[email-masked]>
Date: Thu, 06 Dec 2018 18:43:16 -0800

02fddcec25254e25c77da958473ea3892b7a8912  Merge branch 'master' into ianswett-limit-ack-delay

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2099/files/95e654775e91ec18a64a60694f5898fe7886b369..02fddcec25254e25c77da958473ea3892b7a8912

---

From: ianswett <[email-masked]>
Date: Thu, 06 Dec 2018 18:50:52 -0800

817e41fe11f0c9e0e4c029f6df5cd514abd575c9  Update draft-ietf-quic-recovery.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2099/files/02fddcec25254e25c77da958473ea3892b7a8912..817e41fe11f0c9e0e4c029f6df5cd514abd575c9

---

From: janaiyengar <[email-masked]>
Date: Thu, 06 Dec 2018 19:24:43 -0800

*facepalm* Of course. 

-- 
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/pull/2099#discussion_r239686427

---

From: janaiyengar <[email-masked]>
Date: Thu, 06 Dec 2018 19:25:23 -0800

-- 
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/pull/2099#pullrequestreview-182539721

---

From: janaiyengar <[email-masked]>
Date: Thu, 06 Dec 2018 19:25:47 -0800

Merged #2099 into master.

-- 
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/pull/2099#event-2011504900