790 likes | 818 Views
Learn about the challenges of using Standard TCP over wireless links and explore solutions like I-TCP, Snoop Protocol, and Delayed Duplicate ACK. Discover how these implementations address packet loss issues in wireless networks.
E N D
Wireless TCP Introduction • The problems of Standard TCP over wireless link and basic solution • Several implementations of wireless TCP • I-TCP (Indirect TCP) • Snoop Protocol • Delayed duplicated ACK • Multiple Acknowledgements • Freeze TCP • Comments and discussion
The problems of standard TCP in wireless networks • Standard TCP assume that the packet losses are due to the congestion.(99%) • This not valid considering the characteristic of wireless link • sporadic high bit-error rate, high latencies • temporary disconnection due to handoff • Misinterpretation packet loss for congestion
Basic ideas to overcome the problem in wireless network • Hide any non-congestion-related losses from TCP • Split TCP connection • Local retransmissions • IP Layer • Link layer • Let TCP aware the non-congestion-related losses and not apply congestion control
Basics topology Figure 1 Topology
I-TCP: Indirect TCP • Breaks the TCP connection between FH and MH into two connections at MSR • Connection between FH and MSR is regular TCP • Connection between MSR and MH is any transport layer protocol tuned for wireless links.
I-TCP indirect TCP (Cont.) • BS cache packets from FH and send back ACK for MH. • if MH switches to another cell the center point of the connection moves to the new MSR, no need of reconnection. • FH is completely unaware of the indirection and is not affected even when the MH switches cells.
I-TCP Result in LAN TABLE 1 I-TCP Throughput Performance over Local Area
I-TCP Result in WAN Table 2 I-TCP Throughput Performance over Wide Area
Snoop Protocol • Basic idea • Modify the IP layer in the BS, and let BS cache the TCP packets sent from FH before route it to the MH. • If packet lost on wireless link, IP layer on the BS will retransmit the packet . • BS suppress DUPACKs sent from MH to FH. • BS use shorter local timer for local timeout.
Three kinds of data packets from FH • A new packet in the normal TCP sequence. (common case) • An out-of-sequence packet that has been cached earlier. (sender retransmission) • An out-of-sequence packet that has not been cached earlier. (congestion loss)
Flowchart for snoop_data 1. Forward Packet 2. Reset local rexmit counter Packet arrives No New Packets? Acknowledged No Yes Send back lasted ACK Sender rexmition Yes In sequence? No 1. Mark as cong. loss 2. Forward packet Congestion loss Yes 1. Cache packet 2. Forward to mobile host Common case Figure 3. Flowchart for snoop_data()
Process three kinds of ACKs • A new ACK from MH • A spurious ACK, sequence number less than the lasted acknowledged one • A duplicate ACK (DUPACK)
Flowchart for snoop_ack Ack arrives 1. Free buffers 2. Update RTT 3. Propagate ACK to sender Yes New ACK? No Common case No Discard Dup ACK? Spurious Ack Yes Retransmit lost packets with high priority No Yes First one? Discard Later dup Acks, for lost packet Next packet lost Figure 4. Flowchart for snoop_ack
Data from MH to FH • Can not differentiate between BER loss or Congestion loss. • Using SACK (selective acknowledge) • BS keep track packet losses in a transmit window. • BS send NACK to MH with SACK option indicate the boundary of the lost packets.
Routing in snoop protocol • Similar to Mobile IP. • Using multicast and intelligent buffering in nearby base stations. • One prime BS forward packets • Several nearby BS cache the last several packets
Handoff process in snoop protocol • Initiated by mobile host • MH send control messages to the various BS, request them either begin or end forwarding and buffering of packets • The activated forwarding BS synchronizing its buffer using information in the control message
Handoff process Cont. • since snoop module does not change any of the end-to-end semantics of TCP, it is resistant the random packet losses when handoff.
BS_OLD MH BS_NEW packet1 Stronger beacon beacon packet2 Buffer request Forward request packet3 Handoff latency packet4 packet5 Handoff process
AT&T Wavelan 2Mbits/s Topology for experiment Ethernet Transmitter Home Agent BS1 BS2 MH
Delayed Duplicate ACK • Motivations • TCP may be encrypted • ACK may go different paths from that of data. • Basic ideas • The idea is to delay the third and subsequent duplicate acknowledgments for some time, let BS link layer do local retransmissions.
Delayed Duplicate ACK (cont.) • TCP not changed in BS , only changed in MH • BS data link layer re-transmission triggered by link level acknowledgements. • Performance depend on the ratio of BER loss and congestion loss.
Reduce interference • FH timer is very coarse (multiple of 200 or 500ms), link layer timer in BS is much smaller. Interference is small. • Reduce interference between fast retransmission and local retransmission by delay the third dupack for a time interval T.
Delay interval T • If T = 0, regular TCP. • All congestion loss • If T = infinity, regular TCP without fast retransmission. • All BER loss • Appropriate T should be a function of RTT of the wireless link, and relate to BER and congestion loss rate.
Simulation Result • Use ns-2 simulator • Wired network with 10Mbps bandwidth and delay of 20ms. • Wireless network with 2Mbps bandwidth and delay of 1ms - 40ms • packet data size is 1000 byte. • T ranges from 0 to 0.2 second
Multiple Acknowledgements Protocol • Distinguish the losses on the wired portion from the losses on the wireless link. • ACKp: partial acknowledgment that inform the sender the packet is received by BS. • ACKc: complete acknowledgment has the same semantics as the normal TCP. • RTT: round trip time between the sender and the receiver. (end to end)
Multiple Acknowledgements protocol (Cont.) • RTTB: round trip time between the base station and the mobile host. • RTO: timer value for end-to-end acknowledgement. • RTOB: maximum time which can elapse between the reception of a packet at the base station and its acknowledgement by the mobile host
TCP on sender and receiver • Sender • When receive a ACKp, reset timer RTO to avoid time out while BS is retranslating. • Update RTT when receive ACKp, suitable for transit bandwidth drop • Update RTT when receive ACKc, reflect the real round trip time • No change is made to Receiver TCP
Snoop protocol on BS • Snoop data • On receiving new packet, cache it and start RTOB • On receiving out of order and cached packet, • S > Sa, and packet still in cache, send ACKp to FH • S > Sa, and packet not in cache, as new packet • S < Sa, generate a fake ACKc to FH • On receiving out of order and un-cached packet, cache it and forward
Snoop protocol on BS (Cont.) • Retransmissions • When RTOB expires, the packet must be retransmitted and ACKp is sent back to the to the sender if all packets before it have been received by the base station. (important difference from Berkley Snoop Protocol) • Snoop ACK is the exactly the same with the Berkeley Snoop Protocol
Implementation of ACKp and ACKc • For ACKc, it is the normal TCP ACK • For ACKp, An option is implemented with the a type byte, length byte and a 4 bytes sequence number, total of 6 bytes.
Freeze-TCP • Motivations • Most wireless TCP implementations do not handle frequent handoff or long temporary disconnection properly. • Freeze-TCP can handle it efficiently. • Freeze-TCP can be integrated with other existing solutions. • Only change TCP on the mobile client side
Handle frequent handoff • ZWP - zero window probes • When advertise window become zero, sender send ZWP. • If ZWP is lost, the sender does not shrink congestion window, but exponentially back off. • Sender resume transmission after receive a non-zero advertised window
Handle frequent handoff (cont.) • Mobile client sense the strength of signal to judge if there will be a handoff or disconnection. • Send ZWA (Zero Window Advertisement) to sender before handoff. • Warning period choose as RTT.
Avoid long freeze time • The interval between successive ZWPs grow exponentially. • Long freeze time if reconnect immediately after a ZWP lost. • Use TR-ACK to avoid long unnecessary freeze time, send 3 copies of ACKs for the last data segment it received prior to the disconnection.
Comments and discussion • I-TCP • Well performed in most of the wireless links, no change in FH • Change semantics of end-to-end ACK, • Berkeley Snoop • Well performed in wireless LAN, keep semantics of end-to-end ACK
Comments and discussion Cont. • Not perform well in wireless links with long latency, fail when TCP is encrypted. • Multiple Acknowledgement • Can be used in high bit-error rate environment, keep ACK semantics • Fail when TCP is encrypted
Comments and discussion Cont. • Delayed Acknowledgement • Can be used when TCP is encrypted • Use link layer retransmission, must have reliable link layer support
TCP propagation delay introduction • Long RTTs are now becoming prevalent in the Internet with the introduction of paths crossing satellite links. • At long RTT, TCP congestion mechanism may result in an inefficient utilization of network resources. • Since TCP is based on the ACK clock, the congestion window increase rate is lower because of long RTT.
Effect of propagation delay • The performance that suffer the most is during congestion avoidance at a low slow start threshold. • Slow start requires more time to achieve in long RTT link. Therefore TCP performance degrades. • It is more critical for small file transfer and WWW browsing.