Common HTTP Latency
- One-way streams
- Live events
- Large audiences
- Linear programming
Reduced Latency
- OTT (over the top) providers
- Live streaming
- News & sports
Low Latency
- UGC (user generated content)
- Live streams
- Video game streaming
Near Real-Time
- Two-way web conferencing
- Real-time device control
1-5 seconds
RTSP
LL-HLS
LL-DASH
Let us try something better
https://www.cardinalpeak.com/blog/understanding-and-choosing-the-right-streaming-protocol
Cons of existing protocols
A tug of war between Latency and Scalability
Cons of existing protocols
A tug of war between Latency and Scalability
https://www.phenixrts.com/resource/super-bowl-2024
Cons of existing protocols
A tug of war between Latency and Scalability
Participant count of various platforms
Zoom |
1k |
1M |
Teams |
1k |
20k |
GMeet |
500 |
1k |
Webex |
1k |
100k |
|
https://www.phenixrts.com/resource/super-bowl-2024
|
Single protocol which can be setup for latency or scalability
This talk focuses on MOQT as a solution for low latency transport
Cons of existing protocols
Latency
Why do we want lower latency?
What do we mean by Latency?
Time taken by A to communicate information with B
What do we communicate between server and client?
What do we communicate between server and client?
Media
Congestion Control Information
High latencies mean slower adaptation to network conditions.
Enhancement Layer
3
Enhancement Layer
2
Enhancement Layer
1
Base Layer
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
Enhancement Layer
3
Enhancement Layer
2
Enhancement Layer
1
Base Layer
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
Enhancement Layer
3
Enhancement Layer
2
Enhancement Layer
1
Base Layer
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
Enhancement Layer
3
Enhancement Layer
2
Enhancement Layer
1
Base Layer
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
One of two scenarios play out
Protocol with strict timing guarentees without compromising on latency
Track
Group 3 (Publisher
Priority 3)
Enhancement Layer 3
Group 2 (Publisher
Priority 2)
Enhancement Layer 2
Group 1 (Publisher
Priority 1)
Enhancement Layer 1
Group 0 (Publisher
Priority 0)
Base
Layer
Group 0
Base
Layer Object
Group 3
E-Layer 3
Object
E-Layer 3
Object
Group 2
E-Layer
2
Object
E-Layer 2
Object
Group 1
E-Layer 1
Object
E-Layer 1
Object
Group 0
Base Layer
Object
Base
Layer Object
Group 3
E-Layer 3
Object
E-Layer 3
Object
E-Layer 3
Object
Group 2
E-Layer
2
Object
E-Layer
2
Object
E-Layer 2
Object
Group 1
E-Layer 1
Object
E-Layer 1
Object
E-Layer 1
Object
Group 0
Base Layer Object
Base Layer
Object
Base
Layer Object
Group 3
E-Layer 3
Object
E-Layer 3
Object
E-Layer 3
Object
Group 2
E-Layer
2
Object
E-Layer
2
Object
E-Layer
2
Object
Group 1
E-Layer 1
Object
E-Layer 1
Object
E-Layer
1
Object
Group 0
Base Layer Object
Base Layer
Object
Base
Layer Object
loss=0.5%
bitrate=16mbps
delay=20ms 2ms
1mpbs
2mpbs
4mpbs
8mpbs
16mbps
loss=0.5%
bitrate=16mbps
delay=20ms 2ms
1mpbs
2mpbs
4mpbs
8mpbs
16mbps
101 (201)
101 (160)
96 (150)
0 (15)
0 (0)
loss=0.5%
bitrate=8mbps
delay=20ms 2ms
1mpbs
2mpbs
4mpbs
8mpbs
16mbps
loss=0.5%
bitrate=8mbps
delay=20ms 2ms
1mpbs
2mpbs
4mpbs
8mpbs
16mbps
loss=3%
bitrate=4mbps
delay=20ms 2ms
1mpbs
2mpbs
4mpbs
8mpbs
16mbps
loss=0.5%
bitrate=65mbps
delay=20ms 2ms
1mpbs
2mpbs
4mpbs
8mpbs
16mbps
loss=0.5%
bitrate=65mbps
delay=20ms 2ms
1mpbs
2mpbs
4mpbs
8mpbs
16mbps
Why not to use this protocol
Lot of packets being sent end up getting discarded when streams are aborted
Mathematical estimate of   > 25%
Breaks in case of bad network conditions
How do we solve this?
Simple
Do not advance groups if base layer is stalled
Unfortunately it isn't simple
We add a secondary structure in our Object Hierarchy
Objects in different groups are meant to be independent,
but we have added a weak dependence between objects in 2 groups
Suggested Enchancements to the exisitng draft
Suggested Enchancements to the exisitng draft
A must send priority for
publishers and subscribers
ACK
- Dr. Madhan
- Introducing me to this project and mentoring me
- Prof S. Krishnamoorthy + DAWN Lab, IITM
- Guidance and Peer Group
- Server Infrastructure for testing