550 likes | 694 Views
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
E N D
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 • Snoop • End-to-End solutions • 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 Old MSS MH Cell crossing 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. Beacon Packet Loss(1) Greet (a) Packet Loss(2) Greet ACK Notify (b) Notify ACK Notify changes router 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.
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.
M-TCP Connection splitting Solution
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 M-TCP, we consider it disconnection event.
Example of Normal Transmission (2,1) buffered SH cwnd=2 cwnd=3 SH-TCP M-TCP This is for freezing sender’s window.
Example of Normal Transmission (4,3) buffered SH cwnd=3 cwnd=5 M-TCP SH-TCP This is for freezing sender’s window.
Example of Disconnection (8,7,6,5) buffered SH cwnd=5 cwnd=6 Freezing Freezing M-TCP SH-TCP Freezing Notifydisconnection
Example of Recovery (8,7,6,5) buffered SH Notify reconn. cwnd=6 cwnd=9 M-TCP SH-TCP
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 MH SH (2) (3) RTT(1) (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.
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
APP MHP_BS MHP_X TCP TCP TCP/IP IP IP Loss and handoff Loss and handoff MTCP-connection establishment MH X FH Y BS APP 1 2 3 • MHP_X intercepts connect call with <destIPaddr,destPort>of FH Y • from app • 2. 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>
BS MH X FH Y App App MHP_X MHP_BS TCP/IP stack TCP/IP stack TCP/IP stack Data Transfer 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.
MHP_BS1 MHP_X MHP_BS2 TCP TCP TCP IP IP IP Loss and handoff Loss and handoff Loss and handoff Handoff Management BS1 Cell across MH_X handover message addr of MHP_BS1 BS2 Conn resume msg Conn state info. pkts buffered. To recover from handoff, MHP must maintain state info such as current window size and seq#s for window edges.
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.
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,