Reliable Video Transfer over UDP
A hand-rolled reliability layer over raw UDP sockets in C — sequence numbering, acknowledgements, gap detection, and retransmission — built to understand what TCP does by implementing a subset of it.
- C
- POSIX sockets
- pthreads
A client/server pair in C, , that transfers video files over raw UDP sockets and layers its own reliability mechanism on top — essentially a hand-rolled subset of what TCP gives you for free.
Packets are sequence-numbered so the receiver can detect gaps and reorder arrivals; the server tracks per-packet delivery state and drives retransmission requests for anything missing. That asymmetry — the server does most of the ACK bookkeeping — matches a design where the receiver, not the sender, decides what's still outstanding.
This is a learning exercise, not a production transfer tool, and I'd frame it that way in an interview rather than defending it as a real alternative to TCP: the honest answer to "why not just use TCP" is that the point was implementing the reliability layer myself, not shipping the fastest possible transfer.