BrianZill
BrianZill
I happened to notice today that the UDP receive path makes an extraneous buffer copy during [header parsing](https://github.com/demikernel/demikernel/blob/master/src/rust/inetstack/protocols/udp/datagram/header.rs). The problem lies with how the header parsing is structured: there is...
The buffers we currently pass around everywhere can be created (either empty, or from a slice of an u8 array), adjusted (have an amount taken from the start), and trimmed...
There are currently two implementations of the basic sender algorithm, one for immediate sending, and one for background sending. They should do roughly the same thing, although they currently don't,...
TCP has an optional feature called Selective Acknowledgement (SACK) which allows a receiver to acknowledge chunks of data, rather than just a single cumulative value. In certain situations, this can...
TCP has an optional "Timestamps" feature which provides a mechanism for taking considerably more accurate time measurements (used to determine the round-trip time, or RTT). Accurate and timely RTT measurements...
TCP has an optional feature called Protection Against Wrapped Sequences (PAWS) which improves TCP reliability on very high-speed networks by protecting against old duplicate packets arriving for the same connection...
Description ======== Currently in catnip's [`MemoryPool::alloc_mbuf`](https://github.com/demikernel/demikernel/blob/f40362c5110348327dc9eea3b11ab588e36ee2b3/src/rust/catnip/runtime/memory/mempool.rs) function there is[ a check to see "if allocated buffer is big enough" that compares the desired size (a `usize` taken `as u16`) against...
TCP sequence numbers are 32-bit values, which limits the "distance" between sequence numbers that can be reasonably compared to be "greater than" or "less than" the other. Also, even with...
Description ======== First the good: catnip's Ephemeral Port allocator uses the correct (RFC 6335 designated) range. And it allocates them in a random fashion (recommended to thwart certain types of...
We don't currently have an IP layer on the send side. TCP code calls ARP directly to resolve IP to link-layer addresses, composes all the packet headers itself, and submits...