Subject: Re: [quicwg/base-drafts] Immutable settings with no ACKs (#236)

From: Mike Bishop <[email-masked]>
Date: Tue, 07 Feb 2017 14:09:52 -0800

MikeBishop commented on this pull request.

+Servers MAY continue processing data from clients which conform to these
+defaults during the initial flight, even if the client behavior exceeds its
+current configuration.  If the connection is closed because these or other
+constraints were violated during the 0-RTT flight, clients MAY retry using the
+settings sent by the server on the closed connection.

Silly thought:  It would be nice if we could get QUIC to guarantee delivery of a certain payload that explains the connection close.  This feels very close to the reason phrase, but isn't just human-readable text.

-- 
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/236

---

From: Mike Bishop <[email-masked]>
Date: Tue, 07 Feb 2017 15:11:10 -0800

@MikeBishop pushed 1 commit.

015ddc7  Strict default in 0-RTT; you really oughta cache

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/236/files/42f9f47763be5afd513679c85b2eba428830b7ca..015ddc7e33e6ba2302651e627f93801da2ea4388

---

From: Mike Bishop <[email-masked]>
Date: Tue, 07 Feb 2017 15:12:05 -0800

I think there are actually two categories here.  Exceeding max header size, for example, only causes your request to be refused, not the entire connection to be reset.  You can tolerate that and retry.  (If, that is, you can programmatically reduce the size of your header set!)

The HPACK limit *will* cause the connection to be reset.  We can fix that with a punitively-small value if you haven't cached something -- which is okay, because 0-RTT means you've spoken to the server before, so you had the opportunity to cache.  If the client's cached value is now too big, there are a couple of options:

- Server can be permissive.  Client MUST apply the settings as soon as it knows them.  There is no delete in HPACK, so the client would just announce a table size change in its next frame.  Once we have QPACK or a cousin, we can bring back the text on mid-stream table size changes for this case.
- Server can reject
    - Client saw SETTINGS:  Retry and use those
    - Client didn't see SETTINGS:  Retry and use the horrific default

Yes, this means that servers which both reduce their settings and refuse to honor the old values will be imposing a one-time penalty on clients, but it's strictly better than 1-RTT.

---

From: Martin Thomson <[email-masked]>
Date: Tue, 07 Feb 2017 16:13:34 -0800

martinthomson commented on this pull request.

-  - SETTINGS_HEADER_TABLE_SIZE:  4,096 octets
+  - SETTINGS_HEADER_TABLE_SIZE:  0 octets

👍 

-- 
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/236#pullrequestreview-20655366

---

From: Martin Thomson <[email-masked]>
Date: Tue, 07 Feb 2017 16:13:39 -0800

martinthomson 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/236#pullrequestreview-20655381

---

From: Mike Bishop <[email-masked]>
Date: Tue, 07 Feb 2017 16:48:09 -0800

Merged #236.

-- 
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/236#event-953083168