Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m...
-
date post
20-Dec-2015 -
Category
Documents
-
view
227 -
download
2
Transcript of Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m...
Transport Layer 3-1
Transport Layer
To learn about transport layer protocols in the Internet: TCP: connection-oriented protocol Reliability protocol UDP: connectionless 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
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
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?
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:
Transport Layer 3-6
Stop & Wait 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?
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
Transport Layer 3-9
Stop & wait protocol with loss
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
Transport Layer 3-11
Stop & wait protocol with delay
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.
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
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
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
Transport Layer 3-16
GBN inaction
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
Transport Layer 3-18
Selective repeat in action
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)
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
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
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
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:
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
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