Subject: Re: [quicwg/base-drafts] Discuss Application-Limited Sending (#1637)

From: ianswett <[email-masked]>
Date: Fri, 11 Jan 2019 12:40:18 -0800

@ianswett pushed 1 commit.

b6546ab40393f119ab92929019eee6b94df946c2  Merge branch 'master' into ianswett-app-limited

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/1637/files/a38f3f9e44b95bed81592394ecbeb5f6eb0fa97a..b6546ab40393f119ab92929019eee6b94df946c2

---

From: ianswett <[email-masked]>
Date: Fri, 11 Jan 2019 12:42:37 -0800

ianswett commented on this pull request.

    OnPacketAckedCC(acked_packet):
      // Remove from bytes_in_flight.
      bytes_in_flight -= acked_packet.bytes
      if (InRecovery(acked_packet.packet_number)):
        // Do not increase congestion window in recovery period.
        return
+     if (IsAppLimited())
+       // Do not increase congestion_window if application limited.
+       return

Agreed, getting this right is complex.  I am going to not define the IsAppLimited() method, but document what it's intent is.

-- 
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/1637#discussion_r247248134

---

From: ianswett <[email-masked]>
Date: Fri, 11 Jan 2019 13:07:01 -0800

f49e4a4707d2733b178079d2655dbe61a60b8ef9  Rewrite and specifically note pacing

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/1637/files/b6546ab40393f119ab92929019eee6b94df946c2..f49e4a4707d2733b178079d2655dbe61a60b8ef9

---

From: ianswett <[email-masked]>
Date: Fri, 11 Jan 2019 13:08:38 -0800

10f9dedbf84d828cf2d49cf3dbe9ed367e89593d  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/1637/files/f49e4a4707d2733b178079d2655dbe61a60b8ef9..10f9dedbf84d828cf2d49cf3dbe9ed367e89593d

---

From: Martin Thomson <[email-masked]>
Date: Sun, 13 Jan 2019 14:47:27 -0800

martinthomson commented on this pull request.

> @@ -999,6 +996,18 @@ paces the sending of any packets in excess of the initial congestion window.
 A sender MAY implement alternate mechanisms to update its congestion window
 after idle periods, such as those proposed for TCP in {{?RFC7661}}.
 
+## Application Limited Sending
+
+The congestion window should not be increased in slow start or congestion
+avoidance when it is not fully utilized.  The congestion window could be
+under-utilized due to insufficient application data to send or flow control
+limits.
+
+When the sender is pacing(see {{pacing}}) packets, the sender may be unable

```suggestion
When the sender is pacing (see {{pacing}}) packets, the sender may be unable
```

> @@ -999,6 +996,18 @@ paces the sending of any packets in excess of the initial congestion window.
 A sender MAY implement alternate mechanisms to update its congestion window
 after idle periods, such as those proposed for TCP in {{?RFC7661}}.
 
+## Application Limited Sending
+
+The congestion window should not be increased in slow start or congestion
+avoidance when it is not fully utilized.  The congestion window could be
+under-utilized due to insufficient application data to send or flow control
+limits.
+
+When the sender is pacing(see {{pacing}}) packets, the sender may be unable
+to use the full congestion window for a period of time after receiving an
+ACK, due to pacing.  In this case, the sender should not consider themselves

```suggestion
acknowledgment.  In this case, the sender should not consider themselves
```

> @@ -999,6 +996,18 @@ paces the sending of any packets in excess of the initial congestion window.
 A sender MAY implement alternate mechanisms to update its congestion window
 after idle periods, such as those proposed for TCP in {{?RFC7661}}.
 
+## Application Limited Sending
+
+The congestion window should not be increased in slow start or congestion
+avoidance when it is not fully utilized.  The congestion window could be
+under-utilized due to insufficient application data to send or flow control
+limits.
+
+When the sender is pacing(see {{pacing}}) packets, the sender may be unable
+to use the full congestion window for a period of time after receiving an
+ACK, due to pacing.  In this case, the sender should not consider themselves
+application limited and should allow the congestion window to increase.

I'm not really following the logic here.  I think that you need more words.

The reason that the congestion window is limited in this fashion is that without being exercised, there is no assurance that this much data can be sent.  If there is a sudden increase in demand from the application such that the inflated limit is now used, that results in using an untested limit, which might result in severe congestion.

-- 
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/1637#pullrequestreview-191994034

---

From: ianswett <[email-masked]>
Date: Tue, 15 Jan 2019 08:44:35 -0800

fb13365635420b3d53dd2bff388afca10f4fcf68  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/1637/files/10f9dedbf84d828cf2d49cf3dbe9ed367e89593d..fb13365635420b3d53dd2bff388afca10f4fcf68

---

From: ianswett <[email-masked]>
Date: Tue, 15 Jan 2019 08:46:23 -0800

I think I mean ACK, as in the frame?

-- 
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/1637#discussion_r247972865

---

From: Nick Banks <[email-masked]>
Date: Tue, 15 Jan 2019 08:49:30 -0800

nibanks approved this pull request.

Looks fine to me.

-- 
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/1637#pullrequestreview-192750422

---

From: ianswett <[email-masked]>
Date: Tue, 15 Jan 2019 08:56:02 -0800

SG, maybe @janaiyengar or @nibanks will have a suggestion?

-- 
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/1637#discussion_r247976925

---

From: Nick Banks <[email-masked]>
Date: Tue, 15 Jan 2019 08:58:45 -0800

nibanks commented on this pull request.

Maybe it's just a case of too much detail. I think folks should understand that just because a pacing interval has currently been used up, that's not considered application limited? So, maybe, just don't have this at all? 

-- 
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/1637#discussion_r247978038

---

From: Martin Thomson <[email-masked]>
Date: Wed, 16 Jan 2019 00:32:43 +0000 (UTC)

You need more than an ACK, you need one that contains fresh acknowledgments, right?

-- 
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/1637#discussion_r248114813

---

From: ianswett <[email-masked]>
Date: Wed, 16 Jan 2019 17:26:19 +0000 (UTC)

True, changed to acknowledgements.

-- 
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/1637#discussion_r248377271

---

From: ianswett <[email-masked]>
Date: Wed, 16 Jan 2019 09:26:58 -0800

3fb5df177679b5a410a865ec07d139aea26d72a2  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/1637/files/fb13365635420b3d53dd2bff388afca10f4fcf68..3fb5df177679b5a410a865ec07d139aea26d72a2

---

From: ianswett <[email-masked]>
Date: Tue, 22 Jan 2019 17:05:21 -0800

6f6e34ccd97f6b1c683bf2275d832308cff3c794  Merge branch 'master' into ianswett-app-limited

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/1637/files/3fb5df177679b5a410a865ec07d139aea26d72a2..6f6e34ccd97f6b1c683bf2275d832308cff3c794

---

From: ianswett <[email-masked]>
Date: Tue, 22 Jan 2019 19:13:40 -0800

f9aaa9108f058ee0f17e7d6aa2b1916f3b558bd0  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/1637/files/6f6e34ccd97f6b1c683bf2275d832308cff3c794..f9aaa9108f058ee0f17e7d6aa2b1916f3b558bd0

---

From: Jana Iyengar <[email-masked]>
Date: Sun, 27 Jan 2019 21:45:32 -0800

janaiyengar commented on this pull request.

> @@ -1047,6 +1045,19 @@ paces the sending of any packets in excess of the initial congestion window.

```suggestion
under-utilized due to insufficient application data or flow control credit.
```

> @@ -1047,6 +1045,19 @@ paces the sending of any packets in excess of the initial congestion window.

```suggestion
```

> @@ -1047,6 +1045,19 @@ paces the sending of any packets in excess of the initial congestion window.
 
+## Application Limited Sending
+
+The congestion window should not be increased in slow start or congestion
+avoidance when it is not fully utilized.  The congestion window could be
+under-utilized due to insufficient application data to send or flow control
+limits.
+
+When the sender is pacing (see {{pacing}}) packets, the sender may be unable
+to use the full congestion window for a period of time after receiving
+acknowledgements, due to pacing.  In this case, the sender should not consider
+themselves application limited and should allow the congestion window to
+increase.

Suggested rephrasing:  "A sender that uses pacing (see {{pacing}}) might delay sending of packets and might not fully utilize the congestion window due to this delay.  A sender should not consider itself application limited if it might have utilized the entire congestion window without pacing delay."

"When the sender paces packets (see {{pacing}}), it might not send 
to use the full congestion window for a period of time after receiving
acknowledgements, due to pacing.  In this case, the sender should not consider
themselves application limited and should allow the congestion window to
increase."

-- 
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/1637#pullrequestreview-196879726

---

From: ianswett <[email-masked]>
Date: Mon, 28 Jan 2019 18:03:42 -0800

bb96c700706574df8f4eef144f5b4505581d51c1  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/1637/files/f9aaa9108f058ee0f17e7d6aa2b1916f3b558bd0..bb96c700706574df8f4eef144f5b4505581d51c1

---

From: ianswett <[email-masked]>
Date: Mon, 28 Jan 2019 18:03:55 -0800

c21ced5457920324dff55376db86455a83244f7f  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/1637/files/bb96c700706574df8f4eef144f5b4505581d51c1..c21ced5457920324dff55376db86455a83244f7f

---

From: ianswett <[email-masked]>
Date: Mon, 28 Jan 2019 18:13:01 -0800

07ef7103a505acf980bc3acb4520a890d90d8190  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/1637/files/c21ced5457920324dff55376db86455a83244f7f..07ef7103a505acf980bc3acb4520a890d90d8190

---

From: ianswett <[email-masked]>
Date: Tue, 29 Jan 2019 02:13:18 +0000 (UTC)

Accepted with minor tweaks.

-- 
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/1637#discussion_r251669003

---

From: ianswett <[email-masked]>
Date: Mon, 28 Jan 2019 18:13:45 -0800

06cf5b0b2f5cf03d4fec36fcf2ebc9ee9a3218e3  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/1637/files/07ef7103a505acf980bc3acb4520a890d90d8190..06cf5b0b2f5cf03d4fec36fcf2ebc9ee9a3218e3

---

From: Jana Iyengar <[email-masked]>
Date: Mon, 28 Jan 2019 18:37:28 -0800

Merged #1637 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/1637#event-2102494221