Upcoming SlideShare
Loading in...5







Total Views
Views on SlideShare
Embed Views



1 Embed 1 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

TCP.ppt TCP.ppt Presentation Transcript

  • Transport Layer Improvements in 802.11 Networks Eryk Schiller Bartosz Wieczorek
  • Outline
    • Wireless technologies
    • TCP basics
    • Impact of transmission errors on TCP performance
    • Approaches to improve TCP performance in Wireless networks
      • Classification
      • Discussion of selected approaches
  • Protocol Stack source: 802.11-1999
  • Wireless Technologies
    • Wireless local area networks
      • IEEE 802.11 WLAN Standard
      • last hop to a wireless host
      • wireless connectivity between hosts on the LAN
  • Wireless Technologies (2)
    • Multi-Hop Wireless
      • May need to traverse multiple links to reach a destination
      • Mobility causes route changes (MANETs)
  • IP – Internet Protocol
    • IP – Best effort delivery
      • Packets may be delivered out-of-order
      • Packets may be lost
      • Packets may be duplicated
  • TCP – Transmission Control Protocol
    • TCP – Reliability
      • Reliable ordered delivery
      • Implements congestion avoidance and control
      • Reliability achieved by means of retransmissions if necessary
  • TCP acknowledgments
    • Acknowledgments sent to TCP sender confirm delivery of data received by TCP receiver
    • ACK for data is sent only after data has reached receiver
    • TCP assigns byte sequence numbers
    • ACK indicates the next expected byte that receiver wants to receive
  • TCP acknowledgments (2)
    • Single
    S R data:n ACK:n+1 data:n+1 ACK:n+2 S R data:n data:n+2 ACK:n+3 data:n+1
    • Cumulative
    S R data:n data:n+2 ACK:n data:n+1
    • Duplicate
  • Window Based Flow Control
    • Sliding Window size determines how many segments can travel at the moment (can be unacknowledged)
    • Prevents from overflowing receiver’s buffer
    • Window size minimum of
      • receiver’s advertised window - determined by available buffer space at the receiver
      • congestion window CWND - determined by the sender, based on feedback from the network, bounds the amount of data that can be sent per round-trip time RTT, actual throughput depending on CWND/RTT
  • Sliding Window - example
    • Window size = 6
    Sent and already acknowledged Sent but not yet acknowledged Already allowed to be sent Not yet allowed to be sent
  • Slow Start and Congestion Avoidance
    • Slow Start
      • initially, cwnd = 1 MSS (Max. segment size)
      • increment window size by 1 MSS on each new ACK ( exponential growth)
      • slow start phase ends when window size reaches the slow-start threshold
    • Congestion Avoidance
      • On each new ACK, increase cwnd by 1/cwnd packets ( linear increase of 1 MSS per RTT)
  • Slow Start and Congestion Avoidance (2) time [RTTs] CWND [segments] Slow start Congestion avoidance Slow start threshold
  • Congestion Control
    • On detecting a packet loss, TCP sender assumes that network congestion has occurred and drastically reduces the congestion window
    • Reducing congestion window reduces amount of data that can be sent per RTT - throughput may decrease
  • Congestion Control - Packet losses
    • Causes of packet losses:
      • packet corruption (less probable)
      • buffer overflows on the network
    • Detecting losses:
      • exceeding RTO (Retransmission Time-Out) RTO is dynamically calculated, based on RTT (Round Trip Time) changes, RTO > RTT
      • receiving duplicate acknowledgments (dupacks)
  • Congestion Control - Timeout
    • SSThresh = ½ CWND (Slow Start Threshold)
    • CWND = 1 MSS
    • The slow start is initiated
    SSThresh = 8 SSThresh = 10 CWND = 20 After timeout
  • Congestion Control - Fast R etransmit
    • Fast retransmit [RFC 2001]
      • Initiated after receiving 3 dupacks
      • The lost packet is immediately retransmitted
      • No need to wait for RTO to expire
      • Often followed by Fast Recovery
  • Congestion Control - Fast Recovery
    • Fast recovery [RFC 2001]
      • SSThresh = ½ cwnd
      • cwnd = SSThresh + number of dupacks
      • cwnd = SSThresh (avoiding Slow -s tart Stage)
    3 dupacks receivces dupacks ACK new data
  • TCP Reno / TCP New Reno
      • TCP Reno
        • Slow-start
        • Congestion avoidance regimen
        • Fast retransmit [RFC 2001]
        • Fast recovery [RFC 2001]
      • Improvement of TCP Reno  TCP New Reno
      • In TCP New Reno case Partial ACK indicates another packets losses. Algorithm stay in Fast Recovery stage until cumulative ACK. Multiple losses/RTT may cause RTO. Motivation to create extension that will tell more about losses.
  • TCP Vegas
      • Modifications of TCP Reno
        • Linearly adjust TCP’s cwnd upwards/downwards
        • Detect packet loss after first dupack and decrease cwnd to ¾ instead of ½
        • Halves SS to avoid packet losses
      • TCP Vegas was created to avoid congestion so the impact on TCP performance in 802.11 Networks is not so significant
  • TCP Westwood
      • Westwood improves TCP performance in wired and wireless networks
      • TCP Westwood relies on end-to-end bandwidth estimation to discriminate cause of packet loss
      • Bandwidth estimation is calculated by a measure of returning ACK flow
      • Bandwidth estimation is then used to correctly set SSThresh and cwnd after timeout or dupacks.
  • SACK – Selective Acknowledgments
    • SACK [RFC 2018]
      • Advertised in the option field during the handshake
      • Must be approved by two sides
      • Every dupack should bear SACK option
      • SACK contains information about unacknowledged, out of order contiguous block of data
      • Only three blocks are announced in 1 SACK option (length of TCP header is limited)
      • Recent block should be announced in SACK
      • Each block should be announced 3 times
  • SACK – Selective Acknowledgments (2) SEQ = 0 SEQ = n SEQ = 2n SEQ = 3n SEQ = 4n ACK = n ACK = n, SACK = { [2n, 3n) } ACK = n, SACK = { [2n, 3n), [4n, 5n) } S R d ata data data data data ACK ACK ACK
  • SACK – Selective Acknowledgments (3)
    • Hardware
      • Celeron 2,4 GHz Linux 2.6.12 (Workstation) with Ethernet Adapter
      • AMD 64-bit 1,8 GHz Linux 2.6.12 (Notebook) with Wi - Fi 802.11g Network Adapter
      • Linksys WAP54G
    • Conditions
      • Signal Level: -84dBm
      • Rate: 54Mbps
      • 64-bit WEP
  • SACK – Selective Acknowledgments (4)
    • End-to-end TCP connection is broken into two TCP connections - one on the wired part of route and the other over wireless part of the route
    • If wireless link is not last on route, then more than two TCP connections may be needed
    • Connection between wireless mobile host MH and fixed host FH goes through base station BS
    FH MH BS Base Station Mobile Host Fixed Host
    • Split connection results in independent flow control for the two parts
    • Flow/error control protocols, packet size, time-outs, may be different for each part
    TCP connection TCP connection wireless physical link network transport application physical link network transport application physical link network transport application rxmt
  • SPLIT CONNECTION - Advantages
    • BS-MH connection can be optimized independent of FH-BS connection
    • Different flow / error control on the two connections
    • Local recovery enables faster recovery due to relatively shorter RTT on wireless link
    • Good performance achievable using selective acks when multiple packet losses occur per window (preventing from timeouts stalling BS-MH connection)
  • SPLIT CONNECTION - Disadvantages
    • Ack may be delivered to sender, before data delivered to the receiver
    • BS failure can result in loss of data (unreliability):
      • BS fails to send a packet to MH
      • BS acks successful receipt to FH
      • FH deletes the ack’d packet from the buffer
      • The packet will not be restored by MH
    • Buffer space needed at BS for each TCP connection (overload for many slow connections)
    • May not be useful if data and acks traverse different paths (both do not go through the base station)
    • Retains local recovery of the Split Connection approach
    • Buffers data packets at the base station BS to allow link layer retransmission
    • When dupacks received by BS from MH, retransmit on wireless link, if packet present in buffer
    2 Mbps Wireless link