TCP onWireless Ad Hoc NetworksCS 218 Oct 22, 2003• TCP overview• Ad hoc TCP : mobility, route failures and timeout• TCP and MAC interaction study• TCP fairness achieved with Active Neighbor estimate• The problem of fairness and the NRED solution• TCP over wired/wireless linksTCP ad hoc: Relevant literatureHolland and Vaidya: Impact of Routing and Link Layers on TCP Perofrmance in mobile ad hoc nets, Mobicom 99T. D. Dyer and R. V. Boppana, "A Comparison of TCP Performance over Three Routing Protocols for Mobile Ad Hoc Networks," In Proceedings of Mobihoc 2001, 2001. K. Tang and M. Gerla, "Fair Sharing of MAC under TCP in Wireless Ad Hoc Networks," In Proceedings of IEEE MMT'99, Venice, Italy, Oct. 1999. •Kaixin Xu, et al TCP Behavior across Multihop Wireless Networks and the Wired Internet -ACM WoWMoM 2002 (co-located with MobiCom 2002), Atlanta, Ga, Sep. 2002TCP Congestion Control• end-end control (no network assistance)• sender limits transmission:LastByteSent-LastByteAcked≤ CongWinRoughly,• CongWin is dynamic, function of perceived network congestionHow does sender perceive congestion?• loss event = timeout or 3 duplicate acks• TCP sender reduces rate (CongWin) after loss eventtwo mechanisms:– AIMD– slow startrate =CongWinRTTBytes/secTCP AIMD8 Kbytes16 Kbytes24 Kbytestimecongestionwindowmultiplicative decrease: cut CongWin in half after loss eventadditive increase: increase CongWin by 1 MSS every RTT in the absence of loss events: probingLong-lived TCP connectionTCP Slow Start• When connection begins, CongWin = 1 MSS– Example: MSS = 500 bytes & RTT = 200 msec– initial rate = 20 kbps• available bandwidth may be >> MSS/RTT– desirable to quickly ramp up to respectable rate• When connection begins, increase rate exponentially fast until first loss eventTCP Slow Start (more)• When connection begins, increase rate exponentially until first loss event:– double CongWin every RTT– done by incrementing CongWinfor every ACK received• Summary: initial rate is slow but ramps up exponentially fastHost Aone segmentRTTHost Btimetwo segmentsfour segmentsRefinement• After 3 dup ACKs:– CongWin is cut in half– window then grows linearly• But after timeout event:– CongWin instead set to 1 MSS; – window then grows exponentially– to a threshold, then grows linearly•3 dup ACKs indicates network capable of delivering some segments•timeout before 3 dup ACKs is “more alarming”Philosophy:Refinement (more)Q: When should the exponential increase switch to linear? A: When CongWin gets to 1/2 of its value before timeout.Implementation:• Variable Threshold • At loss event, Threshold is set to 1/2 of CongWin just before loss event024681012141 2 3 4 5 6 7 8 9 10 11 12 13 14 15Transmission roundcongestion window size (segments)Series1 Series2threshold TCP Tahoe TCP RenoSummary: TCP Congestion Control• When CongWin is below Threshold, sender in slow-start phase, window grows exponentially.• When CongWin is above Threshold, sender is in congestion-avoidance phase, window grows linearly.• When a triple duplicate ACK occurs, Threshold set to CongWin/2 and CongWin set to Threshold.• When timeout occurs, Threshold set to CongWin/2 and CongWin is set to 1 MSS.Impact of Mobility on TCP • Mobility causes route changesImpact of Multi-Hop Wireless Paths020040060080010001200140016001 2 3 4 5 6 7 8 9 10Number of hopsTCPThroughtput(Kbps)TCP Throughput using 2 Mbps 802.11 MACThroughput Degradations withIncreasing Number of Hops• Packet transmission can occur on at most one hop among three consecutive hops • Increasing the number of hops from 1 to 2, 3 results in increased delay, and decreased throughput• Increasing number of hops beyond 3 allows simultaneous transmissions on more than one link, however, degradation continues due to contention between TCP Data and Acks traveling in opposite directions• When number of hops is large enough, the throughput stabilizes due to effective pipeliningMobility: Throughput generally degrades with increasing speed …Speed (m/s)AverageThroughputOver 50 runsIdealActualmobility causeslink breakage,resulting in routefailureTCP data and acksen route discardedWhy Does Throughput Degrade?TCP sender times out.Starts sending packets againRoute isrepairedNo throughputNo throughputdespite route repairmobility causeslink breakage,resulting in routefailureTCP data and acksen route discardedWhy Does Repair Latency hurt?TCP sendertimes out.Backs off timer.Route isrepairedTCP sendertimes out.ResumessendingNo throughputNo throughputdespite route repairHow to Improve Throughput(Bring Closer to Ideal)• Network feedback• Inform TCP of route failure by explicit message• Let TCP know when route is repaired– Probing (eg, persistent pkt retransmissions)– Explicit link repair notification• Alleviates repeated TCP timeouts and backoffPerformance with Explicit Notification00.20.40.60.812 10 20 30mean speed (m/s)throughput as a fraction of idealBase TCPWith explicitnotificationImpact of Caching• Route caching has been suggested as a mechanism to reduce route discovery overhead [Broch98]• Each node may cache one or more routes to a given destination• When a route from S to D is detected as broken, node S may:– Use another cached route from local cache, or– Obtain a new route using cached route at another nodeTo Cache or Not to CacheAverage speed (m/s)Actual throughput (as fraction of expected throughput)Why Performance Degrades With Caching• When a route is broken, route discovery returns a cached route from local cache or from a nearby node• After a time-out, TCP sender transmits a packet on the new route.However, what if the cached route has also broken after it was cached?• Another route discovery, and TCP time-out interval• Process repeats until a good route is foundtimeout dueto route failuretimeout, cachedroute is brokentimeout, second cachedroute also brokenIssuesTo Cache or Not to Cache• Caching can result in faster route “repair”• Faster does not necessarily mean correct!• If incorrect repairs occur often enough, caching performs poorly• Need mechanisms for determining when cached routes are staleCaching and TCP performance• Caching can reduce overhead of route discovery even if cache accuracy is not very high• But if cache accuracy is not high enough, gains in routing overhead may be offset by loss of TCP performance due to multiple time-outsTCP PerformanceTwo
View Full Document