CSCI 3335: C OMPUTER N ETWORKS C HAPTER 3 T RANSPORT L AYER Vamsi Paruchuri University of Central Arkansas Some.

Slides:



Advertisements
Similar presentations
Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
Advertisements

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.
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.
EEC-484/584 Computer Networks Lecture 8 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Data Communications and Computer Networks Chapter 3 CS 3830 Lecture 16 Omar Meqdadi Department of Computer Science and Software Engineering 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.
1 Transport Layer Lecture 9 Imran Ahmed University of Management & Technology.
Chapter 3 Transport Layer slides are modified from J. Kurose & K. Ross CPE 400 / 600 Computer Communication Networks Lecture 11.
Transport Layer3-1 Summary of Reliable Data Transfer Checksums help us detect errors ACKs and NAKs help us deal with errors If ACK/NAK has errors sender.
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.
Transport Layer1 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r reliable, in-order byte steam: m no “message boundaries” r pipelined: m TCP congestion.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley,
CSCI 3335: Computer Networks Chapter 3 Transport Layer
Chapter 3 outline 3.1 transport-layer services
EEC-484/584 Computer Networks Lecture 15 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
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.
10/7/ /9/2003 TCP and Congestion Control October 7-9, 2003.
Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m TCP: connection-oriented protocol m Reliability protocol.
Transport Layer Transport Layer: TCP. Transport Layer 3-2 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional.
Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m TCP: connection-oriented protocol m Reliability protocol.
1 Announcement r Project 2 out m Much harder than project 1, start early! r Homework 2 due next Tuesday.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley,
Previous Lecture r Reliable transfer protocols m Pipelined protocols Go-back N Selective repeat 1.
Announcement Project 2 out –Much harder than project 1, start early! Homework 2 due next Tu.
Chapter 3 Transport Layer
The Future r Let’s look at the homework r The next test is coming the 19 th (just before turkey day!) r Monday will finish TCP canned slides r Wednesday.
EEC-484/584 Computer Networks Lecture 8 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
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.
Transport Layer3-1 Data Communication and Networks Lecture 7 Transport Protocols: TCP October 21, 2004.
EEC-484/584 Computer Networks Lecture 14 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Announcement Homework 1 graded Homework 2 out –Due in a week, 1/30 Project 2 problems –Minet can only compile w/ old version of gcc (2.96). –Only tlab-login.
EEC-484/584 Computer Networks Lecture 16 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
EEC-484/584 Computer Networks Lecture 13 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Transport Layer 3-1 Chapter 3 Outline r 3.5 Connection-oriented transport: TCP m segment structure m reliable data transfer m flow control m connection.
Transport Layer 3-1 Chapter 3b outline 3.1 connection-oriented transport: TCP  segment structure  reliable data transfer  flow control  connection.
Transport Layer3-1 TCP sender (simplified) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) { switch(event) event: data received from.
Network LayerII-1 RSC Part III: Transport Layer 3. TCP Redes y Servicios de Comunicaciones Universidad Carlos III de Madrid These slides are, mainly, part.
Transport Layer1 Reliable Transfer Ram Dantu (compiled from various text books)
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.
2: Transport Layer 21 Transport Layer 2. 2: Transport Layer 22 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data.
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.
Transport Layer3-1 Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable.
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.
1 Transport Layer Lecture 10 Imran Ahmed University of Management & Technology.
Transport Layer3-1 Transport Layer Our lives begin to end, the day we become silent about things that matter.
September 26 th, 2013 CS1652 The slides are adapted from the publisher’s material All material copyright J.F Kurose and K.W. Ross, All Rights.
7: TCP Last Modified: 4/26/2017 1:52:15 PM 3: Transport Layer.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
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.
EEC-484/584 Computer Networks Lecture 8 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
IT 424 Networks2 IT 424 Networks2 Ack.: Slides are adapted from the slides of the book: “Computer Networking” – J. Kurose, K. Ross Chapter 3: Transport.
Transport Layer3-1 Transport Layer If you are going through Hell Keep going.
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.
Transport Layer session 1 TELE3118: Network Technologies Week 11: Transport Layer TCP Some slides have been taken from: r Computer Networking:
CSEN 404 Transport Layer II Amr El Mougy Lamia AlBadrawy.
DMET 602: Networks and Media Lab Amr El Mougy Yasmeen EssamAlaa Tarek.
@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.
09-Transport Layer: TCP Transport Layer.
Chapter 3 outline 3.1 Transport-layer services
DMET 602: Networks and Media Lab
CS 1652 Jack Lange University of Pittsburgh
TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 full duplex data:
Introduction to Networks
CS1652 TCP Jack Lange University of Pittsburgh
Review: UDP demultiplexing TCP demultiplexing Multiplexing?
Chapter 3 outline 3.1 Transport-layer services
Chapter 3 Transport Layer
Presentation transcript:

CSCI 3335: C OMPUTER N ETWORKS C HAPTER 3 T RANSPORT L AYER Vamsi Paruchuri University of Central Arkansas Some of the material is adapted from J.F Kurose and K.W. Ross

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 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581  full duplex data:  bi-directional data flow in same connection  MSS: maximum segment size  connection-oriented:  handshaking (exchange of control msgs) inits sender, receiver state before data exchange  flow controlled:  sender will not overwhelm receiver  point-to-point:  one sender, one receiver  reliable, in-order byte steam:  no “message boundaries”  pipelined:  TCP congestion and flow control set window size  send & receive buffers

Transport Layer 3-4 TCP segment structure source port # dest port # 32 bits application data (variable length) sequence number acknowledgement number Receive window Urg data pnter checksum F SR PAU head len not used Options (variable length) URG: urgent data (generally not used) ACK: ACK # valid PSH: push data now (generally not used) RST, SYN, FIN: connection estab (setup, teardown commands) # bytes rcvr willing to accept counting by bytes of data (not segments!) Internet checksum (as in UDP)

Transport Layer 3-5 TCP segment structure - Quiz source port # dest port # 32 bits application data (variable length) sequence number acknowledgement number Receive window Urg data pnter checksum F SR PAU head len not used Options (variable length)  What is the significance of each field  What is TCP Header size  What is max Receiver Window Size? Is it large enough?  Which field should be larger “Seq#” or “Receive window”? Why?  What is the maximum # options?  Which flags are set in first message in connection set up? Second message? Third message?  Why are initial Seq # set randomly? Flags: SYN, FIN, RESET, PUSH, URG, ACK

TCP Header: Flags (6 bits)  Connection establishment/termination  SYN – establish; sequence number field contains valid initial sequence number  FIN - terminate  RESET - abort connection because one side received something unexpected  PUSH - sender invoked push to send  URG – indicated urgent pointer field is valid; special data - record boundary  ACK - indicates Acknowledgement field is valid 3: Transport Layer 3b-6

TCP Header: ACK flag  ACK flag – if on then acknowledgement field valid  Once connection established no reason to turn off  Acknowledgment field is always in header so acknowledgements are free to send along with data 3: Transport Layer 3b-7

TCP Header: PUSH  Intention: use to indicate not to leave the data in a TCP buffer waiting for more data before it is sent  Receiver is supposed to interpret as deliver to application immediately; most TCP/IP implementations don’t delay delivery in the first place though 3: Transport Layer 3b-8

TCP Header: Header Length  Header Length (4 bits)  needed because options field make header variable length  Expressed in number of 32 bit words = 4 bytes  4 bits field => 4 bytes*2 4 = 60 bytes; 20 bytes of required header gives 40 bytes possible of options  Recall UDP header was 8 bytes 3: Transport Layer 3b-9 source port # dest port # 32 bits application data (variable length) sequence number acknowledgement number Receive window Urg data pnter checksum F SR PAU head len not used Options (variable length)

Implications of Field Length  32 bits for sequence number (and acknowledgement); 16 bits for advertised window size  Implication for maximum window size? Window size <= ½ SequenceNumberSpace  Requirement easily satisfied because receiver advertised window field is 16 bits 2 32 >> 2* 2 16 Even if increase possible advertised window to 2 31 that would still be ok 3: Transport Layer 3b-10

Implications of Field Length (cont)  Advertised Window is 16 bit field => maximum window is 64 KB  Is this enough to fill the pipeline? Not always  Pipeline = delay*BW product  100 ms roundtrip and 100 Mbps => 1.19 MB 3: Transport Layer 3b-11

TCP Header: Common Options  Options used to extend and test TCP  Each option is:  1 byte of option kind  1 byte of option length  Examples  window scale factor: if don’t want to be limited to 2 16 bytes in receiver advertised window  timestamp option: if 32 bit sequence number space will wrap in MSL; add 32 bit timestamp to distinguish between two segments with the same sequence number  Maximum Segment Size can be set in SYN packets 3: Transport Layer 3b-12

TCP Connection Management Recall: TCP sender, receiver establish “connection” before exchanging data segments  initialize TCP variables:  seq. #s  buffers, flow control info (e.g. RcvWindow )  client: connection initiator Socket clientSocket = new Socket("hostname","port number");  server: contacted by client Socket connectionSocket = welcomeSocket.accept(); Three way handshake: Step 1: client end system sends TCP SYN control segment to server  specifies initial seq # Step 2: server end system receives SYN, replies with SYNACK control segment  ACKs received SYN  allocates buffers  specifies server-> receiver initial seq. # Step 3: client acknowledges servers initial seq. # 3: Transport Layer 3b-13

Three-Way Handshake 3: Transport Layer3b-14 Active participant (client) Passive participant (server) SYN, SequenceNum = x SYN + ACK, SequenceNum = y, ACK, Acknowledgment = y + 1 Acknowledgment = x + 1 SequenceNum = x+1

Connection Establishment  Both data channels opened at once  Three-way handshake used to agree on a set of parameters for this communication channel  Initial sequence number for both sides (random)  Receiver advertised window size for both sides  Optionally, Maximum Segment Size (MSS) for each side; if not specified MSS of 536 bytes is assumed to fit into 576 byte datagram 3: Transport Layer 3b-15

Initial Sequence Numbers  Chosen at random in the sequence number space?  Well not really randomly; intention of RFC is for initial sequence numbers to change over time  32 bit counter incrementing every 4 microseconds  Vary initial sequence number to avoid packets that are delayed in network from being delivered later and interpreted as a part of a newly established connection (to avoid reincarnations) 3: Transport Layer 3b-16

Transport Layer 3-17 TCP seq. #’s and ACKs Seq. #’s:  byte stream “number” of first byte in segment’s data ACKs:  seq # of next byte expected from other side  cumulative ACK Q: how receiver handles out-of-order segments  A: TCP spec doesn’t say, - up to implementor Host A Host B Seq=42, ACK=79, data = ‘C’ Seq=79, ACK=43, data = ‘C’ Seq=43, ACK=80 User types ‘C’ host ACKs receipt of echoed ‘C’ host ACKs receipt of ‘C’, echoes back ‘C’ time simple telnet scenario

Connection Termination  Each side of the bi-directional connection may be closed independently  4 messages: FIN message and ACK of that FIN in each direction  Each side closes the data channel it can send on  One side can be closed and data can continue to flow in the other direction, but not usually  FINs consume sequence numbers like SYNs 3: Transport Layer 3b-18

TCP Connection Management (cont.) Closing a connection: client closes socket: clientSocket.close(); Step 1: client end system sends TCP FIN control segment to server Step 2: server receives FIN, replies with ACK. Closes connection, sends FIN. 3: Transport Layer 3b-19 client FIN server ACK FIN close closed timed wait

Transport Layer 3-20 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-21 TCP reliable data transfer  TCP creates rdt service on top of IP’s unreliable service  pipelined segments  cumulative acks  TCP uses single retransmission timer  retransmissions are triggered by:  timeout events  duplicate acks  initially consider simplified TCP sender:  ignore duplicate acks  ignore flow control, congestion control

Transport Layer 3-22 TCP sender events: data rcvd from app:  Create segment with seq #  seq # is byte-stream number of first data byte in segment  start timer if not already running (think of timer as for oldest unacked segment)  expiration interval: TimeOutInterval timeout:  retransmit segment that caused timeout  restart timer Ack rcvd:  If acknowledges previously unacked segments  update what is known to be acked  start timer if there are outstanding segments

TCP: retransmission scenarios Host A Seq=100, 20 bytes data ACK=100 time premature timeout Host B Seq=92, 8 bytes data ACK=120 Seq=92, 8 bytes data Seq=92 timeout ACK=120 Host A Seq=92, 8 bytes data ACK=100 loss timeout lost ACK scenario Host B X Seq=92, 8 bytes data ACK=100 time Seq=92 timeout SendBase = 100 SendBase = 120 SendBase = 120 SendBase = 100

Transport Layer 3-24 TCP retransmission scenarios (more) Host A Seq=92, 8 bytes data ACK=100 loss timeout Cumulative ACK scenario Host B X Seq=100, 20 bytes data ACK=120 time SendBase = 120

Transport Layer 3-25 TCP Round Trip Time and Timeout Q: how to set TCP timeout value?  longer than RTT  but RTT varies  too short: premature timeout  unnecessary retransmissions  too long: slow reaction to segment loss Q: how to estimate RTT?  SampleRTT : measured time from segment transmission until ACK receipt  ignore retransmissions  SampleRTT will vary, want estimated RTT “smoother”  average several recent measurements, not just current SampleRTT

Transport Layer 3-26 TCP Round Trip Time and Timeout EstimatedRTT = (1-  )*EstimatedRTT +  *SampleRTT  Exponential weighted moving average  influence of past sample decreases exponentially fast  typical value:  = 0.125

Transport Layer 3-27 Example RTT estimation:

Transport Layer 3-28 Fast Retransmit  time-out period often relatively long:  long delay before resending lost packet  detect lost segments via duplicate ACKs.  sender often sends many segments back-to- back  if segment is lost, there will likely be many duplicate ACKs.  if sender receives 3 ACKs for the same data, it supposes that segment after ACKed data was lost:  fast retransmit: resend segment before timer expires

Transport Layer 3-29 Host A timeout Host B time X resend 2 nd segment: Seq=100, 20 bytes data Figure 3.37 Resending a segment after triple duplicate ACK Seq=92, 8 bytes data ACK=100 Seq=100, 20 bytes data ACK=100 Seq=120, 20 bytes data Seq=140, 20 bytes data Seq=160, 20 bytes data ACK=180

Transport Layer 3-30 TCP Quiz -2  What are “Cumulative Acks”?  What is advantage of having short time outs?  What is advantage of having long time outs?  Describe the method(s) TCP uses to detect packet losses.  What is Fast Retransmit?

Transport Layer 3-31 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-32 TCP Flow Control  receive side of TCP connection has a receive buffer:  speed-matching service: matching the send rate to the receiving app’s drain rate  app process may be slow at reading from buffer sender won’t overflow receiver’s buffer by transmitting too much, too fast flow control

Quiz  Why does TCP use time outs?  How does timeout impact the performance of TCP?  What are pros and cons for short (long) timeouts?  How is RTT estimated by TCP?  What is need for "flow control" in TCP?  Describe "flow control" mechanism.  What is the primary cause of congestion?  Mention 3 costs of congestion.  What is difference between flow and congestion control. Transport Layer 3-33

Transport Layer 3-34 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-35 Principles of Congestion Control 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!

Transport Layer 3-36 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 sender should send at Two broad approaches towards congestion control:

Transport Layer 3-37 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-38 TCP congestion control: additive increase, multiplicative decrease  approach: increase 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 time cwnd : congestion window size saw tooth behavior: probing for bandwidth

Transport Layer 3-39 TCP Congestion Control: details  sender limits transmission: LastByteSent-LastByteAcked  cwnd  roughly,  cwnd is dynamic, function of perceived network congestion How does sender perceive congestion?  loss event = timeout or 3 duplicate acks  TCP sender reduces rate ( cwnd ) after loss event three mechanisms:  AIMD  slow start  conservative after timeout events rate = cwnd RTT Bytes/sec

Transport Layer 3-40 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-41 Refinement: inferring loss  after 3 dup ACKs:  cwnd is cut in half  window then grows linearly  but after timeout event:  cwnd instead set to 1 MSS;  window then grows exponentially  to a threshold, then grows linearly  3 dup ACKs indicates network capable of delivering some segments  timeout indicates a “more alarming” congestion scenario Philosophy:

Transport Layer 3-42 Refinement 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 Can you identify different phases?

Connection Timeline 3: Transport Layer3b-43

Transport Layer 3-44 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-45 Chapter 3: Summary  principles behind transport layer services:  multiplexing, demultiplexing  reliable data transfer  flow control  congestion control  instantiation and implementation in the Internet  UDP  TCP Next:  leaving the network “edge” (application, transport layers)  into the network “core”

Netstat  netstat –a –n  Shows open connections in various states  Example: Active Connections ProtoLocalAddrForeignAddr State TCP : :0 LISTENING TCP : :80CLOSE_WAIT TCP : :22ESTABLISHED UDP :1070*:*

Quiz  What are three primary mechanisms of TCP Congestion Control  What are the two TCP loss events  How many packets are transmitted in the first 4 RTT durations after a TCP connection is established. Transport Layer 3-47

Quiz (cont) Transport Layer 3-48