Subject: Re: [quicwg/base-drafts] Simplify the client's PTO code by allowing the server to send a PING (#3161)

From: ianswett <[email-masked]>
Date: Sun, 03 Nov 2019 11:59:42 -0800

I believe this is simpler to implement assuming one is implementing both a client and server.  I already have special case code to send a PING when there are bytes in flight but nothing to send, so this is very similar.

I agree it's not necessary, but I find the simplification appealing, and when we first discussed this problem, no one suggested this solution, so I thought it was worth writing up.

If we keep the existing text that the client has to keep sending, I'm not sure doing this on the server side is a valuable optimization, so I'd prefer to stick with one mechanism or the other.

To me, the main negative is the server sending extra datagrams, as you said.  And maybe that's enough to stick with what we have.

-- 
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/3161#issuecomment-549172711

---

From: Jana Iyengar <[email-masked]>
Date: Mon, 04 Nov 2019 17:18:10 -0800

> I believe this is simpler to implement assuming one is implementing both a client and server. I already have special case code to send a PING when there are bytes in flight but nothing to send, so…

When a PTO fires, the endpoint is supposed to try and retransmit something if there is data to retransmit. In this case, you'd need to special-case it so that the server doesn't in fact retransmit but sends a PING instead. That's what I meant by adding more code.

-- 
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/3161#issuecomment-549620276

---

From: ianswett <[email-masked]>
Date: Mon, 04 Nov 2019 19:05:55 -0800

It also SHOULD send a PING only packet if there are bytes in flight but nothing to send.

-- 
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/3161#issuecomment-549643301

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 05 Nov 2019 11:34:43 -0800

Not new data, _any_ data. This was deliberate. See Section 5.3.1: "When the PTO timer expires, and there is new or previously sent unacknowledged data, it MUST be sent." The point of this text was to send data if available, new or previously sent. In the case that we are discussing the server is supposed to send a PING, but it might have data to send.

-- 
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/3161#issuecomment-549983947