Wireless & Mobile NetworkingPage 38 Spring 2012 CS 752/852 - Wireless Networking and Mobile...
Transcript of Wireless & Mobile NetworkingPage 38 Spring 2012 CS 752/852 - Wireless Networking and Mobile...
Wireless & Mobile Networking
CS 752/852 - Spring 2012
Tamer Nadeem Dept. of Computer Science
Lec 16: Transport Layer - Wireless TCP
Page 2 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
The OSI Communication Model
Page 3 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Recall 1: PHY and MAC
MAC MAC
PHY PHY
• Spread Spectrum radios (DS and FH)
• RTS/CTS and Carrier Sensing for Hidden Terminals
• Directional antennas to reduce interference
• Rate control to extract max capacity from available SINR
• Power control for spatial reuse & energy savings – topology control
• TDMA scheduling, multi-channel use, encryption security
… and many more
Page 4 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Recall 2: Network Layer
Routing
• The first view of the network
• Coping up with (uncontrolled) user mobility
-Flooding the network reactively, or proactive updation
• Mobile IP, coping with handoffs, etc.
• Ad hoc routing – discovery, optimal metric, maintenance, caching
• Secure routing – Routes bypassing malicious nodes
Routing
Routing
Routing
Routing
Page 5 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Role of Transport Layer
TCP
• Transport packets quickly and reliably over this network
• Network properties often unknown (or difficult to track)
- Where is the congestion ? How much cross traffic ?
- What is the bottleneck bandwidth ?
- How much buffers at intermediate nodes ?
Motivation for end to end TCP
TCP
NETWORK
Page 6 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Some transmission methods
• Stop & Wait
• Pipelined
• Go Back N
• Selective Repeat
Page 7 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Stop-and-wait operation
first packet bit transmitted, t = 0
sender receiver
RTT
last packet bit transmitted, t = L / R
first packet bit arrives
last packet bit arrives, send ACK
ACK arrives, send next
packet, t = RTT + L / R
U sender
= .008
30.008 = 0.00027
microsec
onds
L / R
RTT + L / R =
Page 8 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Pipelined protocols
Pipelining: sender allows multiple, “in-flight”, yet-to-be-
acknowledged pkts
• range of sequence numbers must be increased
• buffering at sender and/or receiver
• Two generic forms of pipelined protocols: go-Back-N, selective
repeat
Page 9 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Pipelining: increased utilization
first packet bit transmitted, t = 0
sender receiver
RTT
last bit transmitted, t = L / R
first packet bit arrives
last packet bit arrives, send ACK
ACK arrives, send next
packet, t = RTT + L / R
last bit of 2nd packet arrives, send ACK
last bit of 3rd packet arrives, send ACK
U sender
= .024
30.008 = 0.0008
microsecon
ds
3 * L / R
RTT + L / R =
Increase utilization
by a factor of 3!
Page 10 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Go-Back-N
Sender:
• k-bit seq # in pkt header
• “window” of up to N, consecutive unack’ed pkts allowed
ACK(n): ACKs all pkts up to, including seq # n - “cumulative ACK”
may receive duplicate ACKs
timer for each in-flight pkt
timeout(n): retransmit pkt n and all higher seq # pkts in window
GBN in action
Page 12 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Selective Repeat
• receiver individually acknowledges all correctly received
pkts
• buffers pkts, as needed, for eventual in-order delivery to upper layer
• sender only resends pkts for which ACK not received
• sender timer for each unACKed pkt
• sender window
• N consecutive seq #’s
• again limits seq #s of sent, unACKed pkts
Selective repeat: sender, receiver windows
Page 14 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Selective repeat
data from above :
• if next available seq # in window, send
pkt
timeout(n):
• resend pkt n, restart timer
ACK(n) in [sendbase,sendbase+N]:
• mark pkt n as received
• if n smallest unACKed pkt, advance
window base to next unACKed seq #
sender
pkt n in [rcvbase, rcvbase+N-1]
send ACK(n)
out-of-order: buffer
in-order: deliver (also deliver
buffered, in-order pkts),
advance window to next not-yet-
received pkt
pkt n in [rcvbase-N,rcvbase-1]
ACK(n)
otherwise:
ignore
receiver
Selective repeat in action
Page 16 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
TCP
Page 17 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
TCP Congestion Control
• Problem Definition
• How much data should I pump into the network to ensure
• Intermediate router queues not filling up
• Fairness achieved among multiple TCP flows
• Why is this problem difficult?
• TCP cannot have information about the network
• Only TCP receiver can give some feedbacks
Page 18 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
The Control Problem
• Two main components in TCP
• Flow Control and Congestion Control
• Flow Control
• If receiver’s bucket filling up, pour less water
• Congestion Control
• Don’t pour too much if there are leaks in intermediate pipes
• Regulate your flow based on how much is leaking out
• Aggressive pouring calls for retransmission of lost packets
• Conservative pouring lower e2e capacity
• Challenge: At what rate(t) should you pour ?
Page 19 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
The TCP Protocol (in a nutshell)
• T transmits few packets, waits for ACK
• Called slow start
• R acknowledges all packet till seq #i by ACK i (optimizations possible)
• ACK sent out only on receiving a packet
• Can be Duplicate ACK if expected packet not received
• ACK reaches T indicator of more capacity
• T transmits larger burst of packets (self clocking) … so on
• Burst size increased until packet drops (i.e., DupACK)
• When T gets DupACK or waits for longer than RTO
• Assumes congestion reduces burst size (congestion window)
Page 20 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
TCP Timeline
Host A
RT
T
Host B
time
Think of a blind
person trying to
stand up in a low
ceiling room
Objective:
Don’t bang your
head, but stand
up quickly
Page 21 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
When waited for > RTO
0
5
10
15
20
25
0 3 6 9 12 15 20 22 25
Time (round trips)
Co
ng
esti
on
win
do
w (
seg
men
ts)
ssthresh = 8 ssthresh = 10
cwnd = 20
After RTO timeout
Page 22 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
The TCP Protocol (in a nutshell)
• DupACK not necessarily indicator of congestion
• Can happen due to out of order (OOO) delivery of packets
• If 3 OOO pkts, then CW need not be cut drastically
• The DupACK packet retransmitted
• Continue with same pace of transmission as before
(fast recovery)
• R advertizes its receiver window in ACKs
• If filling up, T reduces congestion window
Page 23 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Fast Recovery on 3 OOO DupACKs
0
2
4
6
8
10
0 2 4 6 8 10 12 14
Time (round trips)
Win
do
w s
ize (
seg
men
ts)
Receiver’s advertized window
After fast recovery
Page 24 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
TCP Round Trip Time and Timeout
EstimatedRTT = (1- )*EstimatedRTT + *SampleRTT
Exponential weighted moving average
influence of past sample decreases exponentially fast
typical value: = 0.125
Page 25 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Example RTT estimation:
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RT
T (
mil
lise
con
ds)
SampleRTT Estimated RTT
Page 26 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
TCP Round Trip Time and Timeout
Setting the timeout
• EstimtedRTT plus “safety margin”
• large variation in EstimatedRTT -> larger safety margin
• first estimate of how much SampleRTT deviates from EstimatedRTT:
TimeoutInterval = EstimatedRTT + 4*DevRTT
DevRTT = (1-)*DevRTT +
*|SampleRTT-EstimatedRTT|
(typically, = 0.25)
Then set timeout interval:
Page 27 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Several flavors of TCP: combines options / optimizations
Reno, Vegas, Eifel, Westwood …
Overall TCP has worked well – proven on the internet
Then why study it again
for wireless networks ?
Page 28 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Renewed Challenge
• Key assumption in TCP
• A packet loss is indicative of network congestion
• Source needs to regulate flow by reducing CW
• Assumption closely true for wired networks
• BER ~ 10 -6
• With wireless, errors due to fading, fluctuations
• Need not reduce CW in response …
• But, TCP is e2e CANNOT see the network
• Thus, TCP cannot classify the cause of loss CHALLENGE
Page 29 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
The Problem Model
wireless
physical
link
network
transport
application
physical
link
network
transport
application
physical
link
network
transport
application
rxmt
TCP connection
Wireline
Page 30 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Impact of Misclassification
0.0E+00
5.0E+05
1.0E+06
1.5E+06
2.0E+06
0 10 20 30 40 50 60
Time (s)
Se
qu
en
ce
nu
mb
er
(byte
s)
TCP Reno
(280 Kbps)
Best possible
TCP with no errors
(1.30 Mbps)
2 MB wide-area TCP transfer over 2 Mbps WaveLAN
Page 31 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
The Solution Space
• Much research on TCP over wireless
• Difficult to cover complete ground
• We peek into some of the key ideas
• Link layer mechanisms
• Split connection approach
• TCP-Aware link layer
• TCP-Unaware approximation of TCP-aware link layer
• Explicit notification
• Receiver-based discrimination
• Sender-based discrimination
Page 32 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Link Layer Mechanisms
Page 33 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Link Layer Mechanisms
• Forward error corrections
• Add redundancy in the packets to correct bit-errors
• TCP retransmissions can be alleviated
• Link layer retransmissions
• MAC layer ACKnowledgments
• Overhead only when errors occur (unlike FEC)
Such mechanisms require no change in TCP
Is that breaking e2e argument ??
Page 34 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Issues with Link Layer Mechanisms
• Link layer cannot guarantee reliability
• Have to drop packets after some finite limit
• What is the retransmission limit (??)
• Retransmission can take quite long
• Can be significant fraction of RTT
• TCP can timeout and retransmit the same packet again
• Increasing RTO can avoid this
• But that impacts TCP’s recovery from congestion
• Head of the line blocking
• Link layer has to keep retransmitting even if bad channel
• Blocks other streams
Page 35 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Findings
• Link layer retransmission good
• When channel errors infrequent
• When retransmit time << RTO
• When modifying TCP is not an acceptable solution
Page 36 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Split Connection Approach
Page 37 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
1 TCP = ½ TCP + ½ (TCP or XXX)
wireless
physical
link
network
transport
application
physical
link
network
transport
application
physical
link
network
transport
application rxmt
Per-TCP connection state
TCP connection TCP connection
Base
Station
Page 38 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Splitting Approaches
• Indirect TCP [Baker97]
• Fixed host (FH) to base station (BS) uses TCP
• BS to mobile host (MH) uses another TCP connection
• Selective Repeat [Yavatkar94]
• Over FH to BS: Use TCP
• Over BS to MH: Use selective repeat on top of UDP
• No congestion control over wireless [Haas97]
• Also use less headers over wireless
• Header compression
Page 39 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Issues with Splitting
• E2E totally broken
• 2 separate connections
• BS maintains hard state for each connection
• What if MH disconnected from BS ?
• Huge buffer requirements at BS
• What if BS fails ?
• Handoff between BS requires state transfer
• What if Data and ACK travel on different routes ?
• BS will not see the ACK at all – splitting not feasible
Page 40 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
TCP-Aware Link Layer
Page 41 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Snoop
• Link layer at BS buffers un-acknowledged packets
• Now, BS peeks into every returning TCP ACK from MH
• If DupACK
• Retransmits the necessary packet
• Drops the DupACK
• DupACK does not reach sender
• Prevents fast retransmit
Page 42 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Snoop : Example
FH MH BS
40 39 37 38
36 34
Example assumes delayed ack - every other packet ack’d
36
37
38
35 TCP state
maintained at
link layer
Page 43 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Snoop : Example
41 40 38 39
36 34
36
37
38
35 39
Page 44 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Snoop : Example
42 41 39 40
36
Duplicate acks are not delayed
36
dupack
37
38
39
40
Page 45 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Snoop : Example
40
36 36 36
Duplicate acks
41 43 42
37
38
39
40
41
Page 46 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Snoop : Example
FH MH BS
41
36 36
37 44 43
36
37
38
39
40
41
42
Discard
dupack
Dupack triggers retransmission
of packet 37 from base station
BS needs to be TCP-aware to
be able to interpret TCP headers
Page 47 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Snoop : Example
37
36
36
42 45 44
36
37
38
39
40
41
42
43
36
Page 48 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Snoop : Example
42
36
36
43 46 45
36
37
38
39
40
41
42
43
41
36
44
TCP sender does not
fast retransmit
Page 49 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Snoop : Example
43
36 36
44 47 46
36
37
38
39
40
41
42
43
41
36
44
TCP sender does not
fast retransmit
45
Page 50 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Snoop : Example
FH MH BS
44
36 36
45 48 47
36
42
43
41
36
44
45
43
46
Page 51 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Snoop [Balakrishnan95acm]
0
400000
800000
1200000
1600000
2000000
16
K
32
K
64
K
12
8K
25
6K
no
erro
r
1/error rate (in bytes)
bit
s/s
ec
base TCP
Snoop
2 Mbps Wireless link
Page 52 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Issues with Snoop
• Link layer needs to be TCP aware
• Smelling cross layer
• Link layer needs to buffer and perform sliding window
• Not useful when TCP headers encrypted
• Not feasible when Data and ACK travel different routes
• RTT estimates can still go up due to link layer retransmission
• Affects performance of Snoop
Page 53 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Wireless TCP
• WTCP attempts to nullify RTT estimation problem
• When data packets are lost due to errors
• Link layer includes own time stamp in ACK packet
• ACK packets that have BS time stamps indicate a wireless loss
• RTT of these packets not considered for RTO calculation
• But then, what if wireless hop is also congested !!!!!!
• Time stamping cannot take care of that
Page 54 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Quick look at other schemes
TCP-unaware schemes
Explicit notification
Receiver-based
Page 55 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
TCP-Unaware, ELN
• Delayed DupACKs
• Receiver waits for sometime before sending DupACK
• If link retransmission solves problem
• Then TCP sender does not send redundant packet
• Explicit Loss Notification (ELN)
• BS remembers only packet’s sequence numbers
• When DupACKs return through them, they check
• If packet was received by BS, then colors the DupACK
• Sender realizes that packet lost on wireless link
• Does not cut down CW, just retransmits that packet
Page 56 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Closing Thoughts
• Reliable and in-order packet delivery important
• TCP aims to support these features
• Implements congestion control and flow control
• TCP widely tuned for wireline networks
• Proven to be efficient on the internet
• When network periphery has wireless “last mile”
• TCP exhibits myriad problems
• Mainly because of
“misclassification between congestion and channel errors”
• Several solution approaches but many open problems
Page 57 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
What’s Hot Now ??
• TCP over wireless multihop (mesh)
• Each hop has contention-based MAC
• Unpredictable delays and congestion
• Fairness between TCP e2e flows a very challenging problem
• Mobility can significantly affect TCP
(Very difficult set of open problems)
• More fundamental: Is TCP the way to go for wireless
• Strong ongoing debate in community
• Useful queuing solutions in ad hoc networks
• Neighborhood RED solution
… and many many more …
Page 58 Spring 2012 CS 752/852 - Wireless Networking and Mobile Computing
Questions ?