Subject: Re: [quicwg/base-drafts] Silent close (#61)

From: Martin Thomson <[email-masked]>
Date: Thu, 09 Mar 2017 19:52:36 -0800

It's probably timely that we have the "how do you close a connection" discussion.

@janaiyengar and I were discussing one possibility.  In that model, the transport only has an explicit message for error-related closes.  The transport also has an idle timer that starts as soon as there are no open streams (note that this means nothing to send, nothing to receive).  The connection silently closes if that timer runs down without a new stream being opened.

The application protocol could define a message that could negotiate a graceful close to trigger this.  HTTP would need this, otherwise stream 3 would hold the connection open indefinitely.  To speed things up, the application protocol could force the timer to be shortened to basically FIN_WAIT2 (a couple of RTOs) by telling the transport that it was done.  (You need to wait around a little for retransmissions and reordering.)

-- 
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/issues/61#issuecomment-285566401

---

From: Lucas Clemente <[email-masked]>
Date: Thu, 09 Mar 2017 23:14:59 -0800

Would PING frames reset this idle timer?

-- 
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/issues/61#issuecomment-285595844

---

From: ianswett <[email-masked]>
Date: Fri, 10 Mar 2017 07:00:31 -0800

@lucas-clemente PING frames reset the idle timer today in GQUIC, and that has been useful.

@martinthomson GQUIC currently closes silently by default and does close connections if there are open streams, but only after a PING has already been sent, but not acked.  It's possible one can design something better, but I don't think closing the headers(or crypto) streams should be necessary.

-- 
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/issues/61#issuecomment-285690345

---

From: Martin Thomson <[email-masked]>
Date: Sun, 12 Mar 2017 17:18:08 -0700

@ianswett, I suggested closing stream 3 because otherwise the transport has no information about whether the connection is still "in use".  That's a consequence of a logical separation of transport and HTTP.  If we wanted to avoid that, we would need to identify "static" streams.

-- 
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/issues/61#issuecomment-285990085

---

From: Magnus Westerlund <[email-masked]>
Date: Thu, 30 Mar 2017 16:40:25 -0700

>From today's WG meeting: Martin concluded that he better understand that part of the issue is that Silent Close exists 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/issues/61#issuecomment-290575501