Documents
Resources
Learning Center
Upload
Plans & pricing Sign in
Sign Out

congestion

VIEWS: 3 PAGES: 30

									    Lecture 8
Congestion Control

        EECS 122
  University of California
         Berkeley
    TOC: Congestion Control
           The Problem
           Questions
           Approaches
           TCP: Algorithm
           TCP Refinements
           Summary




EECS 122                Walrand   2
    Congestion Control: The Problem
           Flows share links:




How to share the links bandwidth?

EECS 122                   Walrand   3
    Congestion Control: Questions
           What should be the ideal sharing?
              Does it matter?
              Discovering available bandwidth
              What is fair?




EECS 122                     Walrand             4
     Questions: Does it matter?
           Congestion occurs
              Access link
                 Slow link (56k, DSL, T1, wireless, …)
              Access network
                 E.g., behind the DSLAM
           Can improve treatment of flows
              E.g., one flow should not get a much
               smaller fraction of bandwidth
              Some flows might need some guaranteed
               bandwidth


EECS 122                          Walrand                 5
    Questions: Available bandwidth?
           Example:
                                  x
    A                                                           B
           10           3         6          3         10
                 10          10         10        10
                C   y       E z        D         F


            = router              = host

     3      = link with bandwidth of 3Mbps
            (same for 6 and 10)

    x, y, z = throughput of flows

EECS 122                     Walrand                        6
    Questions: Available bandwidth?
           Example:
                                  x
    A                                                           B
           10           3         6          3         10
                 10          10         10        10
                C   y       E z        D         F

  • Assume CD with rate y and EF with rate z
  • How does A “discover” the available bandwidth to B?
  • Some approaches:
    1. Reservation
    2. Adapt to congestion
    3. Test for sufficient bandwidth
    4. Pricing congestion

EECS 122                     Walrand                        7
    Questions: Available bandwidth?
           Example:
                                  x
    A                                                           B
           10           3         6          3         10
                 10          10         10        10
                C   y       E z        D         F

  • Assume CD with rate y and EF with rate z
  • How does A “discover” the available bandwidth to B?
  • Some approaches:
    1. Reservation
    2. Adapt to congestion
    3. Test for sufficient bandwidth
    4. Pricing congestion

EECS 122                     Walrand                        8
    Available bandwidth: Reservation

                                    x
    A                                                             B
             10           3         6          3         10
                   10          10         10        10
                  C   y       E z        D         F

        1. Routers (or manager) keep track of reserved rates
        2. A requests a rate R to B from the network
        3. The network figures out if R is available
        4. If R is available, routers (or manager) update
           reservations and confirm to A
        5. Note: Complex, Slow, Requires enforcement,
           Renegotiations, Pricing

EECS 122                       Walrand                        9
    Available bandwidth: Adapt

                                     x
    A                                                                B
           10           3            6            3           10
                 10           10            10           10
                C   y        E z           D            F

        1. Transmit and slow down if congestion occur
        2. Example:
           • Initially: x= 0, y = 3, z = 3
           • Then A increases its rate; C and E notice congestion
              and slow down
           • Later, C stops: A and E increase rates
        3. Notes:
           • No guarantees: throughput may drop
           • Key question: how to adapt rates
EECS 122                         Walrand                        10
    Available bandwidth: Test

                                      x
    A                                                                   B
           10           3             6            3            10
                 10            10            10            10
                C   y         E z           D             F

        1. Assume flows require at most 1Mbps (e.g., video)
        2. Routers monitor their rates to see if they have at least 1
           Mbps of available bandwidth; they mark packets otherwise
        3. If A wants a new flow to B, it sends test packets to B
        4. If routers do not mark test packets, then A can start its new
           flow; otherwise, A does not start it
        5. Advantages:
           1. relatively simple
           2. guarantee
EECS 122                          Walrand                          11
    Available bandwidth: Pricing
           Example:
                                  x
    A                                                         B
           10           3         6          3         10
                 10          10         10        10
                C   y       E z        D         F
      • When they get saturated, routers mark packets
      • If a flow with rate R uses saturated links, it
        gets marks with rate R
      • Each mark costs one unit
      • Source slows down if price becomes excessive
      • x= 1+, y = 2+, z = 2+
         pA = 1 + 1; pC = pE = 2
      • x = 2+, y = 1+, z = 1+
         pA = 2 + 2; pC = pE = 1
EECS 122                     Walrand                     12
    Questions: What is Fair?
           Example:
                                  x
    A                                                          B
           10           3         6            3         10
                 10          10           10        10
                C   y       E z          D         F
      • x = y = z = 1.5: fair in max-min sense

      • x = 0, y = z = 3: maximizes x + y + z

      • 5x = 4y = 4z: equalizes resources flows use
        with x = 1.33, y = z = 1.67

      • What if AB needs 2Mbps?
        (and is willing to pay for it)
EECS 122                      Walrand                     13
    Congestion Control: Approaches
           Telephone Network: Reservation
           Transmission Control Protocol (TCP)
              Adapt rate to congestion
              Algorithm for adaptation attempts to be fair …
           User Datagram Protocol (UDP)
              Transmit and hope for the best
           Various proposals for Internet:
              Reservation
              Pricing
              Test
              Note: Either by hosts or between
               domains
EECS 122                        Walrand                    14
    Congestion Control:                  TCP Algorithm

           Principles
           Example
           Multiple Sources
           A Bad Algorithm: AIAD
           AIMD: Additive Increase – Multiplicative Decrease
           Why AIAD Fails




EECS 122                       Walrand                   15
    TCP Algorithm: Principles
           We focus on the “standard” TCP (reno)
           Idea:
              Not congested => increase rate
              Congested => slow down
           Questions:
              How to detect congestion?
                 Missing ACKs
              How to increase/slow down?
                 AIMD


EECS 122                      Walrand           16
    TCP Algorithm: Example
                                                                                       C = 50 pkts/RTT
                                 x
                      A                                                                                             B
           No congestion  x increases by one packet/RTT every RTT
           Congestion  decrease x by factor 2
             60                 Rate (pkts/RTT)

             50

             40

             30
                                                                           Backlog in router (pkts)
             20                                                              Congested if > 20

             10

              0
                  1
                      28
                           55
                                82
                                     109
                                           136
                                                 163
                                                       190
                                                             217
                                                                    244
                                                                          271
                                                                                298
                                                                                      325
                                                                                            352
                                                                                                  379
                                                                                                        406
                                                                                                              433
                                                                                                                    460
                                                                                                                          487
EECS 122                                                           Walrand                                                      17
    TCP Algorithm: Multiple Sources
                                                                                     C = 50 pkts/RTT
                                x
                      A                                                                                        B
                                y
                      D                                                                                        E
           No congestion  rate increases by one packet/RTT every RTT
           Congestion  decrease rate by factor 2
             60

             50
                            Rates equalize  fair share
             40

             30

             20

             10

              0
                  1
                      28
                           55
                                82
                                     109
                                           136
                                                 163
                                                       190
                                                             217
                                                                   244
                                                                         271
                                                                               298
                                                                                     325
                                                                                           352
                                                                                                 379
                                                                                                       406
                                                                                                             433
                                                                                                                   460
                                                                                                                         487
EECS 122                                                      Walrand                                                          18
    TCP Algorithm: Bad Algorithm
                                                                                       C = 50 pkts/RTT
                                  x
                    A                                                                                            B
                                  y
                D                                                                                                E
           No congestion  x increases by one packet/RTT every RTT
           Congestion  decrease x by 1

               60

               50

               40

               30

               20

               10

                0
                    1
                        28
                             55
                                  82
                                       109
                                             136
                                                   163
                                                         190
                                                               217
                                                                     244
                                                                           271
                                                                                 298
                                                                                       325
                                                                                             352
                                                                                                   379
                                                                                                         406
                                                                                                               433
                                                                                                                     460
                                                                                                                           487
EECS 122                                                       Walrand                                                           19
    TCP Algorithm: AIMD                         C
                        x
                   A                                 B
                        y
                   D                                     E
               y
           C




                                 Limit rates:
                                    x=y


                                       x
EECS 122               Walrand                      20
    TCP Algorithm: Why AIAD Fails
                            C
                        x
                   A                          B
                        y
                   D                              E
               y
           C
                              Limit rates:
                            x and y depend
                               on initial
                                values




                                   x
EECS 122               Walrand               21
    Congestion Control:                TCP Refinements

           Fast Retransmit
           Fast Recovery: 1st Look
           Fast Recovery: 2nd Look
           Slow Start
           Window Updates
           Flow Control
           Summary




EECS 122                     Walrand               22
    Refinements: Fast Retransmit

              n   Cumulative ACKs:
            n+1    ACK # = next expected #
            n+2
            n+3
            n+1
  timeout




            n+1       3rd duplicated ACK:
            n+1         likely packet loss
            n+1         retransmit



EECS 122          Walrand                     23
    Refinements: Fast Recovery (1)
           Timeout  Reset Window = 1 unit (MSS)
           3rd Dup ACK  Window/2
       Window             3rd Dup ACK     Timeout

              Slope =              n
              1 MSS/RTT

                         n/2

                                          1
               Moderate congestion     Severe congestion
             (subsequent pkts arrived)
EECS 122                       Walrand                     24
    Refinements: Fast Recovery (2)
     Window adjustment is tricky:
     Want W  W/2
                                W/2 outstanding
ssthresh = W/2                      packets:
W = ssthresh + 3                 n+1, …, n+W/2
W = W + 1 at each Dup Ack
                                W = n + W/2

                       W n-3         W = ssthresh
      1         n



EECS 122              Walrand                 25
    Refinements: Slow Start
           Objective: Discover available bdw fast
           Solution: Exponential increase of window
  65KB
              W             Threshold
                                         Additive
                      n
                                         Slope = 1/RTT


  n/2
               exp         exp
       1

EECS 122             Timeout   Walrand                26
    Refinements: Window Updates
           Exponential: W = W + 1 at each ACK:
           W=1       W=2        W=4          W=8




           Additive: W = W + 1/W at each ACK:
                          W = 8.125 + 1/8.125
                 W=8         8 + 2/8
       W=8        + 1/8   W  8 + 8/8 = 9
                                          W  9 + 9/9 = 10




EECS 122                           Walrand                   27
    Refinements: Flow Control
           Objective: Avoid saturating destination
           Algorithm: Receiver avertizes window RAW
     window = min{RAW – OUT, W}
    where
     OUT = Oustanding = Last sent – last ACKed
     W = Cong. Window from AIMD + refinements


                                       RAW

           [ACK | RAW | …]
EECS 122                     Walrand                  28
     Refinements: Summary
            Actual window = min{RAW - OUT, W}

65KB
            W
                           3DA          3DA       TO
                     0.5
                     X
                                X0.5
                                            0.5
                                            X      X   0.5
                            3
                TO                      3

   1

                SS                     CA              SS    CA
 EECS 122                    Walrand                         29
    Congestion Control:                         Summary
           Slow Start: Discover available bandwidth
           Congestion Avoidance: AIMD  Tries to be fair
           Refinements:
              Fast Retransmit: 3DA
              Fast Recovery: Reset W to W/2 (instead of W = 1)
               [More precisely: ssthresh = W/2, W = W + 1 per DA,
                 W = ssthresh when get new ACK.]
              TO: set ssthresh = W/2, W = 1, SS until W = ssthresh,
                    then CA
           Timers:
              Timeout = Average + 4 Deviations
              If time out  Timeout x 2
               Reset after new packet or new ACK
           Flow Control:
              Window = min{RAW – OUT, W}

EECS 122                            Walrand                        30

								
To top