6-Congestion control & streaming Flashcards
..deals with handling bandwidth constraints on links
Resource control
Goal: “Fill the pipes without overflowing them”
Congestion control (remember the sink analogy)
Throughput that is less than the bottleneck link
Congestion collapse
Increase in load -> decrease in work
Collapse
Causes of collapse
1) Spurious re-transmission
2) Undelivered packets
Have better timers and use TCP congestion control
Solution to Spurious re-transmission
Apply congestion control to all traffic
Solution to Undelivered packets
Possible causes of congestion collapse
1) Spurious re-transmissions of packets in flight
2) Undelivered packets that consume resources in the network but achieve no useful work
2 main goals of congestion control:
1) Use network resources efficiently
2) Preserve fair allocation of resources for all senders
3) avoid congestion collapse
2 approaches to congestion control
1) End to End: Network provides no explicit feedback to the senders on when they should slow down their rates. No feedback from network (TCP)
Instead Congestion inferred by packet loss and delay
2) Network -Assisted: Routers provide feedback
-> set bit
-> explicit rates
TCP Congestion control
Senders continue to increase their rates until they see packet drops in the network. (Also known as AIMD)
TCP interprets packet loss as congestion and
slows down
TCP Congestion control
Increase algorithm: sender must test the network to determine if the network can sustain a higher sending rate
Decrease algorithm: Senders react to congestion to achieve optimal loss rates, delays and sending rates
Two approaches to adjusting rates
1) Window- based (AIMD) or additive increase/multiplicative decrease (Most common approach)
2) Rate-based: sender monitors the loss rate and uses a timer to modulate the transmission rate.
Main two goals of TCP congestion control
1) Efficiency: network resources are used well.
2) Fairness: every sender gets their “fair share” of the network resources.
RTT: 100 ms
Packet: 1kb (1 byte = 8 bits)
Window size: 10 packets
100 ms = .1 secs
10 packets/.1 secs = 100 packets/sec
1 kb = 1024 * 8 = 8192 * 100 = 819,200 or ~800,00 bps
AIMD: Converge to fairness & efficiency
Phase plot
AIMD (TCP Congestion Control)
TCP “Sawtooth” Distributed, fair, efficient
TCP throughput collapse problem. A drastic reduction in application throughput that results when servers using TCP all simultaneously request data.
TCP “Incast” problem
Common request pattern in data centers where a client or application may have many parallel threads and no forward progress can be made until all the responses for those threads are satisfied.
Barrier Synchroniztion
- Micro sec granularity
- ACKS for every other packet
Possible Solutions to TCP “Incast” problem?
1) Finer granularity timers
2) fewer acknowledgements (acknowledge every other packet)
Challenges of multimedia streaming
1) Large Volume of data
2) Data volume varies over time
3) Users have a low tolerance for delay variation
4) Low tolerance for delay, period.
* Some loss is acceptable
Digitizing Audio & Video:
Speech
8000 samples/sec
8 bits/sample
Rate: 64 kbps
8000 samples/sec * 8 bits/sample = 64000 bits/sec = 64kb/sec or 64 kbps
Image compression->spatial redundancy
Compression across images -> temporal redundancy
Video Compression (common video compression format is called mpeg)