moq-wg / moq-transport

draft-ietf-moq-transport
Other
74 stars 17 forks source link

Does MoQ over QUIC require support for multiple sessions? #304

Open ianswett opened 8 months ago

ianswett commented 8 months ago

As it stands today, QUIC does not have a 'session' layer allowing multiple instances of the same application or different applications to share a single connection.

At the last interim, I believe a few people thought that both the WebTransport and raw QUIC deployments of MoQ should support multiple sessions over a single connection.

There are proposals to add a session layer, but they're early on. I feel like this isn't a blocker, and more of a nice to have, and MoQ can use whatever is available when it's done, but wanted the WGs opinion.

suhasHere commented 8 months ago

my initial reaction is , we may don't need it .. atleast for conferencing like use-cases, different meetings will use different connections (may also land on different middles boxes) ..

I would love to explore the idea though and see if it can be simplified (esp not have pooling, if possible) .. @ianswett can you please share the pointers to the proposals in this space ?

ianswett commented 8 months ago

An example of a way to accomplish this: https://datatracker.ietf.org/doc/draft-seemann-quic-stream-groups/

kixelated commented 8 months ago

I think a session layer is inevitable. The only question is do we do it within QUIC, WebTransport, or MoqTransport.

There's been a desire to work at the track granularity. However, tracks are not independent, in fact they usually share some form of naming, grouping, prioritization, authentication, termination, etc.

I think tracks should be bundled into a session and share:

For example, a conference call would be a single session.

Personally, I think a WebTransport session per MoqTransport session makes the most sense, so we don't have to implement our own pooling or session identification.

afrind commented 8 months ago

Individual Comment:

Having been part of WebTransport inventing a session layer, I prefer we wait for QUIC to define something and rely on that.