[Flent-users] IRTT UDP-lite support
pete at heistp.net
Fri Mar 8 21:25:40 EET 2019
I had a tip to consider adding UDP-lite support for IRTT so I’m first thinking through how this might be helpful and how it would work.
The short summary of UDP-lite is that it allows sending partially damaged packets, with an optional checksum for some bytes at the beginning of the packet (for example, for a packet header). It uses a different IP protocol number (136 instead of 6), so a socket either listens for regular UDP or UDP-lite. Otherwise, UDP-lite is semantically the same as UDP.
Potentially, I could add flags to the client and server to use UDP-lite (or allow specifying a separate port for UDP-lite on the same server). I would still have UDP-lite checksum the IRTT header, because if I can’t assume I have a valid header error then checking will probably get rather complicated. So if there’s damage to the header the packet would be dropped without my knowing, but if the damage occurs in the payload I’d still receive it, then I could add an optional checksum and/or length in the header to detect corruption in the body and keep a count of corrupted packets.
I’m not sure yet how well UDP-lite does through NAT.
But basically, it could be used to estimate how much corruption is occurring on the path from client to server, so we can distinguish between corruption and dropped packets. Presumably this would mainly be useful for mobile networks (not WiFi though, as I think it does it’s own checksums / error correction).
More information about the Flent-users