diff options
| author | eunhhu <[email protected]> | 2026-09-29 05:11:01 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-09-29 05:11:01 +0100 |
| commit | 41cbb5631fd12dc223738de65246af1a69761bea (patch) | |
| tree | a507158cae1a816af2f953e8f8af9bf3974f6771 /research/experiments/010-one-sync-commit/commits.c | |
| parent | a6d0dcdb6a378115ac03d40964d323e82475332a (diff) | |
| download | pure-41cbb5631fd12dc223738de65246af1a69761bea.tar.gz pure-41cbb5631fd12dc223738de65246af1a69761bea.zip | |
Send a record whole when it fits a packet, however many pieces it has
A record over a piece (1,000 bytes) went in pieces even when it fit the
packet whole: a record of 1,013 bytes went as two RECORD frames, and the
receiver gathered it the slow way (an allocation, pieces, then onto the
line). A record none of whose pieces went yet now goes whole in a RECORDS
frame whenever it fits what is left of the packet; its pieces are marked
sent together. A record too large for a packet, or one resent after
some of its pieces were lost, still goes in pieces, and a receiver takes
a record whole or in pieces alike.
The transport alone takes 2.85 us a record of 1,013 bytes, not 3.18
(quinn: 3.90). transport.c now checks every record delivered: in order,
once each, its bytes as sent. None was wrong in a network namespace with
1 ms of delay, 3 % loss and 10 % reordering, with records of 61, 1,013
and 16,013 bytes.
Diffstat (limited to 'research/experiments/010-one-sync-commit/commits.c')
0 files changed, 0 insertions, 0 deletions
