private-octopus / picoquic

Minimal implementation of the QUIC protocol
MIT License
540 stars 159 forks source link

Over aggressive bandwidth usage on medium latency 50 Mbps link #993

Closed huitema closed 4 years ago

huitema commented 4 years ago

dmitri 3:08 PM Wow, H3 blows HTTPS out of the water by a factor of 2.5. +T

huitema 3:55 PM dmitri I am looking at the qlog of the last connection that you tried. The last message says:

"Closed. Retrans= 1722, spurious= 0, max sp gap = 0, max sp delay = 0"

Which means the BBR code might be a little bit too aggressive -- 1722 packets lost out of 5328 seems a bit much. But it did go fast -- 5 MB in 722 ms, 55Mbps.

huitema 4:04 PM I am going to check that...

huitema commented 4 years ago

The server was programmed to use BBR. The congestion graph shows a large number of losses during the "slow start" phase of BBR, yet the congestion window keeps increasing:

image

Ignoring spurious losses is probably fine, but large batch of losses during ramp-up should indicate congestion and trigger transition to the drain or brobe_bw state.

huitema commented 4 years ago

The loss model is interesting. It seems that the losses are happening when the RTT spikes above 2*RTT_min, but these are not tail losses. Instead, looks like some kind of AQM is kicking in, maybe doing some form of Random Early Drop.

huitema commented 4 years ago

Summary of link characteristics:

Loss rate appears to increase markedly when RTT > 30 ms.