The Transport Layer: Reviejcardell/Courses/CSC249/slides/C9_249.pdfTransport Layer Summary qTCP and...

15
1 1 The Transport Layer: Review Smith College, CSC 249 February 22, 2018 2 TCP Congestion Control 1. How does a sender sense congestion? v 2. How does a sender determine its sending rate? v v 3. What algorithm is used to change the send-rate? v Many phases and alternatives...

Transcript of The Transport Layer: Reviejcardell/Courses/CSC249/slides/C9_249.pdfTransport Layer Summary qTCP and...

Page 1: The Transport Layer: Reviejcardell/Courses/CSC249/slides/C9_249.pdfTransport Layer Summary qTCP and UDP Services qEncapsulation (create and attach header) qMultiplexing and demultiplexing

1

1

The Transport Layer: Review

Smith College, CSC 249February 22, 2018

2

TCP Congestion Control1. How does a sender sense congestion?

v Loss event – timeout vs. 3 duplicate ACKs2. How does a sender determine its

sending rate?v The dynamic variable “CWND” (congestion window)v Variable ssthresh to determine how to grow cwnd

3. What algorithm is used to change the send-rate? v Many phases and alternatives...

Page 2: The Transport Layer: Reviejcardell/Courses/CSC249/slides/C9_249.pdfTransport Layer Summary qTCP and UDP Services qEncapsulation (create and attach header) qMultiplexing and demultiplexing

2

3

5

Reaction to Loss Eventsq Exponential increase switches to linear increase

when CongWin gets to the ‘threshold’ value (size)

Page 3: The Transport Layer: Reviejcardell/Courses/CSC249/slides/C9_249.pdfTransport Layer Summary qTCP and UDP Services qEncapsulation (create and attach header) qMultiplexing and demultiplexing

3

6

Identify everything on this graph

7

TCP Congestion Control AlgorithmIncrease Sending Rate Phase Options:1. When CongWin is below Threshold, sender in

slow-start phase, window grows exponentially.2. When CongWin is above Threshold, sender is in

congestion-avoidance phase, window grows linearly.

Decrease Sending Rate Phase Options:1. When a triple duplicate ACK occurs, Threshold

set to CongWin/2 and CongWin set to Threshold.

2. When timeout occurs, Threshold set to CongWin/2 and CongWin is set to 1 MSS.

Page 4: The Transport Layer: Reviejcardell/Courses/CSC249/slides/C9_249.pdfTransport Layer Summary qTCP and UDP Services qEncapsulation (create and attach header) qMultiplexing and demultiplexing

4

8

TCP Congestion Control AlgorithmThree major phases / mechanisms:1) Slow start – at 1 max segment size

• But increase _________2) Congestion Avoidance phase

• AIMD = additive incr, multiplicative decr• Using cwnd and ssthresh

3) Fast Recovery• Increase of cwnd each round trip time• Slow start: ________• Congestion avoidance: ________

9

Summary TCP reaction to loss

§ Loss indicated by timeout• cwnd set to 1 MSS• ssthresh set to cwnd/2• Window (cwnd ) grows exponentially (slow start)

to the threshold, then grows linearly

§ Loss indicated by 3 duplicate ACKs• Network capable of delivering some segments, so...• cwnd is cut in half (=ssthresh)

• Window grows linearly

Page 5: The Transport Layer: Reviejcardell/Courses/CSC249/slides/C9_249.pdfTransport Layer Summary qTCP and UDP Services qEncapsulation (create and attach header) qMultiplexing and demultiplexing

5

10

Transport Layer ReviewqThe transport layer services are:

v

v

v

v

v

v

v

v

11

Transport Layer ReviewqThe transport layer does not provide:

v

v

v

v

v

v

v

v

Page 6: The Transport Layer: Reviejcardell/Courses/CSC249/slides/C9_249.pdfTransport Layer Summary qTCP and UDP Services qEncapsulation (create and attach header) qMultiplexing and demultiplexing

6

12

Transport Layer ReviewqCompare TCP and UDP (pros and cons?)

v

v

v

v

v

v

v

v

14

Transport Layer ReviewqTCP Connection Management includes

v

v

v

v

v

v

v

v

Page 7: The Transport Layer: Reviejcardell/Courses/CSC249/slides/C9_249.pdfTransport Layer Summary qTCP and UDP Services qEncapsulation (create and attach header) qMultiplexing and demultiplexing

7

15

Transport Layer ReviewqElements of TCP reliability:

v

v

v

v

v

v

v

v

16

Transport Layer ReviewqElements of congestion control algorithm

v

v

v

v

v

v

v

v

Page 8: The Transport Layer: Reviejcardell/Courses/CSC249/slides/C9_249.pdfTransport Layer Summary qTCP and UDP Services qEncapsulation (create and attach header) qMultiplexing and demultiplexing

8

TCP Flow Control

source port # dest port #

32 bits

applicationdata (variable length)

sequence numberacknowledgement number

receive windowUrg data pointerchecksum

FSRPAUheadlen

notused

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)

# of bytes rcvr willingto accept

countingby bytes of data(not segments)

Internetchecksum

(as in UDP)

17

18

TCP flow control (quick & easy)q Receiver “advertises” freebufferspacebyincludingrwnd valueinTCPheaderofreceiver-to-sendersegmentsv RcvBuffer sizesetviasocketoptions(typicaldefaultis4096bytes)

v Manyoperatingsystemsauto-adjustRcvBufferq Sender limitsamountofun-ACKed (“in-flight”)datatoreceiver’srwnd valuev Guaranteesreceivebufferwillnotoverflow

Page 9: The Transport Layer: Reviejcardell/Courses/CSC249/slides/C9_249.pdfTransport Layer Summary qTCP and UDP Services qEncapsulation (create and attach header) qMultiplexing and demultiplexing

9

19

TCP flow controlapplicationprocess

TCP socketreceiver buffers

TCPcode

IPcode

applicationOS

receiver protocol stack

The application may remove data from the TCP socket buffers ….

… slower than the TCP receiver is delivering it into the buffers

(sender is sending)

from sender

receiver controls sender, so sender won’t overflow receiver’s buffer by transmitting too much, too fast

flow control to the rescue!

20

Transport Layer ReviewqOther questions?

v

v

v

v

v

v

v

v

Page 10: The Transport Layer: Reviejcardell/Courses/CSC249/slides/C9_249.pdfTransport Layer Summary qTCP and UDP Services qEncapsulation (create and attach header) qMultiplexing and demultiplexing

10

A fun tangent... Finite State Machines

21

Finite State Machines

22

Page 11: The Transport Layer: Reviejcardell/Courses/CSC249/slides/C9_249.pdfTransport Layer Summary qTCP and UDP Services qEncapsulation (create and attach header) qMultiplexing and demultiplexing

11

23

TCP sender events:(1) data received from application:

1. Create a segment and assign a SEQ numberv SEQ # is byte-stream number of first data byte in segment

2. Start timer if it is not already runningv Timer is for the oldest un-acked segmentv Expiration interval: TimeOutInterval

(2) timeout:1. Retransmit segment that caused the timeout2. Restart the timer

(3) ACK received:q For previously unacked segments

1. update what is known to be acked2. start timer if there are outstanding segments

24

TCP Congestion Control

Page 12: The Transport Layer: Reviejcardell/Courses/CSC249/slides/C9_249.pdfTransport Layer Summary qTCP and UDP Services qEncapsulation (create and attach header) qMultiplexing and demultiplexing

12

3-25

TCP Congestion Control: FSM

slow start

congestionavoidance

fastrecovery

loss:timeout

loss:timeout

new ACK

loss:3dupACK

loss:3dupACK

loss:timeout

cwnd > ssthresh

Transport Layer Summaryq TCP and UDP Servicesq Encapsulation (create and attach header)q Multiplexing and demultiplexingq Checksumq Connection managementq Reliable transport serviceq Congestion controlq Detect loss and retransmit

v Detect out-of-order and reorderq Flow Control

26

Page 13: The Transport Layer: Reviejcardell/Courses/CSC249/slides/C9_249.pdfTransport Layer Summary qTCP and UDP Services qEncapsulation (create and attach header) qMultiplexing and demultiplexing

13

27

Transport services and protocols

q Provide logical communication, a virtual connection

…between application processes running on different hosts

This is not a physical path including routers

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

Introduction to the Network LayerqDesired network layer services...

ØActual network layer servicesqImplemented in hosts and routersqTwo main network layer functionsqThree main network layer protocols

28

Page 14: The Transport Layer: Reviejcardell/Courses/CSC249/slides/C9_249.pdfTransport Layer Summary qTCP and UDP Services qEncapsulation (create and attach header) qMultiplexing and demultiplexing

14

32

Network Layer Services of IP?q Guaranteed delivery?q Guaranteed minimum delay?q In-order datagram delivery?q Guaranteed minimum bandwidth to

flow?q Restrictions on changes in inter-

packet spacing?

q IP Provides? à “Best-effort service”

33

Key Network-Layer Functions1. routing: determine route taken by

packets from source to destinationvNetwork-wide routing algorithms

2. forwarding: move packets from router’s input link to appropriate output linkvInternal to a single router

Page 15: The Transport Layer: Reviejcardell/Courses/CSC249/slides/C9_249.pdfTransport Layer Summary qTCP and UDP Services qEncapsulation (create and attach header) qMultiplexing and demultiplexing

15

34

1

23

0111

Destination addressvalue in arrivingpacket’s header

routing algorithm

local forwarding tableheader value output link

0100010101111001

3221

Network Layer: Routing and Forwarding

Ø Create versus use the forwarding table

Network Layer, Chapter 4q Router ‘switching fabric’

v Hardware / electrical pathways within a routerq Forwarding – use the forwarding table to

transmit, or forward, each packet to the correct output link, based on the destination IP address

q Routing – Create the forwarding tablesv Decentralized vs. Centralized algorithmsv Within an ISP vs. between ISPs

q Softward Defined Networks, SDN

35