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
- Contemporary messages sorted: [ by date ] [ by thread ] [ by subject ] [ by author ] [ by messages with attachments ]
From: Kunal Ekawde via curl-library <curl-library_at_lists.haxx.se>
Date: Thu, 18 Nov 2021 11:24:11 +0530
Hi!
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.
1)
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.
https://user-images.githubusercontent.com/4777551/142235817-75e777fd-de5e-46d1-89e2-9d6ff8c8516c.png
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 ?
2)
libcurl sending more amount of DATA frames crossing WINDOW_UPDATE
specified by server ?
https://user-images.githubusercontent.com/4777551/142262873-869a28a8-8f39-442c-b942-c98c9e37ed56.png
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
Thanks
Date: Thu, 18 Nov 2021 11:24:11 +0530
Hi!
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.
1)
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.
https://user-images.githubusercontent.com/4777551/142235817-75e777fd-de5e-46d1-89e2-9d6ff8c8516c.png
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 ?
2)
libcurl sending more amount of DATA frames crossing WINDOW_UPDATE
specified by server ?
https://user-images.githubusercontent.com/4777551/142262873-869a28a8-8f39-442c-b942-c98c9e37ed56.png
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
Thanks
-- ~Kunal -- Unsubscribe: https://lists.haxx.se/listinfo/curl-library Etiquette: https://curl.haxx.se/mail/etiquette.htmlReceived on 2021-11-18