140 likes | 408 Views
Wireless TCP. Prasun Dewan. Department of Computer Science University of North Carolina dewan@unc.edu. Problem. TCP layered on top of of IP IP interface provided to TCP is independent of physical layer Implementation dependent on physical layer Wireless just another physical Layer
E N D
Wireless TCP Prasun Dewan Department of Computer Science University of North Carolina dewan@unc.edu
Problem • TCP layered on top of of IP • IP interface provided to TCP is independent of physical layer • Implementation dependent on physical layer • Wireless just another physical Layer • Problem?
Tuning problem • Working correctly not an issue • Working efficiently is • On wire links losses (normally) due to congestion • On wireless losses can be due to • Unreliable physical medium • Intermittent connectivity • Handoff losses • Can be reduced • With old base station buffering messages • With adjacent base stations joining a multicast group and buffering messages • Reduces delay • TCP/IP policies for wired links will mistake wireless losses and delays for router congestion
TCP/IP Response to Losses • Assume losses due to congestion • Drops (halves) transmission window size • Window size determines how many packets can be sent before waiting for ack • Determines throughput • If losses due to unreliable physical layer needless reduction of throughput
Solution • Distinguish between congestion and other losses • Do not reduce window in response to non congestion losses
Issues • Where in the path from sender to receiver to solve problem? • How to distinguish between the two reasons for losses?
Possible Adaptations • Where in the path from sender to receiver to solve problem? • End-to-end • Sender and receiver together addresses problem • They address congestion loss • They should also address medium loss • Link layer addresses problem • Problem occurred in the link • Should be solved there too • Split connection • One TCP connection from wired end to base, another from base to wireless end • Problem solved locally • But solved at TCP layer (more semantics)
End-to-end • How to distinguish between the two reasons for losses?
Traditional TCP Loss Detection • Timeout • average round trip time + 4*mean deviation • Duplicate acks from receiver • Ack indicates sequence number of next expected message • If message mi gets lost then acks of subsequent messages will have sequence # i
Explicit Loss Notification • When packet dropped over wireless • Subsequent acks indicate loss occurred • How loss detected in Wireless LAN • If corrupted packet • Receiver detects CRC errors • Passes to transport layer • If entire packet is lost • Base station observes duplicate acks • Attaches ELN to them • What if wireless link is sending? • Congestion vs. loss
Problem with End to End • Un-necessary duplicate acks sent all the way to source • Un-necessary retransmissions from source to destination • Does not address wireless sender
Link Level • Handle the problem at the link level,that is where the loss occurred. • Local retransmission instead of end to end retransmission • Link-level timer much smaller (~20ms) • TCP timers larger (multiples of 500 ms) • Depends on end to end delay • Several possibilities • Window of size 1 • Larger window • Cumulative acks • SMART scheme • Cumulative ack mentions sequence # of received packet • Previous packets presumed to be lost rather than reordered
Link Level Problems • Both end to end and link level retransmissions are working • “Incompatible” timers cause retransmission by both parties • Unless > 10% loss retransmissions occur • End to end timeout should not occur • Link-level does not try to deliver in order • Duplicate retransmissions can reach receiver because of out of order delivery • If messages in order, dup acks and end to end retransmissions do not occur, unlike end to end • Can add TCP awareness to link level so dup acks do not occur • Layering broken
Split Connection Algorithm • Break a single TCP connection from wired end to wireless end into • TCP connection from wired end to base station • TCP connection from base station to wireless end • SMART scheme better than RENO since sender does not wait for timeout or duplicate acks • Out of order messages do not occur on single link • End to end out of order delivery does not occur • Sender never gets duplicate acks • Two TCP stacks encountered • Sharing of pointers between stacks at base station helps • End to end semantics violated • Sender can get ack before receiver gets message • Buffer space at base station bounded • Does not ack wired end when this happens? • Original TCP sender can stall • Link level with TCP awareness best