TCP for wireless links Dario Maggiorini

Slides:



Advertisements
Similar presentations
Slide Set 14: TCP Congestion Control. In this set... We begin Chapter 6 but with 6.3. We will cover Sections 6.3 and 6.4. Mainly deals with congestion.
Advertisements

TCP Variants.
1 Improving TCP Performance over Mobile Networks HALA ELAARAG Stetson University Speaker : Aron ACM Computing Surveys 2002.
Improving TCP over Wireless by Selectively Protecting Packet Transmissions Carla F. Chiasserini Michele Garetto Michela Meo Dipartimento di Elettronica.
TCP Congestion Control
Congestion Control Created by M Bateman, A Ruddle & C Allison As part of the TCP View project.
1 End to End Bandwidth Estimation in TCP to improve Wireless Link Utilization S. Mascolo, A.Grieco, G.Pau, M.Gerla, C.Casetti Presented by Abhijit Pandey.
Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Fourth Edition,Peterson.
School of Information Technologies TCP Congestion Control NETS3303/3603 Week 9.
TCP in Wireless Ad Hoc Networks
CMPE 257: Wireless and Mobile Networking
Introduction to Congestion Control
Internet Networking Spring 2003 Tutorial 12 Limited Transmit RFC 3042 Long Thin Networks RFC 2757.
Transport Layer3-1 Congestion Control. Transport Layer3-2 Principles of Congestion Control Congestion: r informally: “too many sources sending too much.
1 Congestion Control Outline Queuing Discipline Reacting to Congestion Avoiding Congestion.
Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Third Ed.,Peterson.
Spring 2003CS 4611 Congestion Control Outline Queuing Discipline Reacting to Congestion Avoiding Congestion.
Computer Networks : TCP Congestion Control1 TCP Congestion Control.
Networks : TCP Congestion Control1 TCP Congestion Control.
Transport Protocols for Wireless Networks CMPE Spring 2001 Marcelo M. de Carvalho.
Networks : TCP Congestion Control1 TCP Congestion Control Presented by Bob Kinicki.
TCP in Heterogeneous Network Md. Ehtesamul Haque # P.
Reliable Transport Layers in Wireless Networks Mark Perillo Electrical and Computer Engineering.
TCP performance in Wireless Networks Ehsan Hamadani July 2004.
Advanced Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Fourth.
CMPE 257 Spring CMPE 257: Wireless and Mobile Networking Spring 2005 E2E Protocols (point-to-point)
TCP Congestion Control
Wireless TCP February 22, 2002 © 2002 Yongguang Zhang CS 395T - Mobile Computing and Wireless Networks Department of Computer SciencesTHE UNIVERSITY OF.
TCP: flow and congestion control. Flow Control Flow Control is a technique for speed-matching of transmitter and receiver. Flow control ensures that a.
CIS 725 Wireless networks. Low bandwidth High error rates.
CS640: Introduction to Computer Networks Aditya Akella Lecture 22 - Wireless Networking.
Qian Zhang Department of Computer Science HKUST Advanced Topics in Next- Generation Wireless Networks Transport Protocols in Ad hoc Networks.
Mobile Communications: Mobile Transport Layer Mobile Communications Chapter 10: Mobile Transport Layer  Motivation  TCP-mechanisms  Indirect TCP  Snooping.
Improving TCP Performance over Mobile Networks Zahra Imanimehr Rahele Salari.
Lecture 11 Mobile Networks: TCP in Wireless Networks Wireless and Mobile Systems Design.
Principles of Congestion Control Congestion: informally: “too many sources sending too much data too fast for network to handle” different from flow control!
1 Impact of transmission errors on TCP performance (Nitin Vaidya)
Transport over Wireless Networks Myungchul Kim
Wireless TCP. References r Hari Balakrishnan, Venkat Padmanabhan, Srinivasan Seshan and Randy H. Katz, " A Comparison of Mechanisms for Improving TCP.
1 TCP - Part II Relates to Lab 5. This is an extended module that covers TCP data transport, and flow control, congestion control, and error control in.
Lecture 9 – More TCP & Congestion Control
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – III Reliability and Implementation Issues.
Computer Networking Lecture 18 – More TCP & Congestion Control.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – III Reliability and Implementation Issues.
TCP Congestion Control Computer Networks TCP Congestion Control 1.
Spring 2009CSE Congestion Control Outline Resource Allocation Queuing TCP Congestion Control.
TCP Congestion Control
TCP OVER ADHOC NETWORK. TCP Basics TCP (Transmission Control Protocol) was designed to provide reliable end-to-end delivery of data over unreliable networks.
MOBILE TCP.
Ασύρματες και Κινητές Επικοινωνίες Ενότητα # 11: Mobile Transport Layer Διδάσκων: Βασίλειος Σύρης Τμήμα: Πληροφορικής.
CS 6401 Congestion Control in TCP Outline Overview of RENO TCP Reacting to Congestion SS/AIMD example.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Congestion Control 0.
 Last Class  Resource Allocation  This Class  Chapter 6.3. ~ 6.4.  TCP congestion control.
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
TCP over Wireless PROF. MICHAEL TSAI 2016/6/3. TCP Congestion Control (TCP Tahoe) Only ACK correctly received packets Congestion Window Size: Maximum.
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
9.6 TCP Congestion Control
Chapter 3 outline 3.1 transport-layer services
Congestion Control.
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
Lecture 19 – TCP Performance
So far, On the networking side, we looked at mechanisms to links hosts using direct linked networks and then forming a network of these networks. We introduced.
Congestion Control in TCP
IT351: Mobile & Wireless Computing
CS640: Introduction to Computer Networks
If both sources send full windows, we may get congestion collapse
Congestion Control in TCP
Transport Layer: Congestion Control
Impact of transmission errors on TCP performance
Presentation transcript:

TCP for wireless links Dario Maggiorini

TCP

TCP congestion control The algorithm for TCP congestion control is the main reason we can use the Internet successfully today despite largely unpredictable user access patterns and despite resource bottlenecks and limitations. Without TCP congestion control, the Internet could have become history a long time ago.

Resource Management Solutions Handling congestion –pre-allocate resources so as to avoid congestion  –control congestion if (and when) is occurs Two points of implementation –routers inside the network (queuing discipline)  –hosts at the edges of the network (transport protocol) Destination 1.5-Mbps T1 link Router Source Mbps FDDI 10-Mbps Ethernet

Detecting Congestion Packet drops indicate congestion –Is that really true? –Why does it work? Src Dst Packet Ack Drop Timeout! No Ack = Congestion!

Controlling Congestion – The Effect of Window Size Note that sender’s window is equal to the number of sender packets in flight (in the network). Why? A Window’s worth of packets X acks Window X more packets Source Destination

Controlling Congestion Reduce window  less packets in the network Increase window  more packets in the network Idea: Concept of a congestion window – window is smaller when congestion is larger and vice versa

Additive Increase, Multiplicative Decrease Each time a packet drop occurs, slash window size in half (multiplicative decrease) –Multiplicative decrease is necessary to avoid congestion When no losses are observed, gradually increase window size (additive increase)

AIMD (cont) In practice: increment a little for each ACK Increment = (MSS*MSS)/CongestionWindow CongestionWindow += Increment SourceDestination … Algorithm –increment CongestionWindow by one packet per RTT (linear increase) –divide CongestionWindow by two whenever a timeout occurs (multiplicative decrease)

TCP Reno (Jacobson 1990) SS time window CA SS: Slow Start CA: Congestion Avoidance Fast retransmission/fast recovery

Problems What should the window size be –Initially? –Upon packet loss and timeout? Pessimistic window size? (e.g., 1) –Additive increase is too slow in ramping up window size – short connections will not fully utilize available bandwidth Optimistic window size? –Large initial burst may cause router queue overflow

Slow Start Objective: determine the available capacity quickly Idea: –Use CongestionThreshold as an optimistic CongestionWindow estimate –begin with CongestionWindow = 1 packet –double CongestionWindow each RTT (increment by 1 packet for each ACK) –When CongestionThreshold is crossed, use additive increase SourceDestination …

Fast Retransmit Problem: coarse-grain TCP timeouts lead to idle periods Fast retransmit: –Send an ack on every packet reception –Send duplicate of last ack when a packet is received out of order –Use duplicate ACKs to trigger retransmission Packet 1 Packet 2 Packet 3 Packet 4 Packet 5 Packet 6 Retransmit packet 3 ACK 1 ACK 2 ACK 6 ACK 2 SenderReceiver

Self Clocking and Slow Start Each packet’s transmission is “clocked” by an ACK – no bursts develop W=1 W=2 W=4 W=5 W=6 W=7 Slow Start …

Self Clocking in Operation Each packet’s transmission is “clocked” by an ACK – no bursts develop W=32 … …

Self Clocking Interrupted During timeouts, ACKs are drained from the network. Self clocking is interrupted. Next transmission causes a burst. Hence, slow start! W=32 … … Lost Timeout Retransmission Ack32 16 packet burst Cut window in 1/2 ACKs Drained!!

Self Clocking and Fast Retransmit / Fast Recovery When fast retransmit is used, the packet is retransmitted before all ACKs are drained. Slow start is not needed W=32 … … Lost Fast Retransmission Cut window in 1/2

Problems with TCP Reno During slow start –Underutilizes and then swamps path No “right rate”: cwnd traces a sawtooth –Underutilizes path –Increases queuing delay –Causes loss, reducing throughput –Inherently biased against long RTTs

TCP Vegas Uses congestion avoidance instead of congestion control –Vegas: Congestion avoidance: Predict and avoid congestion before it occurs –Tahoe, Reno: Congestion control: React to congestion after it occurs Question: How to predict congestion?

TCP Vegas Idea: source watches for some sign that router’s queue is building up and congestion will happen too; e.g., –RTT grows –sending rate flattens KB Time (seconds)

TCP Vegas In congestion avoidance –cwnd = (actual rate)x(baseRTT) + 2 pkts –Each RTT, tweak cwnd by 1 pkt if needed During slow start –To reduce overshoot, increase cwnd only every other RTT –Exit slow start when cwnd > (actual rate)x(baseRTT) + 1 pkt

TCP Vegas (Brakmo & Peterson 1994) SS time window CA Converges, no retransmission … provided buffer is large enough

TCP Westwood Sender side only modification of TCP Reno Congestion control that exploits end to end bandwidth estimation. The bandwidth is estimated by low pass filtering the rate of returning acks. The bandwidth is used to compute congestion window and slow start threshold.

TCP Westwood Overview Slow Start and Congestion window aware of Bandwidth at time of congestion The increase after congestion is additive but decrease Adaptive (AIAD) as compared to AIMD (Additive Increase Multiplicative decrease) of Reno

TCPW implementation Sender side Bandwidth Estimation by measuring and low pass filtering the rate of returning acks When 3 DUPACKS are received ssthresh=(Bandwidth*RTT)/seg_sizecwnd =ssthresh When a coarse timeout expires ssthresh =(B*RTT)/seg_sizecwnd =1 When acks are successfully received TCPW increases cwnd according to Reno’s congestion control algorithm

TCPW Advantage over Reno In case of sudden increase in bottleneck load, reduction can be more drastic then a reduction by half and can be less drastic in other cases. This features improves stability and utilization

Go Back N Protocol (GBN)

Selective Repeat Protocol

Wireless networks

Hidden node problem A and C can send to B but can’t hear each other CSMA will be ineffective here BAC A’s transmit rangeC’s transmit range

Exposed node problem B and C can hear each other but could safely send simultaneously to A, D Compare to spatial reuse in cellular BAC B’s transmit range C’s transmit range D

Strategy CSMA with Collision Avoidance Fundamentally, a less greedy approach than Ethernet When medium busy, choose random backoff interval –Wait for that many idle timeslots to pass before sending –Remember p-persistence … a refinement

CSMA/CA When a collision is inferred, retransmit with binary exponential backoff (like Ethernet) –Use CRC and ACK from receiver to infer “no collision” –Again, exponential backoff helps us adapt “p” as needed

TCP over wireless

The wireless problem In Wireless lossy links, the sporadic losses are not due to congestion thus it leads to unnecessary window and transmission rate reduction

Sources of Errors in Wireless Links Pauses due to handoff between cells Packet losses due to futile transmissions: mobile host out of reach of other transceivers (little or no overlap between cells); Packet losses due to transmission errors in wireless links.

Improving the Performance of TCP MSS 1MSS 2 SH MH Cell 1 Cell 2

Smooth Handoff Cellular networks should strive to provide smooth handoffs in order to eliminate packet losses during cell crossings. No overlaps are also good!!! –High aggregate bandwidth: adjacent cells can use the same portion of the spectrum; –Support for low-powered mobile receivers; –Accurate location information

Comparision of Mechanisms End-to-end protocols Split-connection protocols Link-layer protocols Hybrid protocols

End-to-end Protocols Sender is aware of the existence of wireless hops. Selective Acknowledgments (SACKs): sender can recover from multiple packet losses without resorting to a coarse timeout. Explicit Loss Notification (ELFN): the sender can distinguish between congestion and other forms of losses.

Split-connection Protocols Aims to hide any non-congestion-related losses from the TCP sender. TCP connection is split between a sender and receiver into two separate connections at the base station: –TCP connection over wired link; –Specialized protocol over wireless link.

I-TCP: Indirect TCP MH MSR FH MH = Mobile Host MSR = Mobile Support Router FH = Fixed Host I-TCPTCP

TCP/IP in Mobile Environment Main reason for throughput degradation: –Loss of TCP segments during cell crossovers, especially with non-overlapped cells. Effects: –Lost segments trigger exponential back off and congestion control at the transmitting host. –Congestion recovery phase may last for several seconds.

Indirect Protocol Different flow control and congestion control for wireless and wired links; Separate transport protocol supports disconnections, moves and other wireless related features; MSR manages much of the overhead; Faster reaction to mobility due to proximity between MSR and MH.

I-TCP Basics move MSR-2 FH MH MH socket MH MH socket MSR-1 MSR1 mhsocket MSR1 fhsocket MSR2 fhsocket MSR2 mhsocket FH socket I-TCP Handoff Regular TCP Wireless TCP

Link-layer Protocols Two main classes: –Error correction using techniques such as Forward Error Correction; –Retransmission of lost packets in response to automatic repeat request (ARQ) messages. Tuned to the characteristics of the wireless link.

Hybrid Protocols: The Snoop Prootocol An agent monitors every packet and maintains a cache of TCP segments that have not yet been acknowledged. Packet loss is detected by the arrival of a small number of duplicate acks or by a local timeout. The agent retransmits the lost packet and suppresses the duplicate acks.

Observations TCP-aware link-layer protocol with selective acknowledgments performs the best; Split-connection approaches is not a requirement for good performance. Selective acknowledgment is very useful in lossy links, especially for burst losses. Explicit Loss Notification is worth to try.

TCP over satellite links

Why Satellite? Affordable Access to Interactive Broadband Communication to all Areas of the Earth To Serve users who can not get Service economically by other means Satellite Types Transmission Quality Altitude (km)RTT (ms) GEO36, MEO10, LEO1,37570

Characteristics of Satellite Network Long Feedback Loop Large Delay-Bandwidth Product Transmission Errors Variable RTT Frequent Hand off Asymmetric Use

Corresponding Problems Slow Start –For single TCP –For HTTP applications Congestion Avoidance –Congestion vs. Transmission Error TCP Window Size

Throughput = Window size / RTT Max TCP Window Size = 2 16 = (bytes) Throughput <= bytes / 560 ms = 117,027 bytes /second Cannot utilize a T1 rate GEO satellite

Standard TCP Enhancements Fast Retransmit & Fast Recovery TCP SACKs TCP Large Windows

Other Enhancements Increasing Initial Window (IIW) Fast Start Teaching TCP to Ignore Transmission Errors Split TCP TCP Peach

Split TCP

TCP Peach Sudden Start Congestion Avoidance Fast Retransmit Rapid Recovery

Sudden Start

Rapid Recovery (Link Error)

Rapid Recovery (Congestion)