netty / netty-incubator-codec-quic

Apache License 2.0
303 stars 71 forks source link

Do We Need Custom Flow Control or Congestion Control? #739

Open blueuuufish opened 3 months ago

blueuuufish commented 3 months ago

Is it necessary to implement any custom flow control mechanisms or congestion control at the Netty layer, or does the quiche library handle these internally?Thanks!

blueuuufish commented 3 months ago

In Netty's HTTP/2 implementation, Netty provides the flowController interface. In RPC documentation, the MAX_DATA frame is mentioned for flow control, which is implemented in the Rust-based quiche library. However, in Netty-QUIC, there is no equivalent interface, although similar flow control logic exists in QuicheQuicStreamChannel. Additionally, it appears that the quiche library does not expose related interfaces.

Could you please advise if Netty's QUIC protocol implementation should include a flowController interface to achieve more efficient flow control?

Thanks!

normanmaurer commented 2 months ago

@blueuuufish all the flowcontrol is basically handled by quiche itself which will tell netty when it can send more data or not. So I think there is really not much we can provide here.