So, the multi-stream select protocol helps negotiate the Security(secio etc) & Multiplexing protocol(mplex etc) when we create a Connection over a raw Transport(Tcp etc).
However, once I have an upgraded connection to a peer & send a message over Stream X(Dht etc), who helps negotiate that stream with & find the handler on the remote peer ? Is it multi-stream select or Mplex/Yamux ? Basically, I am trying to understand the difference between the multi-stream-select protocol & the stream multiplexers in terms of their use-case.
Once we have a full fledged QUIC transport, does the QUIC handshake replace both the security & multiplexer negotiation & therefore the transport upgrader ? If yes, what role does multi-stream select play now & who takes care of the application level protocol(Dht, Identity etc) negotiation & handling ?