Skip to content
All projects

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.

· Solo
  • 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.