quiche
quiche copied to clipboard
Stream capacity exceed
Hi i have integrated quiche for android using native jni by building quiche so file. While am sending stream, packets are accepted till the stream has buffer capacity, once this capacity is exceeded am getting Err(Error::Done) as it's per version quiche.0.10.0. Now am not able to proceed further as what should be done if i get this error. How should i increase the stream capacity limit or reset it back again as i have to continue streaming without any blockage.
Hi.
QUIC Flow control is explained in RFC 9000 Section 4. In a nutshell, the data receiver tells the data sender how much window (in bytes) you can use at the start of each stream. Once the data sender hits that limit, the only way to progress is for the data receiver to issue MAX_DATA / MAX_STREAM_DATA to the data sender. How and when that happens is up to the data receiver, there is no way to control it from the data sender.
When using quiche, we process incoming packets and frames and update the window sizes via the recv() method. Your application will need to find the balance between sending and receiving QUIC packets to allow forward progress as a data sender.
Hi, thats ok. I even see the capacity going down and up as and when bytes are written to stream. And finally it goes to point when capacity becomes totally zero and Err::Done is thrown. And also i was checking with maxIdleTimeout feature to check if library maintains keepalive for specified time and so the lib maintained the connection (it went through connecting and acknowledgement phases of protocol) but again when started streaming after connection is regained back capacity of stream kept on decreasing and became 0 and never got up. Am literally confused why does the capacity goes up and down.
we'd need to see trace logs or qlogs to understand what is happening with QUIC in your application
Closing due to inactivity. Please reopen if there is more information.