490 likes | 543 Views
TCP over Wireless Networks. Announcements…. PA1 due tonight! PA2 online Assignment 2 (video students) online. PAs …. Using TA office hours Please do not wait till the last minute to solve PAs!
E N D
Announcements… • PA1 due tonight! • PA2 online • Assignment 2 (video students) online
PAs … • Using TA office hours • Please do not wait till the last minute to solve PAs! • TA will be available for online access other than office hours, but responsiveness not guaranteed. • So, use the TA office hours more effectively!
Recap • TCP/IP/MAC • Overview of wireless systems • Wireless MAC • Wireless Scheduling • Mobility Support • Wireless Transport …
Outline • TCP over wireless networks • TCP assumptions • Wireless network characteristics • Impact on TCP performance • Approaches to improve TCP performance • Link layer approaches • TCP-aware link layer approaches • Split connection approaches • End-to-end approaches • TCP over satellite and ad-hoc networks
TCP • Congestion control • Window based • Slow start • LIMD • Congestion detection • Self-clocking • Window limitation
TCP (Contd.) • Reliability • Cumulative ACKs • DUPACKs and Timeouts • Timeout calculation • RTTavg + 4 * RTTmdev • Coupling between congestion control and reliability
Wireless Networks • Wide-area wireless • Metropolitan-area wireless • Local-area wireless • Ad-hoc wireless • Satellite wireless
Wireless Characteristics • Low bandwidths • 10-20Kbps WWANs, 1-10Mbps WLANs, 100-500Kbps satellite • Random wireless losses • Upto 10% packet loss rates • Hand-offs • Depending on cell coverage and user mobility (30m/s in an 802.11 network will result in a hand-off every 10-15 seconds)
Wireless Characteristics (Contd.) • Black-outs • Fading, temporary disconnections etc. • Can last from a few seconds to less than a minute • Large and Varying Delay • WWANs have typical RTTs of 400ms and deviations of up-to a few seconds • Path asymmetry • Reverse path characteristics different from forward path characteristics (e.g. satellite, WWANs)
Characteristics (Contd.) • Local-area wireless • Frequent hand-offs when mobile • Ad-hoc wireless • Routers mobile! Frequent disconnections • Network partitions? • Satellite wireless • Large bandwidth delay products (why?)
TCP on Wireless – Random Losses • TCP uses losses as indication of congestion • Reduces congestion window by half (LIMD) when it experiences congestion • Even when no congestion, if packets are dropped due to random losses, TCP will cut down its rate (is this right?)
Other Losses • TCP will interpret hand-offs related losses also as congestion based losses • Hence, it will reduce the congestion window every time hand-offs related losses occur • Black-outs will further result in TCP experiencing multiple timeouts of increasing granularity
Large and Varying Delay • TCP uses RTTavg + 4 * RTTmdev as the retransmission timeout • If there is large variance in delay, mean deviation is high resulting in inflated timeout values • Hence, if there are burst losses resulting in a timeout, the sender would take longer time to detect losses and recover
Path Asymmetry • TCP relies on ACK arrivals for congestion window progression • If path asymmetry exists, a TCP connection’s performance will be influenced by the reverse path characteristics also • Indirect effects of path asymmetry (ACK bunching)
Low Bandwidths • TCP uses window based congestion control • If there is free space in the congestion window, TCP will transmit • Hence, TCP’s output can be bursty • This coupled with the low bandwidths can result in queue build-ups in the network adversely affecting RTT calculations and causing packet drops
Large Bandwidth Delay Products • TCP’s header has 16 bits allocated for receiver window advertisement • Maximum of 500Kb can be advertised • Consider a satellite link with 1Mbps bandwidth and 1 second RTT (BDP = 1Mb) • But, TCP can only achieve 500Kbps (resulting in only 50% utilization)
Slow-start • TCP uses slow-start to ramp up rate to the available capacity • Whenever timeouts occur, TCP uses slow-start • If hand-offs, black-outs, or route re-computations are frequent, TCP will constantly be in slow-start, lowering performance
Recap • TCP over wireless networks • Several factors contribute to the performance degradation of TCP when used in a wireless environment • Approaches to improve TCP performance …
Approaches • Reliable link layers • TCP-aware link layers • Split connection protocols
Reliable Link Layers • Help in recovering from losses that occur on the wireless link • Can potentially hide such losses from the TCP layer • Can be implemented without requiring any changes at all to the sender and the receiver
Reliable Link Layer (contd.) • Losses can still occur • Retransmission can interfere with TCP retransmissions worsening the performance • TCP timeouts similar LL timeouts • DUPACKs • Can introduce variations in TCP’s rtt estimation increasing the RTO
Snoop Module • Resides in the base-station • Caches packets sent from fixed host to mobile host • TCP-aware functionality for retransmissions, and ACK suppression • Improves on the performance of reliable link layers
Snoop (Contd.) • Two modules: • Snoop_data() – for processing data packets on the forward path (from FH – MH) • Snoop_ACK() – for processing ACK packets on the reverse path (from MH – FH)
Snoop_data() • 3 scenarios • Normal packet in sequence • Cache packet • Forward to MH • Timestamp if necessary (once per window) – for RTOs
Snoop_data() • Scenario 2 • Out of sequence (S) but already cached • If highestACK < S • Forward packet • Else • Generate an ACK from the snoop module for the highestACK
Snoop_data() • Scenario 3 • Out of sequence (S) and has not been cached earlier • Either out-of-order or packet that was lost earlier • Heuristically assume retransmission • Packet forwarded, and marked as having been retransmitted due to congestion loss
Snoop_ACK() • Scenario 1 • New ACK • Clean snoop cache • Round-trip estimate updated • Spurious ACK • ACK# less than highestACK# • Discard ACK
Snoop_ACK() • Duplicate ACK (DUPACK) • If sender retransmitted packet or packet not in cache, forward ACK to sender • Unexpected DUPACK (loss between BS and MH) • Retransmit packet • Keep track of maximum number of relevant DUPACKs possible • Expected DUPACKs • Suppress
Mobile host to Fixed host • Cannot use only base-station based mechanisms • Need to change the mobile host • NACKs from the base-station to the mobile-station • Mobile-station retransmits immediately and does not perform window reduction for NACKed losses
TCP Wireless aware TP Split Connection Approaches Base Station Mobile Host Fixed Host
Advantages • Wireless aware congestion control and flow control • Wireless link characteristics completely decoupled from the progress of TCP on the wired leg • Better service to mobile applications possible • Potentially simpler protocol stack at mobile • Improved performance
Cons • Application layer re-linking • End-to-end semantics • Software overheads • Hand-off latency
Recap • Wireless networks and TCP • Reliable link layers • Snoop module • Indirect TCP (split connection) • WTCP …
WTCP • Reliable transport protocol for wide-area wireless networks • Alternative to TCP (but completely different unlike the schemes we have seen so far) • End-to-end approach
WWANs • Non-congestion related packet losses (0 to 10% in CDPD networks) • Very low bandwidths (20 Kbps CDPD, 8 Kbps RAM, 5Kbps Ardis) • Large round-trip times and variance in round-trip time (800ms to 4 seconds) • Asymmetric channel (ACK bunching) • Occasional blackouts
Arguments against non-E2E approaches • Overhead at the base-station (or mobile switching center) • Need to be TCP aware (different flavors of TCP and consequent problems …) • Comparable timeout values when dealy over the wireless network is a significant portion of the end to end delay • E2E semantics critical for applications • Other overheads such as hand-off overheads in I-TCP
WTCP Approach • Rate based transmission control • Eliminates the RTO miscalculation problem in TCP due to self-clocking/window-based CC/ACK-bunching • No waiting for ACKs before sending out new packets • Packets separated by a period T seconds where T = 1/R where R is the rate of the flow • Cons? • Why is this not a problem in WWANs?
Inter-packet delay as main congestion indicator • Use inter-packet delay (as opposed to losses) as indication of congestion • Specifically, the relative differences between the average receiver inter packet delay and the average sender inter packet delay is used to detect congestion • Helps in keeping the network un-congested and at the same time fully utilize the network
Distinguishing cause of packet loss • Losses still possible because of congestion, random wireless errors, and blackouts • Ideal reaction for each of the probable causes different (what?) • Need to distinguish the cause of packet loss to facilitate correct reaction
Distinguishing … • WTCP maintains a history of packets losses when the network is un-congested, and computes the average and deviation in the number of random losses • Based on this information, it predicts whether a loss is due to random • Blackout related losses attributed to congestion!
Transmission Control Computations at the Receiver • Unlike TCP, where computations happen solely at the sender, WTCP uses the receiver to perform rate control computations • Eliminates ACK related problems in the congestion control process
Variable Granularity Rate Adjustment • TCP uses LIMD (with 1 and 0.5 as increase and decrease parameters) • In WTCP, the initial value of the multiplicative decrease factor is small, and is increased for consecutive decreases (incipient congestion detection) • A decrease factor of 0.5 is used for congestion related losses
Start-up Behavior • Round-trip times large, connections potentially short-lived • Faster ramp-up period desirable • WTCP uses the “packet-pair” approach for start-up • Two packets (MSS size) sent back-to-back • Inter-packet delay at receiver used to indicate available rate • Same mechanism used when recovering from black-outs (any other approach?)
Reliability • Selective acknowledgements • SACKs very useful in TCP when random losses occur • Better utilization of the network resources (no unnecessary retransmissions)
Reliability (contd.) • No retransmit timeouts • Since RTOs cannot be relied upon, WTCP does not use RTOs • Use probe packets to recover from suffix losses • ACK frequency tuned by sender based on factors such as (a) observed loss rate on reverse path, (b) round-trip time, (c ) half-duplex or full-duplex nature of channel
WTCP Algorithm • Congestion control • 3 phases: increase, decrease, and maintain Chosen based on long-term and short term averages in inter-packet separation • RTT computation (for probing) • Using loss profile • Increase, decrease, maintain phases
WTCP Reliability • SACK algorithm • Probe packets
Puzzle • You have a deck of 52 cards • You draw out 5 cards randomly and look at the cards • You can now show 4 of the cards to a friend, and the friend should identify the 5th card • How do you do this?