Explicit Congestion Notification (ECN) RFC 3168

Slides:



Advertisements
Similar presentations
24-1 Chapter 24. Congestion Control and Quality of Service (part 1) 23.1 Data Traffic 23.2 Congestion 23.3 Congestion Control 23.4 Two Examples.
Advertisements

Prentice HallHigh Performance TCP/IP Networking, Hassan-Jain Chapter 2 TCP/IP Fundamentals.
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
IS333, Ch. 26: TCP Victor Norman Calvin College 1.
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
1 TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Networks I Transmission Control Protocol Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Estado de México Prof. MSc. Ivan A. Escobar.
TCP: Transmission Control Protocol Overview Connection set-up and termination Interactive Bulk transfer Timers Improvements.
1 Chapter 3 TCP and IP. Chapter 3 TCP and IP 2 Introduction Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) User Datagram Protocol.
1 Transport Layer - UDP & TCP Protocols "I cannot teach anybody anything, I can only make them think.” - Socrates.
BZUPAGES.COM 1 User Datagram Protocol - UDP RFC 768, Protocol 17 Provides unreliable, connectionless on top of IP Minimal overhead, high performance –No.
Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
TRANSPORT LAYER  Session multiplexing  Segmentation  Flow control (TCP)  Connection-oriented (TCP)  Reliability (TCP)
1 Transport Control Protocol. 2 Header Identifies the port number of a source application program. Used by the receiver to reply. (16-bit). Identifies.
Congestion Control Created by M Bateman, A Ruddle & C Allison As part of the TCP View project.
CS 408 Computer Networks Congestion Control (from Chapter 05)
Congestion Control An Overview -Jyothi Guntaka. Congestion  What is congestion ?  The aggregate demand for network resources exceeds the available capacity.
Explicit Congestion Notification (ECN) RFC 3168 Justin Yackoski DEGAS Networking Group CISC856 – TCP/IP Thanks to Namratha Hundigopal.
Explicit Congestion Notification (ECN) Qi (Gill) Wang CISC 856 – TCP/IP, Fall 2012 Special thanks to: Dr. Paul Amer Guna Ranjan, Justin.
School of Information Technologies TCP Congestion Control NETS3303/3603 Week 9.
Shivkumar Kalyanaraman Rensselaer Polytechnic Institute 1 ECSE-4690: Experimental Networking Informal Quiz: TCP Shiv Kalyanaraman:
Explicit Congestion Notification ECN Tilo Hamann Technical University Hamburg-Harburg, Germany.
1 Congestion Control. Transport Layer3-2 Principles of Congestion Control Congestion: r informally: “too many sources sending too much data too fast for.
1 Internet Networking Spring 2003 Tutorial 11 Explicit Congestion Notification (RFC 3168) Limited Transmit (RFC 3042)
1 Internet Networking Spring 2003 Tutorial 11 Explicit Congestion Notification (RFC 3168)
1 Chapter 3 Transport Layer. 2 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4.
CSCE 515: Computer Network Programming TCP Details Wenyuan Xu Department of Computer Science and Engineering.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #8 Explicit Congestion Notification (RFC 3168) Limited Transmit.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
Transmission Control Protocol Internet Protocol TCP/IP.
TCP: flow and congestion control. Flow Control Flow Control is a technique for speed-matching of transmitter and receiver. Flow control ensures that a.
1 Chapter 1 OSI Architecture The OSI 7-layer Model OSI – Open Systems Interconnection.
Computer & Information Sciences University of Delaware
TCP Transport Control Protocol Information management 2 Groep T Leuven – Information department 2/35 Introduction UDP provides the connection.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
TCP Lecture 13 November 13, TCP Background Transmission Control Protocol (TCP) TCP provides much of the functionality that IP lacks: reliable service.
26-TCP Dr. John P. Abraham Professor UTPA. TCP  Transmission control protocol, another transport layer protocol.  Reliable delivery  Tcp must compensate.
CS332, Ch. 26: TCP Victor Norman Calvin College 1.
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.
ECE453 – Introduction to Computer Networks Lecture 14 – Transport Layer (I)
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
Link Scheduling & Queuing COS 461: Computer Networks
SELECTIVE ACKNOWLEDGEMENT (SACK) DUPLICATE SELECTIVE ACKNOWLEDGMENT
Chapter 12 Transmission Control Protocol (TCP)
1 TCP: Reliable Transport Service. 2 Transmission Control Protocol (TCP) Major transport protocol used in Internet Heavily used Completely reliable transfer.
AQM & TCP models Courtesy of Sally Floyd with ICIR Raj Jain with OSU.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
VersionIHLTotal Length FlagsIdentificationFragment Offset Time To Live Destination Address OptionsPadding Protocol = 6 Type of Service IP Header TCP Destination.
Data Transfer Case Study: TCP  Go-back N ARQ  32-bit sequence # indicates byte number in stream  transfers a byte stream, not fixed size user blocks.
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 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
Peer-to-Peer Networks 13 Internet – The Underlay Network
Transmission Control Protocol (TCP) TCP Flow Control and Congestion Control CS 60008: Internet Architecture and Protocols Department of CSE, IIT Kharagpur.
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
1 TCP ProtocolsLayer name DNSApplication TCP, UDPTransport IPInternet (Network ) WiFi, Ethernet Link (Physical)
1 Transmission Control Protocol (TCP) RFC: Introduction The TCP is intended to provide a reliable process-to-process communication service in a.
1 Congestion and Congestion Control in Packet- Switched Networks.
3. END-TO-END PROTOCOLS (PART 1) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
Internet Networking recitation #9
Chapter 3 outline 3.1 transport-layer services
5. End-to-end protocols (part 1)
TCP.
TCP.
Introduction of Transport Protocols
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Internet Networking recitation #10
TCP Overview.
Transport Layer: Congestion Control
Transport Layer 9/22/2019.
Presentation transcript:

Explicit Congestion Notification (ECN) RFC 3168 CISC 856 –TCP/IP, Fall 2007 Presented by: Guna Ranjan guna@udel.edu Special thanks to: Dr. Paul Amer Justin Yackoski, Namratha Hundigopal & Preethi Natarajan (for slides)

Overview The problem - Congestion Existing solutions - TCP’s basic congestion mechanisms Active Queue Management (AQM) Explicit Congestion Notification (ECN) Additional fields in IP & TCP headers ECN - Sequence of events Advantages of ECN

What is congestion? In real life? In a network? Having a closer look – When resource demand exceeds the capacity of a system. Ex: Rush hour traffic on I-95 In a network? When the number of packets being transmitted approaches the packet handling capacity of the network Having a closer look – Congestion occurs at a router when the output capacity is less than the total sum of inputs from multiple streams

At the congested router … Router’s buffer gets filled up because input > output Consequences? End-to-End delay increases as buffer fills up When buffer is full, router drops packets using the “tail-drop” approach  packet loss Sender Receiver Packets being dropped

Current TCP (without ECN) TCP sender treats network as a “black-box” and assumes packet loss as an indication of congestion Congestion detection Retransmit timeout 3 duplicate acks Congestion avoidance Happens after congestion has already occurred (Multiplicative decrease of cwnd AFTER loss) Current TCP does something like congestion recovery!! What could go wrong with this approach??

What could go wrong? Global synchronization – The flows’ congestion avoidance get synchronized All flows reduce the sending rate at the same time, channel is under-utilized The flows start retransmission and start increasing their sending rate in a similar fashion Slowly congestion builds up again – This cycle repeats Full buffers – If network is operating at capacity, the buffers stay full End-to-End delay is increased due to queuing delays

What could go wrong? (cont’d) Lockout – Queue space is monopolized by a few connections & other connections are locked out Sender-2 Sender-1 Sender-3 Sender-4

Active Queue Management (AQM) Detects and notifies incipient (early/initial) congestion (what is early congestion?) Tries to maintain average queue size in “good” range between min & max thresholds Randomly chooses IP-PDUs to notify congestion (how? ) thmin thmax Average Queue size lies between these thresholds Sender Receiver

Is AQM good enough? AQM is restricted to using packet drops to indicate congestion – not efficient Potential for excessive delays due to retransmissions after packet losses BAD for interactive traffic such as telnet, web-browsing etc – which are sensitive to packet losses Can we do better??

Explicit Congestion Notification ECN is an AQM mechanism Routers notify TCP senders/receivers about incipient congestion – without packet drops How? Through IP and TCP headers TCP treats ECN signals exactly the same as when a single dropped packet is detected – but packets are not actually dropped

ECN bits in IP header ECN 6 bits Differentiated Services Codepoints Reserved 2 bits ECN 2 bits VER 4 bits Time to Live 8 bits HLEN Header Checksum 16 bits Protocol Fragmentation offset 13 bits Flags 3 bits Source IP address 32 bits Options (if any) Destination IP address Data Total Length DS Identification

ECN bits in IP header (cont’d) ECN Field ECT: ECN Capable Transport CE: Congestion Experienced ECT CE 2 bits = 4 ECN Codepoints ECT CE Names for the ECN bits Not-ECT (Not ECN Capable Transport) 1 ECT(1) (ECN Capable Transport (1)) ECT(0) (ECN Capable Transport(0)) CE (Congestion Experienced)

ECN bits in TCP header CWR: Congestion Window Reduced Flag ECE CWR Reserved 4 bits Reserved 6 bits CWR: Congestion Window Reduced Flag ECE: ECN-Echo Flag URG ACK PSH RST SYN FIN Source port address 16 bits Sequence Number 32 bits Acknowledgement Number Destination port address Options (if any) Urgent pointer Checksum Window size Data HLEN 4 bits Reserved 6 bits URG SYN PSH ACK RST FIN

ECN negotiation between TCP end hosts Sender Receiver ECN-Setup SYN CWR=1 SYN=1 ECE=1 ECN-Setup SYN-ACK ECE=1 ACK=1 SYN=1 CWR=0 ACK ACK=1 A host must not set ECT in SYN or SYN-ACK (why?)

Typical sequence of events Event-1 ECN Capability negotiated during Connection Establishment ECN Capable Sender ECN Capable Router ECN Capable Receiver N-PDU ECT set in IP header

Typical sequence of events Event-2 Incipient Congestion, set CE ECN Capable Sender ECN Capable Router ECN Capable Receiver ECT set in IP header N-PDU N-PDU CE set in IP header

Typical sequence of events Event-3 Congestion!! Let me inform the TCP sender ECN Capable Sender ECN Capable Router ECN Capable Receiver ECT set in IP header N-PDU CE set in IP header N-PDU ECE set in TCP header

Typical sequence of events Event-4 Congestion!! Reduce cwnd ECN Capable Sender ECN Capable Router ECN Capable Receiver ECT set in IP header N-PDU CE set in IP header ECE set in TCP header N-PDU ECE set in TCP header

Typical sequence of events Event-5 Congestion!! Reduce cwnd, set CWR in TCP header ECN Capable Sender ECN Capable Router ECN Capable Receiver N-PDU CWR set in TCP header

Typical sequence of events Event-6 Sender has reduced cwnd, stop setting ECE flag ECN Capable Sender ECN Capable Router ECN Capable Receiver CWR set in TCP header CWR set in TCP header N-PDU N-PDU N-PDU ECE set in TCP header

Advantages of ECN Prevents unnecessary packet drops at routers  less retransmissions  improvement in the “GOODPUT” Avoids timeouts by getting faster notification to end hosts Less time to identify congestion Non-ECN flows infer congestion from 3 duplicate ACKs or even worse from timeouts as opposed to ECN flows that get congestion notification in the first ACK Fewer retransmissions also means less traffic on the network

Is ECN used? Implemented in Linux 2.4+, Solaris 9+, and Cisco routers since 12.2(8)T

References RFC 3168 – The Addition of Explicit Congestion Notification (ECN) to IP RFC 2309 – Active Queue Management http://www.icir.org/floyd/ecn.html RFC 2884 – Performance Evaluation of ECN in IP Networks Slides from David Wetherall on “Robust Congestion Signalling” Slides from Justin Yackoski, Namratha Hundigopal and Preethi Natarajan

Questions?

Quick Question Q: Why is the congestion experienced information maintained in the “regular headers” of an IP PDU? Why isn’t the IP options field used to incorporate this information? A: That’s because many routers process the “regular headers” in IP PDUs more efficiently than they process the header information in IP options.