alibaba / xquic

XQUIC Library released by Alibaba is a cross-platform implementation of QUIC and HTTP/3 protocol.
Apache License 2.0
1.69k stars 327 forks source link

[Bug]: No transmission speed difference between single path and multipath with minrtt scheduler #356

Closed liebentRC closed 10 months ago

liebentRC commented 11 months ago

What happened?

Hi, Im a student learning about multipath transmission, I heard that xquic support many kinds of multipath scheduler. However, when I make a comparision between single path trans and multipath trans with minrtt, I found there's no obvious difference between them, although between isomorphic link.

Then I will describe my experimental procedure in detail

experiment one: large file download with high bindwith and low lantency path feature: path 0: rtt 2.5ms,bindwidth: about 700Mbit, packet loss rate: almost 0 path 1: rtt 2.5ms,bindwidth: about 700Mbit, packet loss rate: almost 0 cc method: bbr experimental result: single path trans: FCT: 11.32s speed: 92630KB/s image cwnd changes image path srtt changes image

minrtt scheduler trans: FCT: 11.52s speed: 91012KB/s(I tried many times, overall transmission speed is almost the same as that of single path) image cwnd changes image path srtt changes image

I initially suspected that the bandwidth was too high and the performance bottleneck of the transfer was the packet processing So I used TC tool to limit the bandwidth and increase the transmission delay

experiment two: small file download with low bindwith and high latency path feature: path 0: rtt 102ms, bindwith: 10Mbit, packet loss rate: almost 0 path 1: rtt 102ms, bindwith: 10Mbit, packet loss rate: almost 0

this time I use reno and bbr

single path trans with reno image single path cwnd change(reno) image single path srtt change(reno) image

multipath trans with reno image minrtt cwnd change (reno) image minrtt path srtt change (reno) image

single path trans with bbr image single path cwnd change (bbr) image single path srtt change(bbr) image

multipath trans with bbr image minrtt cwnd change (bbr) image minrtt path srtt change(bbr) image

I don't know what happened here, when I check codes in minrtt scheduler, I can't find any problem.

Is any problem in flow control or something else?

Steps To Reproduce

Use minrtt and single path to download files

Relevant log output

No response

yangfurong commented 11 months ago

Please describe your testbed and the commands to launch the XQUIC client/server in more detail.

  1. How did you emulate two paths with TC? What were the TC commands?
  2. What were the commands to launch test_client/test_server?

In our test, MPQUIC with the minrtt scheduler can aggregate the bandwidth of two symmetric paths.

liebentRC commented 10 months ago

Issue has been solved in opensource group. handshake done is blocked by first request stream data, which cause second path can not be established. This will be optimized in next version. Issue done

a-andre commented 1 month ago

@yangfurong could you share the commands you used to test multipath xquic?

How can demo and test application make use of multipath (judging by their code they can only handle a single IP address and a single port)?