Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 A note on the use of these.

Slides:



Advertisements
Similar presentations
Principles of Congestion Control Chapter 3.6 Computer Networking: A top-down approach.
Advertisements

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.
Transport Layer 3-1 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport: UDP 3.4 principles.
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.
Chapter 3 Transport Layer slides are modified from J. Kurose & K. Ross CPE 400 / 600 Computer Communication Networks Lecture 12.
Transport Layer 3-1 Fast Retransmit r time-out period often relatively long: m long delay before resending lost packet r detect lost segments via duplicate.
Transport Layer3-1 Congestion Control. Transport Layer3-2 Principles of Congestion Control Congestion: r informally: “too many sources sending too much.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley,
1 Congestion Control. Transport Layer3-2 Principles of Congestion Control Congestion: r informally: “too many sources sending too much data too fast for.
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.
The Future r Homework questions> r The next test is coming the 19 th (just before turkey day!) r Wednesday = review + anything not done today r Friday.
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.
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.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
Introduction 1 Lecture 14 Transport Layer (Congestion Control) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science.
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 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 Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley Chapter3_3.
Transport Layer3-1 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles.
Transport Layer 3-1 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport: UDP 3.4 principles.
Chapter 3 Transport Layer
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 A.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
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!
17-1 Last time □ UDP socket programming ♦ DatagramSocket, DatagramPacket □ TCP ♦ Sequence numbers, ACKs ♦ RTT, DevRTT, timeout calculations ♦ Reliable.
Chapter 3 Transport Layer Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley, July 2002.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March
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.
Transport Layer 3- Midterm score distribution. Transport Layer 3- TCP congestion control: additive increase, multiplicative decrease Approach: increase.
These slides are adapted from Kurose and Ross
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.
1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer.
CS-1652 The slides are adapted from the publisher’s material All material copyright J.F Kurose and K.W. Ross, All Rights Reserved Jack Lange.
Advance Computer Networks Lecture#09 & 10 Instructor: Engr. Muhammad Mateen Yaqoob.
TCP. TCP ACK generation [RFC 1122, RFC 2581] Event at Receiver Arrival of in-order segment with expected seq #. All data up to expected seq # already.
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.
@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.
Transport Layer session 1 TELE3118: Network Technologies Week 11: Transport Layer TCP Some slides have been taken from: r Computer Networking:
@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.
@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.
CS450 – Introduction to Networking Lecture 19 – Congestion Control (2)
Approaches towards congestion control
Transport Layer CS 381 3/7/2017.
Chapter 3 outline 3.1 transport-layer services
Chapter 6 TCP Congestion Control
CS-1652 Jack Lange University of Pittsburgh
Slides have been adapted from:
Chapter 3 outline 3.1 Transport-layer services
Chapter 3-3 TCP Congestion CTL *
Flow and Congestion Control
Chapter 6 TCP Congestion Control
October 1st, 2013 CS-1652 Jack Lange University of Pittsburgh
TCP Overview.
Chapter 3 outline 3.1 Transport-layer services
CS-1652 Congestion Control Jack Lange University of Pittsburgh
Transport Layer: Congestion Control
Chapter 3 outline 3.1 Transport-layer services
TCP flow and congestion control
Chapter 3 Transport Layer
October 4th, 2011 CS-1652 Jack Lange University of Pittsburgh
Presentation transcript:

Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 A note on the use of these ppt slides: We’re making these slides freely available to all (faculty, students, readers). They’re in PowerPoint form so you see the animations; and can add, modify, and delete slides (including this one) and slide content to suit your needs. They obviously represent a lot of work on our part. In return for use, we only ask the following:  If you use these slides (e.g., in a class) that you mention their source (after all, we’d like people to use our book!)  If you post any slides on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material. Thanks and enjoy! JFK/KWR All material copyright J.F Kurose and K.W. Ross, All Rights Reserved The course notes are adapted for Bucknell’s CSCI 363 Xiannong Meng Spring 2014 Transport Layer 3-1

Transport Layer 3-2 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport: UDP 3.4 principles of reliable data transfer 3.5 connection-oriented transport: TCP  segment structure  reliable data transfer  flow control  connection management 3.6 principles of congestion control 3.7 TCP congestion control

Transport Layer 3-3 congestion:  informally: “too many sources sending too much data too fast for network to handle”  different from flow control!  manifestations:  lost packets (buffer overflow at routers)  long delays (queueing in router buffers)  a top-10 problem! Principles of congestion control

Transport Layer 3-4 Causes/costs of congestion: scenario 1  two senders, two receivers  one router, infinite buffers  output link capacity: R  no retransmission  maximum per-connection throughput: R/2 unlimited shared output link buffers Host A original data: in Host B throughput:  out R/2 out in R/2 delay in  large delays as arrival rate, in, approaches capacity

Transport Layer 3-5  one router, finite buffers  sender retransmission of timed-out packet  application-layer input = application-layer output:  in = out  transport-layer input includes retransmissions :  in in finite shared output link buffers Host A in : original data Host B out ' in : original data, plus retransmitted data ‘ Causes/costs of congestion: scenario 2

Transport Layer 3-6 idealization: perfect knowledge  sender sends only when router buffers available finite shared output link buffers in : original data out ' in : original data, plus retransmitted data copy free buffer space! R/2 out in Causes/costs of congestion: scenario 2 Host B A

Transport Layer 3-7 in : original data out ' in : original data, plus retransmitted data copy no buffer space! Idealization: known loss packets can be lost, dropped at router due to full buffers  sender only resends if packet known to be lost Causes/costs of congestion: scenario 2 A Host B

Transport Layer 3-8 in : original data out ' in : original data, plus retransmitted data free buffer space! Causes/costs of congestion: scenario 2 Idealization: known loss packets can be lost, dropped at router due to full buffers  sender only resends if packet known to be lost R/2 in out when sending at R/2, some packets are retransmissions but asymptotic goodput is still R/2 (why?) A Host B

Transport Layer 3-9 A in out ' in copy free buffer space! timeout R/2 in out when sending at R/2, some packets are retransmissions including duplicated that are delivered! Host B Realistic: duplicates  packets can be lost, dropped at router due to full buffers  sender times out prematurely, sending two copies, both of which are delivered Causes/costs of congestion: scenario 2

Transport Layer 3-10 R/2 out when sending at R/2, some packets are retransmissions including duplicated that are delivered! “costs” of congestion:  more work (retrans) for given “goodput”  unneeded retransmissions: link carries multiple copies of pkt  decreasing goodput R/2 in Causes/costs of congestion: scenario 2 Realistic: duplicates  packets can be lost, dropped at router due to full buffers  sender times out prematurely, sending two copies, both of which are delivered

Transport Layer 3-11  four senders  multihop paths  timeout/retransmit Q: what happens as in and in ’ increase ? finite shared output link buffers Host A out Causes/costs of congestion: scenario 3 Host B Host C Host D in : original data ' in : original data, plus retransmitted data A: as red in ’ increases, all arriving blue pkts at upper queue are dropped, blue throughput  0

Transport Layer 3-12 another “cost” of congestion:  when packet dropped, any “upstream transmission capacity used for that packet was wasted! Causes/costs of congestion: scenario 3 C/2 out in ’

Transport Layer 3-13 Approaches towards congestion control two broad 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 network-assisted congestion control:  routers provide feedback to end systems  single bit indicating congestion (SNA, DECbit, TCP/IP ECN, ATM)  explicit rate for sender to send at

Transport Layer 3-14 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport: UDP 3.4 principles of reliable data transfer 3.5 connection-oriented transport: TCP  segment structure  reliable data transfer  flow control  connection management 3.6 principles of congestion control 3.7 TCP congestion control

Transport Layer 3-15 TCP congestion control: additive increase multiplicative decrease  approach: sender increases transmission rate (window size), probing for usable bandwidth, until loss occurs  additive increase: increase cwnd by 1 MSS every RTT until loss detected  multiplicative decrease: cut cwnd in half after loss cwnd: TCP sender congestion window size AIMD saw tooth behavior: probing for bandwidth additively increase window size … …. until loss occurs (then cut window in half) time

Transport Layer 3-16 TCP Congestion Control: details  sender limits transmission:  cwnd is dynamic, function of perceived network congestion TCP sending rate:  roughly: send cwnd bytes, wait RTT for ACKS, then send more bytes last byte ACKed sent, not- yet ACKed (“in-flight”) last byte sent cwnd LastByteSent- LastByteAcked < cwnd sender sequence number space rate ~ ~ cwnd RTT bytes/sec

Transport Layer 3-17 TCP Slow Start  when connection begins, increase rate exponentially until first loss event:  initially cwnd = 1 MSS  double cwnd every RTT  done by incrementing cwnd for every ACK received  summary: initial rate is slow but ramps up exponentially fast Host A one segment RTT Host B time two segments four segments

Transport Layer 3-18 TCP: detecting, reacting to loss  loss indicated by timeout:  cwnd set to 1 MSS;  window then grows exponentially (as in slow start) to threshold, then grows linearly  loss indicated by 3 duplicate ACKs: TCP RENO  dup ACKs indicate network capable of delivering some segments  cwnd is cut in half window then grows linearly  TCP Tahoe (Van Jacobson1988) always sets cwnd to 1 (timeout or 3 duplicate acks)

Tahoe, Reno, and Vegas  TCP Tahoe (~1988 Van Jacobson): BSD Unix 4.3, a.k.a. BSD Network Release 1.0 (BNR1), additive increase and multiplicative decrease, slow start, no fast retransmission  TCP Reno (~1990?): BNR2, BNR1 plus fast retransmission, header prediction (fast path for pure ACKs and in-order packets), delayed ACKs  TCP Vegas (~1994 Brakmo, O’Malley, and Peterson): varying congestion window size w between a and b, based on diff = (expected – sample) rate of transmission. If diff b (showing congestion), decrease w by one Transport Layer 3-19

Transport Layer 3-20 Q: when should the exponential increase switch to linear? A: when cwnd gets to 1/2 of its value before timeout. Implementation:  variable ssthresh  on loss event, ssthresh is set to 1/2 of cwnd just before loss event TCP: switching from slow start to CA

Transport Layer 3-21 Summary: TCP Congestion Control timeout ssthresh = cwnd/2 cwnd = 1 MSS dupACKcount = 0 retransmit missing segment  cwnd > ssthresh congestion avoidance cwnd = cwnd + MSS (MSS/cwnd) dupACKcount = 0 transmit new segment(s), as allowed new ACK. dupACKcount++ duplicate ACK fast recovery cwnd = cwnd + MSS transmit new segment(s), as allowed duplicate ACK ssthresh= cwnd/2 cwnd = ssthresh + 3 retransmit missing segment dupACKcount == 3 timeout ssthresh = cwnd/2 cwnd = 1 dupACKcount = 0 retransmit missing segment ssthresh= cwnd/2 cwnd = ssthresh + 3 retransmit missing segment dupACKcount == 3 cwnd = ssthresh dupACKcount = 0 New ACK slow start timeout ssthresh = cwnd/2 cwnd = 1 MSS dupACKcount = 0 retransmit missing segment cwnd = cwnd+MSS dupACKcount = 0 transmit new segment(s), as allowed new ACK dupACKcount++ duplicate ACK  cwnd = 1 MSS ssthresh = 64 KB dupACKcount = 0 New ACK! New ACK! New ACK!

Transport Layer 3-22 TCP throughput  avg. TCP thruput as function of window size, RTT?  ignore slow start, assume always data to send  W: window size (measured in bytes) where loss occurs  avg. window size (# in-flight bytes) is ¾ W  avg. thruput is 3/4W per RTT W W/2 avg TCP thruput = 3 4 W RTT bytes/sec

Transport Layer 3-23 TCP Futures: TCP over “long, fat pipes”  example: 1500 byte segments, 100ms RTT, want 10 Gbps throughput (1500 bytes = 12,000 bits seg, 100 ms can carry 83,333 segments at 10Gbps)  requires W = 83,333 in-flight segments  throughput in terms of segment loss probability, L [Mathis 1997]: ➜ to achieve 10 Gbps throughput, need a loss rate of L = 2 · – a very small loss rate!  new versions of TCP for high-speed TCP throughput = MSS RTT L

Transport Layer 3-24 fairness goal: if K TCP sessions share same bottleneck link of bandwidth R, each should have average rate of R/K TCP connection 1 bottleneck router capacity R TCP Fairness TCP connection 2

Transport Layer 3-25 Why is TCP fair? two competing sessions:  additive increase gives slope of 1, as throughout increases  multiplicative decrease decreases throughput proportionally R R equal bandwidth share Connection 1 throughput Connection 2 throughput congestion avoidance: additive increase loss: decrease window by factor of 2 congestion avoidance: additive increase loss: decrease window by factor of 2

Transport Layer 3-26 Fairness (more) Fairness and UDP  multimedia apps often do not use TCP  do not want rate throttled by congestion control  instead use UDP:  send audio/video at constant rate, tolerate packet loss Fairness, parallel TCP connections  application can open multiple parallel connections between two hosts  web browsers do this  e.g., link of rate R with 9 existing connections:  new app asks for 1 TCP, gets rate R/10  new app asks for 11 TCPs, gets R/2

Examine some source code  Linux 2.6 implementation of TCP congestion control:  ource/linux/net/ipv4/tcp_cong.c ource/linux/net/ipv4/tcp_cong.c  Look for  snd_cwnd  tcp_slow_start  tcp_cong_avoid_ai  tcp_reno_cong_avoid Transport Layer 3-27

Transport Layer 3-28 Chapter 3: summary  principles behind transport layer services:  multiplexing, demultiplexing  reliable data transfer  flow control  congestion control  instantiation, implementation in the Internet  UDP  TCP next:  leaving the network “edge” (application, transport layers)  into the network “core”