Subject: [quicwg/base-drafts] sender SHOULD limit bursts (#3936)

From: Jana Iyengar <[email-masked]>
Date: Tue, 21 Jul 2020 16:39:58 -0700

Closes #3892.
Also does a bit of cleanup.
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * sender SHOULD limit bursts

-- File Changes --

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

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/3936.patch
https://github.com/quicwg/base-drafts/pull/3936.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/3936

---

From: ianswett <[email-masked]>
Date: Tue, 21 Jul 2020 17:41:30 -0700

@ianswett commented on this pull request.

There's one important thing we're missing here, which is if the CWND > IW, then it can be particularly critical to pace when sending the first flight after quiescence.  Given we're not requiring slow start after idle, I think we need to provide some limits after idle.

-- 
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/3936#pullrequestreview-452920492

---

From: Martin Thomson <[email-masked]>
Date: Tue, 21 Jul 2020 17:47:22 -0700

@martinthomson approved this pull request.

Design change?

> +initial congestion window; see {{initial-cwnd}}. A sender might have prior
+knowledge that the network path to the receiver has deep buffers, and might
+therefore allow larger bursts.

```suggestion
initial congestion window; see {{initial-cwnd}}. A sender that has prior
knowledge that the network path to the receiver has deep buffers might allow
larger bursts.
```

-- 
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/3936#pullrequestreview-452922193

---

From: ianswett <[email-masked]>
Date: Tue, 21 Jul 2020 17:49:01 -0700

Yes, it's certainly design.

-- 
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/3936#discussion_r458469845

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 21 Jul 2020 18:42:59 -0700

@ianswett : Can you provide some text? Also, shall we make this part of the consensus call?

-- 
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/3936#issuecomment-662193222

---

From: Jana Iyengar <[email-masked]>
Date: Fri, 24 Jul 2020 18:26:11 -0700

@janaiyengar pushed 1 commit.

89748860a87d9df94564561106bc615727c6fb09  martin's suggestion

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3936/files/dbcfc229eb22a1e260de0189ad37f4526bb6f7a8..89748860a87d9df94564561106bc615727c6fb09

---

From: Jana Iyengar <[email-masked]>
Date: Fri, 24 Jul 2020 18:32:58 -0700

@ianswett : I don't think we are missing it. The PR says that you SHOULD pace or limit the burst size to IW at all times. Isn't that what you want -- to limit bursts to IW? 

-- 
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/3936#issuecomment-663790868

---

From: Jana Iyengar <[email-masked]>
Date: Fri, 24 Jul 2020 18:34:25 -0700

82526d0502735b2cba734f740f71f39ebef373b5  smithing

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3936/files/89748860a87d9df94564561106bc615727c6fb09..82526d0502735b2cba734f740f71f39ebef373b5

---

From: Martin Thomson <[email-masked]>
Date: Sun, 26 Jul 2020 20:53:19 -0700

-- 
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/3936#pullrequestreview-455456338

---

From: Jana Iyengar <[email-masked]>
Date: Mon, 27 Jul 2020 10:27:03 -0700

325fcda8954289129b9f51153a48fed336ee83b2  MUST pace or limit bursts

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3936/files/82526d0502735b2cba734f740f71f39ebef373b5..325fcda8954289129b9f51153a48fed336ee83b2

---

From: ianswett <[email-masked]>
Date: Mon, 27 Jul 2020 12:25:36 -0700

@ianswett approved this pull request.

This LG.  One nit is that I don't think the knowledge needs to be prior, since it could be experimentally determined, particularly with a loss-based CC like Reno which will decrease CWND and rate upon experiencing loss.

> @@ -877,12 +877,15 @@ similar to a sender's response on a Retransmission Timeout (RTO) in TCP
 
 ## Pacing {#pacing}
 
-This document does not specify a pacer, but it is RECOMMENDED that a sender pace
-sending of all in-flight packets based on input from the congestion
-controller.  Sending multiple packets into the network without any delay between
-them creates a packet burst that might cause short-term congestion and losses.
-Implementations MUST either use pacing or another method to limit such bursts
-to the initial congestion window; see {{initial-cwnd}}.
+A sender SHOULD pace sending of all in-flight packets based on input from the
+congestion controller.
+
+Sending multiple packets into the network without any delay between them creates
+a packet burst that might cause short-term congestion and losses. Senders MUST
+either use pacing or limit such bursts. Senders SHOULD limit bursts to the
+initial congestion window; see {{initial-cwnd}}. A sender with prior knowledge

```suggestion
initial congestion window; see {{initial-cwnd}}. A sender with knowledge
```

-- 
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/3936#pullrequestreview-456068608

---

From: Jana Iyengar <[email-masked]>
Date: Mon, 27 Jul 2020 13:01:24 -0700

9dfc0865b05732d5709f3300c199dd774fd91722  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/3936/files/325fcda8954289129b9f51153a48fed336ee83b2..9dfc0865b05732d5709f3300c199dd774fd91722

---

From: Jana Iyengar <[email-masked]>
Date: Mon, 27 Jul 2020 13:02:08 -0700

5bb2a832cf4bf21429aec60da520a1c50db95100  reflow

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3936/files/9dfc0865b05732d5709f3300c199dd774fd91722..5bb2a832cf4bf21429aec60da520a1c50db95100

---

From: Praveen Balasubramanian <[email-masked]>
Date: Tue, 28 Jul 2020 09:11:59 -0700

@pravb commented on this pull request.

> @@ -877,12 +877,14 @@ similar to a sender's response on a Retransmission Timeout (RTO) in TCP
 
 ## Pacing {#pacing}
 
+initial congestion window; see {{initial-cwnd}}. A sender with knowledge that

I don't think we should refer to deep buffers. At high data rates in DC the path can process packets at multi-Gbps line rate so even with reasonable buffer sizes the bursts can be absorbed.  How about:

"A sender with knowledge that the network path to the receiver can absorb larger bursts may use a higher limit."

-- 
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/3936#pullrequestreview-456792396

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 28 Jul 2020 16:55:10 -0700

371ef376f8fb0c06d6bcc154582c54a65d1b63ea  Praveen's suggestion

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3936/files/5bb2a832cf4bf21429aec60da520a1c50db95100..371ef376f8fb0c06d6bcc154582c54a65d1b63ea

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 28 Jul 2020 16:55:33 -0700

@janaiyengar commented on this pull request.

 ## Pacing {#pacing}

Done.

-- 
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/3936#discussion_r461959199

---

From: Praveen Balasubramanian <[email-masked]>
Date: Tue, 28 Jul 2020 16:55:51 -0700

@pravb 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/3936#pullrequestreview-457106282

---

From: ianswett <[email-masked]>
Date: Tue, 28 Jul 2020 17:21:55 -0700

## Pacing {#pacing}
 
+the network path to the receiver can absorb larger bursts may use a higher

```suggestion
the network path to the receiver can absorb larger bursts MAY use a higher
```

Or change it to a can.

-- 
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/3936#pullrequestreview-457114599

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 28 Jul 2020 19:18:49 -0700

ffdf31f28486e3279acf42645963b88a031543dc  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/3936/files/371ef376f8fb0c06d6bcc154582c54a65d1b63ea..ffdf31f28486e3279acf42645963b88a031543dc

---

From: ianswett <[email-masked]>
Date: Wed, 29 Jul 2020 04:38:32 -0700

-- 
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/3936#pullrequestreview-457437259