Chapter 6 SACK-TCP, TCP Extensions, Wireless TCP Professor Rick Han University of Colorado at Boulder

Slides:



Advertisements
Similar presentations
1 Improving TCP Performance over Mobile Networks HALA ELAARAG Stetson University Speaker : Aron ACM Computing Surveys 2002.
Advertisements

Improving TCP over Wireless by Selectively Protecting Packet Transmissions Carla F. Chiasserini Michele Garetto Michela Meo Dipartimento di Elettronica.
Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
1 Transport Protocols & TCP CSE 3213 Fall April 2015.
Hui Zhang, Fall Computer Networking TCP Enhancements.
Transport Layer3-1 TCP. Transport Layer3-2 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data flow in same connection.
1 CS492B Project #2 TCP Tutorial # Jin Hyun Ju.
Chapter 6 TCP Congestion Control Professor Rick Han University of Colorado at Boulder
Fundamentals of Computer Networks ECE 478/578 Lecture #21: TCP Window Mechanism Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
CMPE 257: Wireless and Mobile Networking
Internet Networking Spring 2003 Tutorial 12 Limited Transmit RFC 3042 Long Thin Networks RFC 2757.
Chapter 2 Designing Reliable Protocols Professor Rick Han University of Colorado at Boulder
1 Internet Networking Spring 2003 Tutorial 11 Explicit Congestion Notification (RFC 3168) Limited Transmit (RFC 3042)
CS 268: Wireless Transport Protocols Kevin Lai Feb 13, 2002.
Transport Protocols for Wireless Networks CMPE Spring 2001 Marcelo M. de Carvalho.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #8 Explicit Congestion Notification (RFC 3168) Limited Transmit.
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.
CMPE 257 Spring CMPE 257: Wireless and Mobile Networking Spring 2005 E2E Protocols (point-to-point)
1 A Comparison of Mechanisms for Improving TCP Performance over Wireless Links Course : CS898T Instructor : Dr.Chang - Swapna Sunkara.
CIS 725 Wireless networks. Low bandwidth High error rates.
CS640: Introduction to Computer Networks Aditya Akella Lecture 22 - Wireless Networking.
Spring 2000Nitin BahadurAdvanced Computer Networks A Comparison of Mechanisms for Improving TCP Performance over Wireless Links By: Hari B., Venkata P.
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.
Asstt. Professor Adeel Akram.  Motivation  TCP mechanisms  Indirect TCP  Snooping TCP  Mobile TCP  Fast retransmit/recovery  Transmission freezing.
Improving TCP Performance over Mobile Networks Zahra Imanimehr Rahele Salari.
Prof. Dr.-Ing. Jochen Schiller, SS029.1 Mobile Communications Chapter 9: Mobile Transport Layer  Motivation  TCP-mechanisms.
3: Transport Layer3b-1 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data flow in same connection m MSS: maximum.
Wireless TCP Prasun Dewan Department of Computer Science University of North Carolina
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
CSE 461 University of Washington1 Topic How TCP implements AIMD, part 1 – “Slow start” is a component of the AI portion of AIMD Slow-start.
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
SELECTIVE ACKNOWLEDGEMENT (SACK) DUPLICATE SELECTIVE ACKNOWLEDGMENT
Transport over Wireless Networks Myungchul Kim
1 M. Atiquzzaman, SCTP over satellite networks IEEE Computer Communications Workshop, Oct 20, SCTP over Satellite Networks Mohammed Atiquzzaman School.
Wireless TCP. References r Hari Balakrishnan, Venkat Padmanabhan, Srinivasan Seshan and Randy H. Katz, " A Comparison of Mechanisms for Improving TCP.
Copyright © Lopamudra Roychoudhuri
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.
15-441: Computer Networking Lecture 23: Mobile and Wireless Networking.
Challenges to Reliable Data Transport Over Heterogeneous Wireless Networks.
15-744: Computer Networking L-18 Mobile Transport and Applications.
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:
MOBILE TCP.
Ασύρματες και Κινητές Επικοινωνίες Ενότητα # 11: Mobile Transport Layer Διδάσκων: Βασίλειος Σύρης Τμήμα: Πληροφορικής.
ECE 4110 – Internetwork Programming
TCP continued. Discussion – TCP Throughput TCP will most likely generate the saw tooth type of traffic. – A rough estimate is that the congestion window.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
Transmission Control Protocol (TCP) connection-oriented stream data transfer data sent as an unstructured stream of bytes reliability acknowledgements.
Transport Layer3-1 Transport Layer If you are going through Hell Keep going.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
Transmission Control Protocol (TCP) TCP Flow Control and Congestion Control CS 60008: Internet Architecture and Protocols Department of CSE, IIT Kharagpur.
Computer Networking Lecture 16 – Reliable Transport.
DMET 602: Networks and Media Lab Amr El Mougy Yasmeen EssamAlaa Tarek.
Mobile Transport Layer  Motivation  TCP-mechanisms  Indirect TCP  Snooping TCP  Mobile TCP  Fast retransmit/recovery  Transmission freezing  Selective.
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.
Chapter 5 TCP Sequence Numbers & TCP Transmission Control
Internet Networking recitation #9
Introduction to Networks
Wireless Transport.
Hojun Lee TCP enhancements Hojun Lee 11/8/2018.
Chapter 5 TCP Transmission 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.
CS4470 Computer Networking Protocols
Internet Networking recitation #10
TCP for Wireless Networks
Impact of transmission errors on TCP performance
Presentation transcript:

Chapter 6 SACK-TCP, TCP Extensions, Wireless TCP Professor Rick Han University of Colorado at Boulder

Prof. Rick Han, University of Colorado at Boulder Announcements Read Sections , Skip 6.5 Programming Assignment #1 ed back by tonight HW #4 on Web by Friday evening Programming Assignment #2 due April 2 Midterm Still grading, hand back April 2 Next, finishing up TCP

Prof. Rick Han, University of Colorado at Boulder Recap of Previous Lecture TCP Adaptive Retransmission Initially, Compute exponentially weighted moving average (EWMA) of RTT RTO = 2* (EWMA of RTT) Revision Compute EWMA of RTT and absolute deviation RTO = (EWMA of RTT) + 4*(EWMA of abs dev) Retransmission Ambiguity Revision If no retransmission, recompute RTO and EWMA’s If retransmission, back off RTO = RTO * 2, don’t recompute EWMA’s

Prof. Rick Han, University of Colorado at Boulder Recap of Previous Lecture (2) TCP Congestion Control W = min (FW, CW) “Slow” Start grows CW exponentially from CW=1 If timeout, Reset CW to 1, ssthresh = CW/2 Slow Start again, up to ssthresh Additive Increase after ssthresh TCP Tahoe If 3 duplicate ACK’s Retransmit immediately before timeout = Fast Retransmit Drop CW = CW/2 (don’t slow start to CW=1) = Fast Recovery TCP Reno

Prof. Rick Han, University of Colorado at Boulder Timer Granularity Many TCP implementations set RTO in multiples of 200,500,1000ms –Avoid spurious timeouts – RTTs can vary quickly due to cross traffic –Make timers interrupts synchronized and therefore efficient At startup: –Pick a very conservative value for RTO on order of seconds

Prof. Rick Han, University of Colorado at Boulder Delayed ACKS Problem: –In interactive programs like telnet, you could send a TCP packet for each character you type –Overhead becomes high: You send 1st character, get an ACK from remote host Remote host sends echo of character for you to draw on screen, gets an ACK from you for echoed data 4 segments exchanged Solution: –Wait 200ms before ACK’ing Can piggyback echo of data with ACK of 1 st character => only 3 segments exchanged –Must ACK every other segment –Must not delay duplicate ACKs

Prof. Rick Han, University of Colorado at Boulder TCP ACK Generation [RFC 1122, RFC 2581] Event In-order segment arrival, No gaps, Everything else already ACKed In-order segment arrival, No gaps, One delayed ACK pending Out-of-order segment arrival Higher-than-expect seq. # Gap detected Arrival of segment that Partially or completely fills gap TCP Receiver action Delayed ACK. Wait max 500ms for next segment (usually 200ms timer). If no next segment, send ACK Immediately send single cumulative ACK Send duplicate ACK, indicating seq. # of next expected byte Immediate ACK if segment starts at lower end of gap Courtesy: Srini Seshan

Prof. Rick Han, University of Colorado at Boulder SACK-TCP, RFC 2018 & 1072 Problem: Cumulative ACK’s can’t identify whether there are multiple losses in a window –If retransmit only lowest segment, then too slow (retransmit serially) if there are multiple losses –If retransmit entire window, then could retransmit unnecessarily if only one loss Solution: use Selective ACK’s –SACK-TCP (proposed 1988, modified 1996) ACKs only identify up to 3 non-contiguous blocks of received data –Not quite SRP Higher throughput than TCP Reno when multiple segments are lost in a window of data

Prof. Rick Han, University of Colorado at Boulder SACK-TCP (2) During connection setup, a SACK-TCP sender sets “SACK-permitted” bit in SYN packet –Informs receiver that sender is SACK-enabled If receiver supports SACK-TCP –receiver responds to data packets from sender by extending TCP header with a TCP option called a “SACK option” –SACK option identifies non-contiguous blocks of correctly received data (not the gaps) up to 3 such blocks – limited by size of TCP options header, assumes that TCP timestamp extension is also used –3 is enough for “substantial benefit” over TCP Reno If more TCP extensions are used, then only enough space to identify 1 or 2 SACK blocks

Prof. Rick Han, University of Colorado at Boulder SACK-TCP (3) At sender, –Each selectively ACK’ed segment has a bit set –Only segments with bits not set are selectively retransmitted –Since receiver may choose to discard out-of- order segments, then when sender times out, sender resets all SACK bits to zero –Try to preserve prior congestion control strategies

Prof. Rick Han, University of Colorado at Boulder Interaction of TCP Flavors In addition to TCP Reno, Tahoe, and SACK –also have NewReno and Vegas SACK-TCP implemented in Linux and later, Microsoft Windows 98/2000, Sun Solaris 2.6 and later How do Reno and SACK interact? –If SACK sender and Reno receiver, then Reno receiver ignores “SACK-permitted” and just sends cumulative ACKs –If Reno sender and SACK receiver, then receiver just sends cumulative ACKs without SACK options

Prof. Rick Han, University of Colorado at Boulder TCP Extensions/Options Examples: Timestamp, Large windows, SACK-TCP Implemented by extending TCP header > 20 bytes: –Hdr len/data offset field in TCP header specifies hdr size in 4-byte words (>5 if option present) –After 1 st 20 bytes, the 1st byte of options field specifies the “kind” of option 2 = “Maximum Segment Size” 3 = “Window Scale” 4 = “SACK-permitted” 5 = “SACK-option” 8 = “Time stamp extension” –Following bytes contain length (optional) and option data

Prof. Rick Han, University of Colorado at Boulder TCP Timestamp Extension, RFC 1323 Used to improve timeout mechanism by more accurate measurement of RTT When sending a packet, insert current timestamp as an option –4 bytes for seconds, 4 bytes for microseconds Receiver echoes timestamp in ACK –Actually will echo whatever is in timestamp Advantages: sequence #’s are qualified by time and hence unique: –Removes retransmission ambiguity –Protects against wraparound –Accurate RTT

Prof. Rick Han, University of Colorado at Boulder TCP Large Windows Option, RFC 1072, 1323 Delay-bandwidth product for Long Fat Network (LFN – elephant!) => 16- bit window (65536 bytes) is too small Scaling factor on advertised window –Specifies how much to scale (multiply by left shift) a window size –Scaling factor exchanged during SYN connection setup

Prof. Rick Han, University of Colorado at Boulder TCP Problems Over Wireless Links Wireless links are inherently error-prone –Fades, interference, attenuation –Errors often happen in bursts TCP reacts to corruption-based packet loss by slowing down retransmission and constricting congestion window –This is wrong reaction, because there’s no congestion on wireless link, only bit corruption Performance degradation –Should continue to retransmit and send new data, rather than slow down and constrict CW

Prof. Rick Han, University of Colorado at Boulder TCP Problems Over Wireless Links (2) Assume following topology: A G B –Gateway G separates the wired and wireless worlds –Node A in wired Internet wants to send to node B in wireless world through gateway G –Aggregate the effects of wired Internet into one connection between A and G –Aggregate the effects of wireless world into one link between G and B

Prof. Rick Han, University of Colorado at Boulder Congestion vs. Wireless Bit Corruption Router Computer 2Computer Loss  Congestion Wireless

Prof. Rick Han, University of Colorado at Boulder Proposed Solutions End-to-end protocols –Selective ACKs, Explicit loss notification Split-connection protocols –Separate connections for wired path and wireless hop Reliable link-layer protocols –Error-correcting codes –Local retransmission

Prof. Rick Han, University of Colorado at Boulder End-to-End Solutions Improve implementations ofTCP at endpoints –Help sender distinguish between congestion and corruption via flags Network routers could set Explicit Congestion Notification Bit (ECN) in IP header And/or Wireless endpoint could signal Explicit Loss Notification (ELN) to indicate wireless loss/low SNR –ACKs include flag indicating either congestion or corruption loss Wired linkWireless link

End-to-End: Selective Acks Correspondent Host Mobile Host Base Station Can set ECN X 2 Cumative ACK 1 CACK 1, SACK 3 CACK1, SACK 3-4 CACK1, SACK 3-5 CACK 1, SACK 3-6 Since ECN is not set in ACKs, then Sender infers corruption caused loss of packet 2, not congestion Drawbacks: have to modify IP to allow ECN, have to modify TCP to put ECN feedback in ACK Wireless loss

Prof. Rick Han, University of Colorado at Boulder Split Connection Solutions Split connections –Run TCP over wired link, Run TCP or another protocol over wireless link –Let TCP tailored for wireless handle wireless corruption, let wired TCP handle wired congestion Wired linkWireless link

Split Connection Correspondent Host Mobile Host Base Station 2 A B 3 X 1 ack 0 X cack Acack B C cack B, sack D D A-D belong to packet 1

Prof. Rick Han, University of Colorado at Boulder Split Connection Drawbacks Consistent wireless losses will back up and overflow the intermediate node, backing up to sender, causing congestion backoff though there’s no congestion Violates end-to-end semantics –When sender receives an ACK, sender believes ACK’ed data was correctly delivered to destination –No longer true: intermediate node could fail Wired linkWireless link

Prof. Rick Han, University of Colorado at Boulder Link Layer Solutions More aggressive local rexmit than TCP –Bandwidth not wasted on wired links Drawbacks: Adverse interactions with transport layer –Timer interactions –Interactions with fast retransmissions –Large end-to-end round-trip time variation FEC does not work well with burst losses Wired linkWireless link ARQ/FEC

Prof. Rick Han, University of Colorado at Boulder Hybrid Solution: TCP Snoop Transport-aware link protocol Modify base station: –To cache unACKnowledged TCP packets –To suppress duplicate ACKs back to sender while performing local retransmissions Key advantages: –No transport termination or TCP code in base station Preserves end-to-end semantics Only soft state in basestation: easy to migrate, loss of soft state merely returns TCP to its bad wired-over- wireless performance –Fixed and mobile endpoints don’t require any modifications

Snoop Protocol: CH to MH Correspondent Host Mobile Host Base Station Snoop agent: active interposition agent –Snoops on TCP segments and ACKs –Detects losses by duplicate ACKs and timers –Suppresses duplicate ACKs from FH sender Snoop Agent Example Courtesy of Srini Seshan

Snoop Protocol: CH to MH Correspondent Host Mobile Host Base Station Transfer of file from CH to MH Current window = 6 packets Snoop Agent

Snoop Protocol: CH to MH Correspondent Host Mobile Host Base Station Transfer begins Snoop Agent

Snoop Protocol: CH to MH Correspondent Host Mobile Host Base Station Snoop agent caches (black) segments that pass by Difference #1 from pure link-layer – does not add a new header uses existing TCP header to identify losses Snoop Agent

Snoop Protocol: CH to MH Correspondent Host Mobile Host Base Station Packet 1 is Lost Snoop Agent 23 1 Lost Packets 1

Snoop Protocol: CH to MH Correspondent Host Mobile Host Base Station Packet 1 is Lost –Duplicate ACKs generated –Note: technically for TCP, “cack0” should be “cack 1”, since TCP lists in its cumulative ACK the *next* byte it expects. I’ve kept “cack 0”, i.e. all packets up to 0 have been received correctly. Snoop Agent 2 3 Lost Packets 1 4 cack 0

Snoop Protocol: CH to MH Correspondent Host Mobile Host Base Station Packet 1 is Lost –Duplicate ACKs generated Packet 1 retransmitted from cache at higher priority Snoop Agent 2 3 Lost Packets 1 4 cack

Snoop Protocol: CH to MH Correspondent Host Mobile Host Base Station Duplicate ACKs suppressed Difference #2 from pure link-layer – tries to prevent sender from noticing loss –Sender may still timeout though – fortunately timeouts are typically long (500ms+) Snoop Agent cack cack 0 X

Snoop Protocol: CH to MH Correspondent Host Mobile Host Base Station 56 Clean cache on new ACK Snoop Agent cack cack 4

Snoop Protocol: CH to MH Correspondent Host Mobile Host Base Station 6 Clean cache on new ACK Snoop Agent cack cack 5 cack 4

Snoop Protocol: CH to MH Correspondent Host Mobile Host Base Station Active soft state agent at base station Transport-aware reliable link protocol Preserves end-to-end semantics Snoop Agent cack cack 5

Prof. Rick Han, University of Colorado at Boulder TCP Snoop Drawbacks Base station vendors must modify their firmware to add TCP snoop agent –Additional cost and complexity, may eventually be worth it if wireless data usage becomes commonplace and TCP performance is still an issue Return path for ACKs may not traverse same basestation as forward data path –Snoop agent that has soft state for unACKed data doesn’t see ACKs –Another snoop agent that doesn’t have the soft state sees ACK’s but can’t suppress duplicates