From 315c1f970c2ae482bceec2a9cc8666e6cb380a81 Mon Sep 17 00:00:00 2001 From: eunhhu Date: Tue, 29 Sep 2026 13:55:09 +0100 Subject: Send no packet only to probe the path or say a challenge back M2 (ten thousand devices, a record each every 5 s) sent 118k packets for 80k records. A link whose packets were never full still probed for a 1,452-byte path: nothing larger would have been carried. And a sender said a receiver's challenge back in a packet of its own, one for each device each time the receiver started. Now a link probes once a packet of its was full, and a challenge rides in the next packet that goes (records, or a probe). Until then the receiver's answers there are at most three times what came, which the answers to one packet are not; when they are held back, the sender's probe or record sent again says it back. M2 sends 80,036 again (docs/research/099-link-epochs.md). --- link/link-protocol.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'link/link-protocol.h') diff --git a/link/link-protocol.h b/link/link-protocol.h index 9b4e63d..f121b2e 100644 --- a/link/link-protocol.h +++ b/link/link-protocol.h @@ -68,7 +68,8 @@ * whole, with 1 to 3 bytes of framing, not the 19 of RECORD * 0x07 CHALLENGE u64: a receiver's, until its sender says it back from * the address the answers go to - * 0x08 RESPONSE u64: a challenge said back (the last few had) + * 0x08 RESPONSE u64: a challenge said back (the last few had), in the next + * packet that goes (records, or a probe) * 0x00 PADDING to the end of the packet: a full packet sent in a burst is * a whole datagram * Losses are detected as RFC 9002 says, with RACK's patience for packets @@ -76,9 +77,11 @@ /* A packet is PURE_LINK_DATAGRAM bytes at most at first, and up to * PURE_LINK_DATAGRAM_MOST once the path is found to carry that many (a - * probe of that size acknowledged: DPLPMTUD, RFC 8899); a source's or an - * input's name is 1 to PURE_LINK_NAME bytes; a receiver keeps where a - * packet came from (the socket's address) in PURE_LINK_ADDRESS bytes. */ + * probe of that size acknowledged: DPLPMTUD, RFC 8899; a link probes once + * a packet of its was full, else a larger one would carry nothing more); a + * source's or an input's name is 1 to PURE_LINK_NAME bytes; a receiver + * keeps where a packet came from (the socket's address) in + * PURE_LINK_ADDRESS bytes. */ enum { PURE_LINK_DATAGRAM = 1200, PURE_LINK_DATAGRAM_MOST = 1452, PURE_LINK_NAME = 64, PURE_LINK_ADDRESS = 28 }; /* Counts for a host's report: packets and records sent, records sent again, -- cgit v1.2.3