transport layer 3-1 transport layer r to learn about transport layer protocols in the internet: m...

25
Transport Layer 3-1 Transport Layer To learn about transport layer protocols in the Internet: TCP: connection-oriented protocol Reliability protocol UDP: connectionless protocol

Post on 20-Dec-2015

227 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 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 3-1

Transport Layer

To learn about transport layer protocols in the Internet: TCP: connection-oriented protocol Reliability protocol UDP: connectionless protocol

Page 2: 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 3-2

Transport services and protocols provide logical

communication between app processes running on different hosts

transport protocols run in end systems send side: breaks app

messages into segments, passes to network layer

rcv side: reassembles segments into messages, passes to app layer

more than one transport protocol available to apps Internet: TCP and UDP

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

logical end-end transport

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

Internet transport-layer protocols

TCP: reliable, in-order delivery connection oriented

UDP: Unreliable delivery Not connection

oriented

application

transportnetworkdata linkphysical network

data linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

application

transportnetworkdata linkphysical

logical end-end transport

Page 4: 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 3-4

TCP: Overview

full duplex data: bi-directional data flow

in same connection

point-to-point: one sender, one

receiver

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

connection-oriented: handshaking (exchange of control msgs) init’s sender,

receiver state before data exchange

Maintains reliability BUT HOW?

Page 5: 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 3-5

What is reliability?

Sender sends one packet, then waits for receiver response

stop and wait

Sender needs to know whether receiver has received the packets

Simplest implementation:

Page 6: 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 3-6

Stop & Wait protocol

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

World is not ideal

Practical scenario: underlying channel can lose packets (data or ACKs) because of many reasons What if data packet

gets lost? What if Ack packet

gets lost?

Page 8: 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 3-8

World is not ideal

Practical scenario: underlying channel can lose packets (data or ACKs) because of many reasons What if data packet

gets lost? What if Ack packet

gets lost?

Approach: sender waits “reasonable” amount of time for ACK

retransmits if no ACK received in this time

Page 9: 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 3-9

Stop & wait protocol with loss

Page 10: 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 3-10

New constraint: Stop & wait protocol with delay

Practical scenario: What if Ack packet

just delayed (not lost)

Approach: sender waits “reasonable” amount of time for ACK

retransmits if no ACK received in this time

if pkt (or ACK) just delayed (not lost): retransmission will be

duplicate

Sender, receiver need to specify seq # of pkt being handled

Page 11: 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 3-11

Stop & wait protocol with delay

Page 12: 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 3-12

Performance of stop-and-wait

first packet bit transmitted, t = 0

sender receiver

RTT

last packet bit transmitted, t = L / R

first packet bit arriveslast packet bit arrives, send ACK

ACK arrives, send next packet, t = RTT + L / R

U sender

= .008

30+.008 = 0.00027

microseconds

L / R

RTT + L / R =

Packet size = 8 KbTransmission rate = 1 Mbps

= 30 sec.

Page 13: 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 3-13

Pipelined protocols

Pipelining: sender allows multiple, “in-flight”, yet-to-be-acknowledged pkts range of sequence numbers must be increased buffering at sender and/or receiver

Page 14: 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 3-14

Pipelining: increased utilization

first packet bit transmitted, t = 0

sender receiver

RTT

last bit transmitted, t = L / R

first packet bit arriveslast packet bit arrives, send ACK

ACK arrives, send next packet, t = RTT + L / R

last bit of 2nd packet arrives, send ACKlast bit of 3rd packet arrives, send ACK

U sender

= .024

30.008 = 0.0008

microseconds

3 * L / R

RTT + L / R =

Increase utilizationby a factor of 3!

Two generic forms of pipelined protocols: go-Back-N, selective repeat

Page 15: 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 3-15

Pipelining Protocols

Go-back-N: overview sender: up to N unACKed pkts in pipeline

receiver: only sends cumulative ACKs doesn’t ACK pkt if there’s a gap

sender: has timer for oldest unACKed pkt if timer expires: retransmit all unACKed packets

Page 16: 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 3-16

GBN inaction

Page 17: 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 3-17

Selective Repeat

receiver individually acknowledges all correctly received pkts buffers pkts, as needed, for eventual in-order

delivery to upper layer

sender only resends pkts for which ACK not received sender timer for each unACKed pkt

sender window N consecutive seq #’s again limits seq #s of sent, unACKed pkts

Page 18: 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 3-18

Selective repeat in action

Page 19: 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 3-19

TCP segment structure

source port # dest port #

32 bits

applicationdata

(variable length)

sequence number

acknowledgement numberReceive window

Urg 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)

# bytes rcvr willingto accept

countingby bytes of data(not segments!)

Internetchecksum

(as in UDP)

Page 20: 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 3-20

TCP Round Trip Time and TimeoutQ: 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

Page 21: 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 3-21

TCP Round Trip Time and TimeoutEstimatedRTT = (1- )*EstimatedRTT + *SampleRTT

Exponential weighted moving average influence of past sample decreases exponentially

fast typical value: = 0.125

Page 22: 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 3-22

TCP Round Trip Time and Timeout Let’s solve this numerical example:

Suppose, initially: estimatedRTT is predicted = 10 msAt first actual transmission, measured SampleRTT = 8msAt second actual transmission, measured SampleRTT =

10ms

What is the estimatedRTT just before third transmission?Assume = 0.25

Page 23: 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 3-23

TCP Round Trip Time and TimeoutSetting the timeout EstimtedRTT plus “safety margin”

large variation in EstimatedRTT -> larger safety margin first estimate of how much SampleRTT deviates from EstimatedRTT:

TimeoutInterval = EstimatedRTT + 4*DevRTT

DevRTT = (1-)*DevRTT + *|SampleRTT-EstimatedRTT|

(typically, = 0.25)

Then set timeout interval:

Page 24: 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 3-24

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 for that segment

If sender receives 3 ACKs for same data, it assumes that segment after ACKed data was lost: fast retransmit: resend

segment before timer expires

Page 25: 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 3-25

Host A

tim

eout

Host B

time

X

resend seq X2

seq # x1seq # x2seq # x3seq # x4seq # x5

ACK x1

ACK x1ACK x1ACK x1

tripleduplicate

ACKs