From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) by mail.toke.dk (Postfix) with ESMTPS id A96267C6CE2 for ; Thu, 7 Jan 2021 21:26:13 +0100 (CET) Authentication-Results: mail.toke.dk; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=KfZAFXxL Received: by mail-ej1-x634.google.com with SMTP id q22so11570261eja.2 for ; Thu, 07 Jan 2021 12:26:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Exos4c+r5Cj6bFfNvZHIWxZ5UHzBIvBuKFj7YAvRk2U=; b=KfZAFXxLR0yv2V2czlFA3aDQcBmV5ZPZ+jk2Wz2mXV8G+dr34x2sUXWdM1ltLmc0Dm IQA7Gr41zDEgZdBQxo0r3PhIxesKW2IWo/5Q5YAi2wfsEe/N1ZgGMfbWoIa86JE8zeeR 2G5uLJQHtnvECxBUQwhmfl5vPcwazHw1sPuC8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Exos4c+r5Cj6bFfNvZHIWxZ5UHzBIvBuKFj7YAvRk2U=; b=tjIt21Uz+v2Pt+AspIW0ZPIRUre2jcurPnODNrZ434MA8J9a84qWA6meJ3EgfPfo7S xd7UFRH1zkta73KJ/Pbe0sxk2+MuH39llBZehUOg8IM1YBl8lz1zTNhaz0An7CO/j+HI 8unmgmebS/ofRxAiAjLgFnQ5p1Q7hj1+ViNTIwz0vw45vQQTSRBiPI0U1nmh50RPYoXy YaNfK45+nEk7BKvxv59E2KAsC46LNFoXpw6WmrAsrSxhR28MsjusgsVgrkykkgz2UzGL 3DZdkzQeotKeshQWNza6o/kLXMniDrT/K2zcOMUn9Q3O9Z07IgWzYEqx0OSsGupvDV5+ r2Ng== X-Gm-Message-State: AOAM532ApR4/23R/AT3MbiPTWPhre2kERhqOgVE2Hs+E1jJQammUiWoz CUb3Vbgce5HxWCWCC/ZcCbddvLEqbUzhaBtVhpU5BxdCsLH9LSKScGPHG6i59axCBocoe59OPzE q4ZBKxTtV5MgXS/41SkwHBQ== X-Google-Smtp-Source: ABdhPJzeHbpa3m2RQBLK7t1wJ7bW11tNoKiK92TcVoZ4V9AUpGN32H6YZMzMPTR4VjLPlWEf1o6Iara03HbkoEqw0wk= X-Received: by 2002:a17:907:20b5:: with SMTP id pw21mr418829ejb.494.1610051169318; Thu, 07 Jan 2021 12:26:09 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Bob McMahon Date: Thu, 7 Jan 2021 12:25:57 -0800 Message-ID: To: Taran Lynn Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000000cc58205b8554007" X-MailFrom: bob.mcmahon@broadcom.com X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation Message-ID-Hash: JK3KP6EPS26VRIKS3TWF6MQHPIFB4VNR X-Message-ID-Hash: JK3KP6EPS26VRIKS3TWF6MQHPIFB4VNR X-Mailman-Approved-At: Thu, 07 Jan 2021 21:57:23 +0100 CC: Dave Taht , ghosal@cs.ucdavis.edu, BBR Development , Make-Wifi-fast , ECN-Sane , bloat , codel@lists.bufferbloat.net, flent-users X-Mailman-Version: 3.3.2 Precedence: list Subject: [Flent-users] Re: [Make-wifi-fast] D* tcp looks pretty good, on paper List-Id: Flent discussion list Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: --0000000000000cc58205b8554007 Content-Type: multipart/alternative; boundary="00000000000004c68105b855402b" --00000000000004c68105b855402b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable FYI, one can try this out using iperf 2.1 with --trip-times . This gives end/end delay at the application level. One can use --trip-times when clocks are sync'd to get the write to read latencies which are the latencies at the application level. Note: I set up a Raspberry Pi 4 with a GPS hat from ubutronics for solderless pulse per second . Then configured it as a PTP grandmaster. This cost me around $200. I also added support for a very crude --near-congestion option that paces the writes based upon the weight of the RTT. The tcp_info struct is sampled and available for other experiments though one would have to modify the source a bit. This current technique used by iperf 2.1 is designed for test networks only where all traffic is under script control. We've had too many people measuring bloat as latency. We really need separate measurements between the two phenomena, bloat vs latency, because they require different eng actions for a semiconductor supplier. Below are examples over a 10G link, first with no write pacing then with it. The server output, shown first, has the latency data (as well as the net power and little's law calculation.) (Note: use --histograms for to get full distributions.) *No write pacing* [rjmcmahon@localhost iperf2-code]$ src/iperf -s -i 1 -e ------------------------------------------------------------ Server listening on TCP port 5001 with pid 24568 Read buffer size: 128 KByte (Dist bin width=3D16.0 KByte) TCP window size: 85.3 KByte (default) ------------------------------------------------------------ [ 1] local 192.168.1.10%enp2s0 port 5001 connected with 192.168.1.62 port 50056 (MSS=3D1448) (trip-times) (sock=3D4) (peer 2.1.0-rc) on 2021-01-07 12:11:04 (PST) [ ID] Interval Transfer Bandwidth Burst Latency avg/min/max/stdev (cnt/size) inP NetPwr Reads=3DDist [ 1] 0.00-1.00 sec 1.09 GBytes 9.34 Gbits/sec 2.959/1.180/3.681/0.388 ms (8905/131072) 3.31 MByte 394522 18480=3D2459:2580:2475:2354:2203:2192:1974:2243 [ 1] 1.00-2.00 sec 1.10 GBytes 9.41 Gbits/sec 2.993/2.302/3.703/0.359 ms (8978/131072) 3.36 MByte 393209 19482=3D2526:2850:3102:2622:2344:2297:1867:1874 [ 1] 2.00-3.00 sec 1.10 GBytes 9.42 Gbits/sec 3.010/2.302/3.692/0.347 ms (8978/131085) 3.38 MByte 391047 19387=3D2563:2757:2928:2708:2432:2244:1829:1926 [ 1] 3.00-4.00 sec 1.10 GBytes 9.41 Gbits/sec 3.009/2.301/3.668/0.348 ms (8979/131060) 3.38 MByte 391094 18821=3D2456:2585:2660:2545:2270:2239:1906:2160 [ 1] 4.00-5.00 sec 1.10 GBytes 9.42 Gbits/sec 2.985/2.299/3.696/0.359 ms (8979/131070) 3.35 MByte 394295 19441=3D2509:2886:2959:2728:2336:2200:1971:1852 [ 1] 5.00-6.00 sec 1.10 GBytes 9.41 Gbits/sec 2.977/2.258/3.671/0.363 ms (8978/131082) 3.34 MByte 395352 18509=3D2352:2602:2464:2380:2263:2142:2095:2211 [ 1] 6.00-7.00 sec 1.10 GBytes 9.41 Gbits/sec 2.980/2.290/3.680/0.363 ms (8978/131072) 3.34 MByte 394873 18522=3D2407:2499:2565:2334:2213:2268:1999:2237 [ 1] 7.00-8.00 sec 1.10 GBytes 9.42 Gbits/sec 2.980/2.253/3.702/0.362 ms (8979/131073) 3.35 MByte 394972 18615=3D2427:2592:2493:2460:2281:2057:2062:2243 [ 1] 8.00-9.00 sec 1.10 GBytes 9.41 Gbits/sec 2.976/2.277/3.663/0.364 ms (8979/131065) 3.34 MByte 395443 18632=3D2338:2615:2647:2351:2192:2317:2063:2109 [ 1] 9.00-10.00 sec 1.10 GBytes 9.41 Gbits/sec 2.976/2.293/3.690/0.366 ms (8978/131076) 3.34 MByte 395416 18428=3D2281:2622:2497:2275:2178:2253:2129:2193 [ 1] 0.00-10.00 sec 11.0 GBytes 9.41 Gbits/sec 2.984/1.180/3.703/0.362 = ms (89736/131072) 3.35 MByte 394014 188367=3D24320:26609:26793:24757:22712:22211:19916:21049 [rjmcmahon@localhost iperf2-code]src/iperf -c 192.168.1.10 --trip-times -i 1 -e ------------------------------------------------------------ Client connecting to 192.168.1.10, TCP port 5001 with pid 18961 (1 flows) Write buffer size: 131072 Byte TCP window size: 85.0 KByte (default) ------------------------------------------------------------ [ 1] local 192.168.1.62%enp2s0 port 50056 connected with 192.168.1.10 port 5001 (MSS=3D1448) (trip-times) (sock=3D3) (ct=3D0.41 ms) on 2021-01-07 12:1= 1:04 (PST) [ ID] Interval Transfer Bandwidth Write/Err Rtry Cwnd/RTT NetPwr [ 1] 0.00-1.00 sec 1.09 GBytes 9.37 Gbits/sec 8937/0 0 1508K/1099 us 1065750 [ 1] 1.00-2.00 sec 1.10 GBytes 9.41 Gbits/sec 8975/0 0 1508K/1087 us 1082218 [ 1] 2.00-3.00 sec 1.10 GBytes 9.41 Gbits/sec 8975/0 0 1508K/1081 us 1088225 [ 1] 3.00-4.00 sec 1.10 GBytes 9.42 Gbits/sec 8984/0 0 1508K/1085 us 1085300 [ 1] 4.00-5.00 sec 1.10 GBytes 9.42 Gbits/sec 8980/0 0 1508K/1105 us 1065182 [ 1] 5.00-6.00 sec 1.10 GBytes 9.41 Gbits/sec 8975/0 0 1582K/1100 us 1069428 [ 1] 6.00-7.00 sec 1.10 GBytes 9.42 Gbits/sec 8979/0 0 1582K/1121 us 1049862 [ 1] 7.00-8.00 sec 1.10 GBytes 9.41 Gbits/sec 8976/0 0 1582K/1133 us 1038396 [ 1] 8.00-9.00 sec 1.10 GBytes 9.41 Gbits/sec 8978/0 0 1582K/1115 us 1055394 [ 1] 9.00-10.00 sec 1.10 GBytes 9.42 Gbits/sec 8986/0 0 1582K/1122 us 1049744 [ 1] 0.00-10.00 sec 11.0 GBytes 9.41 Gbits/sec 89748/0 0 1582K/1122 us 1048294 *With write pacing* [rjmcmahon@localhost iperf2-code]$ src/iperf -s -i 1 -e ------------------------------------------------------------ Server listening on TCP port 5001 with pid 24702 Read buffer size: 128 KByte (Dist bin width=3D16.0 KByte) TCP window size: 85.3 KByte (default) ------------------------------------------------------------ [ 1] local 192.168.1.10%enp2s0 port 5001 connected with 192.168.1.62 port 50072 (MSS=3D1448) (trip-times) (sock=3D4) (peer 2.1.0-rc) on 2021-01-07 12:14:59 (PST) [ ID] Interval Transfer Bandwidth Burst Latency avg/min/max/stdev (cnt/size) inP NetPwr Reads=3DDist [ 1] 0.00-1.00 sec 1.08 GBytes 9.31 Gbits/sec 0.401/0.193/2.682/0.168 ms (8876/131084) 456 KByte 2904347 19868=3D3296:2404:2508:2797:3559:1778:1551:1975 [ 1] 1.00-2.00 sec 1.10 GBytes 9.41 Gbits/sec 0.400/0.219/0.627/0.053 ms (8971/131071) 460 KByte 2937822 19117=3D3069:2267:2307:2510:3029:1824:1683:2428 [ 1] 2.00-3.00 sec 1.09 GBytes 9.39 Gbits/sec 0.374/0.193/0.541/0.055 ms (8958/131060) 428 KByte 3143030 18942=3D2846:2423:2304:2417:2927:1831:1856:2338 [ 1] 3.00-4.00 sec 1.09 GBytes 9.39 Gbits/sec 0.385/0.190/0.664/0.070 ms (8952/131072) 441 KByte 3050401 19248=3D3041:2175:2343:2749:3320:1805:1526:2289 [ 1] 4.00-5.00 sec 1.09 GBytes 9.40 Gbits/sec 0.380/0.197/0.546/0.057 ms (8965/131075) 436 KByte 3095915 19959=3D3321:2398:2551:2738:3500:1840:1532:2079 [ 1] 5.00-6.00 sec 1.09 GBytes 9.39 Gbits/sec 0.369/0.198/0.536/0.051 ms (8956/131072) 423 KByte 3177431 21060=3D3627:2456:2886:3189:4246:1813:1190:1653 [ 1] 6.00-7.00 sec 1.09 GBytes 9.39 Gbits/sec 0.380/0.202/0.562/0.054 ms (8959/131077) 436 KByte 3086914 19263=3D3044:2338:2424:2505:3155:1809:1636:2352 [ 1] 7.00-8.00 sec 1.09 GBytes 9.40 Gbits/sec 0.376/0.198/0.541/0.053 ms (8965/131061) 432 KByte 3122495 19137=3D3079:2303:2340:2455:3017:1822:1683:2438 [ 1] 8.00-9.00 sec 1.10 GBytes 9.41 Gbits/sec 0.381/0.208/0.576/0.054 ms (8974/131073) 438 KByte 3083767 19162=3D3050:2269:2392:2486:3019:1891:1667:2388 [ 1] 9.00-10.00 sec 1.09 GBytes 9.40 Gbits/sec 0.371/0.194/0.582/0.057 ms (8964/131070) 425 KByte 3169244 19143=3D3006:2411:2303:2462:3067:1744:1760:2390 [ 1] 0.00-10.00 sec 10.9 GBytes 9.39 Gbits/sec 0.382/0.190/2.682/0.076 ms (89544/131072) 437 KByte 3074913 194908=3D31380:23444:24362:26308:32839:18161:16084:22330 [rjmcmahon@localhost iperf2-code]$ src/iperf -c 192.168.1.10 --near-congestion=3D0.05 --trip-times -i 1 -e ------------------------------------------------------------ Client connecting to 192.168.1.10, TCP port 5001 with pid 19320 (1 flows) Write buffer size: 131072 Byte TCP near-congestion delay weight set to 0.0500 TCP window size: 85.0 KByte (default) ------------------------------------------------------------ [ 1] local 192.168.1.62%enp2s0 port 50072 connected with 192.168.1.10 port 5001 (MSS=3D1448) (trip-times) (sock=3D3) (ct=3D0.40 ms) on 2021-01-07 12:1= 4:59 (PST) [ ID] Interval Transfer Bandwidth Write/Err Rtry Cwnd/RTT NetPwr [ 1] 0.00-1.00 sec 1.08 GBytes 9.31 Gbits/sec 8881/0 0 1135K/373 us 3120427 [ 1] 1.00-2.00 sec 1.10 GBytes 9.41 Gbits/sec 8971/0 0 1135K/391 us 3007281 [ 1] 2.00-3.00 sec 1.09 GBytes 9.39 Gbits/sec 8958/0 0 1135K/331 us 3547260 [ 1] 3.00-4.00 sec 1.09 GBytes 9.39 Gbits/sec 8952/0 0 1135K/288 us 4074155 [ 1] 4.00-5.00 sec 1.09 GBytes 9.40 Gbits/sec 8965/0 0 1135K/301 us 3903855 [ 1] 5.00-6.00 sec 1.09 GBytes 9.39 Gbits/sec 8955/0 0 1135K/414 us 2835144 [ 1] 6.00-7.00 sec 1.09 GBytes 9.40 Gbits/sec 8961/0 0 1135K/470 us 2499013 [ 1] 7.00-8.00 sec 1.09 GBytes 9.40 Gbits/sec 8964/0 0 1135K/350 us 3356941 [ 1] 8.00-9.00 sec 1.10 GBytes 9.41 Gbits/sec 8973/0 0 1135K/472 us 2491756 [ 1] 9.00-10.00 sec 1.09 GBytes 9.40 Gbits/sec 8964/0 0 1135K/402 us 2922710 [ 1] 0.00-10.00 sec 10.9 GBytes 9.39 Gbits/sec 89547/0 0 1135K/402 us 2919642 Bob On Thu, Jan 7, 2021 at 11:22 AM Taran Lynn via Make-wifi-fast < make-wifi-fast@lists.bufferbloat.net> wrote: > The source can be found at https://github.com/lambda-11235/tcp_davis . > > The code mentioned in the paper can be found under the tag "arxiv_2020". > The current master branch has an additional stable mode that I was testin= g > out. > > On Thu, Jan 7, 2021 at 10:35 AM Dave Taht wrote: > >> See: https://arxiv.org/pdf/2012.14996.pdf >> >> Things I really like: >> >> * they used flent >> * Using "variance" as the principal signal. This is essentially one of >> the great unpublished and unanalyzed improvements on the minstrel >> algorithm as well >> * Conventional ecn response >> * outperforms bbr on variable links >> >> Only negative so far is I haven't found any published source to it. :( >> >> Otherwise a very promising start to a year. >> >> "The choice of feedback mechanism between delay and packet loss has >> long been a point of contention in TCP congestion control. This has >> partly been resolved, as it has become increasingly evident that delay >> based methods are needed to facilitate modern interactive web >> applications. However, what has not been resolved is what control >> should be used, with the two candidates being the congestion window >> and the pacing rate. BBR is a new delay based congestion control >> algorithm that uses a pacing rate as its primary control and the >> congestion window as a secondary control. We propose that a congestion >> window first algorithm might give more desirable performance >> characteristics in situations where latency must be minimized even at >> the expense of some loss in throughput. To evaluate this hypothesis we >> introduce a new congestion control algorithm called TCP D*, which is a >> congestion window first algorithm that adopts BBR's approach of >> maximizing delivery rate while minimizing latency. In this paper, we >> discuss the key features of this algorithm, discuss the differences >> and similarity to BBR, and present some preliminary results based on a >> real implementation." >> >> >> >> >> -- >> "For a successful technology, reality must take precedence over public >> relations, for Mother Nature cannot be fooled" - Richard Feynman >> >> dave@taht.net CTO, TekLibre, LLC Tel: 1-831-435-0729 >> > _______________________________________________ > Make-wifi-fast mailing list > Make-wifi-fast@lists.bufferbloat.net > https://lists.bufferbloat.net/listinfo/make-wifi-fast --=20 This electronic communication and the information and any files transmitted= =20 with it, or attached to it, are confidential and are intended solely for=20 the use of the individual or entity to whom it is addressed and may contain= =20 information that is confidential, legally privileged, protected by privacy= =20 laws, or otherwise restricted from disclosure to anyone else. If you are=20 not the intended recipient or the person responsible for delivering the=20 e-mail to the intended recipient, you are hereby notified that any use,=20 copying, distributing, dissemination, forwarding, printing, or copying of= =20 this e-mail is strictly prohibited. If you received this e-mail in error,= =20 please return the e-mail to the sender, delete it from your computer, and= =20 destroy any printed copy of it. --00000000000004c68105b855402b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
FYI, one can try this out using iperf 2.1 with --trip-times.=C2=A0 This gives end/end = delay at the application level. One can use --trip-times when clocks
ar= e sync'd=C2=A0to get the write to read latencies which are the latencie= s at the application level.

Note: I set up a Raspberry Pi 4 with a G= PS hat from = ubutronics=C2=A0for solderless=C2=A0pulse per second.=C2=A0 Then config= ured it as a PTP grandmaster.=C2=A0 This cost me around $200.

I also added support for a very crude --near-congestion option that p= aces the writes based upon the weight of the RTT.=C2=A0 The tcp_info struct= is sampled and available
for other experiments though one would = have to modify the source a bit. This current technique used by iperf 2.1 i= s designed for test networks only where all
traffic is under script con= trol. We've had too many people measuring bloat as latency. We really n= eed separate measurements between the two phenomena,=C2=A0
bloat vs late= ncy, because=C2=A0they require different eng actions for a semiconductor su= pplier.

Below are examples over a 10G link, first with no wri= te pacing then with it. The server output, shown first, has the latency dat= a (as well as the net power
and little's law calculation.)=C2= =A0 (Note: use --histograms for to get full distributions.)

<= b>No write pacing

[rjmcmahon@localhost iperf2-code]$ src/= iperf -s -i 1 -e
-------------------------------------------------------= -----
Server listening on TCP port 5001 with pid 24568
Read buffer si= ze: =C2=A0128 KByte (Dist bin width=3D16.0 KByte)
TCP window size: 85.3 = KByte (default)
--------------------------------------------------------= ----
[ =C2=A01] local 192.168.1.10%enp2s0 port 5001 connected with 192.1= 68.1.62 port 50056 (MSS=3D1448) (trip-times) (sock=3D4) (peer 2.1.0-rc) on = 2021-01-07 12:11:04 (PST)
[ ID] Interval =C2=A0 =C2=A0 =C2=A0 =C2=A0Tran= sfer =C2=A0 =C2=A0Bandwidth =C2=A0 =C2=A0Burst Latency avg/min/max/stdev (c= nt/size) inP NetPwr =C2=A0Reads=3DDist
[ =C2=A01] 0.00-1.00 sec =C2=A01.= 09 GBytes =C2=A09.34 Gbits/sec =C2=A02.959/1.180/3.681/0.388 ms (8905/13107= 2) 3.31 MByte 394522 =C2=A018480=3D2459:2580:2475:2354:2203:2192:1974:2243<= br>[ =C2=A01] 1.00-2.00 sec =C2=A01.10 GBytes =C2=A09.41 Gbits/sec =C2=A02.= 993/2.302/3.703/0.359 ms (8978/131072) 3.36 MByte 393209 =C2=A019482=3D2526= :2850:3102:2622:2344:2297:1867:1874
[ =C2=A01] 2.00-3.00 sec =C2=A01.10 = GBytes =C2=A09.42 Gbits/sec =C2=A03.010/2.302/3.692/0.347 ms (8978/131085) = 3.38 MByte 391047 =C2=A019387=3D2563:2757:2928:2708:2432:2244:1829:1926
= [ =C2=A01] 3.00-4.00 sec =C2=A01.10 GBytes =C2=A09.41 Gbits/sec =C2=A03.009= /2.301/3.668/0.348 ms (8979/131060) 3.38 MByte 391094 =C2=A018821=3D2456:25= 85:2660:2545:2270:2239:1906:2160
[ =C2=A01] 4.00-5.00 sec =C2=A01.10 GBy= tes =C2=A09.42 Gbits/sec =C2=A02.985/2.299/3.696/0.359 ms (8979/131070) 3.3= 5 MByte 394295 =C2=A019441=3D2509:2886:2959:2728:2336:2200:1971:1852
[ = =C2=A01] 5.00-6.00 sec =C2=A01.10 GBytes =C2=A09.41 Gbits/sec =C2=A02.977/2= .258/3.671/0.363 ms (8978/131082) 3.34 MByte 395352 =C2=A018509=3D2352:2602= :2464:2380:2263:2142:2095:2211
[ =C2=A01] 6.00-7.00 sec =C2=A01.10 GByte= s =C2=A09.41 Gbits/sec =C2=A02.980/2.290/3.680/0.363 ms (8978/131072) 3.34 = MByte 394873 =C2=A018522=3D2407:2499:2565:2334:2213:2268:1999:2237
[ =C2= =A01] 7.00-8.00 sec =C2=A01.10 GBytes =C2=A09.42 Gbits/sec =C2=A02.980/2.25= 3/3.702/0.362 ms (8979/131073) 3.35 MByte 394972 =C2=A018615=3D2427:2592:24= 93:2460:2281:2057:2062:2243
[ =C2=A01] 8.00-9.00 sec =C2=A01.10 GBytes = =C2=A09.41 Gbits/sec =C2=A02.976/2.277/3.663/0.364 ms (8979/131065) 3.34 MB= yte 395443 =C2=A018632=3D2338:2615:2647:2351:2192:2317:2063:2109
[ =C2= =A01] 9.00-10.00 sec =C2=A01.10 GBytes =C2=A09.41 Gbits/sec =C2=A02.976/2.2= 93/3.690/0.366 ms (8978/131076) 3.34 MByte 395416 =C2=A018428=3D2281:2622:2= 497:2275:2178:2253:2129:2193
[ =C2=A01] 0.00-10.00 sec =C2=A011.0 GBytes= =C2=A09.41 Gbits/sec =C2=A02.984/1.180/3.703/0= .362 ms (89736/131072) 3.35 MByte 394014= =C2=A0188367=3D24320:26609:26793:24757:22712:22211:19916:21049
<= br>
[rjmcmahon@localhost iperf2-code]src/iperf -c 192.168.1.10 --trip-ti= mes -i 1 -e
------------------------------------------------------------=
Client connecting to 192.168.1.10, TCP port 5001 with pid 18961 (1 flow= s)
Write buffer size: 131072 Byte
TCP window size: 85.0 KByte (defaul= t)
------------------------------------------------------------
[ =C2= =A01] local 192.168.1.62%enp2s0 port 50056 connected with 192.168.1.10 port= 5001 (MSS=3D1448) (trip-times) (sock=3D3) (ct=3D0.41 ms) on 2021-01-07 12:= 11:04 (PST)
[ ID] Interval =C2=A0 =C2=A0 =C2=A0 =C2=A0Transfer =C2=A0 = =C2=A0Bandwidth =C2=A0 =C2=A0 =C2=A0 Write/Err =C2=A0Rtry =C2=A0 =C2=A0 Cwn= d/RTT =C2=A0 =C2=A0 =C2=A0 =C2=A0NetPwr
[ =C2=A01] 0.00-1.00 sec =C2=A01= .09 GBytes =C2=A09.37 Gbits/sec =C2=A08937/0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A00 =C2=A0 =C2=A0 1508K/1099 us =C2=A01065750
[ =C2=A01] 1.00-2.00 s= ec =C2=A01.10 GBytes =C2=A09.41 Gbits/sec =C2=A08975/0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A00 =C2=A0 =C2=A0 1508K/1087 us =C2=A01082218
[ =C2=A01] 2.0= 0-3.00 sec =C2=A01.10 GBytes =C2=A09.41 Gbits/sec =C2=A08975/0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 1508K/1081 us =C2=A01088225
[ = =C2=A01] 3.00-4.00 sec =C2=A01.10 GBytes =C2=A09.42 Gbits/sec =C2=A08984/0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 1508K/1085 us =C2=A010853= 00
[ =C2=A01] 4.00-5.00 sec =C2=A01.10 GBytes =C2=A09.42 Gbits/sec =C2= =A08980/0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 1508K/1105 us = =C2=A01065182
[ =C2=A01] 5.00-6.00 sec =C2=A01.10 GBytes =C2=A09.41 Gbit= s/sec =C2=A08975/0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 1582K/= 1100 us =C2=A01069428
[ =C2=A01] 6.00-7.00 sec =C2=A01.10 GBytes =C2=A09= .42 Gbits/sec =C2=A08979/0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2= =A0 1582K/1121 us =C2=A01049862
[ =C2=A01] 7.00-8.00 sec =C2=A01.10 GByt= es =C2=A09.41 Gbits/sec =C2=A08976/0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 = =C2=A0 =C2=A0 1582K/1133 us =C2=A01038396
[ =C2=A01] 8.00-9.00 sec =C2= =A01.10 GBytes =C2=A09.41 Gbits/sec =C2=A08978/0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A00 =C2=A0 =C2=A0 1582K/1115 us =C2=A01055394
[ =C2=A01] 9.00-10= .00 sec =C2=A01.10 GBytes =C2=A09.42 Gbits/sec =C2=A08986/0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 1582K/1122 us =C2=A01049744
[ =C2=A0= 1] 0.00-10.00 sec =C2=A011.0 GBytes =C2=A09.41 Gbits/sec =C2=A089748/0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 1582K/1122 us =C2=A01048294<= br>

With write pacing

[rjmcmahon@localhost iper= f2-code]$ src/iperf -s -i 1 -e
-----------------------------------------= -------------------
Server listening on TCP port 5001 with pid 24702
= Read buffer size: =C2=A0128 KByte (Dist bin width=3D16.0 KByte)
TCP wind= ow size: 85.3 KByte (default)
------------------------------------------= ------------------
[ =C2=A01] local 192.168.1.10%enp2s0 port 5001 connec= ted with 192.168.1.62 port 50072 (MSS=3D1448) (trip-times) (sock=3D4) (peer= 2.1.0-rc) on 2021-01-07 12:14:59 (PST)
[ ID] Interval =C2=A0 =C2=A0 =C2= =A0 =C2=A0Transfer =C2=A0 =C2=A0Bandwidth =C2=A0 =C2=A0Burst Latency avg/mi= n/max/stdev (cnt/size) inP NetPwr =C2=A0Reads=3DDist
[ =C2=A01] 0.00-1.0= 0 sec =C2=A01.08 GBytes =C2=A09.31 Gbits/sec =C2=A00.401/0.193/2.682/0.168 = ms (8876/131084) =C2=A0456 KByte 2904347 =C2=A019868=3D3296:2404:2508:2797:= 3559:1778:1551:1975
[ =C2=A01] 1.00-2.00 sec =C2=A01.10 GBytes =C2=A09.4= 1 Gbits/sec =C2=A00.400/0.219/0.627/0.053 ms (8971/131071) =C2=A0460 KByte = 2937822 =C2=A019117=3D3069:2267:2307:2510:3029:1824:1683:2428
[ =C2=A01]= 2.00-3.00 sec =C2=A01.09 GBytes =C2=A09.39 Gbits/sec =C2=A00.374/0.193/0.5= 41/0.055 ms (8958/131060) =C2=A0428 KByte 3143030 =C2=A018942=3D2846:2423:2= 304:2417:2927:1831:1856:2338
[ =C2=A01] 3.00-4.00 sec =C2=A01.09 GBytes = =C2=A09.39 Gbits/sec =C2=A00.385/0.190/0.664/0.070 ms (8952/131072) =C2=A04= 41 KByte 3050401 =C2=A019248=3D3041:2175:2343:2749:3320:1805:1526:2289
[= =C2=A01] 4.00-5.00 sec =C2=A01.09 GBytes =C2=A09.40 Gbits/sec =C2=A00.380/= 0.197/0.546/0.057 ms (8965/131075) =C2=A0436 KByte 3095915 =C2=A019959=3D33= 21:2398:2551:2738:3500:1840:1532:2079
[ =C2=A01] 5.00-6.00 sec =C2=A01.0= 9 GBytes =C2=A09.39 Gbits/sec =C2=A00.369/0.198/0.536/0.051 ms (8956/131072= ) =C2=A0423 KByte 3177431 =C2=A021060=3D3627:2456:2886:3189:4246:1813:1190:= 1653
[ =C2=A01] 6.00-7.00 sec =C2=A01.09 GBytes =C2=A09.39 Gbits/sec =C2= =A00.380/0.202/0.562/0.054 ms (8959/131077) =C2=A0436 KByte 3086914 =C2=A01= 9263=3D3044:2338:2424:2505:3155:1809:1636:2352
[ =C2=A01] 7.00-8.00 sec = =C2=A01.09 GBytes =C2=A09.40 Gbits/sec =C2=A00.376/0.198/0.541/0.053 ms (89= 65/131061) =C2=A0432 KByte 3122495 =C2=A019137=3D3079:2303:2340:2455:3017:1= 822:1683:2438
[ =C2=A01] 8.00-9.00 sec =C2=A01.10 GBytes =C2=A09.41 Gbit= s/sec =C2=A00.381/0.208/0.576/0.054 ms (8974/131073) =C2=A0438 KByte 308376= 7 =C2=A019162=3D3050:2269:2392:2486:3019:1891:1667:2388
[ =C2=A01] 9.00-= 10.00 sec =C2=A01.09 GBytes =C2=A09.40 Gbits/sec =C2=A00.371/0.194/0.582/0.= 057 ms (8964/131070) =C2=A0425 KByte 3169244 =C2=A019143=3D3006:2411:2303:2= 462:3067:1744:1760:2390
[ =C2=A01] 0.00-10.00 sec =C2=A010.9 GBytes =C2=A09.39 Gbits/sec
=C2= =A00.382/0.190/2.682/0.076 = ms (89544/131072) =C2=A0437 KByte 307491= 3 =C2=A0194908=3D31380:23444:24362:26308:32839:18161:16084:22330
=

[rjmcmahon@localhost iperf2-code]$ src/iperf -c 192.168.1.10 --near-congestion=3D0.05 --t= rip-times -i 1 -e
------------------------------------------------------= ------
Client connecting to 192.168.1.10, TCP port 5001 with pid 19320 (= 1 flows)
Write buffer size: 131072 Byte
TCP near-congestion delay wei= ght set to 0.0500
TCP window size: 85.0 KByte (default)
-------------= -----------------------------------------------
[ =C2=A01] local 192.168= .1.62%enp2s0 port 50072 connected with 192.168.1.10 port 5001 (MSS=3D1448) = (trip-times) (sock=3D3) (ct=3D0.40 ms) on 2021-01-07 12:14:59 (PST)
[ ID= ] Interval =C2=A0 =C2=A0 =C2=A0 =C2=A0Transfer =C2=A0 =C2=A0Bandwidth =C2= =A0 =C2=A0 =C2=A0 Write/Err =C2=A0Rtry =C2=A0 =C2=A0 Cwnd/RTT =C2=A0 =C2=A0= =C2=A0 =C2=A0NetPwr
[ =C2=A01] 0.00-1.00 sec =C2=A01.08 GBytes =C2=A09.= 31 Gbits/sec =C2=A08881/0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0= 1135K/373 us =C2=A03120427
[ =C2=A01] 1.00-2.00 sec =C2=A01.10 GBytes = =C2=A09.41 Gbits/sec =C2=A08971/0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2= =A0 =C2=A0 1135K/391 us =C2=A03007281
[ =C2=A01] 2.00-3.00 sec =C2=A01.0= 9 GBytes =C2=A09.39 Gbits/sec =C2=A08958/0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A00 =C2=A0 =C2=A0 1135K/331 us =C2=A03547260
[ =C2=A01] 3.00-4.00 sec = =C2=A01.09 GBytes =C2=A09.39 Gbits/sec =C2=A08952/0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A00 =C2=A0 =C2=A0 1135K/288 us =C2=A04074155
[ =C2=A01] 4.00-= 5.00 sec =C2=A01.09 GBytes =C2=A09.40 Gbits/sec =C2=A08965/0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 1135K/301 us =C2=A03903855
[ =C2=A01= ] 5.00-6.00 sec =C2=A01.09 GBytes =C2=A09.39 Gbits/sec =C2=A08955/0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 1135K/414 us =C2=A02835144
[ = =C2=A01] 6.00-7.00 sec =C2=A01.09 GBytes =C2=A09.40 Gbits/sec =C2=A08961/0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 1135K/470 us =C2=A0249901= 3
[ =C2=A01] 7.00-8.00 sec =C2=A01.09 GBytes =C2=A09.40 Gbits/sec =C2=A0= 8964/0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 1135K/350 us =C2= =A03356941
[ =C2=A01] 8.00-9.00 sec =C2=A01.10 GBytes =C2=A09.41 Gbits/s= ec =C2=A08973/0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 1135K/472= us =C2=A02491756
[ =C2=A01] 9.00-10.00 sec =C2=A01.09 GBytes =C2=A09.40= Gbits/sec =C2=A08964/0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2=A0 =C2=A0 1= 135K/402 us =C2=A02922710
[ =C2=A01] 0.00-10.00 sec =C2=A010.9 GBytes = =C2=A09.39 Gbits/sec =C2=A089547/0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =C2= =A0 =C2=A0 1135K/402 us =C2=A02919642

Bob
<= br>

On Thu, Jan 7, 2021 at 11:22 AM Taran Lynn via Make-wifi-fast <= make-wifi-fast@list= s.bufferbloat.net> wrote:

The source can be found at https://github= .com/lambda-11235/tcp_davis .

The code mentioned in the paper can be found under the tag=20 "arxiv_2020". The current master branch has an additional stable = mode=20 that I was testing out.


= On Thu, Jan 7, 2021 at 10:35 AM Dave Taht <dave.taht@gmail.com> wrote:
See: https://arxi= v.org/pdf/2012.14996.pdf

Things I really like:

* they used flent
* Using "variance" as the principal signal. This is essentially o= ne of
the great unpublished and unanalyzed improvements on the minstrel
algorithm as well
* Conventional ecn response
* outperforms bbr on variable links

Only negative so far is I haven't found any published source to it. :(<= br>
Otherwise a very promising start to a year.

"The choice of feedback mechanism between delay and packet loss has long been a point of contention in TCP congestion control. This has
partly been resolved, as it has become increasingly evident that delay
based methods are needed to facilitate modern interactive web
applications. However, what has not been resolved is what control
should be used, with the two candidates being the congestion window
and the pacing rate. BBR is a new delay based congestion control
algorithm that uses a pacing rate as its primary control and the
congestion window as a secondary control. We propose that a congestion
window first algorithm might give more desirable performance
characteristics in situations where latency must be minimized even at
the expense of some loss in throughput. To evaluate this hypothesis we
introduce a new congestion control algorithm called TCP D*, which is a
congestion window first algorithm that adopts BBR's approach of
maximizing delivery rate while minimizing latency. In this paper, we
discuss the key features of this algorithm, discuss the differences
and similarity to BBR, and present some preliminary results based on a
real implementation."




--
"For a successful technology, reality must take precedence over public=
relations, for Mother Nature cannot be fooled" - Richard Feynman

dave@taht.net <Da= ve T=C3=A4ht> CTO, TekLibre, LLC Tel: 1-831-435-0729
_______________________________________________
Make-wifi-fast mailing list
M= ake-wifi-fast@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/make-wif= i-fast

This ele= ctronic communication and the information and any files transmitted with it= , or attached to it, are confidential and are intended solely for the use o= f the individual or entity to whom it is addressed and may contain informat= ion that is confidential, legally privileged, protected by privacy laws, or= otherwise restricted from disclosure to anyone else. If you are not the in= tended recipient or the person responsible for delivering the e-mail to the= intended recipient, you are hereby notified that any use, copying, distrib= uting, dissemination, forwarding, printing, or copying of this e-mail is st= rictly prohibited. If you received this e-mail in error, please return the = e-mail to the sender, delete it from your computer, and destroy any printed= copy of it. --00000000000004c68105b855402b-- --0000000000000cc58205b8554007 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 /b1zx6vfBbdB/WD9+oi9rnXyd2ikVU2bvJ15VinB52kz7Kpj4A1e7zHgKxqNjFFycWXn2QIDAQAB o4IBzzCCAcswDgYDVR0PAQH/BAQDAgWgMIGeBggrBgEFBQcBAQSBkTCBjjBNBggrBgEFBQcwAoZB aHR0cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvZ3NwZXJzb25hbHNpZ24yc2hhMmcz b2NzcC5jcnQwPQYIKwYBBQUHMAGGMWh0dHA6Ly9vY3NwMi5nbG9iYWxzaWduLmNvbS9nc3BlcnNv bmFsc2lnbjJzaGEyZzMwTQYDVR0gBEYwRDBCBgorBgEEAaAyASgKMDQwMgYIKwYBBQUHAgEWJmh0 dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMAkGA1UdEwQCMAAwRAYDVR0fBD0w OzA5oDegNYYzaHR0cDovL2NybC5nbG9iYWxzaWduLmNvbS9nc3BlcnNvbmFsc2lnbjJzaGEyZzMu Y3JsMCMGA1UdEQQcMBqBGGJvYi5tY21haG9uQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEF BQcDBDAfBgNVHSMEGDAWgBRpcoJiMWeVRIV3kYDEBDZJnXsLYTAdBgNVHQ4EFgQUQ1s1Ocvee2Eh o0qY50aFmX9fHS0wDQYJKoZIhvcNAQELBQADggEBAFygcUiFPJ7uRXexxLYonpGCsztO0YcmuWCE jef/oS4oMYJyf+pv/dgdywaJ9U4FhYHg9wIPEcWwS1JpsUrEhx1zQ2JX8+HNHyuCiR11tgtzCr0z nxeMm3RAJPmM3cAy5mS7pDz1Ox081EqDQQzeesvMwwONjIpV1ORg17fpIHxz4KaKg8X5Yv6xYs0Z L+UVLQlmIJqoOHqzOelCjNTCSucYx/sYygzQcvUuX7qUgLOJq+o4JXhqu2dUJ6wu/NPApqyd8hSc YVBMvygG2Y3xBjxYC5Dr4+E1cmcOGEUQhkKo4cwv217+W4FXb4K4B/EM208EsUMXGTb7tV5zJ0rO IH4xggJvMIICawIBATBtMF0xCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNh MTMwMQYDVQQDEypHbG9iYWxTaWduIFBlcnNvbmFsU2lnbiAyIENBIC0gU0hBMjU2IC0gRzMCDC+0 3xVh38ZbkuZtLDANBglghkgBZQMEAgEFAKCB1DAvBgkqhkiG9w0BCQQxIgQg00r4nVIVJpfTcith C2+zscnk1YF5Yb0thB9az80V4VIwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0B CQUxDxcNMjEwMTA3MjAyNjA5WjBpBgkqhkiG9w0BCQ8xXDBaMAsGCWCGSAFlAwQBKjALBglghkgB ZQMEARYwCwYJYIZIAWUDBAECMAoGCCqGSIb3DQMHMAsGCSqGSIb3DQEBCjALBgkqhkiG9w0BAQcw CwYJYIZIAWUDBAIBMA0GCSqGSIb3DQEBAQUABIIBAEozfOWU0/jYXl67xIUyD8Ufhe1qW94IGyvD lPONSQs5744YnLbhsnPRenFkhAtomKBobWXp3TulialNZn02YVS1yTAeAYQDvDWfmjLF6gxrs/aV Q47d4uSgNDqTLvgQCXsdAo0oRHnu34w+J84bdBGLe1SX1VPHuc61ewRSd5etrI3rSfPKqFQ+vkSu i1ySM/kKPPKEa2WOfPc96evo25ba3t6EO0jrNgJP7FzykUcl0hlczsRZEtZ3/t7zAbeX4fY2Dnn7 joSGlJqwm2ESoZVmmh9Rbv050jXWq3g7b5RQXUmKMCUA7CUsfOi6NAgRfmi0nxEpnOAMbHzN4jvb STQ= --0000000000000cc58205b8554007--