OTT Streaming over an Application-Layer Overlay
CORE
Built a prototype CDN-style OTT service: overlay nodes + PoPs distribute RTP video streams to multiple clients with dynamic route costs and basic failure recovery.
Implemented an application-layer overlay in Python on the CORE emulator. A bootstrapper provisions neighbor sets from a JSON topology; nodes exchange periodic HELLOs and routing info, compute path costs from latency and packet loss, and forward streams along best routes. Clients select the best PoP using RTT + path cost, then control playback via RTSP and receive video via RTP over UDP. Added teardown propagation and recovery behaviors on node/PoP failure.
Highlights
- Bootstrapper-driven overlay formation from JSON topology; nodes join/leave without breaking the system.
- Route cost combines measured latency and packet loss; routing tables update dynamically from HELLO exchanges.
- Client selects the best PoP using RTT + path cost; playback control via RTSP, media via RTP over UDP.
- Demonstrated multi-client streaming and resilience to node/PoP failures with teardown + re-request behavior.
What I did
- Implemented bootstrapper config distribution and node neighbor initialization.
- Implemented message framing/types and the periodic HELLO + routing-table exchange.
- Implemented client PoP selection (RTT measurement + weighted cost) and RTSP control flow.
- Implemented RTP receive/reassembly logic (chunking/marker bit) and forwarding on overlay nodes.
- Implemented failure detection (HELLO timeout) and recovery behaviors for ongoing streams.
Stack
- Python
- Sockets (UDP/TCP)
- Threads
- CORE emulator
- RTP/RTSP