Skip to content

SCTP throughput ~8x slower than TCP when the connection has latency #218

Open

Description

@iamcalledrob

Your environment.

  • Version: sctp v1.8.2
  • Other Information: tested between macOS<–>macOS and macOS<–>debian bullseye

What did you do?

Test setup:

  • Throughput tested with @enobufs's sctptest, dependencies updated to use the latest version of pion/sctp
  • Latency controlled using macOS "Network Link Conditioner"
  • Tested between separate physical devices connected by gigabit ethernet

I ran sctp-test in both TCP and SCTP (sctp-test refers to this as "udp") modes and compared the throughput with varying levels of latency:

  • For TCP: ./sctptest -network tcp -s <addr> [client] and ./sctptest -network tcp [server]
  • For SCTP: ./sctptest -network udp -s <addr> [client] and ./sctptest -network udp [server]

What did you expect?

I expected the TCP and SCTP throughput to be in the same ballpark.

What happened?

SCTP overwhelmingly underperformed TCP. Approximate performance over gigabit ethernet:

Latency TCP SCTP
2ms 850 Mbps 850 Mbps
20ms 800 Mbps 200 Mbps
50ms 600 Mbps 85 Mbps
100ms 320 Mbps 45 Mbps
300ms 105 Mbps 17 Mbps

chart

Background

I ran into this performance issue when trying to diagnose why DataChannel performance was very slow when using a TURN server. My TURN server is about 100ms away, and I was seeing very poor performance (< 10 Mbps) relative to the speed of the internet connection.

SCTP.throughput.and.latency.mp4

Activity

  1. iamcalledrob commented on Mar 26, 2022

    @iamcalledrob
    Author

    I found this issue from a few years back which looks potentially related? #62

  2. Sean-Der commented on Mar 27, 2022

    @Sean-Der
    Member

    Fantastic testing @iamcalledrob thanks for reporting!

    I don't know the latest but @enobufs mentioned he was looking at adding RACK to the implementation. Maybe some other things exist that we can do in the short term? I defer to him on what the best thing to do is :)

  3. enobufs commented on Mar 27, 2022

    @enobufs
    Member

    @iamcalledrob Thanks for the detailed report. As I mentioned in #62, a modern TCP implementation automatically adjust receive buffer size, while pion/sctp uses a fixed buffer size, which is currently set to 1024KB. The receive buffer size sets the hard limit for the amount of data inflight (or the un-ack'd segments). It appears the throughput you observed is the result of this limit. I think pion/sctp should implement this auto tuning feature. Let me dig into more information about its algorithm.

  4. iamcalledrob commented on Mar 28, 2022

    @iamcalledrob
    Author

    @Sean-Der, @enobufs Thank you both for looking into this!

    @enobufs regarding the buffer size, I was curious about that as well and decided to do some more testing!

    I benchmarked the effect of changing the buffer size via your sctp-test utility—i.e. sctp-test -network udp -b N. I believe this sets both the read and write buffer sizes to 'N bytes' on the SCTP association as well as the underlying UDP conn.

    Here's what I saw with round-trip latency of 300ms

    Recv buffer size Throughput
    16kb 0.5 Mbps
    64kb 13 Mbps
    256kb 17 Mbps
    1mb 17 Mbps
    4mb 17 Mbps

    As you can see, the throughput maxes out with a buffer size of 256kb—smaller than the default 1mb! Increasing the buffer size beyond 256kb has no effect.

    I'm curious about this—I would have assumed that manually setting a larger buffer would have improved throughput in this particular test, but that has not been the case.

    I'm happy to help with getting to the bottom of this, though I have to admit I'm not coming from a place of expertise here so pointers are very helpful :)

    I've attached trace logs for both the client and server in case it's helpful context.

    client.log
    server.log

  5. enobufs commented on Mar 29, 2022

    @enobufs
    Member

    That indicates there would be another limiting factor. From my quick glance, the sender's congestion window kept growing during the 10 sec period but it appears too slow - smell of a bug... I may be wrong. Let me look at this later more carefully.

  6. enobufs commented on Apr 3, 2022

    @enobufs
    Member

    I just found a bug in sctptest. The value with the -b option for the server does not propagate down to pion/sctp :( .

    What's going on is, the client side should have a ssthresh (slow start threshold) which should initially be set to the receive buffer window advertised by the peer. This value did not change even though I was increasing the value with -b, then found this bug. I will fix it shortly.

  7. enobufs commented on Apr 3, 2022

    @enobufs
    Member

    After fixing the above in sctptest, I was still seeing the throughput was still capped at 1MB receive buffer size. (increasing the size beyond 1MB had no effect).

    sctptest RTT=300ms
    Screen Shot 2022-04-03 at 1 40 29 AM

    From the trance log, I noticed that even though there's more room in the congestion window, the inflightQueue was not fully utilized. Then I realized, this was because sctptest has maxBufferedAmount set to 1MB (threshold being 512KB, both hardcoded), which was effectively limiting the send buffer size to 1MB. This is why the throughput did not grow beyond 1MB of receive buffer size.

    There was another related issue. The bufferedAmount in the current pion/sctp includes the number of bytes inflight. Looking at the FireFox's implementation, it does not include the size inflight (the size written to usrsctp).

    After fixing the all above, now I see the throughput grows proportionally to the size of buffers as shown below:
    Screen Shot 2022-04-03 at 2 09 41 AM

    Other related metrics:
    Screen Shot 2022-04-03 at 2 18 25 AM

    Screen Shot 2022-04-03 at 2 18 46 AM

    I will write some unit tests then submit a pull-request.

    Once all these fixes land, we should consider whether we should dynamically adjust the receive buffer size.

  8. enobufs commented on Apr 3, 2022

    @enobufs
    Member

    Following updates have been made:

    • go-rudp v0.0.3
    • sctp-test v0.0.2

    TODO:

    • pion/sctp: exclude inflight size from bufferedAmount
  9. iamcalledrob commented on Apr 19, 2022

    @iamcalledrob
    Author

    Thank you for looking into this! I'm excited to see what the throughput looks like when inflight size is excluded :)

  10. iamcalledrob commented on Apr 20, 2022

    @iamcalledrob
    Author

    With your updated version of go-rudp/sctp-test (passing buffer size into pion/sctp assoc), I see dramatically better throughput.

    For the curious:

    RTT Recv buffer size Throughput
    20ms 1MB 370Mbps
    20ms 2MB 700Mbps
    20ms 4MB 880Mbps
    --- --- ---
    50ms 1MB 150Mbps
    50ms 2MB 300Mbps
    50ms 4MB 590Mbps
    50ms 8MB 800Mbps
    --- --- ---
    300ms 1MB 25Mbps
    300ms 2MB 55Mbps
    300ms 4MB 100Mbps
    300ms 8MB 200Mbps
    300ms 24MB 310Mbps
    300ms 32MB+ (Unreliable)

    This is faster than TCP.
    To repro these tests, I had to make a small fix to cap conn.SetReadBuffer/SetWriteBuffer to ~5mb for mac (the OS UDP limit), while allowing the sctp buffer to be the specified size

    Very excited for the use-cases this unlocks for pion/sctp!

  11. Sean-Der commented on Apr 20, 2022

    @Sean-Der
    Member

    That's so exciting! Nice work @iamcalledrob and @enobufs :)

    We should add this to the SettingEngine today and publish the findings!

  12. enobufs commented on Apr 20, 2022

    @enobufs
    Member

    @Sean-Der I think it is a brilliant idea to allow changing the send/recv buffer size from the SettingEngine as I think it may take sometime for us to implement auto buffer size tuning.

  13. iamcalledrob commented on Jun 14, 2022

    @iamcalledrob
    Author

    @enobufs I'm curious if the commit to exclude the in-flight size is ready to land (or could be!)

    I've been testing datachannels with the larger buffer offered through the SettingEngine, but am still seeing very low throughout when there's even a tiny amount of packet loss or latency.

    Testing with sctptest over LAN and the network link conditioner looked really positive--near 100% link utilisation.

    However in the real world I'm still seeing <20% link utilisation over WiFi or coast-to-coast levels of latency.

    For example, I have a TURN server which is 80ms away. iperf with a few TCP streams will get 600+Mbps throughput. PION datachannels with an 8mb buffer will get 20Mbps throughput.

    I was hoping the larger buffer would be a decent enough fix by itself in the "real world", but that doesn't seem to be the case!

  14. suconghou commented on Nov 29, 2022

    @suconghou

    @enobufs

    v1.8.2
    poor performance than tcp in a tiny amount of packet loss or latency

    does v1.8.3 fixed pion/sctp: exclude inflight size from bufferedAmount ?
    or improved it .

  15. MousyBusiness commented on Mar 23, 2023

    @MousyBusiness

    @Sean-Der Is MaxReceiveBuffer arbitrary or is it supposed to match a UDP socket configuration? What are the tradeoffs if the value is arbitrary?

  16. Lanius-collaris commented on Sep 24, 2025

    @Lanius-collaris

    The low utilization problem of RFC 4960 in fast long-distance networks is documented in RFC 8312

  17. Lanius-collaris commented on Feb 28, 2026

    @Lanius-collaris

    @iamcalledrob @suconghou
    Hi, you can try cc-alg branch. Association.CC1 can be replaced.
    Note that FRCC may take tens seconds to converge.

  18. JoTurk commented on Feb 28, 2026

    @JoTurk
    Member

    We should rerun this, it has been 4 years.

  19. Lanius-collaris commented on Nov 4, 2026

    @Lanius-collaris

    Test setup:

    • use mahimahi to emulate a large bandwidth × delay product (bandwidth = 120 Mbit/s, minimum RTT = 200 ms, MTU=1500), a not very high loss rate (1/10000), and a infinite queue
    • use the result from iperf3 as a baseline throughput

    Run iperf3 with -C cubic for 60s.
    linux-cubic.log:

    Connecting to host 10.2.1.1, port 5201
    Connecting to host 10.2.1.1, port 5201
    [  6] local 10.1.1.1 port 59514 connected to 10.2.1.1 port 5201
    [ ID] Interval           Transfer     Bitrate         Retr  Cwnd
    [  6]   0.00-1.00   sec  1.38 MBytes  11.5 Mbits/sec    0    226 KBytes       
    [  6]   1.00-2.00   sec  6.25 MBytes  52.4 Mbits/sec   11   2.28 MBytes       
    [  6]   2.00-3.00   sec  4.38 MBytes  36.7 Mbits/sec  1705   1.58 MBytes       
    [  6]   3.00-4.00   sec  8.25 MBytes  69.2 Mbits/sec    0   1.70 MBytes       
    [  6]   4.00-5.00   sec  8.12 MBytes  68.2 Mbits/sec    0   1.78 MBytes       
    [  6]   5.00-6.00   sec  9.62 MBytes  80.7 Mbits/sec    0   1.84 MBytes       
    [  6]   6.00-7.00   sec  9.50 MBytes  79.7 Mbits/sec    0   1.88 MBytes       
    [  6]   7.00-8.00   sec  8.25 MBytes  69.2 Mbits/sec    1   1.68 MBytes       
    [  6]   8.00-9.00   sec  8.00 MBytes  67.1 Mbits/sec    0   1.42 MBytes       
    [  6]   9.00-10.00  sec  7.62 MBytes  64.0 Mbits/sec    1   1.04 MBytes       
    [  6]  10.00-11.00  sec  4.12 MBytes  34.6 Mbits/sec    0   1.12 MBytes       
    [  6]  11.00-12.00  sec  5.00 MBytes  42.0 Mbits/sec    1    851 KBytes       
    [  6]  12.00-13.00  sec  4.12 MBytes  34.6 Mbits/sec    0    905 KBytes       
    [  6]  13.00-14.00  sec  5.38 MBytes  45.1 Mbits/sec    0    942 KBytes       
    [  6]  14.00-15.00  sec  4.12 MBytes  34.6 Mbits/sec    0    966 KBytes       
    [  6]  15.00-16.00  sec  4.12 MBytes  34.6 Mbits/sec    0    977 KBytes       
    [  6]  16.00-17.00  sec  5.50 MBytes  46.1 Mbits/sec    0    983 KBytes       
    [  6]  17.00-18.00  sec  4.12 MBytes  34.6 Mbits/sec    0    983 KBytes       
    [  6]  18.00-19.00  sec  5.38 MBytes  45.1 Mbits/sec    0    983 KBytes       
    [  6]  19.00-20.00  sec  3.62 MBytes  30.4 Mbits/sec    1    755 KBytes       
    [  6]  20.00-21.00  sec  3.38 MBytes  28.3 Mbits/sec    3    393 KBytes       
    [  6]  21.00-22.00  sec  1.25 MBytes  10.5 Mbits/sec    0    426 KBytes       
    [  6]  22.00-23.00  sec  2.75 MBytes  23.1 Mbits/sec    0    443 KBytes       
    [  6]  23.00-24.00  sec  1.38 MBytes  11.5 Mbits/sec    0    451 KBytes       
    [  6]  24.00-25.00  sec  2.75 MBytes  23.1 Mbits/sec    0    454 KBytes       
    [  6]  25.00-26.00  sec  1.38 MBytes  11.5 Mbits/sec    0    454 KBytes       
    [  6]  26.00-27.00  sec  2.75 MBytes  23.1 Mbits/sec    0    455 KBytes       
    [  6]  27.00-28.00  sec  2.75 MBytes  23.1 Mbits/sec    0    461 KBytes       
    [  6]  28.00-29.00  sec  1.38 MBytes  11.5 Mbits/sec    0    474 KBytes       
    [  6]  29.00-30.00  sec  2.75 MBytes  23.1 Mbits/sec    0    498 KBytes       
    [  6]  30.00-31.00  sec  2.75 MBytes  23.1 Mbits/sec    0    535 KBytes       
    [  6]  31.00-32.00  sec  2.62 MBytes  22.0 Mbits/sec    1    410 KBytes       
    [  6]  32.00-33.00  sec  1.38 MBytes  11.5 Mbits/sec    0    472 KBytes       
    [  6]  33.00-34.00  sec  2.75 MBytes  23.1 Mbits/sec    0    515 KBytes       
    [  6]  34.00-35.00  sec  2.75 MBytes  23.1 Mbits/sec    0    543 KBytes       
    [  6]  35.00-36.00  sec  2.75 MBytes  23.1 Mbits/sec    0    559 KBytes       
    [  6]  36.00-37.00  sec  2.75 MBytes  23.1 Mbits/sec    0    567 KBytes       
    [  6]  37.00-38.00  sec  2.75 MBytes  23.1 Mbits/sec    0    567 KBytes       
    [  6]  38.00-39.00  sec  2.75 MBytes  23.1 Mbits/sec    0    567 KBytes       
    [  6]  39.00-40.00  sec  2.62 MBytes  22.0 Mbits/sec    0    568 KBytes       
    [  6]  40.00-41.00  sec  2.75 MBytes  23.1 Mbits/sec    0    576 KBytes       
    [  6]  41.00-42.00  sec  2.88 MBytes  24.1 Mbits/sec    1    450 KBytes       
    [  6]  42.00-43.00  sec  1.38 MBytes  11.5 Mbits/sec    0    503 KBytes       
    [  6]  43.00-44.00  sec  2.75 MBytes  23.1 Mbits/sec    0    539 KBytes       
    [  6]  44.00-45.00  sec  2.75 MBytes  23.1 Mbits/sec    1    404 KBytes       
    [  6]  45.00-46.00  sec  1.38 MBytes  11.5 Mbits/sec    1    308 KBytes       
    [  6]  46.00-47.00  sec  1.38 MBytes  11.5 Mbits/sec    0    329 KBytes       
    [  6]  47.00-48.00  sec  1.38 MBytes  11.5 Mbits/sec    1    245 KBytes       
    [  6]  48.00-49.00  sec  1.38 MBytes  11.5 Mbits/sec    0    269 KBytes       
    [  6]  49.00-50.00  sec  1.38 MBytes  11.5 Mbits/sec    0    280 KBytes       
    [  6]  50.00-51.00  sec  1.38 MBytes  11.5 Mbits/sec    0    286 KBytes       
    [  6]  51.00-52.00  sec  1.25 MBytes  10.5 Mbits/sec    0    286 KBytes       
    [  6]  52.00-53.00  sec  1.38 MBytes  11.5 Mbits/sec    0    286 KBytes       
    [  6]  53.00-54.00  sec  1.38 MBytes  11.5 Mbits/sec    0    290 KBytes       
    [  6]  54.00-55.00  sec  1.38 MBytes  11.5 Mbits/sec    0    298 KBytes       
    [  6]  55.00-56.00  sec  1.38 MBytes  11.5 Mbits/sec    0    318 KBytes       
    [  6]  56.00-57.00  sec  1.38 MBytes  11.5 Mbits/sec    0    349 KBytes       
    [  6]  57.00-58.00  sec  2.75 MBytes  23.1 Mbits/sec    0    397 KBytes       
    [  6]  58.00-59.00  sec  1.38 MBytes  11.5 Mbits/sec    0    467 KBytes       
    [  6]  59.00-60.00  sec  2.75 MBytes  23.1 Mbits/sec    0    559 KBytes       
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bitrate         Retr
    [  6]   0.00-60.00  sec   201 MBytes  28.1 Mbits/sec  1728            sender
    [  6]   0.00-60.20  sec   198 MBytes  27.6 Mbits/sec                  receiver
    
    iperf Done.
    

    BBR can utilize more bandwidth, so we transfer 400 Mbytes.
    linux-bbr.log:

    Connecting to host 10.2.1.1, port 5201
    [  6] local 10.1.1.1 port 39980 connected to 10.2.1.1 port 5201
    [ ID] Interval           Transfer     Bitrate         Retr  Cwnd
    [  6]   0.00-1.00   sec  1.38 MBytes  11.5 Mbits/sec    0    215 KBytes       
    [  6]   1.00-2.00   sec  7.12 MBytes  59.8 Mbits/sec    0   5.88 MBytes       
    [  6]   2.00-3.00   sec  13.2 MBytes   111 Mbits/sec    0   5.45 MBytes       
    [  6]   3.00-4.00   sec  12.4 MBytes   104 Mbits/sec    0   5.39 MBytes       
    [  6]   4.00-5.00   sec  11.2 MBytes  94.4 Mbits/sec    1   5.36 MBytes       
    [  6]   5.00-6.00   sec  12.1 MBytes   102 Mbits/sec    0   5.38 MBytes       
    [  6]   6.00-7.00   sec  11.8 MBytes  98.6 Mbits/sec    3   5.37 MBytes       
    [  6]   7.00-8.00   sec  9.12 MBytes  76.5 Mbits/sec    1   2.60 MBytes       
    [  6]   8.00-9.00   sec  12.6 MBytes   106 Mbits/sec    0   5.35 MBytes       
    [  6]   9.00-10.00  sec  10.1 MBytes  84.9 Mbits/sec    2   5.75 MBytes       
    [  6]  10.00-11.00  sec  9.25 MBytes  77.6 Mbits/sec    1   5.75 MBytes       
    [  6]  11.00-12.00  sec  9.75 MBytes  81.8 Mbits/sec    3   2.65 MBytes       
    [  6]  12.00-13.00  sec  9.88 MBytes  82.8 Mbits/sec    1   2.70 MBytes       
    [  6]  13.00-14.00  sec  11.5 MBytes  96.5 Mbits/sec    1   5.59 MBytes       
    [  6]  14.00-15.00  sec  11.5 MBytes  96.4 Mbits/sec    1   5.60 MBytes       
    [  6]  15.00-16.00  sec  10.5 MBytes  88.1 Mbits/sec    0   5.60 MBytes       
    [  6]  16.00-17.00  sec  13.2 MBytes   111 Mbits/sec    0   5.35 MBytes       
    [  6]  17.00-18.00  sec  12.4 MBytes   104 Mbits/sec    0   5.36 MBytes       
    [  6]  18.00-19.00  sec  12.4 MBytes   104 Mbits/sec    0   5.36 MBytes       
    [  6]  19.00-20.00  sec  8.12 MBytes  68.2 Mbits/sec    0   5.34 MBytes       
    [  6]  20.00-21.00  sec  11.0 MBytes  92.3 Mbits/sec    2   5.32 MBytes       
    [  6]  21.00-22.00  sec  9.50 MBytes  79.7 Mbits/sec    1   5.36 MBytes       
    [  6]  22.00-23.00  sec  10.0 MBytes  83.8 Mbits/sec    2   2.58 MBytes       
    [  6]  23.00-24.00  sec  9.50 MBytes  79.7 Mbits/sec    1   5.36 MBytes       
    [  6]  24.00-25.00  sec  11.9 MBytes  99.6 Mbits/sec    0   5.44 MBytes       
    [  6]  25.00-26.00  sec  10.8 MBytes  90.2 Mbits/sec    4   3.32 MBytes       
    [  6]  26.00-27.00  sec  9.38 MBytes  78.6 Mbits/sec    2   5.42 MBytes       
    [  6]  27.00-28.00  sec  12.0 MBytes   101 Mbits/sec    1   5.45 MBytes       
    [  6]  28.00-29.00  sec  12.0 MBytes   101 Mbits/sec    0   5.45 MBytes       
    [  6]  29.00-30.00  sec  12.1 MBytes   102 Mbits/sec    1   5.45 MBytes       
    [  6]  30.00-31.00  sec  9.00 MBytes  75.5 Mbits/sec    1   5.42 MBytes       
    [  6]  31.00-32.00  sec  12.4 MBytes   104 Mbits/sec    0   5.40 MBytes       
    [  6]  32.00-33.00  sec  12.4 MBytes   104 Mbits/sec    0   5.38 MBytes       
    [  6]  33.00-34.00  sec  8.12 MBytes  68.2 Mbits/sec    0   5.37 MBytes       
    [  6]  34.00-35.00  sec  9.38 MBytes  78.6 Mbits/sec    1   2.77 MBytes       
    [  6]  35.00-36.00  sec  11.6 MBytes  97.5 Mbits/sec    1   5.75 MBytes       
    [  6]  36.00-37.00  sec  10.4 MBytes  87.0 Mbits/sec    2   5.60 MBytes       
    [  6]  37.00-38.00  sec  8.88 MBytes  74.4 Mbits/sec    2   5.56 MBytes       
    [  6]  38.00-39.00  sec   128 KBytes  1.05 Mbits/sec    0   5.57 MBytes       
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bitrate         Retr
    [  6]   0.00-39.00  sec   400 MBytes  86.0 Mbits/sec   35            sender
    [  6]   0.00-39.20  sec   400 MBytes  85.6 Mbits/sec                  receiver
    
    iperf Done.
    

    Use pion/sctp with FRCC to transfer 400 Mbytes too. ( https://github.com/Lanius-collaris/pion-sctp/tree/526574e3da0cac3036b85dc8d0d5f6eb591ea628 )
    pion-sctp-frcc.log:

    download 0 Mbyte/s
    SlotMaxQDel 16.154889ms, SlotMinRTT 200.409927ms, SlotMaxRTT 216.67695ms, CWND 144484, current rate 282252 bytes/s
    SlotMaxQDel 49.247609ms, SlotMinRTT 200.083406ms, SlotMaxRTT 249.331015ms, CWND 1760664, current rate 6969816 bytes/s
    SlotMaxQDel 16.409779ms, SlotMinRTT 200.051372ms, SlotMaxRTT 216.486349ms, CWND 1760664, current rate 8665488 bytes/s
    SlotMaxQDel 16.273062ms, SlotMinRTT 200.129648ms, SlotMaxRTT 216.324434ms, CWND 1760664, current rate 9063900 bytes/s
    SlotMaxQDel 554.214µs, SlotMinRTT 200.13199ms, SlotMaxRTT 200.605586ms, CWND 1762164, current rate 8583300 bytes/s
    SlotMaxQDel 35.411411ms, SlotMinRTT 200.036527ms, SlotMaxRTT 235.447938ms, CWND 2288863, current rate 9845280 bytes/s
    SlotMaxQDel 1.290177ms, SlotMinRTT 200.0454ms, SlotMaxRTT 201.326704ms, CWND 2288863, current rate 11781936 bytes/s
    SlotMaxQDel 1.164275ms, SlotMinRTT 200.043889ms, SlotMaxRTT 201.200802ms, CWND 2290363, current rate 11796948 bytes/s
    SlotMaxQDel 30.702544ms, SlotMinRTT 200.043638ms, SlotMaxRTT 230.739071ms, CWND 2975522, current rate 14021064 bytes/s
    SlotMaxQDel 10.901112ms, SlotMinRTT 209.634018ms, SlotMaxRTT 210.937639ms, CWND 2975522, current rate 14603112 bytes/s
    SlotMaxQDel 10.427751ms, SlotMinRTT 209.744277ms, SlotMaxRTT 210.464278ms, CWND 2975522, current rate 14606928 bytes/s
    SlotMaxQDel 25.851091ms, SlotMinRTT 209.997369ms, SlotMaxRTT 225.887618ms, CWND 3225735, current rate 14861052 bytes/s
    SlotMaxQDel 27.892903ms, SlotMinRTT 210.185307ms, SlotMaxRTT 227.92943ms, CWND 2992907, current rate 14364000 bytes/s
    SlotMaxQDel 12.01737ms, SlotMinRTT 211.038278ms, SlotMaxRTT 212.053897ms, CWND 2992907, current rate 14602176 bytes/s
    SlotMaxQDel 13.876094ms, SlotMinRTT 209.161354ms, SlotMaxRTT 213.912621ms, CWND 2992907, current rate 14604300 bytes/s
    SlotMaxQDel 13.359705ms, SlotMinRTT 210.85201ms, SlotMaxRTT 213.396232ms, CWND 2992907, current rate 14603112 bytes/s
    SlotMaxQDel 30.658176ms, SlotMinRTT 209.946084ms, SlotMaxRTT 230.694703ms, CWND 3074551, current rate 14718636 bytes/s
    SlotMaxQDel 12.487393ms, SlotMinRTT 212.053165ms, SlotMaxRTT 212.52392ms, CWND 3324731, current rate 14547384 bytes/s
    SlotMaxQDel 34.944542ms, SlotMinRTT 227.784005ms, SlotMaxRTT 234.981069ms, CWND 2988058, current rate 14573340 bytes/s
    SlotMaxQDel 11.81681ms, SlotMinRTT 210.253281ms, SlotMaxRTT 211.853337ms, CWND 2988058, current rate 14600736 bytes/s
    SlotMaxQDel 11.706588ms, SlotMinRTT 210.70203ms, SlotMaxRTT 211.743115ms, CWND 2988058, current rate 14605992 bytes/s
    SlotMaxQDel 32.845807ms, SlotMinRTT 210.707356ms, SlotMaxRTT 232.882334ms, CWND 3284357, current rate 14908896 bytes/s
    SlotMaxQDel 32.058628ms, SlotMinRTT 209.958804ms, SlotMaxRTT 232.095155ms, CWND 2981868, current rate 14288760 bytes/s
    SlotMaxQDel 11.145118ms, SlotMinRTT 210.308955ms, SlotMaxRTT 211.181645ms, CWND 2981868, current rate 14606928 bytes/s
    SlotMaxQDel 109.663761ms, SlotMinRTT 200.207253ms, SlotMaxRTT 309.700288ms, CWND 2981868, current rate 13155624 bytes/s
    SlotMaxQDel 10.933121ms, SlotMinRTT 210.415441ms, SlotMaxRTT 210.969648ms, CWND 2981868, current rate 14611680 bytes/s
    SlotMaxQDel 11.440131ms, SlotMinRTT 210.283782ms, SlotMaxRTT 211.476658ms, CWND 2981868, current rate 14603112 bytes/s
    SlotMaxQDel 11.070156ms, SlotMinRTT 210.324695ms, SlotMaxRTT 211.106683ms, CWND 2981868, current rate 14604552 bytes/s
    SlotMaxQDel 27.55789ms, SlotMinRTT 210.36094ms, SlotMaxRTT 227.594417ms, CWND 3216373, current rate 14844600 bytes/s
    SlotMaxQDel 27.270862ms, SlotMinRTT 210.336176ms, SlotMaxRTT 227.307389ms, CWND 3007817, current rate 14391396 bytes/s
    SlotMaxQDel 34.686669ms, SlotMinRTT 211.652721ms, SlotMaxRTT 234.723196ms, CWND 3217218, current rate 14818644 bytes/s
    upload 12.565340680957512 Mbyte/s, cwnd 3003542
    
    $ modinfo tcp_bbr
    filename:       /lib/modules/6.18.59-0-virt/kernel/net/ipv4/tcp_bbr.ko.gz
    description:    TCP BBR (Bottleneck Bandwidth and RTT)
    license:        Dual BSD/GPL
    author:         Soheil Hassas Yeganeh <soheil@google.com>
    author:         Yuchung Cheng <ycheng@google.com>
    author:         Neal Cardwell <ncardwell@google.com>
    author:         Van Jacobson <vanj@google.com>
    depends:        
    intree:         Y
    name:           tcp_bbr
    retpoline:      Y
    vermagic:       6.18.59-0-virt SMP preempt mod_unload modversions 
    sig_id:         PKCS#7
    signer:         Alpine Linux kernel key
    sig_key:        44:31:D7:94:04:9A:BD:AE:36:EB:EB:E3:F6:8F:DF:D6:5F:88:3B:99
    sig_hashalgo:   sha256
    signature:      C1:D5:E1:B2:51:D3:E6:B8:93:A0:28:5F:A5:F8:87:1D:E2:0B:0B:DB:
    		A1:40:C9:51:DD:D8:A5:87:7E:5D:C1:76:2A:3E:BE:81:7D:E5:0E:DD:
    		96:AA:74:85:A0:3C:42:98:AF:BE:FE:50:DB:32:81:D8:A4:65:66:33:
    		56:11:55:F2:E7:3F:BB:14:FA:92:F6:12:E9:F8:CA:4C:2D:FE:22:23:
    		85:54:3B:1F:73:32:28:56:49:AB:6D:91:62:A4:A6:74:45:22:74:74:
    		7B:7D:20:4B:88:DB:52:AA:C7:AD:C6:CB:42:B5:E0:3C:B8:88:75:EC:
    		ED:90:53:98:8A:CF:D0:B5:BF:D3:7A:E0:4F:EA:C0:7D:FC:E8:DF:B7:
    		8C:6C:F7:8E:7F:31:3F:21:0C:CE:C3:7C:D6:69:01:82:7D:C0:DB:15:
    		18:87:03:87:2F:70:E0:01:90:65:58:BB:4D:A5:93:62:3B:0C:24:48:
    		38:AA:F1:AF:B8:C7:E3:14:8C:82:36:4E:75:4C:AB:BE:2A:E1:BA:D2:
    		6F:5A:65:5F:A6:8D:5E:01:A3:20:00:F1:0D:7E:CA:C1:4F:CC:9A:07:
    		EB:9D:13:B2:5C:8E:19:6C:B4:3C:C3:B9:42:8A:6D:91:7C:69:CD:23:
    		7D:52:25:2A:28:33:A6:64:96:92:D0:2E:8B:6E:21:77:23:76:52:CB:
    		C8:C1:4F:20:EA:AE:90:99:70:C2:E8:8A:A2:9C:9B:15:DB:3B:7F:3F:
    		62:6A:A6:2F:DD:A1:8E:41:E7:D8:EF:97:4D:96:19:49:3E:13:48:81:
    		71:5D:99:AA:42:4C:CC:CE:98:C6:A2:1A:4F:B0:70:84:54:7E:7E:73:
    		90:20:56:EA:B2:7F:D1:58:17:B3:EA:0F:18:D4:F1:BF:9A:C4:DD:EC:
    		ED:13:58:3B:65:4C:85:40:AD:54:49:DF:4E:B8:5B:34:47:E6:B8:E6:
    		D9:90:7D:59:A8:A0:26:BC:1E:27:C4:F1:9B:36:83:EA:C0:97:4B:5D:
    		31:D9:91:BE:1C:3E:77:19:26:03:1B:BF:04:32:26:D7:88:A5:1F:24:
    		FA:8F:A8:BF:86:6F:DB:7E:61:7C:8B:89:F3:0C:88:29:28:DD:F2:37:
    		7A:3F:38:30:F0:7A:69:81:D8:6A:CF:B3:E2:A1:3C:6B:AC:43:4A:5D:
    		81:7B:53:D2:5D:DD:E0:DF:1F:1E:73:2D:0D:91:1E:B9:A5:25:3E:28:
    		64:E1:8F:F0:02:54:C4:2D:12:34:0E:E5:A8:21:97:2A:DF:C2:4B:F6:
    		03:70:15:9C:C1:A0:41:92:3D:A0:31:81:4C:4C:52:AE:F3:6C:F7:7F:
    		42:04:B9:22:F9:B1:D4:92:F7:DC:15:86
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      ⌂ 换网址