210 likes | 321 Views
CSEE W4140 Networking Laboratory. Lecture 7: TCP congestion control Jong Yul Kim 03.04.2009. Announcements. Midterm next week in class(1:10~2:25 pm) Problems from the lab exercises, quiz Subnets Network protocols Similar to ARP exercises we did in class
E N D
CSEE W4140Networking Laboratory Lecture 7: TCP congestion control Jong Yul Kim 03.04.2009
Announcements • Midterm next week in class(1:10~2:25 pm) • Problems from the lab exercises, quiz • Subnets • Network protocols • Similar to ARP exercises we did in class • For example, learn how TCP sequence numbers, ACK numbers work • Problems about debugging networks • Lab 5 part 2 after Spring Break • Lab report for lab 5 part 1 is due after spring break
Short review of TCP from last time • Characteristics of the IP network • Delivers packets from host to host • May lose packets (discarded by routers) • Doesn’t care about packet order • TCP is a • reliable, • in-order, • byte-stream service • (delivers data from application to application)
Short review of TCP from last time • TCP is a reliable, in-order, byte-stream service • The beauty of TCP is that it works without explicit support from the network • Each end of the connection cooperate to make sure packets are delivered reliably and in order • Techniques used by TCP • Sequence numbers • Acknowledgements (and numbers) • Retransmissions • Timer
Today’s lecture • TCP Flow Control • Throttling the rate of sender so that the receiver’s buffer does not overflow • TCP Congestion Control • Throttling the rate of sender in the face of network congestion
TCP Flow Control (Receive Window) • When a connection is established, the receiver allocates a receive buffer. • Incoming packets are stored in the buffer so that the application can read data from the buffer.
TCP Flow Control (Receiver behavior) • The receiver lets the sender know: • how much space is left in the buffer= RcvWindow • by placing that value in the window size field • in every segment that it sends to the sender
TCP Flow Control (Sender behavior) • Sender can fill up the spare room in the receiver’s buffer by sending more data • Sender maintains the size of data that has already been sent but unacknowledged = bytes_unACKed • Makes sure that • bytes_unACKed ≤ RcvWindow
Network Congestion • Why does congestion occur? • Too many senders sending at high rate • Routers dropping packets due to overflowing buffers • What are the symptoms? • Packet loss • Packet queuing delay • More retransmission more packet loss • Link bandwidth wasted on retransmissions
TCP Congestion Control • Remember: TCP has no support from the network about congestions • Need to use end-to-end congestion control • TCP relies on perceived network congestion and throttles the sending rate accordingly
How does TCP know there is congestion in the network? • Answer: packet loss • Timeout • Three duplicate ACKs shown in diagram on right
How does TCP limit sending rate? • Using a variable called congestion window = CongWin • Size of unacknowledged data must be less than CongWin bytes_unACKed ≤ CongWin • Sending rate is roughly CongWin/RTT bytes/sec We can throttle the sending rate by controlling CongWin
TCP Congestion Control Algorithm • Is an algorithm that controls CongWin • Simply stated: • Packet loss (=congestion) decrease CongWin • All is well increase CongWin • Three main parts • Additive-Increase, Multiplicative Decrease • Slow Start • Reaction to timeout events
Additive Increase, Multiplicative Decrease (AIMD) • Additive Increase • Increase CongWin by 1 MSS every RTT while there is no packet loss • Multiplicative Decrease • Decrease CongWin by half when packet is lost
Additive Increase, Multiplicative Decrease (AIMD) Congestion Avoidance phase
Slow Start (SS) • When connection is established • CongWin is set to 1 MSS • Increase CongWin by 1 MSS every ACK • Different from Additive Increase • Until a loss occurs • Result is an exponentially fast growth in sending rate
Reaction to Timeouts • We already discussed that TCP perceives congestion through packet loss • Packet is considered lost when: • Timeout occurs • Three duplicate ACKs are received • But timeouts and three duplicate ACKs are different. • What do they tell about the severity of congestion?
Reaction to Timeouts • Let’s do something different for timeout. • Reset CongWin to 1 MSS • Begin again from Slow Start • Slow start (exponential increase) until when? • New variable called Threshold • Threshold is set to ½ CongWin • After Threshold, do AIMD instead of SS
Three-Way Handshake Why is two-way handshake not enough?
Main Points of Lab 5 Parts 5~8 • More about TCP • Interactive applications over TCP • Data transfer applications over TCP • Retransmissions • Congestion Control • Parts of Lab 5 may not be done because of the use of serial WAN link