Csee w4140 networking laboratory
Sponsored Links
This presentation is the property of its rightful owner.
1 / 21

CSEE W4140 Networking Laboratory PowerPoint PPT Presentation

  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

CSEE W4140 Networking Laboratory

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

CSEE W4140Networking Laboratory

Lecture 7: TCP congestion control

Jong Yul Kim



  • 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

Slow Start (SS)

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

  • Login