Chapter 3 Transport Layer

Chapter 3 Transport Layer A note on the use of these ppt slides: We’re making these slides freely available to all (faculty, students, readers). They...
Author: Julianna Austin
5 downloads 1 Views 1MB Size
Chapter 3 Transport Layer

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 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) in substantially unaltered form, that you mention their source (after all, we’d like people to use our book!)   If you post any slides in substantially unaltered form 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.

Computer Networking: A Top Down Approach 5th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.

Thanks and enjoy! JFK/KWR All material copyright 1996-2010 J.F Kurose and K.W. Ross, All Rights Reserved 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 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-2

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-3

Causes/costs of congestion: scenario 1      

two senders, two receivers one router, infinite buffers no retransmission

Host A

Host B

λout

λin : original data

unlimited shared output link buffers

   

large delays when congested maximum achievable throughput Transport Layer

3-4

Causes/costs of congestion: scenario 2    

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 λin : original data λ'in: original data, plus

λout

retransmitted data

Host B Host A

finite shared output link buffers Transport Layer

3-5

Congestion scenario 2a: ideal case sender sends only when router buffers available

λout

 

R/2

λin

λin : original data λ'in: original data, plus

copy

R/2

λout

retransmitted data

Host B Host A

free buffer space!

finite shared output link buffers Transport Layer

3-6

Congestion scenario 2b: known loss  

packets may get dropped at router due to full buffers   sometimes lost

 

sender only resends if packet known to be lost (admittedly idealized) λin : original data λ'in: original data, plus

copy

λout

retransmitted data

Host B Host A

no buffer space!

Transport Layer

3-7

Congestion scenario 2b: known loss packets may get dropped at router due to full buffers   sometimes not lost  

sender only resends if packet known to be lost (admittedly idealized)

R/2

when sending at R/ 2, some packets are retransmissions but asymptotic goodput is still R/2 (why?)

λout

 

λin

λin : original data λ'in: original data, plus

R/2

λout

retransmitted data

Host B Host A

free buffer space!

Transport Layer

3-8

Congestion scenario 2c: duplicates

 

packets may get dropped at router due to full buffers sender times out prematurely, sending two copies, both of which are delivered

R/2

λin

λin λ'in

timeout copy

when sending at R/ 2, some packets are retransmissions including duplicated that are delivered!

λout

 

R/2

λout

Host B Host A

free buffer space!

Transport Layer

3-9

Congestion scenario 2c: duplicates

 

packets may get dropped at router due to full buffers sender times out prematurely, sending two copies, both of which are delivered

R/2

when sending at R/ 2, some packets are retransmissions including duplicated that are delivered!

λout

 

λin

R/2

“costs” of congestion:    

more work (retrans) for given “goodput” unneeded retransmissions: link carries multiple copies of pkt   decreasing goodput

Transport Layer

3-10

Causes/costs of congestion: scenario 3      

four senders multihop paths timeout/retransmit

Q: what happens as λ

in and λ

increase ? in

Host A

λin : original data

λout

λ'in : original data, plus retransmitted data

finite shared output link buffers

Host B

Transport Layer

3-11

Causes/costs of congestion: scenario 3 H o st A

λ o u t

H o st B

another “cost” of congestion:   when packet dropped, any “upstream transmission capacity used for that packet was wasted! Transport Layer

3-12

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 sender should send at

Transport Layer

3-13

Case study: ATM ABR congestion control ABR: available bit rate:    

 

“elastic service” if sender’s path “underloaded”:   sender should use available bandwidth if sender’s path congested:   sender throttled to minimum guaranteed rate

RM (resource management) cells:    

 

sent by sender, interspersed with data cells bits in RM cell set by switches (“network-assisted”)   NI bit: no increase in rate (mild congestion)   CI bit: congestion indication RM cells returned to sender by receiver, with bits intact

Transport Layer

3-14

Case study: ATM ABR congestion control

 

two-byte ER (explicit rate) field in RM cell

  congested switch may lower ER value in cell   sender’ send rate thus maximum supportable rate on path

 

EFCI bit in data cells: set to 1 in congested switch

  if data cell preceding RM cell has EFCI set, sender sets CI bit in returned RM cell Transport Layer

3-15

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-16

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

saw tooth behavior: probing for bandwidth

cwnd: congestion window size

 

congestion window

24 Kbytes

16 Kbytes

8 Kbytes

time time Transport Layer

3-17

TCP Congestion Control: details  

sender limits transmission: LastByteSent-LastByteAcked ≤ cwnd

 

roughly, rate =

 

cwnd RTT

Bytes/sec

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

Transport Layer

3-18

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 RTT

 

Host B one segm ent

two segm ents

four segm

ents

time

Transport Layer

3-19

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

Philosophy:   3

dup ACKs indicates network capable of delivering some segments   timeout indicates a “more alarming” congestion scenario

Transport Layer

3-20

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

Transport Layer

3-21

Summary: TCP Congestion Control duplicate ACK dupACKcount++ Λ

cwnd = 1 MSS ssthresh = 64 KB dupACKcount = 0

slow start

timeout ssthresh = cwnd/2 cwnd = 1 MSS dupACKcount = 0 retransmit missing segment

dupACKcount == 3 ssthresh= cwnd/2 cwnd = ssthresh + 3 retransmit missing segment

New ACK! new ACK cwnd = cwnd+MSS dupACKcount = 0 transmit new segment(s), as allowed cwnd > ssthresh Λ

timeout ssthresh = cwnd/2 cwnd = 1 MSS dupACKcount = 0 retransmit missing segment

timeout ssthresh = cwnd/2 cwnd = 1 dupACKcount = 0 retransmit missing segment

New ACK!

.

new ACK cwnd = cwnd + MSS (MSS/cwnd) dupACKcount = 0 transmit new segment(s), as allowed

congestion avoidance duplicate ACK dupACKcount++

New ACK! New ACK cwnd = ssthresh dupACKcount = 0

fast recovery

dupACKcount == 3 ssthresh= cwnd/2 cwnd = ssthresh + 3 retransmit missing segment

duplicate ACK cwnd = cwnd + MSS transmit new segment(s), as allowed

Transport Layer

3-22

TCP throughput   what’s

the average throughout of TCP as a function of window size and RTT?   ignore slow start

  let

W be the window size when loss occurs.

  when window is W, throughput is W/RTT   just after loss, window drops to W/2, throughput to W/2RTT.   average throughout: .75 W/RTT

Transport Layer

3-23

TCP Futures: TCP over “long, fat pipes”      

example: 1500 byte segments, 100ms RTT, want 10 Gbps throughput requires window size W = 83,333 in-flight segments throughput in terms of loss rate:

1.22⋅ MSS RTT L    

➜ L = 2·10-10 Wow – a very small loss rate! new versions of TCP for high-speed

Transport Layer

3-24

TCP Fairness fairness goal: if K TCP sessions share same bottleneck link of bandwidth R, each should have average rate of R/K TCP connection 1

TCP connection 2

bottleneck router capacity R

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 equal bandwidth share

R Connection 2 throughput

 

loss: decrease window by factor of 2 congestion avoidance: additive increase loss: decrease window by factor of 2 congestion avoidance: additive increase

Connection 1 throughput R 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:

  pump audio/video at constant rate, tolerate packet loss

Fairness and parallel TCP connections   nothing prevents app from opening parallel connections between 2 hosts.   web browsers do this   example: link of rate R supporting 9 connections;

  new app asks for 1 TCP, gets rate R/10   new app asks for 11 TCPs, gets R/2 !

Transport Layer

3-27

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” Transport Layer

3-28