6. Congestion Control
How do I calculate throughput?
3/4*Wm/RTT
Skype/VoIP
Analog signal converted to digital (VoIP) or peer to peer content distribution (Skype) Delays, congestion, disruption can degrade quality of VoIP
Solution to undelivered packets (dropped) consuming resources?
Apply congestion conttrol to all traffic
Additive Increase
At end of a single round trip of sending, the next set of transmissions allows more packets.
Solution to spurious retransmission?
Better timers and TCP congestion control.
Factors for Incast to occur
Collective communication occurs on high fan-in switches Many small packets arrive at switch at same time (packet loss) Low-latency network (timeout delay much more than RTT of network) Consequence: large delays occur in which system simply waiting for timeouts to occur
TCP is not a good fit for..
Congestion control in streaming audio or streaming video. TCP retransmits lost packets, but not always useful Slows down rate after packet loss Protocol overhead (TCP header of 20 bytes and ack for every packet isn't needed)
Conditions under which the "rule of thumb" was conceived?
Derived from an analysis of a single long lived TCP flow.
What causes congestion collapse?
Dropped packets cause re-transmissions that add additional traffic to the congested path. Excessive delays can cause spurious re-transmissions of packets in flight.
Approaches to Congestion Control
End-to-End congestion control Network assisted congestion control
Quality of Service Techniques
Ensure streams achieve acceptable performance levels. Explicit reservations: mark some packet streams as higher priority: have different queues, with higher priority one served first Scheduling: weighted fair queuing where queue with higher priority served more often not used: Admission control: block traffic if application cannot satisfy the needs, but a "busy signal" for a webpage would be annoying Fixed bandwidth per app: inefficiency so not used
Congestion control goals
Fill the pipes without overflowing them: Use network resources efficiently Preserve fair allocation of resources Avoid congestion collapse
AIMD (Additive Increase Multiplicative Decrease)
Graph of rate over time, TCP sawtooth because TCP increase rate using additive rate until it reaches the saturation point, it'll see packet loss and decrease sending rate by half.
Fairness
How is bandwidth allocated between different flows.
Efficiency
How much of the available bandwidth is used, ideally we would want no bandwidth wasted.
Multiplicative Decrease
If at the end of a single round trip of sending, a packet is not acknowledged, the window size is reduced by half.
TCP Congestion Control Algorithms
Increase: sender must test network to determine whether network can sustain a higher sending rate. Decrease: sender react to congestion to achieve optimal loss rates, delays in sending rates
Media Streaming Challenges
Large volume of data Data volume varies over time Low tolerance for delay variation Low tolerance for delay, period (but some loss acceptable)
Why would you use UDP (rather than TCP) for a live video call software application?
Latency is critical - retransmissions are pointless since they will arrive too late anyway ● Dropped frames aren't a big deal - the next frame will advance the video state before a retransmitted frame could arrive anyway ● Congestion control and flow control could cause unacceptable delays, as video frames get backed up in the sender host's local buffer
What kind of flows do the majority of packets on the link at any given time belong too? (dominates the flow length distribution)
Long lived flows
Audio/video can tolerate which pathologies?
Loss and delay but not variability in delay
What are the current network conditions for which "rule of thumb" does not apply?
Multi-flow networks where some flows are only a few packets, and never leave TCP slow start, and hence never establish an average sending rate. Of the flows that are long lived, they have various RTTs and their congestion windows are not synchronized.
End-to-End congestion control
No feedback from network Congestion inferred by loss and delay
What is the area of the triangle of a sawtooth?
Number of packets sent per packet loss
Effects of Network Congestion
Queueing delay, packet loss or the blocking of new connections.
Network Congestion
Reduced quality of service that occurs when a network node is carrying more data than it can handle.
Statistical modeling of desynchronized long lived flows indicates that smaller buffer sizes are sufficient to maintain link utilization as the number of these long lived flows increases. Why does this still apply to short lived flows?
Required buffer size for this flows depends on actual load on the links and the length of the flows, not the number of flows or propagation delays. This means that roughly the same amount of buffering required for de-synchronized long lived flows will also be sufficient for short lived flows as well.
Network Assisted Congestion Control
Routers provide explicit feedback about the rates that end systems should be sending. Set single bit indicating congestion (TCP ECN or explicit congestion notifications)
What kind of flows are the vast majority of flows across a link?
Short lived
TCP Congestion Control
TCP uses a congestion window in the sender side to do congestion avoidance. The congestion window indicates the maximum amount of data that can be sent out on a connection without being acknowledged. TCP detects congestion when it fails to receive an acknowledgement for a packet within the estimated timeout.
What is congestion collapse?
Throughput that is less than the bottleneck link due to packet loss or long delays. Increase in traffic load suddenly results in a decrease in useful work done. The point where the network reaches saturation and increasing the load results in decreased useful work.
Why does TCP-Reno perform poorly for short lived flows networks with large bandwidth and delay products?
Time required for congestion window to reach max is large. Short-lived flows may never reach a congestion event, thus under utilizing the network.
What protocol is best for streaming video and audio?
UDP (User Datagram Protocol) No automatic retransmission No sending rate adaptation Smaller header
Solutions to incast problem
Use fine grained TCP timeouts (microsec) to reduce that wait time. Reduce network load by having client only acknowledge every other packet.
Two approaches to Adjusting Rates
Window based: sender can only have certain number of packets in flight. Sender uses acknowledgements from receiver to clock the retransmission of data. Rate-based: sender monitors loss rate and uses timer to modulate the transmission rate
How do I calculate loss rate?
Wm^2/8
Collective communication
many-to-one or many-to-many