TCP Over Mobile Internetworking Hun Jung Minsub Kim

Preview:

Citation preview

TCP Over Mobile Internetworking

Hun JungMinsub 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.

Beacon

Greet

Greet ACK

Notify

Notify ACK

MH New MSS Old MSS

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.

(a)

Cell crossing

PacketLoss(1)

PacketLoss(2)

Notify changes

router Packet Loss(1) : MH SHPacket Loss(2) : SH MH

(b)

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 M-TCP, we consider it disconnection event.

Example of Normal Transmission

2 1 2 1

1 2

1 2

1

2

SH-TCP

M-TCP

This is for freezing sender’s window.

cwnd=2

SH

cwnd=3

(2,1) buffered

Example of Normal Transmission

4 3 4 3

3 4

3 4

2 3

4

SH-TCP M-TCP

This is for freezing sender’s window.

2

cwnd=3cwnd=5

SH (4,3) buffered

Example of Disconnection

8 7 6 5

4

SH-TCP M-TCP

4Freezing

Notify disconnection

Freezing

Freezing

(8,7,6,5) buffered

cwnd=5

SH

cwnd=6

Example of Recovery

5 6 7 8

8

SH-TCP M-TCP

5 6 7 8

5 6 7

16 15 14 13 12 11 10 9

Notify reconn.

5 6 7 84

cwnd=6cwnd=9

(8,7,6,5) buffered

SH

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

(1): RTT between FH and MH.(2+4): RTT between FH and SH.(3): RTT between SH and MH.Therefore (1) = (2+4)+(3)

RTT(1)

(2)

(3)

(4)

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

Loss and handoff

MHP_BS

TCP

IP

Loss and handoff

MHP_X

TCP

IP

APP

TCP/IP

APP1 2 3

MH XBS

FH Y

1. 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)3. MHP_BS establishes a TCP connection with Y at the addr <destIPaddr, destPort>

Data Transfer

1.TCP app on X send data2.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 Y4.similarly, when MHP_BS receives data from Y, it first breaks them into smaller fragments and forward them to X.

AppMHP_X

TCP/IP stack

MHP_BS

TCP/IP stack

App

TCP/IP stack

MH X BS FH Y

Handoff Management

Loss and handoff

MHP_X

TCP

IP

Loss and handoff

MHP_BS2

TCP

IP

Loss and handoff

MHP_BS1

TCP

IPaddr of MHP_BS1

hand

over

mes

sage

Conn state info.pkts buffered.

Conn resume m

sg

MH_X

BS2

BS1

Cell across

To recover from handoff, MHPmust maintain state info such ascurrent window size and seq#sfor window edges.

In Upper left hand corner to (no pause, no losses) case, meaning No mobililty and no packet loss. But MTCP performs better.Why?

performance

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.

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.)

Routing Protocol(cont)

handoff

a list of unique Identifiers for the last several pkts receivedby 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

Even frequent handoffs has very little impact on performance.

Impact of frequent handoff 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

Recommended