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