4 ms·
What will the socket API look like for multiple streams? I guess it is implied it is the same as multiple connections, with caching behind the scenes. I would
by Ericson2314 1y ago
What will the socket API look like for multiple streams? I guess it is implied it is the same as multiple connections, with caching behind the scenes.
I would hope for something more explicit, where you get a connection object and then open streams from it, but I guess that is fine for now.
https://github.com/microsoft/msquic/discussions/4257 https://github.com/microsoft/msquic/discussions/4257 ah but look at this --- unless this is an extension, the server side can also create new streams, once a connection is established. The client creating new "connections" (actually streams) cannot abstract over this. Something fundamentally new is needed.
My guess is recvmsg to get a new file descriptor for new stream.
- gte525u 1y agoI would look at SCTP socket API it supports multistreaming.
- Ericson2314 1y agoI checked that out and....yuck! - Send specifies which stream by ordinal number? (Can't have different parts of a concurrent app independently open new streams) - Receive doesn't specify which stream at all?!
- wahern 1y agoAPI RFC is https://datatracker.ietf.org/doc/html/draft-lxin-quic-socket-apis https://datatracker.ietf.org/doc/html/draft-lxin-quic-socket...
- Ericson2314 1y agoAh fuck, it still has a stream_id notion How are socket APIs always such garbage....
- wahern 1y agoAt least the SCTP API has sctp_peeloff, which gives you a new single-stream socket descriptor for the connection. Maybe QUIC will get something like that, eventually. Kind of a glaring omission, though, unless I'm misunderstanding.
- Ericson2314 1y agoYeah. Huge omission.
- signa11 1y ago> API RFC is ... still a draft though.
- mananaysiempre 1y agoSCTP is very telecom-shaped; in particular, IIRC, the number of streams is fixed at the start of the connection, so (this sucks but also) GP’s problem does not appear.
- Ericson2314 1y agoThat problem doesn't appear, but also trying to pass off a stream as a readable/writable thing to a polymorphic interface ("everything is file") wouldn't work. ...however sctp_peeloff (see other thread) fixes the issue. Hurray!