net-transport
Download
Report
Transcript net-transport
Network Layer Overview
ECE 256 Spring 2008
Romit Roy Choudhury
Dept. of ECE and CS
1
Communication through Layers and Nodes
Transport segment from sending to application
transport
receiving host
network
Segment encapsulated with
header at each layer
data link
physical
network
data link
physical
network
data link
physical
Datagram routed through
intermediate nodes (routers)
Segments do not reach higher
layers at intermediate nodes
Segment reaches destination and
passed to transport and application
layer
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
application
transport
network
data link
physical
2
Routing - Why Difficult ?
Several algorithmic problems:
Many many paths - which is the best?
Each path has changing characteristics
• Queuing time varies, losses happen, router down …
How do you broadcast (find where someone is)
How do you multicast (webTV, conference call)
How do routers perform routing at GBbps scale
Several management problems:
How do you detect/diagnose faults
How do you do pricing, accounting
3
Two types of Network Architecture
Connection-Oriented and Connection-Less
Virtual Circuit Switching
Datagram forwarding
Example:ATM, X.25
Analogy: Telephone
Example: IP networks
Analogy: Postal service
4
Interplay between routing and forwarding
routing algorithm
local forwarding table
header value output link
0100
0101
0111
1001
3
2
2
1
value in arriving
packet’s header
0111
1
3 2
5
Datagram Forwarding Table
Destination Address Range
4 billion
possible entries
Link Interface
11001000 00010111 00010000 00000000
through
11001000 00010111 00010111 11111111
0
11001000 00010111 00011000 00000000
through
11001000 00010111 00011000 11111111
1
11001000 00010111 00011001 00000000
through
11001000 00010111 00011111 11111111
2
otherwise
3
6
The Internet Network layer
Host, router network layer functions:
Transport layer: TCP, UDP
Network
layer
IP protocol
•addressing conventions
•datagram format
•packet handling conventions
Routing protocols
•path selection
•RIP, OSPF, BGP
forwarding
table
ICMP protocol
•error reporting
•router “signaling”
Link layer
physical layer
7
IP Addressing: introduction
IP address: 32-bit
identifier for host,
router interface
interface: connection
between host/router
and physical link
223.1.1.1
223.1.2.1
223.1.1.2
223.1.1.4
223.1.1.3
223.1.2.9
223.1.3.27
223.1.2.2
router’s typically have
223.1.3.2
223.1.3.1
multiple interfaces
host typically has one
interface
IP addresses associated
223.1.1.1 = 11011111 00000001 00000001 00000001
with each interface
223
1
1
1
8
Subnets
IP address:
subnet part (high order
bits)
host part (low order bits)
223.1.1.1
223.1.2.1
223.1.1.2
223.1.1.4
223.1.1.3
What’s a subnet ?
device interfaces with
same subnet part of IP
address
can physically reach
each other without
intervening router
223.1.2.9
223.1.3.27
223.1.2.2
subnet
223.1.3.1
223.1.3.2
network consisting of 3 subnets
9
Hierarchical addressing: route aggregation
Hierarchical addressing allows efficient advertisement of routing
information:
Organization 0
200.23.16.0/23
Organization 1
200.23.18.0/23
Organization 2
200.23.20.0/23
Organization 7
.
.
.
.
.
.
Fly-By-Night-ISP
“Send me anything
with addresses
beginning
200.23.16.0/20”
Internet
200.23.30.0/23
ISPs-R-Us
“Send me anything
with addresses
beginning
199.31.0.0/16”
10
Graph abstraction
5
2
u
2
1
Graph: G = (N,E)
v
x
3
w
3
1
5
1
y
z
2
N = set of routers = { u, v, w, x, y, z }
E = set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
Remark: Graph abstraction is useful in other network contexts
Example: P2P, where N is set of peers and E is set of TCP connections
11
Graph abstraction: costs
5
2
u
v
2
1
x
What factors influence this cost ?
3
w
3
1
5
1
y
Should costs be only on links ?
z
2
Cost of path (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)
Question: What’s the least-cost path between u and z ?
Routing algorithm: algorithm that finds least-cost path
12
Routing Algorithm classification
2 main classes:
Centralized
all routers have complete topology, link cost info
“link state” algorithms
Distributed:
Each router knows link costs to neighbor routers only
“distance vector” algorithms
13
A Link-State Routing Algorithm
Dijkstra’s algorithm
Link costs known to all nodes
computes least cost paths from one node (‘source”) to all
other nodes
gives forwarding table for that node
iterative: after k iterations, know least cost path to k
dest.’s
14
Dijkstra’s Algorithm
Notation:
c(x,y): link cost from node x to y;
= ∞ if not direct neighbors
D(v): current value of cost of path
1 Initialization:
from source to dest. v
2 N' = {u}
3 for all nodes v
5
4
if v adjacent to u
5
then D(v) = c(u,v)
3
v
w
6
else D(v) = ∞
5
2
u
7
z
2
1
3
8 Loop
1
2
x
y
9 find w not in N' s.t. D(w) is a minimum
1
10 add w to N'
11 update D(v) for all v adjacent to w and not in N' :
12
D(v) = min( D(v), D(w) + c(w,v) )
13 /* new cost to v is either old cost to v or known
14 shortest path cost to w plus cost from w to v */
15 until all nodes in N'
15
Dijkstra’s algorithm: example (2)
Resulting shortest-path tree from u:
v
w
u
z
x
y
Resulting forwarding table in u:
destination
link
v
x
(u,v)
(u,x)
y
(u,x)
w
(u,x)
z
(u,x)
16
Distributed: Distance Vector
To find D, node S asks each neighbor X
How far X is from D
X says C(X,D)
Node S deduces C(S,D) = C(S,X) + C(X,D)
S chooses neighbor Xi that provides min C(S,D)
Later, Xj may find better route to D
Xj advertizes C(Xj,D)
All nodes update their cost to D if new min found
17
Distance Vector Algorithm
Bellman-Ford Equation (dynamic programming)
Define
dx(y) := cost of least-cost path from x to y
v1
Then
x
y
v2
dx(y) = min
{c(x,v) + dv(y) }
v
where min is taken over all neighbors v of x
18
Bellman-Ford example
5
2
u
v
2
1
x
3
w
3
1
Clearly, dv(z) = 5, dx(z) = 3, dw(z) = 3
5
1
y
2
z
B-F equation says:
du(z) = min { c(u,v) + dv(z),
c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2 + 5,
1 + 3,
5 + 3} = 4
Node that achieves minimum is next
hop in shortest path ➜ forwarding table
19
Distance Vector: link cost changes
Link cost changes:
if DV changes, notify neighbors
1
x
4
y
50
1
z
At time t0, y detects the link-cost change, updates its DV,
and informs its neighbors.
At time t1, z receives the update from y and updates its table.
It computes a new least cost to x and sends its neighbors its DV.
At time t2, y receives z’s update and updates its distance table.
y’s least costs do not change and hence y does not send any
message to z.
When can it get complicated ?
20
Distance Vector: link cost changes
Link cost changes:
Y thinks Z’s best cost is 5
Thus C(y,x) = 5 + 1 = 6
Announces this cost
Z thinks C(z,x) = 6 + 1 …
60
x
4
y
50
1
z
Food
for thought
Poissoned
reverse: …
If Z routes through
to get converge ?
WillYthis
to X :
If Yso,
after
how
Z tells
its (Z’s)
distance
to many rounds ?
X is infinite (so Y won’t route
can this be solved?
to X via How
Z)
Should
will this completely
solve change from 4 to 60?
Y announce
count to infinity problem?
21
Routing in Internet
Similar to international FedEx routing
FedEx figures out best route within country
• Uses google maps say
• This is link state -- All info available
USA FedEx does not have international map,
also no permission to operate outside USA
Gets price quote from Germany FedEx, Japan FedEx
etc. to route to India
Chooses minimum price and handles package to say
Germany (Distance Vector)
Germany has country map (link state)
Germany asks for cost from Egypt, South Africa …
22
Internet Routing
Think of each country FedEx as ISPs
Routing on internet very similar to prior example
The link state and DV routing protocols used in
internet routing
RIP (routing information protocol)
OSPF (Open shortest path first)
BGP (Border gateway protocol)
They utilize the concepts of
Link state
Distance vector routing
23
How is this different in wireless?
24
Routing in wireless Mobile Networks
Imagine hundreds of hosts moving
Routing algorithm needs to cope up with varying
wireless channel and node mobility
Where’s
RED guy
25
Questions ?
26
Networking Primer - Transport Layer
ECE 256 Spring 2008
Romit Roy Choudhury
Dept. of ECE and CS
27
Recall 1: PHY and MAC
MAC
MAC
PHY
PHY
• Spread Spectrum radios (DS and FH)
•
•
•
•
•
RTS/CTS and Carrier Sensing for Hidden Terminals
Directional antennas to reduce interference
Rate control to extract max capacity from available SINR
Power control for spatial reuse & energy savings – topology control
TDMA scheduling, multi-channel use, encryption security
… and many more
28
Recall 2: Network Layer
Routing
Routing
Routing
Routing
Routing
• The first view of the network
• Coping up with (uncontrolled) user mobility
-Flooding the network reactively, or proactive updation
• Mobile IP, coping with handoffs, etc.
• Ad hoc routing – discovery, optimal metric, maintenance, caching
• Secure routing – Routes bypassing malicious nodes
29
We have a route, now what ?
TCP
TCP
NETWORK
Need to ensure that packets are actually going through
30
Why need additional layer for that?
Why not ensure that over MAC/Routing?
31
Some transmission methods
Stop & Wait
Pipelined
Go Back N
Selective Repeat
32
Stop-and-wait operation
sender
receiver
first packet bit transmitted, t = 0
last packet bit transmitted, t = L / R
first packet bit arrives
last packet bit arrives, send ACK
RTT
ACK arrives, send next
packet, t = RTT + L / R
U
=
sender
L/R
RTT + L / R
=
.008
30.008
= 0.00027
microsec
onds
33
Pipelined protocols
Pipelining: sender allows multiple, “in-flight”, yet-to-beacknowledged pkts
range of sequence numbers must be increased
buffering at sender and/or receiver
Two generic forms of pipelined protocols: go-Back-N,
selective repeat
34
Pipelining: increased utilization
sender
receiver
first packet bit transmitted, t = 0
last bit transmitted, t = L / R
first packet bit arrives
last packet bit arrives, send ACK
last bit of 2nd packet arrives, send ACK
last bit of 3rd packet arrives, send ACK
RTT
ACK arrives, send next
packet, t = RTT + L / R
Increase utilization
by a factor of 3!
U
sender
=
3*L/R
RTT + L / R
=
.024
30.008
= 0.0008
microsecon
ds
35
Go-Back-N
Sender:
k-bit seq # in pkt header
“window” of up to N, consecutive unack’ed pkts allowed
ACK(n): ACKs all pkts up to, including seq # n - “cumulative ACK”
may receive duplicate ACKs (see receiver)
timer for each in-flight pkt
timeout(n): retransmit pkt n and all higher seq # pkts in window
36
GBN in
action
37
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
38
Selective repeat: sender, receiver windows
39
Selective repeat in action
40
Ok, now we know how to ensure reliable
transmission end to end
But is that enough?
41
More Questions
At what rate should we transmit?
Is that rate time/traffic independent?
Is that rate receiver independent?
42
TCP: Connection-Oriented Transport
TCP has 3 main components
Reliable transmission
Congestion Control
Flow Control
43
The TCP Intuition
Pour
water
Collect
water
44
The Control Problem
Two main components in TCP
Flow Control and Congestion Control
Flow Control
If receiver’s bucket filling up, pour less water
Congestion Control
Don’t pour too much if there are leaks in intermediate pipes
Regulate your flow based on how much is leaking out
•
•
Aggressive pouring calls for retransmission of lost packets
Conservative pouring lower e2e capacity
Challenge: At what rate(t) should you pour ?
Why ?
45
The TCP Protocol (in a nutshell)
T transmits few packets, waits for ACK
Called slow start
R acknowledges all packet till seq #i by ACK i (optimizations
possible)
ACK sent out only on receiving a packet
Can be Duplicate ACK if expected packet not received
ACK reaches T indicator of more capacity
T transmits larger burst of packets (self clocking) … so on
Burst size increased until packet drops (i.e., DupACK)
When T gets DupACK or waits for longer than RTO
Assumes congestion reduces burst size (congestion window)
46
TCP Timeline
Host B
Think of a blind
person trying to
stand up in a low
ceiling room
RTT
Host A
Objective:
Don’t bang your
head, but stand
up quickly
time
47
When waited for > RTO
After RTO timeout
cwnd = 20
20
15
10
ssthresh = 10
ssthresh = 8
5
25
22
20
15
12
9
6
3
0
0
Congestion window
(segments)
25
Time (round trips)
48
The TCP Protocol (in a nutshell)
DupACK not necessarily indicator of congestion
Can happen due to out of order (OOO) delivery of packets
If 3 OOO pkts, then CW need not be cut drastically
The DupACK packet retransmitted
Continue with same pace of transmission as before
(fast recovery)
R advertizes its receiver window in ACKs
Why ?
If filling up, T reduces congestion window
49
Fast Recovery on 3 OOO DupACKs
Window size (segments)
After fast recovery
9
8
7
6
5
4
3
2
1
0
Receiver’s advertized window
0
2
4
6
8
10
12
14
Time (round trips)
50
Timeout -- function of RTT
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
SampleRTT will vary, want
estimated RTT “smoother”
average several recent
measurements, not just current
SampleRTT
51
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
52
Example RTT estimation:
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
350
RTT (milliseconds)
300
250
200
150
100
1
8
15
22
29
36
43
50
57
64
71
78
85
92
99
106
time (seconnds)
SampleRTT
Estimated RTT
53
TCP Round Trip Time and Timeout
Setting the timeout
EstimtedRTT plus “safety margin”
large variation in EstimatedRTT -> larger safety margin
first estimate of how much SampleRTT deviates from EstimatedRTT:
DevRTT = (1-)*DevRTT +
*|SampleRTT-EstimatedRTT|
(typically, = 0.25)
Then set timeout interval:
TimeoutInterval = EstimatedRTT + 4*DevRTT
54
When waited for > RTO
After RTO timeout
Congestion window
(segments)
25
cwnd = 20
20
15
10
ssthresh = 10
ssthresh = 8
5
double CongWin every RTT
done by incrementing CongWin
for every ACK received
25
22
20
15
12
9
6
3
0
0
Time (round trips)
55
The TCP Protocol (in a nutshell)
DupACK not necessarily indicator of congestion
Can happen due to out of order (OOO) delivery of packets
If 3 OOO pkts, then CW need not be cut drastically
The DupACK packet retransmitted
Continue with same pace of transmission as before
(fast recovery)
R advertizes its receiver window in ACKs
If filling up, T reduces congestion window
Why ?
56
Fast Recovery on 3 OOO DupACKs
Window size (segments)
After fast recovery
9
8
7
6
5
4
3
2
1
0
Receiver’s advertized window
0
2
4
6
8
10
12
14
Time (round trips)
57
Why is TCP fair?
Two competing sessions:
Additive increase gives slope of 1, as throughout increases
multiplicative decrease decreases throughput proportionally
R
equal bandwidth share
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
58
TCP Flow Control
Problem Definition
The receiver has limits on buffer
If many nodes transmitting to same receiver
• Losses may happen at receiver
Need to avoid such losses
Solution
Receiver tells transmitter how much space left
Transmitter chooses its congestion window
accordingly
59
TCP Flow control: how it works
Rcvr advertises spare
room by including value
of RcvWindow in
segments
Sender limits unACKed
(Suppose TCP receiver discards
data to RcvWindow
out-of-order segments)
guarantees receive buffer
spare room in buffer
doesn’t overflow
= RcvWindow
= RcvBuffer-[LastByteRcvd LastByteRead]
60
If all that did not make sense,
or too heavy for “total recall”,
then here is a visual example
Thanks to Nitin Vaidya for tutorial slides
(Highly recommended for those interested in TCP)
61
Cumulative Acknowledgements
A new cumulative acknowledgement is
generated only on receipt of a new in-sequence
packet
40
39
33
38
34
41
35
40
34
39
35
i
37
data
38
36
i
36
37
ack
62
Delayed Acknowledgements
An ack is delayed until
another packet is received, or
delayed ack timer expires (200 ms typical)
New ack not produced
on receipt of packet 36,
but on receipt of 37
Reduces ack traffic
40
39
38
33
41
37
35
40
39
35
38
37
63
Duplicate Acknowledgements
A dupack is generated whenever an
out-of-order segment arrives at the receiver
40
39
38
37
34
42
41
36
40
36
(Above example assumes delayed acks)
39
36
Dupack
On receipt of 38
64
Duplicate Acknowledgements
Duplicate acks are not delayed
Duplicate acks may be generated when
a packet is lost, or
a packet is delivered out-of-order (OOO)
40
39
37
38
34
41
40
36
39
37
36
36
Dupack
On receipt of 38
65
Number of dupacks depends on how much
OOO a packet is
40
39
37
34
41
36
New Ack
40
39
34
New Ack
41
40
36
New Ack
New Ack
37
36
New Ack
42
38
36
Dupack
39
36
Dupack
38
New Ack
66
Several flavors of TCP: combines options / optimizations
Reno, Vegas, Eifel, Westwood …
Overall TCP has worked well – proven on the internet
Then why study it again
for wireless networks ?
67
Why is it different in Wireless?
68
Questions?
…
69
Reliable Transmission
TCP is connection-oriented
Sender sends control packets (SYN) and receiver
replies (ACK)
Receiver also opens a similar connection
Sender sends a small burst of packets
Receiver ACKs: ACK contains the next expected
packet (actually byte)
Sender receives ACK, and sends a bigger burst
Called “Self-clocking” behavior
70
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
User
types
‘C’
Host B
host ACKs
receipt of
‘C’, echoes
back ‘C’
host ACKs
receipt
of echoed
‘C’
simple telnet scenario
time
71
Reliable Transmission
If train of packets lost
Sender will not get any ACKs
Will timeout (gets alarmed)
Retransmit from first un-ACK-ed packet,
Drastically reduces window size
If packet n lost, but (n+1) successful
Receiver will send Duplicate ACK
If many DupACKs, then receiver not alarmed
Resends (n+1)
Cuts window size by half
72
TCP Connection Management (cont.)
After session over,
server
close
close
timed wait
Both sender and receiver
exchange control signals to
terminate the connection
client
closed
73
Congstion Control
74
TCP Congestion Control
Problem Definition
How much data should I pump into the network to
ensure
• Intermediate router queues not filling up
• Fairness achieved among multiple TCP flows
Why is this problem difficult?
TCP cannot have information about the network
Only TCP receiver can give some feedbacks
75
The TCP Intuition
Pour
water
Collect
water
76
The TCP Protocol (in a nutshell)
T transmits few packets, waits for ACK
Called slow start
R acknowledges all packet till seq #i by ACK i (optimizations
possible)
ACK sent out only on receiving a packet
Can be Duplicate ACK if expected packet not received
ACK reaches T indicator of more capacity
T transmits larger burst of packets (self clocking) … so on
Burst size increased until packet drops (i.e., DupACK)
When T gets DupACK or waits for longer than RTO
Assumes congestion reduces burst size (congestion window)
77
TCP Timeline
Host B
Think of a blind
person trying to
stand up in a low
ceiling room
RTT
Host A
Objective:
Don’t bang your
head, but stand
up quickly
time
78
Timeout -- function of RTT
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
SampleRTT will vary, want
estimated RTT “smoother”
average several recent
measurements, not just current
SampleRTT
79
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
80
Example RTT estimation:
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
350
RTT (milliseconds)
300
250
200
150
100
1
8
15
22
29
36
43
50
57
64
71
78
85
92
99
106
time (seconnds)
SampleRTT
Estimated RTT
81
TCP Round Trip Time and Timeout
Setting the timeout
EstimtedRTT plus “safety margin”
large variation in EstimatedRTT -> larger safety margin
first estimate of how much SampleRTT deviates from EstimatedRTT:
DevRTT = (1-)*DevRTT +
*|SampleRTT-EstimatedRTT|
(typically, = 0.25)
Then set timeout interval:
TimeoutInterval = EstimatedRTT + 4*DevRTT
82
When waited for > RTO
After RTO timeout
Congestion window
(segments)
25
cwnd = 20
20
15
10
ssthresh = 10
ssthresh = 8
5
double CongWin every RTT
done by incrementing CongWin
for every ACK received
25
22
20
15
12
9
6
3
0
0
Time (round trips)
83
The TCP Protocol (in a nutshell)
DupACK not necessarily indicator of congestion
Can happen due to out of order (OOO) delivery of packets
If 3 OOO pkts, then CW need not be cut drastically
The DupACK packet retransmitted
Continue with same pace of transmission as before
(fast recovery)
R advertizes its receiver window in ACKs
If filling up, T reduces congestion window
Why ?
84
Fast Recovery on 3 OOO DupACKs
Window size (segments)
After fast recovery
9
8
7
6
5
4
3
2
1
0
Receiver’s advertized window
0
2
4
6
8
10
12
14
Time (round trips)
85
Why is TCP fair?
Two competing sessions:
Additive increase gives slope of 1, as throughout increases
multiplicative decrease decreases throughput proportionally
R
equal bandwidth share
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
86
TCP Flow Control
Problem Definition
The receiver has limits on buffer
If many nodes transmitting to same receiver
• Losses may happen at receiver
Need to avoid such losses
Solution
Receiver tells transmitter how much space left
Transmitter chooses its congestion window
accordingly
87
TCP Flow control: how it works
Rcvr advertises spare
room by including value
of RcvWindow in
segments
Sender limits unACKed
(Suppose TCP receiver discards
data to RcvWindow
out-of-order segments)
guarantees receive buffer
spare room in buffer
doesn’t overflow
= RcvWindow
= RcvBuffer-[LastByteRcvd LastByteRead]
88
Announcements
Reviews:
Please send as plain text in email
No other data in the review email
Class ppt
Almost filling up
I need to create some more openings
Will discuss this next week
89
Transport services and protocols
logical communication between
processes
transport protocols run in end
systems
breaks app messages into
segments
reassembles segments into
messages, passes to app
layer
more than one transport protocol
available to apps
Internet: TCP and UDP
application
transport
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
application
transport
network
data link
physical
90
TCP, UDP: transport-layer protocols
reliable, in-order delivery
(TCP)
congestion control
flow control
connection setup
unreliable, unordered
delivery: UDP
no-frills extension of “besteffort” IP
services not available:
application
transport
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
application
transport
network
data link
physical
delay guarantees
bandwidth guarantees
91
Agenda
Transport Layer
Multiplexing / Demultiplexing
Reliable Transport
Stop-and-wait
Pipelined
•
•
Go back N
Selective Request
TCP
Congestion Control
Flow Control
92
Need for Transport Layer
Network Layer offers connections
Connections not reliable
• Losses, delays due to out-of-order, queue overflow, …
Transport Layer performs
End to end reliability
Segmentation / Desegmentation (of app data)
Error recovery
Advanced operations
Congestion control
Flow control
93