TCP Basics • TCP (Transmission Control Protocol) was designed to provide reliable end-to-end delivery of data over unreliable networks. • In Theory , TCP should be independent of the technology of the underlying infrastructure • In practice, it does matter because most TCP deployments have been carefully designed based on assumptions that are specific to wired networks. • Ignoring the properties of wireless transmission can lead to TCP implementations with poor performance.
TCP Basics • Byte Stream Delivery • Connection-Oriented: Two communicating TCP entities (the sender and the receiver) must first agree upon the willingness to communicate • Full-Duplex: TCP almost always operates in full-duplex mode, • TCP exhibit asymmetric behavior only during connection start and close sequences (i.e., data transfer in the forward direction but not in the reverse, or vice versa)
Reliable TCP Guarantees • A number of mechanisms help provide the guarantees: • Checksums: To detect errors with either the TCP header or data • Duplicate data detection: Discard duplicate copies of data that has already been received • Retransmissions: • For lost and damaged data • Due to lack of positive acknowledgements • Timeout period calls for a retransmission • Sequencing:To deliver the byte stream data to an application in order • Timers:Various static and dynamic timers used for deciding when to retransmit • Window: For flow control in the form of a data transmission window size
Overview Overview of TCP Concepts • Conventional TCP: Tahoe, Reno, New-Reno • Sending rate is controlled by • Congestion window (cwnd): limits the # of packets in flight • Slow-start threshold (ssthresh): when CA start • Loss detection • 3 duplicate ACKs (faster, more efficient) • Retransmission timer expires (slower, less efficient) • Overview of congestion control mechanisms • Slow-start phase: cwnd start from 1 and increase exponentially • Congestion avoidance (CA): increase linearly • Fast retransmit and fast recovery: Trigger by 3 duplicate ACKs Slow-start Congestion avoidance
Slow-start Congestion avoidance TCP Basics
Congestion Control • Slow Start (SS): A mechanism to control the transmission rate) • When TCP connection starts (Initial Value): CWND =1, • congestion window increases by one segment for each acknowledgement returned • Congestion Avoidance(CA): Used to reduce the transmission rate • When Slow Start drops one or more packets due to congestion • Fast Retransmit: Sender receiving triple duplicate ACKs • Immediate transmission of missing packet without waiting for the Retransmission Timeout to expire • Fast Recovery: In SS or CA when sender receiving triple duplicate ACKs Sender only enters Congestion Avoidance mode
Overview What is Different in MANETs? • Mobility • Route stability and availability • High bit error rate • Packets can be lost due to “noise” • Unpredictability/Variability • Difficult to estimate time-out, RTT, bandwidth • Contention: packets compete for airtime • Intra-flow and inter-flow contentions • Long connections have poor performance • More than 4 hops thruput drops dramatically
TCP and network cross layer proposals • TCP Feedback is a feedback based approach to handle route failures in MANETs. • This approach allows the TCP sender to distinguish between losses due to routes failure and those due to network congestion. • When routing agent of a node detects the disruption of a route, it explicitly sends a Route Failure Notification (RFN) packet to the source. • On receiving the RFN, the source goes into a snooze state. • TCP sender in snooze state will stop sending packets, and will freeze all its variables, such as timers and congestion window size.
The TCP sender remains in this snooze state until it is notified of the restoration of the route through Route Re-establishment Notification (RRN) packet • On receiving the RRN, the TCP sender will leave the snooze state and will resume transmission based on the previous sender window and timeout values. • To avoid blocking scenario in the snooze state, the TCP sender, on receiving RFN, triggers a route failure timer. • When this timer expires the congestion control algorithm is invoked normally.
TCP-BuS • TCP Buffering capability and Sequence information uses the network feedback in order to detect route failure events and to take convenient reaction to this event. • The novel scheme is the introduction of buffering capability in mobile nodes. • The following enhancements are proposed: • Explicit notification • Extending timeout values
Selective retransmission request • Avoiding unnecessary requests for fast retransmission: • Reliable retransmission of control message • Explicit notification: • Two control messages • ERDN • ERSN
Extending timeout values: • During the route reconstruction (RRC) phase, packets along the path from the source to the PN are buffered. • To avoid timeout events during the RRC phase, the retransmission timer value for buffered packets is doubled.
Selective retransmission request: • As the retransmission timer value is doubled, the lost packet along the path from the source to the PN are not retransmitted until the adjusted retransmission timer expires. • To overcome this, an indication is made to the source so that it can retransmit these lost packet selectively.
Avoiding unnecessary requests for fast retransmission: • The destination node should continue to send ACK packets containing expected sequence number until the expected insequence packets arrive at the destination . • Reliable retransmission of control message: • The reliable transmission is done by overhearing the channel after transmitting the control messages. If a node has sent a control message but did not overhear this message relayed during a timeout, it will conclude that the control message is lost and it will retransmit this message.