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
Approx. participant count
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
Latency of the order of 100ms
Network Adaptability
Trading latency for scalability
Media Stream
Track 3 (Publisher
Priority 3)
Enhancement Layer 3
Track 2 (Publisher
Priority 2)
Enhancement Layer 2
Track 1 (Publisher
Priority 1)
Enhancement Layer 1
Track 0 (Publisher
Priority 0)
Base
Layer
Track 0
Base
Layer Object
Track 3
E-Layer 3
Object
E-Layer 3
Object
Track 2
E-Layer
2
Object
E-Layer 2
Object
Track 1
E-Layer 1
Object
E-Layer 1
Object
Track 0
Base Layer
Object
Base
Layer Object
Track 3
E-Layer 3
Object
E-Layer 3
Object
E-Layer 3
Object
Track 2
E-Layer
2
Object
E-Layer
2
Object
E-Layer 2
Object
Track 1
E-Layer 1
Object
E-Layer 1
Object
E-Layer 1
Object
Track 0
Base Layer Object
Base Layer
Object
Base
Layer Object
Track 3
E-Layer 3
Object
E-Layer 3
Object
E-Layer 3
Object
Track 2
E-Layer
2
Object
E-Layer
2
Object
E-Layer
2
Object
Track 1
E-Layer 1
Object
E-Layer 1
Object
E-Layer
1
Object
Track 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=64mbps
delay=20ms ± 2ms
1mpbs
2mpbs
4mpbs
8mpbs
16mbps
loss=0.5%
bitrate=64mbps
delay=20ms ± 2ms
1mpbs
2mpbs
4mpbs
8mpbs
16mbps
This protocol is very bad
https://en.wikipedia.org/wiki/Brachiosaurus
This protocol is very bad
We have stream priorities only at the transport layer
The application is aware of the deadline
Not the transport layer
Add Deadline awareness at the transport layer
We make a couple of changes
DELIVERY_TIMEOUT
BBR
Estimate Delivery Time Point
Every time a Data Frame is written:
ExpectedDelay = (BytesInFlight + PendingDataInStream)
/ ExpectedBandwidth
if (CurrentTime + ExpectedDelay > Deadline)
Stop the send
Abort the stream
We have made necessary changes to MsQuic to query BytesInFlight
and
BBRBandwidth
We do some correction on BBRBandwidth
to get the
ExpectedBandwidth
Linear Latency Cost - Exponential Scalability
graph LR
classDef circle stroke:#ffffff,stroke-width:2px,color:#ffffff;
B((#nbsp;#nbsp; #nbsp; Relay1)):::circle
C((#nbsp;#nbsp; #nbsp; Relay2)):::circle
D((#nbsp;#nbsp; #nbsp; Relay3)):::circle
S4[Subscribers]
Publisher --> B
B --> C
C --> D
D --> S4
Relays forward data as they receive
loss=0%
delay=20ms ± 2ms
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