What is congestion control?
Goal: ‘Fill the internet pipes without overflowing them’
‘Watch the sink, slow down the water flow if it begins to overlow’
What is congestion collapse?
Increase in load -> decrease in useful work done: throughput is less than the bottleneck link.
What are the causes of congestion collapse?
Spurios Retransmission: Senders don’t receive ACK in reasonable time, they retransmit the packet. The results in many copies of the same packet being outstanding.
Undelivered Packets: Packets consume resoursces and are dropped elsewhere in the network
Solution: TCP Congestion control to all traffic!
What are the goals of congestion control?
What are the two approaches to congestion control?
End to End (What TCP uses)
Network-Assisted
How does TCP congestion occur?
* TCP interprets packet loss as congestion and slows down
What is the window-based approach to adjusting transmission rates?
What is Rate Based congestion control (as opposed to window based congestion control)?
* Uses timer to modulate transmission rate
Calculate the Sending Rate for the following:
RTT = 100ms
Packet: 1kB
Window Size: 10 Packets
What is fairness and efficiency in congestion control?
Fairness:
* everyone gets their fair share of resources
Efficiency:
How does AIMD converge to optimal fairness and efficiency?
Describe TCP Incast
Drastic reduction in application network throughput when large number of servers using TCP all make simultaneous requests.
Results b/c of:
Results in bursty, retransmission
When TCP timeout occurs, have to wait hundreds of ms for timeout to occur, but RTT inside DC network is < 1ms, or even us, so throughput is reduced by up to 90% because of link idle time (waiting for TCP timeout to occur)
How do you calculate average AIMD throughput?
(3/4) * (Wm/RTT)
What are solutions to TCP incast?
What are some challenges of streaming data?
How is video compression performed?
* Compression across images -> temporal redundancy
Why is TCP not a good fit for congestion control for streaming data?
UDP:
+ No Retransmission
+ No Sending rate adaption
How are youtube and skype implemented?
Youtube: Decided to keep it simple and still use HTTP/TCP
Skype: Peer to Peer (P2P)
* Individual users route voice traffic through one another
How does QOS Work?
Marking and Policing
* Marking and Scheduling - mark packet with higher priority then they can be put into a higher priority queue. Schedule that queue so it’s serviced more often than lower priority queues.
Describe the different traffic classifications
CBR - Constant bit rate (audio)
VBR - variable bit rate (video, data)
What is leaky bucket traffic shaping?
(Isochronous)
Beta = size of bucket
rho = drain rate from bucket (average rate)
Sender can send bursty traffic as long as it doesn’t overfill the bucket
Larger bucket = larger burst
larger drain rate = enable faster packet rate
Example Audio Stream
So could possible accept a burst up to 16 packets, but will constantly deliver 8 packets/s out of the bucket.
What is (r, T) traffic shaping?
Typically limited to fixed rate flows.
If flow exceeds rate, those bits are assigned a lower priority and may be dropped.
What is a token bucket?
Shapes bursty traffic patterns - bounded by the rate, rho.
If ‘b’ is packet size, < beta:
In general, you must wait for packet size bits to be present in the bucket at which point they will be sent.
difficult to police traffic sent by token buckets.
bound in token bucket is:
Over any interval T, rate < Beta + T*rho
You can always send at rate Rho - if you want to send a burst of > rho, you use the bucket size. So if rho = 6Mbps and you want to send at 10Mbps for 0.5s, you need: (10 - 6)*0.5 = 2Mb = 250KB = beta.
How do you police a token bucket shaper?
To use a composite shaper: Combined token bucket shaper + leaky bucket shaper. Token feeds the leaky.