curl / Mailing Lists / curl-library / Single Mail
Buy commercial curl support from WolfSSL. We help you work out your issues, debug your libcurl applications, use the API, port to new platforms, add new features and more. With a team lead by the curl founder himself.

HTTP2 DATA frame transmitted at later point for same stream

From: Kunal Ekawde via curl-library <>
Date: Thu, 18 Nov 2021 11:24:11 +0530


We are observing this during a performance test and with data size in
order of 30kb - if data size is reduced to 10kb, this is not seen.

DATA frame is transmitted over a long period for a stream -- As
wireshark displays it "Reassembled body in frame: xxxx". The first
part of DATA is transmitted at X and remaining at X+5th second.

As can be seen from capture, libcurl is sending:
HEADERS - 13:25:55
DATA (5kb) - 13:25:55
DATA (9kb) - 13:26:00
RST_STREAM - 13:26:00

At the server, since DATA is not complete at 13:25:55, it cannot
process until balance DATA is transmitted.

Any pointer as to why / in which conditions, libcurl can delay sending
the DATA packets ?

libcurl sending more amount of DATA frames crossing WINDOW_UPDATE
specified by server ?

Additional Information:
1. It's a PATCH request and data is provided to libcurl using
readcallback which copies the entire buffer.
2. libcurl version 7.80.0 , nghttp2 version - 1.460


Received on 2021-11-18