Subject: [quicwg/base-drafts] When can the connection ID be omitted? (#659)

From: Lars Eggert <[email-masked]>
Date: Fri, 23 Jun 2017 03:36:14 -0700

The current draft doesn't really talk much about when the connection ID can be omitted. Is this a unilateral unidirectional decision by a sender? Is it negotiated somehow? How are connections being identified in the absence of a connection ID? Are there cases when connection IDs need to be sent again after having been omitted? Etc., etc.

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

---

From: MikkelFJ <[email-masked]>
Date: Fri, 23 Jun 2017 04:05:20 -0700

See Transport parameters

> An endpoint MAY use the following transport parameters:
truncate_connection_id (0x0004):

>The truncated connection identifier parameter indicates that packets sent to the peer can omit the connection ID. This can be used by an endpoint where the 5-tuple is sufficient to identify a connection. This parameter is zero length. Omitting the parameter indicates that the endpoint relies on the connection ID being present in every packet.

See also #645

Note that as long as the SCID cannot be mapped to CCID, then 5-tuple uniqueness is necessary, and addding the connection ID is of limited value to end-points, but may help middle boxes. If SCID were mapped to CCID, the connection ID could be used to associate connection state on any transport, but this not currently possible:
https://tools.ietf.org/html/rfc2549

-- 
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/659#issuecomment-310637984

---

From: Lars Eggert <[email-masked]>
Date: Fri, 23 Jun 2017 22:42:55 -0700

So how does an endpoint know that its five tuple is sufficient to identify the connection *at the peer*? When a bunch of clients behind a CGN get mapped to the same source IP and port, and they decide to omit the CID, the server can't tell them apart.

-- 
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/659#issuecomment-310816234

---

From: ianswett <[email-masked]>
Date: Sat, 24 Jun 2017 18:18:06 -0700

Every NAT I'm aware of gives each flow a different port, otherwise there's no way to know what IP/port to send the packet to inside the NAT.  Given that, omitting the connection ID in the server to client direction seems quite safe.

It's when an IP/port is not sufficiently identifying(usually clusters of servers) when connection id becomes critical.

-- 
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/659#issuecomment-310875596

---

From: Lars Eggert <[email-masked]>
Date: Sun, 25 Jun 2017 23:55:30 -0700

Sure, so the assumption is that client <IP, port> pairs are unique. So what guidance do we give server implementations about omitting CIDs? Should they be aggressive about it? Should they only do it in some case; and which? Separately, what about clients? Are then cases when then MUST/SHOULD/MAY omit CIDs? 

I'm missing guidance text in the document. At the moment, the draft specifies the possibility to omit and a bit, but not much more.

-- 
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/659#issuecomment-310978023

---

From: Jānis <[email-masked]>
Date: Mon, 26 Jun 2017 01:10:29 -0700

i imagine that one type of communication is that client always sends CID, so that packet can be forwarded to correct backend server instance, but the response in server's response CID can be omitted.

-- 
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/659#issuecomment-310991799

---

From: Lars Eggert <[email-masked]>
Date: Mon, 26 Jun 2017 01:59:58 -0700

That's a reasonable assumption, but the text in the draft at the moment permits either side to omit or not omit CIDs on most packets without any guidance.

-- 
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/659#issuecomment-311002532

---

From: Martin Thomson <[email-masked]>
Date: Wed, 28 Jun 2017 20:34:42 +0000 (UTC)

Closed #659 via #671.

-- 
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/659#event-1143103411