mobile networks: tcp in wireless networks

Download Mobile Networks: TCP in Wireless Networks

Post on 10-Jun-2015




3 download

Embed Size (px)


  • 1. Lecture 11 Mobile Networks: TCP in Wireless Networks Wireless and Mobile Systems Design

2. Lecture Objectives

  • Describe TCPs flow control mechanism
  • Describe operation of TCP Reno and TCP Vegas, including congestion avoidance (congestion control), slow start, and fast retransmission and recovery mechanisms
  • Describe performance problems of TCP in wireless networks
  • Summarize proposed schemes to overcome performance limitations of TCP in wireless networks

3. Agenda

  • TCP overview
    • Flow control
    • Congestion avoidance, slow start, and retransmission
    • TCP Reno and TCP Vegas
  • TCP in wireless networks
  • Solutions to TCP performance problems in wireless networks

4. TCP Flow Control

  • TCP inherently supports flow control to prevent buffer overflowat the receiver
    • Useful for fast sender transmitting to slower receiver
  • Receiver advertises a window ( wnd ) in acknowledgements returned to the sender
  • Sender cannot send more thanwndunacknowledged bytes to the receiver

Src Dest Limits amount of data that destination must buffer 5. TCP Flow Control Example Sender Receiver wnd= 1200 500 bytes 500 bytes wnd= 200 200 bytes wnd= 500 500 bytes 6. Flow Control Can Limit Throughput (1)

  • Letrttbe the round-trip time, i.e., the time from sending a segment until an acknowledgement (ACK) is received
  • Lett=wnd / bbe the time to transmit a full window of data, wherebis link bandwidth

Sender Receiver t rtt wnd bytes 7. Flow Control Can Limit Throughput (2)

  • For a link with a high delay-bandwidth product ( rtt b ), the flow control window can limit throughput for the connection
    • In this case,t rtt
    • Throughput iswnd / rtt

Sender Receiver t rtt wnd bytes 8. TCP Congestion Avoidance

  • Congestion avoidance (control) was added to TCP in an attempt to reduce congestioninside the network
  • A much harder problem
    • Requires the cooperation of multiple senders
    • Must rely on indirect measures of congestion
  • Implemented at sender

Src Dest Attempts to reduce buffer overflow inside the network 9. Recent History of TCP

  • TCP has been improved over the years
    • More robust estimates of round-trip time
    • Faster recovery from packet loss
    • Congestion avoidance and improvements
  • TCP Reno
    • Developed by Van Jacobsen in 1990
    • Improvement to TCP Tahoe (1988)
    • Added fast recovery and fast retransmit
  • TCP Vegas
    • Developed by Brakmo and Peterson in 1995
    • New congestion avoidance algorithm

10. TCP Operation

  • Flow control (already discussed)
  • Congestion avoidance
    • Introduce a congestion window ( cwnd ), in addition to flow control window ( wnd )
    • Need to manage size of congestion window
  • Slow start
    • Aggressively grow congestion window until congestion is detected
    • In Reno, aggressively reduce rate when invoked
  • Loss detection and retransmission
    • Fast retransmission and recovery
    • Less severe adjustment congestion window size

11. Congestion Avoidance: TCP Reno (1)

  • TCP can maintain a congestion window size,cwnd , at thesender
    • Sender can transmit up to minimum ofcwndandwndbytes
  • TCP Reno uses packet loss as an indicator of network congestion
    • Most packet loss occurs due to congestion at intermediate routers since IP has no congestion control mechanism
    • Packet losses due to bit errors are rare
  • TCP Reno isreactivewith respect to congestion
    • Responds to loss of packets indicated by timeout or duplicate ACKs

12. Congestion Avoidance: TCP Reno (2)

  • When packet loss occurs, congestion window size is reduced
    • Due to timeout:cwnd= 1 and enter slow start
    • Due to duplicate ACKs:cwnd=cwnd /2 + 3 segment_size
  • Congestion window size is increased when data is successfully acknowledged
    • Slow start
      • Slow start active ifcwnd ssthresh(threshold)
      • During slow start, congestion window increased bysegment_sizefor every ACK receivedopens the window exponentially
    • Congestion avoidance
      • cwnd=cwnd+ (1/ cwnd ) +segment_size /8 for every ACK receivedadditive growth in window size (about one segment every round trip time)

13. Congestion Window in TCP Reno G. Xylomenos, G. C. Polyzos, P. Mahonen, and M. Saaranen, TCP Performance Issues over Wireless Links,IEEE Communications Magazine , Vol. 39, No. 4, pp. 52-58, April 2001. 14. Congestion Avoidance: TCP Vegas (1)

  • Sets congestion window size based on difference between the expected and actual data rates
    • Goal is to control the number of outstanding bytes in queues in the network (i.e., the backlog in queue)
  • Define
    • cwnd : Current congestion window size
    • rtt* : Minimum (congestion-free) round-trip time
    • rtt : Actual (with congestion) round-trip time
    • diff : Estimated backlog in queue
    • : low threshold fordiff(wantdiff> )
    • : high threshold for diff (wantdiff< )
  • diff= ( cwnd / rtt* cwnd / rtt ) rtt *

15. Congestion Avoidance: TCP Vegas (2)

  • Estimated backlog in queue (repeated here)
    • diff= ( cwnd / rtt* cwnd / rtt ) rtt *
  • TCP Vegas attempts to keep at leastbytes, but fewer thanbytes, in queue
    • Ifdiff< , increasecwndby 1
    • Ifdiff> , decreasecwndby 1
    • Otherwise ( diff ),cwndis not changed
  • TCP Vegas provides aproactiveresponse to congestion
    • Congestion window changed gradually as observed backlog (delay) changes

16. Congestion Avoidance: TCP Vegas (3) cwnd+ Linearly Increasing cwnd+ cwnd C Expected Throughput Actual Throughput Linearly Decreasing /rtt /rtt Throughput Window Size 17. Slow Start Mechanism

  • The goal of the slow start mechanism is to detect and avoid congestion as a connection begins or after a timeout
    • Slow start threshold ( sshtresh ) set to half ofcwndwhen congestion is detected
    • Slow start is active ifcwnd ssthresh
    • Initially,cwnd= 1 segment
  • TCP Reno doubles the congestion window every round-trip time if no loss occurs
  • TCP Vegas doubles the congestion window every other round-trip time if no loss occurs

18. Loss Detection:TCP Reno

  • Coarse-grain timeout indicates packet loss
    • Sender starts a timer when TCP segment is sent
    • Timeout occurs if ACK not received before timeout
    • Retransmission occurs
    • Slow start is invoked (big reduction in rate!)
  • Three duplicate ACKs indicate packet loss
    • Receiver required to send an ACK if it receives an out of order segment a segment may be out of order or lost
    • Sender assumes loss when it receives three duplicate ACKs
    • Fast retransmission and recoverymechanism retransmit the requested segment (which is presumed lost after three duplicate ACKs) without waiting for a timeout
    • Congestion avoidance (smaller reduction in rate)

19. Loss Detection:TCP Vegas

  • Coarse-grain timeout mechanism
    • Same as for TCP Reno
  • Fine-grain timeout mechanism
    • If a duplicate ACK is received and the round-trip time of the first unacknowledged segment exceeds the fine-grain timeout value, then segment loss is assumed and requested segment is retransmitted
    • If a non-duplicate ACK is received after a retransmission and the round-trip time of the segment exceeds the fi


View more >