CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – II - Connection Set-up and Congestion Control.

Slides:



Advertisements
Similar presentations
Congestion Control and Fairness Models Nick Feamster CS 4251 Computer Networking II Spring 2008.
Advertisements

Congestion Control and Fairness Models Nick Feamster CS 4251 Computer Networking II Spring 2008.
Principles of Congestion Control Chapter 3.6 Computer Networking: A top-down approach.
1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 4 th edition. Jim Kurose, Keith Ross Addison-Wesley, July A note on the use.
3-1 TCP Protocol r point-to-point: m one sender, one receiver r reliable, in-order byte steam: m no “message boundaries” r pipelined: m TCP congestion.
1 TCP Congestion Control. 2 TCP Segment Structure source port # dest port # 32 bits application data (variable length) sequence number acknowledgement.
Computer Networks 2 Lecture 2 TCP – I - Transport Protocols: TCP Segments, Flow control and Connection Setup.
Congestion Control Created by M Bateman, A Ruddle & C Allison As part of the TCP View project.
CS640: Introduction to Computer Networks Mozafar Bag-Mohammadi Lecture 3 TCP Congestion Control.
Computer Networking Lecture 17 – TCP & Congestion Control Dejian Ye, Liu Xin.
Introduction 1 Lecture 14 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
School of Information Technologies TCP Congestion Control NETS3303/3603 Week 9.
Computer Networking Lecture 17 – More TCP & Congestion Control Copyright ©, Carnegie Mellon University.
Chapter 3 Transport Layer slides are modified from J. Kurose & K. Ross CPE 400 / 600 Computer Communication Networks Lecture 12.
Announcement Project 2 finally ready on Tlab Homework 2 due next Mon tonight –Will be graded and sent back before Tu. class Midterm next Th. in class –Review.
Transport Layer3-1 Congestion Control. Transport Layer3-2 Principles of Congestion Control Congestion: r informally: “too many sources sending too much.
1 Congestion Control 2 Principles of Congestion Control Congestion: r informally: “too many sources sending too much data too fast for network to handle”
10/7/ /9/2003 TCP and Congestion Control October 7-9, 2003.
1 Congestion Control. Transport Layer3-2 Principles of Congestion Control Congestion: r informally: “too many sources sending too much data too fast for.
15-744: Computer Networking L-10 Congestion Control.
Transport Layer Transport Layer: TCP. Transport Layer 3-2 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional.
Week 9 TCP9-1 Week 9 TCP 3 outline r 3.5 Connection-oriented transport: TCP m segment structure m reliable data transfer m flow control m connection management.
Computer Networking Lecture 16 – TCP & Congestion Control Copyright ©, Carnegie Mellon University.
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.
Computer Networking Lecture 16 – More TCP
Data Communication and Networks
EEC-484/584 Computer Networks Lecture 14 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
EEC-484/584 Computer Networks Lecture 16 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
3: Transport Layer3b-1 Principles of Congestion Control Congestion: r informally: “too many sources sending too much data too fast for network to handle”
Transport Layer 4 2: Transport Layer 4.
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.
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.
Transport Layer1 Flow and Congestion Control Ram Dantu (compiled from various text books)
Principles of Congestion Control Congestion: informally: “too many sources sending too much data too fast for network to handle” different from flow control!
TCOM 509 – Internet Protocols (TCP/IP) Lecture 04_b Transport Protocols - TCP Instructor: Dr. Li-Chuan Chen Date: 09/22/2003 Based in part upon slides.
17-1 Last time □ UDP socket programming ♦ DatagramSocket, DatagramPacket □ TCP ♦ Sequence numbers, ACKs ♦ RTT, DevRTT, timeout calculations ♦ Reliable.
Network Protocols: Design and Analysis Polly Huang EE NTU
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.
CS332, Ch. 26: TCP Victor Norman Calvin College 1.
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March
Andmeside IRT 0030 loeng 605. okt Avo Ots telekommunikatsiooni õppetool raadio- ja sidetehnika instituut
Computer Networking Lecture 16 –TCP in detail Eric Anderson Fall
Lecture 18 – More TCP & Congestion Control
81 Sidevõrgud IRT 0020 loeng okt Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst.
1 Transport Layer Lecture 10 Imran Ahmed University of Management & Technology.
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.
Advance Computer Networks Lecture#09 & 10 Instructor: Engr. Muhammad Mateen Yaqoob.
Transport Protocols.
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429 Introduction to Computer Networks Lecture 13: TCP Slides used with permissions from.
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.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP Congestion Control.
Transport Layer session 1 TELE3118: Network Technologies Week 11: Transport Layer TCP Some slides have been taken from: r Computer Networking:
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
@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.
DMET 602: Networks and Media Lab Amr El Mougy Yasmeen EssamAlaa Tarek.
Computer Networking Lecture 8 – TCP & Congestion Control.
Lecture 17 – TCP & Congestion Control
Approaches towards congestion control
Chapter 3 outline 3.1 Transport-layer services
Flow and Congestion Control
Lecture 18 – More TCP & Congestion Control
Transport Protocols: TCP Segments, Flow control and Connection Setup
Transport Layer: Congestion Control
Chapter 3 outline 3.1 Transport-layer services
Computer Networking TCP.
Transport Protocols: TCP Segments, Flow control and Connection Setup
Presentation transcript:

CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – II - Connection Set-up and Congestion Control

2 TCP Packet Source portDestination port Sequence number Acknowledgement Advertised windowHdrLen Flags 0 ChecksumUrgent pointer Options (variable) Data Flags from MSB to LSB: URG ACK PSH RST SYN FIN Reliable, In-order, Connection oriented, Byte stream abstraction

3 Sequence and Acknowledge Numbers Sequence number  byte num of first byte in payload Acknowledgement number –TCP is full duplex –Sequence number of next byte expected in reverse direction

4 Advertised Window Used for “flow control” –Different from “congestion control”, which we will see in second half of today’s lecture Both sender and receiver advertise window –Sender action: lastSent – lastACK <= Receiver’s advertised window

5 Establishing Connection: Three-Way handshake Each side notifies other of starting sequence number it will use for sending –Why not simply chose 0? Must avoid overlap with earlier incarnation Security issues Each side acknowledges other’s sequence number –SYN-ACK: Acknowledge sequence number + 1 Can combine second SYN with first ACK SYN: SeqC ACK: SeqC+1 SYN: SeqS ACK: SeqS+1 ClientServer

6 Tearing Down Connection Either side can initiate tear down –Send FIN signal –“I’m not going to send any more data” Other side can continue sending data –Half open connection –Must continue to acknowledge Acknowledging FIN –Acknowledge last sequence number + 1 ClientServer FIN, SeqA ACK, SeqA+1 ACK Data ACK, SeqB+1 FIN, SeqB

7 TCP State Diagram: Connection Setup CLOSED SYN SENT SYN RCVD ESTAB LISTEN active OPEN create TCB Snd SYN create TCB passive OPEN snd SYN ACK rcv SYN Send FIN CLOSE rcv ACK of SYN Snd ACK Rcv SYN, ACK Client Server

8 State Diagram: Connection Tear-down CLOSING CLOSE WAIT FIN WAIT-1 ESTAB TIME WAIT snd FIN CLOSE rcv ACK of FIN LAST-ACK CLOSED FIN WAIT-2 snd ACK rcv FIN delete TCB Timeout=2msl send FIN CLOSE send ACK rcv FIN snd ACK rcv FIN rcv ACK of FIN snd ACK rcv FIN+ACK rcv ACK Active Close Passive Close

9 Congestion Different sources compete for resources inside network Why is it a problem? –Sources are unaware of current state of resource –Sources are unaware of each other Manifestations: –Lost packets (buffer overflow at routers) –Long delays (queuing in router buffers) –Can result in effective throughput less than bottleneck link (1.5Mbps for the above topology)  a.k.a. congestion collapse 10 Mbps 100 Mbps 1.5 Mbps

10 Causes & Costs of Congestion Four senders – multihop paths Timeout/retransmit Q: What happens as rate increases?

11 Causes & Costs of Congestion When packet dropped, any upstream transmission capacity used for that packet was wasted!

12 Congestion “Collapse” Definition: Unchecked Increase in network load results in decrease of useful work done –Fewer and fewer useful packets carried in network Many possible causes –Spurious retransmissions of packets still in flight Classical congestion collapse –Undelivered packets Packets consume resources and are dropped elsewhere in network

13 Congestion Control and Avoidance A mechanism which: –Uses network resources efficiently –Preserves fair network resource allocation –Controls or Avoids congestion

14 Approaches Towards Congestion Control End-end congestion control: –No explicit feedback from network –Congestion inferred from end-system observed loss, delay –Approach taken by TCP –Problem: approximate, possibly inaccurate Network-assisted congestion control: –Routers provide feedback to end systems Single bit indicating congestion (SNA, DECbit, TCP/IP ECN, ATM) Explicit rate sender should send at –Problem: makes routers complicated Two broad approaches towards congestion control:

15 End-End Congestion Control So far: TCP sender limited by available buffer size at receiver –Receiver flow control –“receive window” or “advertised window” To accommodate network constraints, sender maintains a “congestion window” –Reflects dynamic state of the network –Max outstanding packets ≤ min {congestion window, advertised window} When receiver window is very large, congestion window determines how fast sender can send –Speed = CWND/RTT (roughly)

16 TCP Congestion Control Very simple mechanisms in network –FIFO scheduling with shared buffer pool –Feedback through packet drops End-host TCP interprets drops as signs of congestion and slows down  reduces size of congestion window But then, periodically probes – or increases congestion window –To check whether more bandwidth has become available

17 Congestion Control Objectives Simple router behavior Distributed-ness Efficiency:  x i (t) close to system capacity Fairness: equal (or propotional) allocation –Metric = (  x i ) 2 /n(  x i 2 ) Convergence: control system must be stable

18 Linear Control Many different possibilities for reaction to congestion and probing –Examine simple linear controls Window(t + 1) = a + b Window(t) Different a i /b i for increase and a d /b d for decrease Various reaction to signals possible –Increase/decrease additively –Increased/decrease multiplicatively –Which of the four combinations is optimal? Consider two end hosts vying for network bandwidth

19 Additive Increase/Decrease T0T0 T1T1 Efficiency Line Fairness Line User 1’s Allocation x 1 User 2’s Allocation x 2 Both X 1 and X 2 increase/ decrease by the same amount over time –Additive increase improves fairness and additive decrease reduces fairness

20 Multiplicative Increase/Decrease Both X 1 and X 2 increase by the same factor over time –Extension from origin – constant fairness T0T0 T1T1 Efficiency Line Fairness Line User 1’s Allocation x 1 User 2’s Allocation x 2

21 Convergence to Efficiency xHxH Efficiency Line Fairness Line User 1’s Allocation x 1 User 2’s Allocation x 2

22 Distributed Convergence to Efficiency xHxH Efficiency Line Fairness Line User 1’s Allocation x 1 User 2’s Allocation x 2 a=0 b=1 a>0 & b<1 a 1 a<0 & b<1 a>0 & b>1

23 Convergence to Fairness xHxH Efficiency Line Fairness Line User 1’s Allocation x 1 User 2’s Allocation x 2 x H’

24 Convergence to Efficiency & Fairness Intersection of valid regions For decrease: a=0 & b < 1 xHxH Efficiency Line Fairness Line User 1’s Allocation x 1 User 2’s Allocation x 2 x H’

25 What is the Right Choice? Constraints limit us to AIMD –Can have multiplicative term in increase (MAIMD) –AIMD moves towards optimal point x0x0 x1x1 x2x2 Efficiency Line Fairness Line User 1’s Allocation x 1 User 2’s Allocation x 2

26 Summary Significance of fields in TCP packet –TCP is full duplex –Data can go in either direction TCP connection set-up – three-way hand- shake –Also, teardown Costs of congestion –Delay, loss, useless work… –Cure: congestion control TCP uses AIMD congestion control