curl / Mailing Lists / curl-library / Single Mail

curl-library

Re: HTTP2 stream id detection

From: Rajvardhan Deshmukh via curl-library <curl-library_at_cool.haxx.se>
Date: Thu, 28 Feb 2019 11:08:34 -0500

Hi Ray,

Thank you for the quick response.

On 2019-02-28 02:31, Ray Satiro wrote:
> On 2/27/2019 6:26 PM, Rajvardhan Deshmukh via curl-library wrote:
>> I am trying to get the HTTP/2 stream id (so use h2c (clear-text)) from
>> the trace for the experiment that i have run.
>> The experiment is communication between mptcp capable nodes.
>>
>> I use the libcurl based client which allows me to downloaded 2 files
>> (video of 2 second) in parallel
>> ( video segment #1
>> http://10.10.3.2:9001/www-itec.uni-klu.ac.at/ftp/datasets/DASHDataset2014/BigBuckBunny/2sec/bunny_4219897bps/BigBuckBunny_2s13.m4s
>>
>> video segment #2
>> http://10.10.3.2:9001/www-itec.uni-klu.ac.at/ftp/datasets/DASHDataset2014/BigBuckBunny/2sec/bunny_3526922bps/BigBuckBunny_2s13.m4s
>>
>> )
>>
>> here is the tcpdump trace
>> https://umass.box.com/s/2n7st4012vwp8yirddd23pnexho3trxf
>>
>>
>> Wireshark trace analysis step:
>> 1. Edit > Preferences > Protocols > HTTP2 > HTTP2 TCP port 9001
>>
>> i see multiple tcp and mptcp packets but, only 12 HTTP/2 packets
>> (verified that the video segments use 2 different streams)
>> on one interface and none on the other interface.
>>
>> I need the HTTP/2 stream number which is only visible in HTTP/2
>> packets to differentiate if the packet belongs to
>> video segment #1 or the  video segment#2 . With what i have right now,
>> i can't differentiate if the segment belongs to
>> video segment #1 or video segment #2.
>>
>> Let me know if you can direct me to someone who can help.
>
>
> I don't believe libcurl offers a function to get the stream ID from the
> transfer. It's probably possible to manually extract it by using
> CURLOPT_DEBUGFUNCTION [1] and then look for CURLINFO_TEXT like this:
> * Using Stream ID: 1 (easy handle 0x4c6068)
> ..and then compare the easy handle I guess.
>
> The rest of what you are asking seems outside the scope of the mailing
> list and more a question about Wireshark. I can see the URLs in the
> capture in HEADERS:
>
> HyperText Transfer Protocol 2
>     Stream: HEADERS, Stream ID: 1, Length 100, GET
> /www-itec.uni-klu.ac.at/ftp/datasets/DASHDataset2014/BigBuckBunny/2sec/bunny_4219897bps/BigBuckBunny_2s13.m4s
>
> HyperText Transfer Protocol 2
>     Stream: HEADERS, Stream ID: 3, Length 85, GET
> /www-itec.uni-klu.ac.at/ftp/datasets/DASHDataset2014/BigBuckBunny/2sec/bunny_3526922bps/BigBuckBunny_2s13.m4s
>
> There's a lot of MPTCP that's not decoded as HTTP2 by wireshark it
> looks
> like? I don't know a lot about that... this is the first I'm seeing of
> MPTCP. You'd be better off asking in a Wireshark forum.

Thanks, i'll ask the wireshark forum. Might have to figure out a way to
decode MPTCP as HTTP/2.

> There's also
> GOAWAY PROTOCOL_ERRORs. This looks like some problem that has nothing
> to
> do with curl like you are testing MPTCP. From what I understand curl
> just sees the one TCP connection and behind the scenes it's parsed out
> or something. So I don't think there's anything we can do here.

You are correct, curl just sees the one TCP connection and MPTCP handles
the parsing

I will get in touch with the wireshark forum. Thank you for helping me
out.

Raj
-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette: https://curl.haxx.se/mail/etiquette.html
Received on 2019-02-28