quiclog / qvis

QUIC and HTTP/3 visualization tools
https://qvis.edm.uhasselt.be
MIT License
174 stars 25 forks source link

Maybe can support the odd number stream id in the multiplexing? #62

Open hwtdbd opened 2 years ago

hwtdbd commented 2 years ago

Hi, Is your feature request related to a problem? Please describe. When I load a qlog which stream ids are all odd, I can't use the multiplexing feature. And I found out that the cause of this problem is that StreamGraphDataHelper.isDataStream() is called under MultiplexingGraphD3WaterfallRenderer.ts, ignoring stream ids that are not divisible by 4. But sometimes we need to analyze some stream from server, these streams are often odd ids.

Describe the solution you'd like and alternatives you've considered Maybe we intercept these stream ids in another way, such as analyzing vantage_point, or displaying odd and even ids at the same time.

rmarx commented 2 years ago

Hey @hwtdbd,

Thanks for reporting this. I'm however not 100% sure what you're asking. I'm currently indeed only showing client-initiated bidirectional streams (0x00 as per https://www.rfc-editor.org/rfc/rfc9000.html#section-2.1), since server-initiated bidirectional streams (0x01 in the link) are not used in HTTP/3 and the multiplexing tool was mainly made for that purpose.

Are you asking to have the ability to show server-initiated bidirectional streams (0x01) or ALSO the unidirectional streams (0x03 and potentially also 0x02)? I'm asking because doing 0x01 should be easy enough (probably...), the other two have some other hairy aspects I'd have to work around.

Either way, could you provide an example .qlog file with "odd numbered stream ids" that I might use to validate a fix when I implement it? Thanks!

hwtdbd commented 2 years ago

Hi @rmarx , What you said is exactly what I want, I just need qvis to be able to support server-initiated bidirectional streams (0x01),here is my qlog file. I hope qvis will support it in the future. Thank you for your reply. e62bbaec4ebd7c8c.qlog.zip