TCP Over Mobile Internetworking Hun Jung Minsub Kim Outline Problem with TCP in Mobile Network. 4 different approach to improve TCP performance. Fast retransmit M-TCP Snoop MTCP Problem with TCP in Mobile. We can’t achieve same service that offered fixed host Several reasons for drastic drop in TCP Throughput. Effect of a High Bit Error Rate. packet loss The effect of disconnection. packet loss The effect of frequent disconnection packet loss How does TCP work. Packet loss: threshhold = threshhold / 2. cwnd 1. Back off retransmit timer exponentially. Three duplicated ACKs: Fast retransmit Resend a packet immediately. Fast recovery threshhold = threshhold / 2 cwnd = 1 What is real problem TCP simply interprets packet loss as a indication of the congestion. But this is not the case, most losses due to errors and disconnection. Solutions to the problem. Link layer solution End-to-End solutions Snoop Fast Retransmit Connection splitting solutions M-TCP MTCP Fast Retransmit End-to-End Solution. Wireless Networking Testbed Mobile Hosts (MH), Mobile Support Stations (MSS), Stationary Hosts (SH). Mobile hosts, MH, connects to a 2-Mb/s waveLAN. Stationary hosts, SH, connects to 10-Mb/s Ethernet. General Cellular Handoff Procedures MSS’s make their presence known by broadcasting a beacon signal An MH switches cells When it receives a stronger beacon signal from a new MSS When it receives the first beacon signal from a new MSS after failing to receive a beacon signal from the old MSS. General Order of Switch Cells. New MSS MH Old MSS Cell crossing Packet Loss(1) (a) Packet Loss(2) Beacon Greet Greet ACK Notify (b) Notify ACK Notify changes router Greet: request handoff. (a) change MH’s routing table. Greet ACK: inserted MH into New MSS’s routing table. Notify: inform Old MSS that MH is now in New MSS’ cell. Notify ACK: Old MSS deleted MH from routing table of Old MSS. (b)Forward packet for MH to New MSS. Notify changes : Finally, New MSS Notify router routing changes. Packet Loss(1) : MH SH Packet Loss(2) : SH MH Four motion scenarios No hand off. overlapping cells. 0 sec. rendezvous delay: receives a beacon without delay. 1 sec. rendezvous delay: receives a beacon with 1 sec. delay Simulation result of Traditional TCP • transferring 4 Mbytes of data between an MH and an SH. • Substantially reduced in the non-overlapping cells with three handoff. Traditional TCP with 1s delay Fast Retransmit (FR) Mobile IP on MH signals TCP on MH completion of the handoff. TCP on MH forwards signal to TCP on SH. (This special signal can be specially marked TCP ACK or three ordinary TCP ACK’s.) Once TCP on SH receives the signal, it can invoke fast retransmit and fast recovery procedure. Fast Retransmission with a 1-s delay. Simulation result of FR M-TCP Connection splitting Solution Underlying Architecture Transport Layer Design How does SH-TCP work? It passes the packets from the TCP Sender on to M-TCP. SH-TCP sends ACKs from MH in the normal way. But one last byte is always left unacknowledged for future use. How does SH-TCP work? (Cont.) When there is disconnection in Mobile Network, it simply send this ack with window size 0 it forced TCP sender into persist mode (freezing). When a MH regains its connection, it send a greeting packet to the SH. In turn, SH sends an ACK to the sender Sender exit from persist mode, and send packets again with unchanged cwnd. M-TCP between SH and MH Similar scheme to SH-TCP except that it responds to notifications of wireless link connectivity. When M-TCP at MH is notified connection lost, it freezes all M-TCP timers not to cause the MH’s M-TCP to invoke congestion control. When it reconnects, it unfreeze all the timers and resumes normal operation by sending specially marked ACK having the highest received seq no. How does M-TCP determine disconnection Author assume the SH assigns fixed bandwidth to each connection and regulates its usage. Therefore, there is no need to invoke congestion control at SH when ACKs are not received from MH. M-TCP monitors the flow of ACKs from the MH. If not ACKs from the MH within Timeout of MTCP, we consider it disconnection event. Example of Normal Transmission (2,1) buffered SH 21 21 1 12 cwnd=2 cwnd=3 SH-TCP 2 M-TCP 12 This is for freezing sender’s window. Example of Normal Transmission (4,3) buffered SH 43 cwnd=5 cwnd=3 43 2 3 34 M-TCP SH-TCP 4 2 34 This is for freezing sender’s window. Example of Disconnection (8,7,6,5) buffered SH 8765 cwnd=5 cwnd=6 4 Freezing SH-TCP 4 Freezing M-TCP Freezing Notify disconnection Example of Recovery (8,7,6,5) buffered 16 15 14 13 12 11 10 9 SH 4 Notify reconn. cwnd=9 cwnd=6 567 SH-TCP 8 M-TCP 5678 5678 5678 Wintimer Settings It should expire for SH to send freeze ACK before the sender times out and invokes congestion control. How can Wintimer estimate RTO of FH. FH SH MH (2) RTT(1) (3) (4) (1): RTT between FH and MH. (2+4): RTT between FH and SH. (3): RTT between SH and MH. Therefore (1) = (2+4)+(3) Therefore, SH is able to estimate RTO of between FH and MH. Experimental set up Simulation results Conclusion. Benefits TCP semantic is maintained. Resilient periodic disconnection of wireless links. Drawbacks Complexity of SH. MTCP Cause of degradation in performance of TCP on wireless link. -MTU is typically much smaller -higher error bit rates ( multipath fading, environmental factors..) -> a burst of packets to be lost. -handoffs as periods of heavy losses MTCP •Central idea -a new session layer protocol ( at BS and MH) -no change to protocol on fixed hosts. •Session layer protocol designed to exploit the available knowledge about both wireless link characteristic and host mobility and to compensate for degradation between MH and BS by this info. •Advantage of this approach. degradation limited to a “short” connection MTCP ( mobile internetwork and protocol hierarchy) Connection establishment and handoff MTCP-connection establishment MH X 1 APP MHP_X 2. 3. BS 2 3 APP MHP_BS TCP TCP IP IP Loss and handoff 1. FH Y TCP/IP Loss and handoff MHP_X intercepts connect call with <destIPaddr,destPort>of FH Y from app MHP_X requests a transport level connection with its peer at BS MHP peer on BS sets up a MHP agent(MHP_BS) MHP_BS establishes a TCP connection with Y at the addr <destIPaddr, destPort> Data Transfer MH X BS App MHP_X TCP/IP stack FH Y App MHP_BS TCP/IP stack TCP/IP stack 1.TCP app on X send data 2.MHP_X uses the first Conn to send it to MHP_BS( in small MTU) 3.MHP_BS receive and buffers it to assemble these smaller packets into large TCP segments before forwarding them over the Conn to Y 4.similarly, when MHP_BS receives data from Y, it first breaks them into smaller fragments and forward them to X. Handoff Management BS1 MHP_BS1 Cell across TCP MH_X IP MHP_X TCP Loss and handoff BS2 IP Loss and handoff To recover from handoff, MHP must maintain state info such as current window size and seq#s for window edges. MHP_BS2 TCP IP Loss and handoff Conn state info. pkts buffered. performance In Upper left hand corner to (no pause, no losses) case, meaning No mobililty and no packet loss. But MTCP performs better. Why? snoop Most network Apps require reliable transmission( using TCP) Goal: Improving performance without changing existing TCP implementation on wired network. Administrative control only on BSs and MHs.(snoop module, routing protocol) general schime for data transfer. FH->MH modifications only to the routing code at BS -caching unacknowledged TCP data -perform local retransmissions (based on ACKs from MH and timeouts. MH->FH -detect missing packets at BS -generate negative ACK for them to MH Advantage Maintain the end-to-end semantics of TCP Not modifying host TCP in fixed network nor relinking existing apps Data Transfer from a Fixed Host The BS routing code modified by adding a module, called snoop.(No transport layer code at BS) Snoop module maintains a cache of TCP packets sent from FH that haven’t yet been ack’ed by MH. Also keep track of all the ACKs sent from MH Snoop module( snoop_data(),snoop_ack()) -snoop_data() -> processes and caches pkts intended for MH -snoop_ack() -> processes ACKs from MH and drives local retransmissions from BS to MH. Snoop_data() Snoop_ack() Data Transfer from a MH Modifications to protocol at MH no way for MH to know if pkt loss happened on wireless link or on wired network due to congestion. So, sender timeout for pkt lost on the (first)wireless link will happen much later that they should. At BS, keep track of the pkts lost in any transmitted window, and generate NACKs for those pkts back to the MH. NACKs sent based on either a threshold # of pkts(from a single window) reached BS or after a certain amount of time expired without any new pkts from the MH The only change at MH is to enable NACK processing. Routing Protocol Three basic 3 parts to routing of pkts to a MH. 1.Delivering pkt to a machine that understand mobility. (home agent concept from Mobile IP) -each MH assinged a long-term home addr and also a temporary IP multicast addr 2.determining the current location of the MH -keep track of all the recent beacons -determine which cell it should join and which cells it is likely to handoff -MH configures the routing from the between the HA and the various BSs. Routing Protocol(cont) 3. Routing system must support the delivery of pkts from a HA to the MH. -utilizes the dynamic routing by IP multicast. -BS for cell containing the MH join IP multicast group. -each pkt from HA on multicast group forwarded by this BS, the primary, to MH. (at most one promary BS at any instant time.) -BSs identified as likely handoff targets asked to join the multicast group.(not forwarding, just buffer the last several pkts received from HA.) handoff a list of unique Identifiers for the last several pkts received by the MH.->BS2 synchronize its buffer, Interaction Between the snoop and Routing Protocol. After handoff, the new BS must have the current set of unACKed pkts in its cache for local retransmissions. (but,no explicitly forwarding states from old BS to new one.) In reality, the state of the new and previous BSs are not likely to be identical after synchronization. (new BS missing several pkts from its snoop cache because of congestion and buffering pkts for only a short time before handoff.) Resistant to these gaps in its state since snoop module does not change any of end-to-end semantics of TCP->the holes in the cache will either be filled or ignored.->slight performance degrade it is better than state transfering between BSs which makes the duration of handoff long. performance performance Impact of frequent handoff on performance Even frequent handoffs has very little impact on performance. Reference M-TCP: TCP for Mobile Cellular Networks by Kevin Brown and Suresh Singh at ACM SIGCOMM. Improving the Performance of Reliable Transport Protocols in Mobile Computing Environments by Ramon Caceres and Liviu Iftode at IEEE. Fast and Scalable Handoffs for Wireless Internetworks by Ramon Caceres and Venkata N. Padmanabhan at MOBICOM. Improving end-to-end performance of TCP over mobile internetworks by Yavatkar, R. and Bhagawat, N. at MOBICOM. Improving reliable transport and handoff performance in cellular wireless networks by Balakrishnan H., Seshan S. and Katz T. at Wireless Networks 1