<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pure/research/experiments/020-lossy-paths/run.py, branch master</title>
<subtitle>Verified execution runtime unifying state, persistence, and replication.
</subtitle>
<id>http://git.yeowoo.org/pure/atom?h=master</id>
<link rel='self' href='http://git.yeowoo.org/pure/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/'/>
<updated>2026-09-29T15:57:02Z</updated>
<entry>
<title>Put ngtcp2 beside quinn in M6, as it is in M5</title>
<updated>2026-09-29T15:57:02Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-29T15:57:02Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=1d6d2430960622589f6c11220e09ba4b6dba2989'/>
<id>urn:sha1:1d6d2430960622589f6c11220e09ba4b6dba2989</id>
<content type='text'>
drain.c takes a rate and seconds as quinn's client does (paced messages
stamped with the time they were written, and no more written past the
seconds), and its service writes quinn's line for each stream: the
messages read in each 100 ms and how long they took. 020's run.py runs
it as a third, on port 40005 behind the same bottleneck, and --who
picks whom to run.
</content>
</entry>
<entry>
<title>Let M6's path waver by 1 ms when flows share it, and count from 20 s of 60</title>
<updated>2026-09-29T09:48:59Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-29T09:48:59Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=34fc79fe568784294a274851e3040c1171af1fe2'/>
<id>urn:sha1:34fc79fe568784294a274851e3040c1171af1fe2</id>
<content type='text'>
With a fixed delay the drop-tail queue dropped one flow's packets eight
times as often as the other's by their phases alone (Floyd and Jacobson,
1992): Pure took 0.63-0.77 of the path from TCP and 0.69 from quinn,
0.47 from itself, and 0.49 under fq_codel. With 1 ms of jitter it takes
0.53 at an RTT of 20 ms.
</content>
</entry>
<entry>
<title>Start M6's flows together, each a process, and count their shares from 10 s</title>
<updated>2026-09-29T08:27:50Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-29T08:27:50Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=37d1ffb8b749cd9a0d7e4e2829a84d11e38c0991'/>
<id>urn:sha1:37d1ffb8b749cd9a0d7e4e2829a84d11e38c0991</id>
<content type='text'>
The TCP flow started first and in a thread of the runner; two TCP flows
split 0.31 to 0.56. Now every flow is a process started at once, run
40 s, counted from 10 s on.
</content>
</entry>
<entry>
<title>Queue only the way to the receivers behind M6's bottleneck</title>
<updated>2026-09-29T07:30:30Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-29T07:30:30Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=fb573903562695af47b63f91a9e96f55d0661d94'/>
<id>urn:sha1:fb573903562695af47b63f91a9e96f55d0661d94</id>
<content type='text'>
tbf with netem under it lost tbf's queue (netem became it), and the
answers queued behind the data. Now each way has its netem, the way to
the receivers' ports then a tbf whose queue holds a round trip; the way
back does not queue. transport.c takes its listener's port
(TRANSPORT_PORT).
</content>
</entry>
<entry>
<title>Measure a link on a path of loss, reordering and a bottleneck (M6 harness)</title>
<updated>2026-09-29T06:44:50Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-29T06:44:50Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=6a72b5c8164ceb73994ab231a075cfb0ad1d7192'/>
<id>urn:sha1:6a72b5c8164ceb73994ab231a075cfb0ad1d7192</id>
<content type='text'>
020-lossy-paths/run.py runs each case in an unprivileged namespace: a
50 Mbit/s tbf bottleneck under netem's delay, jitter and loss, both
ways. A link may send without UDP GSO (pure_link_gso), as netem takes a
burst as one packet; quinn the same (QUIC_GSO=0). transport.c and the
quinn harness give the records handed over in each 100 ms, and at a
steady rate the time each took; TCP CUBIC flows run beside them.
</content>
</entry>
</feed>
