TCP Over Wireless Links
TCP Over Wireless Links
TCP Over Wireless Links
Impact of transmission errors on TCP performance Impact of handoffs on TCP performance Approaches to improve TCP performance
I-TCP Snoop Link layer retransmissions M-TCP
End-to-end semantics
Acks confirm delivery of data received by TCP receiver Ack for data sent only after data has reached receiver
Duplicate Acknowledgements
Duplicate ack is generated when a received packet has a larger-than-expected sequence number Duplicate acks may be generated when
a packet is lost, or a packet is delivered out-of-order (OOO)
40 39
34
37
38
36
out-of-order delivery
41
40
34
39
37
36
40
39
34
38
37
36
3 dupacks are also generated if a packet is delivered at least 3 places beyond its in-sequence location
12
11 10 9 7
Fast retransmit useful only if lower layers deliver packets almost ordered ---- otherwise, unnecessary fast retransmit
Fast retransmit is followed by fast recovery. After fast recovery, window size is reduced in half.
After fast recovery
10 8 6 4 2 0
0 2 4 6 8
10 12 14
Timeout results in slow start Slow start reduces congestion window to 1 MSS, reducing throughput Reduction in window in response to errors unnecessary
40
39
34
38
37
36
41
34
40
39
36
38
42
41
36
40
39
36
43
36
42
41
36
40
36
Duplicate acks
44
43
36
42
36
41
36
Reducing congestion window in response to errors is unnecessary Reduction in congestion window reduces the throughput
Reduction in congestion window in response to errors can significantly reduce the throughput
TCP cannot distinguish between packet losses due to congestion and those due to transmission errors.
Impact of Errors
1600000 1200000 800000 400000 0 16384 32768 65536 131072 1/error rate (in bytes) bits/sec
Exponential error model 2 Mbps wireless full duplex link No congestion losses
Ideal Behavior
Ideal TCP behavior: Ideally, the TCP sender should simply retransmit a packet lost due to transmission errors, without taking any congestion control actions
Such a TCP referred to as Ideal TCP Ideal TCP typically not realizable
Ideal network behavior: Transmission errors should be hidden from the sender -- the errors should be recovered transparently and efficiently Proposed schemes attempt to approximate one of the above two ideals
TCP-Unaware approximation of TCP-aware link layer Receiver-based discrimination Sender-based discrimination For an overview, see IETF PILC working group documents
Split connection results in independent flow control for the two parts
Flow/error control protocols, packet size, time-outs, may be different for each part
FH BS MH
Fixed Host
Base Station
Mobile Host
rxmt
wireless
39 40
38
FH
40
37
MH
36
BS
39 40
38
FH
40
37
MH
36
BS
FH
40
39 40 BS
38
37
36
MH
39 40
MH
Hand-off
May not be useful if data and acks traverse different paths (both do not go through the base station)
Example: data on a satellite wireless hop, acks on a dial-up channel data FH MH
ack
Snoop Protocol
Retains local recovery of Split Connection approach and link level retransmission schemes Improves on split connection
end-to-end semantics retained soft state at base station, instead of hard state
Snoop Protocol
Buffers data packets at the base station BS
to allow link layer retransmission
When dupacks received by BS from MH, retransmit on wireless link, if packet present in buffer Prevents fast retransmit at TCP sender FH by dropping the dupacks at BS
FH
BS
MH
Snoop Protocol
Per TCP-connection state TCP connection application transport network application transport network rxmt application transport network
link
physical
link
physical
link
physical
FH
BS
wireless
MH
Snoop : Example
35 36 TCP state maintained at link layer
37
38
40
FH
39
BS
34
38
37
MH
36
Snoop : Example
35 36 39
37
38
41
34
40
39
36
38
Snoop : Example
37 40
38
39
42
41
36
40
39
36
Snoop : Example
37 40
38
39
41
43
36
42
41
36
40
36
Duplicate acks
Snoop : Example
37 40
38
39
41
42
44
FH
43
BS Discard dupack
37
36
41
MH
36
Dupack triggers retransmission 36 of packet 37 from base station BS needs to be TCP-aware to be able to interpret TCP headers
Snoop : Example
37 40 43
38
39
41
42
45
44
42
36
37
36
36 36
Snoop : Example
37 40 43
38
39
41
42
44
46
45
43
36
42
41
36 36 36
Snoop : Example
37 40 43
38
39
41
42
44
45
47
46
44
41
43
36 36 36 36
Snoop : Example
42 45
43
44
46
48
FH
47
BS
41
45
44
MH
43
36 36 36 36
Local recovery from wireless losses Fast retransmit not triggered at sender despite out-of-order link layer delivery End-to-end semantics retained Soft state at base station
loss of the soft state affects performance, but not correctness
Link layer at base station needs to be TCP-aware Not useful if TCP headers are encrypted (IPsec) Cannot be used if TCP data and TCP acks traverse different paths (both do not go through the base station)
Link level retransmission: Retransmit a packet at the link layer, if errors are detected
Retransmission overhead incurred only if errors occur
TCP connection application transport network application transport network rxmt application transport network
link
physical
link
physical
link
physical
wireless
Should the link layer deliver packets as they arrive, or deliver them in-order?
Snoop protocol
soft state need not be moved while the new base station builds new state, packet losses may not be recovered locally
Frequent handoffs a problem for schemes that rely on significant amount of hard/soft state at base stations
hard state should not be lost soft state needs to be recreated to benefit performance
When MH is the TCP receiver: after handoff is complete, it sends 3 dupacks to the sender
this triggers fast retransmit at the sender instead of dupacks, a special notification could also be sent
When MH is the TCP sender: invoke fast retransmit after completion of handoff
M-TCP
In the fast retransmit scheme
sender starts transmitting soon after handoff BUT congestion window shrinks
M-TCP
Similar to the split connection approach, M-TCP splits one TCP connection into two logical parts
the two parts have independent flow control as in I-TCP
The BS does not send an ack to MH, unless BS has received an ack from MH
maintains end-to-end semantics
M-TCP
Withheld ack sent with window advertisement = 0, if MH moves away (handoff in progress) Sender FH put into persist mode during handoff Sender exits persist mode after handoff, and starts sending packets using same cwnd as before handoff
FH
BS
MH
M-TCP
The last ack is not withheld, if BS does not expect any other ack from the MH
this happens when the BS has no other unackd data buffered locally this is required to prevent a sender timeout at the end of a transfer (or end of a burst of data)
Avoids reduction of congestion window due to handoff, unlike the fast retransmit scheme Important Question unanswered : Is not reducing the window a good idea?
When host moves, route changes, and new route may be more congested than before It is not obvious that starting full speed after handoff is right