SCReAM – Self-Clocked Rate Adaptation for Multimedia

advertisement
SCReAM – Self-Clocked Rate
Adaptation for Multimedia
draft-johansson-rmcat-scream-cc
Ingemar Johansson
Zaheduzzaman Sarker
Ericsson Research
Main features
Self-clocked
framework similar
to TCP
Congestion control
based on LEDBAT
(RFC6817)
draft-johansson-rmcat-scream-cc | IETF 90 RMCAT WG | Zaheduzzaman Sarker | Page 2
Functional split
between
• Network congestion
control
• Transmission scheduling
according to packet
conservation principle
• Media rate adaptation
Congestion Window
Validation
• For proper handling of rate
limited sources.
• Inspired by TCPM’s new
CWV
other features
Fast start : Video bitrate ramps up in ~5s.
Packet pacing : Reduces jitter and packet loss, caused by
coalescing (a.k.a ACK compression).
Frame skipping: Momentary fix for the mismatch between source
bitrate and available channel bandwidth.
Frame blanking : Video is put on hold for a short period (~1RTT)
for the purpose of
• Adjusting delay target to competing flows (specially TCP)
• Enforcing fairness between flows
draft-johansson-rmcat-scream-cc | IETF 90 RMCAT WG | Zaheduzzaman Sarker | Page 3
Why self-clocking?
Stable, consistent
behavior
Robust and reactive
to sudden drops in
throughput and
impaired feedback
Less need for highresolution timers
Built-in circuit
breakers
functionality
Seems to work over
a large span of test
cases
Based on already
established
technologies
Tuning is not critical
Loss of feedback
delays transmission
slightly
Well Known technology (TCP) at the bottom
draft-johansson-rmcat-scream-cc | IETF 90 RMCAT WG | Zaheduzzaman Sarker | Page 4
Feedback message
› RFC4585 Transport layer feedback message
› RFC5506 (Reduced size RTCP) is highly recommended
0
1
2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|
FMT
|
PT
|
length
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
SSRC of packet sender
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
SSRC of media source
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Timestamp (32bits)
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Highest recv. seq. nr. (16b)
| ECN echo
|Q|R|R|R|R|R|R|R|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
ACK vector (32b)
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
draft-johansson-rmcat-scream-cc | IETF 90 RMCAT WG | Zaheduzzaman Sarker | Page 5
Functional
overview (simplified)
Video frames are inserted in queue (2)
Media rate adaptation inspects queue depth and
adjusts video bitrate (1)
Skip frames command may be sent to video
encoder if queue exceeds a threshold (3)
Encoded RTP packets are transmitted if bytes in
flight < CWND (5,6)
RTCP feedback packets are decoded and network
congestion control is updated (7)
draft-johansson-rmcat-scream-cc | IETF 90 RMCAT WG | Zaheduzzaman Sarker | Page 6
---------------------------|
Video encoder
|
---------------------------^
|
^
(1)|
(2)|
(3)|
|
RTP
|
|
V
|
|
------------- |
----------|
|-| Rate
| (4) |
Queue
|
| control |<----|
|
|
|
|RTP packets|
----------|
|
------------|
----(5)|
RTP
|
v
----------------------------| Network
| (8) | Transmission |
| congestion |<--->|
scheduler |
| control
|
|
|
----------------------------^
|
|
(7)
|(6)
-------RTCP------ RTP
|
|
|
v
------------|
UDP
|
| socket
|
-------------
Sender queue handling
Encoded frames (RTP
packets) are
temporarily stored in
sender queue
But sender queue can still grow or
grow too quickly for video rate
adaptation to react properly..
•Sudden, possibly temporary large drops in
throughput
•Throughput is lower than the lowest possible
video bitrate
• Queue is empty most of the
time
Not possible to send more
data than what is
acknowledged
•Sender queue can grow when
throughput drops
•Reduce bitrate to make queue
shrink
draft-johansson-rmcat-scream-cc | IETF 90 RMCAT WG | Zaheduzzaman Sarker | Page 7
Two remedies
• Frame skipping
• Video encoder reduces frame
rate temporarily
• Video codec state is preserved
• Frame dropping
• Encoded frames are dropped
• Video codec state must be
restored
example
› LTE DL test case, one user
IP packet and video frame delay [s]
0.2
Video frame
IP packet
Sender queue delay
OWD
0.1
0
0
5
10
15
20
25
30
Throughput [Mbps] and scaling factor
1.5
1
0.5
Throughput
Scaling factor
0
0
5
15
20
25
30
Congestion window and bytes in flight
4
4
10
x 10
CWND
Bytes in flight
2
0
0
5
10
15
T[s]
draft-johansson-rmcat-scream-cc | IETF 90 RMCAT WG | Zaheduzzaman Sarker | Page 8
20
25
30
Conclusion
Rate adaptation based
• High throughput
on self-clocking is
shown to work well in • Prompt response to signs of congestion
simulations.
Concept combines
elements
Framework is
inherently stable
against
• Self-clocking similar to TFWC for conformance
to packet conservation principle
• LEDBAT congestion control
• Congestion Window Validation techniques
• Feedback loss
• Sudden drops in throughput
draft-johansson-rmcat-scream-cc | IETF 90 RMCAT WG | Zaheduzzaman Sarker | Page 9
Buzz words
› CWND : Congestion window, determines max number of bytes in
flight, size depends on estimated network queuing delay and packet
loss or ECN
› Bytes in flight
› OWD : One way (extra) delay. An estimate of how much the queues
in the network increase
Transmitted
RTP SN
SN-7
SN-6
SN-5
ACKed
RTP SN
SN-7
SN-6
SN-5
draft-johansson-rmcat-scream-cc | IETF 90 RMCAT WG | Zaheduzzaman Sarker | Page 10
SN-4
SN-3
SN-3
SN-2
SN-1
SN
Bytes in flight
Download