360 likes | 366 Views
This research paper explores the problem of TCP performance degradation in mobile ad hoc networks and proposes new mechanisms for improving performance by exploiting cross-layer information awareness. The paper discusses the background of DSR, ELFN, and cross-layer protocols, and evaluates the performance of the proposed mechanisms. The conclusion highlights the effectiveness of the proposed mechanisms in reducing TCP timeouts and improving throughput.
E N D
Improving TCP Performance Over Mobile Ad Hoc Networksby Exploiting Cross-LayerInformation Awareness Dan Liu Spring 2005
Outline • Problem TCP Performance Degrades in Mobile Ad Hoc Network • Background DSR, ELFN, Cross-Layer • New Mechanisms DSR-Update, EPLN, BEAD • Performance Evaluation • Conclusion
Problem • TCP performance degrades significantly in Mobile Ad hoc Networks due to the packet losses. • Most of these packet losses result from the Route failures due to network mobility. • TCP assumes such losses occur because of congestion, thus invokes congestion control mechanisms such as decreasing congestion windows, raising timeout, etc, thus greatly reduce TCP throughput.
Problem • Prior researches have proposed to provide link failure feedback to TCP so that TCP can avoid responding to route failures as if congestion had occurred. • However, after a link failure is detected, several packets will be dropped from the network interface queue; TCP will time out because of these packet losses, as well as for ACK losses caused by route failures. • How to make routing protocols aware of such packet losses and ACK losses and help reduce TCP timeout for mobility-induced losses?
Background • Dynamic Source Routing protocol (DSR) • Explicit Link Failure Notification (ELFN) • RTO and cwnd Setting & TCP Freezing • Network Layer Unawareness
DSR (I) • Route Discovery • The source broadcasts a ROUTE REQUEST. • If the node has a route to the source, it sends a ROUTE REPLY to the source, including the source route in the ROUTE REQUEST and the cached route. • If the node has no such a route, it adds its address to the source route in the packet header and rebroadcasts the ROUTE REQUEST. • The destination receives the ROUTE REQUEST, and send a ROUTE REPLY containing the route to the source. • Each node forwarding the ROUTE REPLY caches the route starting from itself to the destination. • The source receives the ROUTE REPLY, and caches the source route.
DSR(II) • Route Maintenance • A node forwarding a packet is responsible for confirming that the packet has reached the next hop in the route. • If no acknowledgement is received after the maximum number of retransmission attempts, this node assumes that the next hop is unreachable and sends a ROUTE ERROR to the source node, indicating the broken link. • Each node receiving a ROUTE ERROR removes from its cache the routes containing the broken link.
ELFN • When a node detects a link failure, it will notify the TCP sender about the link failure and the packet that encountered the failure. • When receiving a notification, TCP freezes its retransmission timer and periodically sends a probing packet until it receives an ACK. • When receiving an ACK, TCP restores its retransmission timer and continues as normal.
ELFN • TCP benefits from link failure feedbacks but is still affected by frequent route failures due to the inability of a TCP sender’s routing protocol to quickly recognize and removestale routes from its cache. • Previous research proposed to turn off replying from caches for a network with a single TCP connection. But it will degrade TCP performance when multiple traffic sources exist because of increased routing overhead.
Setting RTO and cwnd & Freezing TCP • What should be the appropriate responses of TCP to frequent route failures and packet losses? • If packets are salvaged, freezing TCP upon route failures may decrease TCP throughput; if not freezing TCP when packets are salvaged, TCP will time out if the salvaged packets are dropped. • So always freeze TCP when route failures occur Or only freeze TCP when packets losses occur? • How to set RTO and congestion window size after congestion control mechanisms are restored to obtain better TCP performance? • E.g. using default value or use the value computed before TCP is frozen?
Network Layer Unawareness • Unaware of lost data packets Upon a link failure, all the data packets with the same next hop in the network interface queue will be dropped by the routing protocol. TCP will time out because of these losses.
Network Layer Unawareness • Unaware of lost ACKs Upon a route failure, ACKs are also dropped silently. TCP senders have to (a) wait for timeouts— degrading TCP throughput and wasting limited bandwidth (b) retransmitting the packets that have been received – wastes nodes’ energy.
New Mechanism • DSR-Update Algorithm • Cross-Layer Mechanism • Early Packet Loss Notification (EPLN) • Best-Effort ACK Delivery (BEAD)
DSR-Update Algorithm A new distributed cache update algorithm: • When a node detects a link failure, proactively notifies all reachable nodes that have cached that link about the link failure. • Proactive cache updating also prevents stale routes from being propagated to other nodes.
Content of Cache Table • Defined a new cache structure — cache table, in which a node not only stores routes but also maintains the information necessary for cache updates: • How well the routing information is synchronized among the nodes on the route, which means whether a link has been cached in only the upstream nodes, or both the upstream and the downstream nodes, or neither. • Which neighbor has learned which link of the route through a ROUTE REPLY. Thus, for each cached link, a node knows a set of neighborhood nodes that have that link in their caches.
Basic Idea of DSR-Update • Proactively disseminate the information about a broken link to the nodes that have that link in their caches. • Use the local information kept by each node to achieve distributed cache updating
Benefits of DSR-Update • Reduces packet losses because of the improved cache correctness. • Reduces packet delivery latency, since detecting broken links is the dominant factor of latency. • Reduces ROUTE ERRORS caused by the use of stale routes.
EPLN & BEAD • Early Packet Loss Notification (EPLN) • Best-Effort ACK Delivery (BEAD)
Basic Idea of EPLN & BEAD • Key Idea: Intermediate nodes notify TCP senders about lost data packets and retransmit ACKs for lost ACKs by extensively using cached routes. • Benefit: No route discovery is initiated at any intermediate node, thus avoid the frequent packet losses and significant overhead introduced by the route discoveries.
Operation of EPLN & BEAD • Three types of packets that will encounter route failures • Data packets • ACKs • Packet loss notifications • Have the same operations at the node detecting a link failure and different at the node forwarding or receiving a notification.
For Dropped Data Packets • If Data Packets dropped (1) dropped for the first time: Current node sends a notification to the TCP sender, using the route obtained by reversing the source route. (2) dropped after salvaged by an intermediate node Current node notifies the intermediate node about lost packets. The intermediate node sends a notification to the TCP sender if it has a cached route.
For Dropped ACKs (I) • If ACKs dropped (1) dropped for the first time: Current node sends a notification to the TCP receiver, using the route obtained by reversing the source route.
For Dropped ACKs (II) (2) dropped after salvaged by an intermediate node Current node notifies the intermediate node about lost ACKs. The intermediate node first attempts to retransmit an ACK with the highest sequence number among lost ACKs using a cached route. • If it can do, it marks the notification to indicate that an ACK has been retransmitted. • If it cannot, it sends a notification about lost ACKs to the TCP receiver. • If none of the intermediate nodes is able to retransmit an ACK, the routing protocol at the TCP receiverretransmits an ACK to TCP sender if it has a cached route.
For Dropped Notification • If Notification Packets dropped The node detecting the link failure notifies the source node of the notification. That source node will send another notification to the TCP sender or the TCP receiver using a cached route.
Performance Evaluation • Simulation Environment • Evaluation Methodology • Result Analysis
Simulation Environment • ns-2 network simulator with Monarch Project’s wireless and mobile extensions • Transmission Rate: 2Mbps • Nominal Transmission Range : 250m • Network interface :IEEE 802.11 DCF MAC protocol • Mobility model: random waypoint model • Node Movement: Starts at a random position, picks a random destination, moves to it at a randomly chosen speed, and pauses for a specified pause time. The speed is randomly chosen from v1 m/s, where v is node mean speed. • TCP Configuration: • TCP-Reno with packet size of 1460B. • Maximum size of both congestion & advertised window is 8. • FTP is used over TCP
Evaluation Methodology • First set evaluated the effects of two choices for setting RTO & cwnd on TCP performance. • Use the default value 6s for RTO and 2 for cwnd • Use the values computed before TCP is frozen. • Second set evaluate the effectiveness of EPLN & BEAD under two caching strategies • Use path caches of DSR • Use distributed caches of DSR-Update • Evaluation Metrics: • TCP Throughput • Average Number of Slow-Start • Packet Overhead
Conclusion (I) • Compared with TCP-ELFN, EPLN & BEAD not only significantly improve TCP throughput but also considerably reduce TCP timeouts. • EPLN & BEAD with DSR-Update algorithm outperform EPLN & BEAD with path caches, because proactive cache updating is more efficient than FIFO in removing stale routes.
Conclusion (II) • Cross-layer information awareness is key to making TCP efficient in the presence of mobility. It is necessary for the network layer to notify TCP senders about lost packets & to retransmit ACKs for lost ACKs, so that TCP reacts quickly to frequent packet losses and is unaware of lost ACKs. • It is important to make route caches adapt fast to topology changes, because the validity of cached routes affects not only TCP performance but also the effectiveness of the mechanisms used to improve TCP performance, whether at the network layer or cross-layer.