aboutsummaryrefslogtreecommitdiffstats
path: root/serve
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-29 18:09:32 +0100
committereunhhu <[email protected]>2026-09-29 18:09:32 +0100
commited118d278e4f088a0416f11db96951231cb6851e (patch)
tree825ca25e237b98272cb3196e9f00ce513fb9bcc3 /serve
parentd42657ec7d92b412d26da4f448c1f26d0aa1783f (diff)
downloadpure-ed118d278e4f088a0416f11db96951231cb6851e.tar.gz
pure-ed118d278e4f088a0416f11db96951231cb6851e.zip
Size a receiver's credit by what it holds, not 1,024 records
A receiver gave every stream a credit of 1,024 records past its last stored, however small the records: a link carried at most 1,024 records a round trip. On a path of 100 ms that is 10,000 records a second of 61 B, a ninth of what 50 Mbit/s carries (the path simulator: 9,953 a second, 90,814 at 10 ms); and records of 1 KiB, a queue's worth of them in flight, went a record or two a packet as each STORED let a few more through (M6: 107,968 packets where 20 ms took 84,106). A receiver bounds what it holds of a stream (16 MiB) apart, so its credit is now what fits there at the size its last delivery's records had: 1 to 65,536 (what a sender takes), 1,024 before any delivery. It takes records that far past its last stored, as its memory lets it. Simulator at 100 ms: 56,296 records a second of 61 B. M6 at 100 ms: 45.4 Mbit/s of 1 KiB records in 83,566 packets (44.9 in 107,968). The window, not the credit, now fills the bottleneck's queue: losses there where the credit hid them (61 B at 10 ms: 87,130 a second, 1,371 lost). 012 says so.
Diffstat (limited to 'serve')
0 files changed, 0 insertions, 0 deletions