TCP Over Mobile Internetworking Hun Jung Minsub Kim

advertisement
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
Download