netty / netty-incubator-codec-quic

Apache License 2.0
298 stars 70 forks source link

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

Open blueuuufish opened 1 month ago

blueuuufish commented 1 month 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 1 month 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 3 weeks 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.