Improving TCP Performance over MANETs by Exploiting Cross

Improving TCP Performance over
MANETs by Exploiting Cross-Layer
Information Awareness
Xin Yu
NYU
Presented by:
David Choffnes
Outline
Intro to MANETs and DSR
Problems with TCP over MANETs
EPLN and BEAD
Results
Conclusion
2
Mobile Ad-Hoc Networks (MANETs)
Differences from wired networks
– Wireless link much less predictable
• Pathloss
• Interference
– Mobility leads to rapidly changing topology
– Every host is a router
Routing in MANETs
– Approaches
• Link state
– Requires every node to know about all other nodes
– Too much wireless transmission overhead in MANETS
• Distance vector (e.g., DSDV, AODV)
• Source routing (e.g., DSR)
3
Routing in MANETs (cont)
Key observation
– Interference/contention can significantly reduce performance
– To reduce overhead, discover routes only when they are
needed; otherwise, aggressively cache overhead/previously
heard routes
Ad-hoc On-Demand Distance Vector (AODV)
– DV algorithm, floods route request to find path
Dynamic Source Routing (DSR)
– Similar to AODV, but returns the entire path
– Establishes bi-directional paths
– Route failure: send ROUTE ERROR messages, try to use
cached route
4
Mobility and TCP
TCP connection (0,1)
0
38
9
Link failure
31
1
Link failure
39
Node 31 drops all in-flight packets to Node 1
5
ELFN: A Solution to Mobile TCP
Explicit Link Failure Notification (ELFN)
– Sends ICMP message to TCP
• Retransmission timer disabled
• Sets thaw timer to 2s
• Sends a probe data packet to determine if a new route
was established
Issues
– How do we set RTO and cwnd after thaw?
• Small receive window can cause idle state after thaw
• Smaller RTO leads to quicker recovery from freeze
– When do we freeze TCP?
• ELFN does not distinguish packet loss from link failures
• Try to notify TCP of lost data and lost acks
6
EPLN and BEAD Overview
EPLN (Early Packet Loss Notification)
– Intermediate nodes notify TCP senders about lost data
packets
BEAD (Best-Effort ACK Delivery)
– Intermediate nodes retransmit ACKs by extensively using
cached routes when links fail
Rules when dropping packets
– First link failure: notify TCP sender
– After link failure recovery
• Data: notify intermediate node, which tries to resend and
notifies sender
• ACK: notify intermediate node, try to resend using cached
route; if no luck, notify TCP receiver
– Similar for notification packet losses
7
Examples: EPLN
Node C has no other cached
route,
sends packet loss
Link
failure
notification to sender (A)
Data packets (A,E)
A
B
C
Notification to
Node C uses cached
Notification
(C,A)
intermediate
route: F-G-E
node (F,C)
D
F
E
G
Link failure
Data packets
dropped at Node F
8
Examples: BEAD
ACK
received
at A
J
Node D hears
notification,
retransmits ACK
using cached
ACK (E, A)
path D-K-J-B-A
K
Link failure
A
B
H
C
I
D
E
Node
using
Node
CI retransmits
sends notification
NodeC
cached
route
totosender
(A) C-I-H-A
intermediate
node (C)
Link failure
Node I drops ACK
9
Cross Layer Interactions
TCP Sender
– Notified about lost packets, not simply broken links
• ICMP message contains seq number, packet status
– Freeze TCP even if packet is salvaged, but
retransmit packet only if this is the first packet lost
(serves as probe packet)
– Otherwise, wait for ACK to resume TCP
– ACK received: restore TCP state to values before
freezing
10
Evaluation Setup
Simulator: NS-2
Mobility: RWP (boo!)
Speed: 1± v, where v is the mean speed
Field: 1500x1000m (50 nodes), 2200x600m
(100 nodes)
– Why?
MAC: 802.11, 2Mbps
Transmission radius: 250m (boo!)
TCP: Reno, 1460B packets, rwnd: 8
App: FTP
11
Setting RTO and cwnd
Using “old” values is better than resetting
them
– Reducing cwnd can cause TCP to enter idle state,
so TCP throughput becomes dependent on RTO
– Lower RTO due to “old” value improves
throughput (reduces slow starts)
– Improvement not as much for higher traffic load;
due to fresher routes
– Can lead to lower performance in heavily
congested scenarios (MAC contention due to
increased route discoveries)
12
Evaluation: Throughput
27%-210% higher throughput over EPLN
Improvement increases as
– Traffic load increases
• No reason given
– Number of nodes increase
• More cached routes leads to improved delivery
DSR-Update, a distributed cache update
algorithm for DSR, further improves
performance
13
Evaluation: Number of Slow Starts
Reduces timeouts by as much as 90%
Mostly due to cache update algorithm
Diminishes for larger numbers of nodes,
larger traffic load
– Probably due to contention
14
Packet Overhead
Increases overhead for small #’s of
connections and low speed
Reduces overhead otherwise
Distributed DSR route update algorithm
generally reduces overhead compared to
standard DSR
– Fair? How big is DSR’s FIFO cache compared to
the cache for the dist. cache update algo?
15
Conclusion
Cross-layer information awareness is key to
improving TCP performance
Efficient route updates significantly improve
performance
Should we ditch TCP? See ATP.
16