Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 106

Computer Networks

Transport layer

Transport layer -- May 2004 1


Transport Layer
 Services
 Elements of transport protocol
 Simple transport protocol
 UDP
 Remote Procedure Call (see Distributed Systems)
 TCP

Transport layer -- May 2004 2


Layer overview

application
transport
network
data link network
physical data link
network physical

lo
data link

gi
physical

ca
network

le
data link

nd
physical network

-e
data link

nd
physical

tr
an
network
data link

sp
physical

or
t
application
transport
network
data link
physical

Transport layer -- May 2004 3


Layer overview
Host 1 Transport Host 2
addresses
Application layer Application layer

Transport entity TPDU Transport entity

Network
Network layer Network layer
addresses

Transport layer -- May 2004 4


Services
 To upper layer
o efficient, reliable, cost-effective service
o 2 kinds
• Connection oriented
• Connectionless

Transport layer -- May 2004 5


Services
 needed from network layer
o packet transport between hosts
o relationship network <> transport
• Hosts <> processes
• Transport service
– independent network
– more reliable
• Network
– run by carrier
– part of communication subnet for WANs

Transport layer -- May 2004 6


Simple service: primitives
 Simple primitives:
o connect
o send
o receive
o disconnect
 How to handle incoming connection request in
server process?
Wait for connection request from client!
o listen

Transport layer -- May 2004 7


Simple service: primitives
listen Wait till a process wants a connection
No TPDU
connect Try to setup a connection
Connection Request TPDU
send Send data packet
Data TPDU
receive Wait for arrival of data packet
No TPDU
disconnect Calling side breaks up the connection
Disconnect TPDU

Transport layer -- May 2004 8


Simple service: state diagram

Transport layer -- May 2004 9


Simple service: state diagram

Transport layer -- May 2004 10


Simple service: state diagram

Transport layer -- May 2004 11


Berkeley service primitives
 Used in Berkeley UNIX for TCP
 Addressing primitives: socket
bind

 Server primitives: listen


accept
send + receive
close
 Client primitives:
connect
send + receive
close

Transport layer -- May 2004 12


Berkeley service primitives
socket create new communication end point

bind attach a local address to a socket

listen announce willingness to accept connections; give queue size

accept block caller until a connection request arrives

connect actively attempt to establish a connection

send send some data over the connection

receive receive some data from the connection

close release the connection

Transport layer -- May 2004 13


Transport Layer
 Services
 Elements of transport protocol
 Simple transport protocol
 UDP
 Remote Procedure Call (see Distributed Systems)
 TCP

Transport layer -- May 2004 14


Elements of transport protocols (etp)
 Transport <> Data Link
 Addressing
 Establishing a connection
 Releasing a connection
 Flow control and buffering
 Multiplexing
 Crash recovery

Transport layer -- May 2004 15


etp: Transport <> data link
 Physical channel <> subnet

Explicit addressing
Connection establishment
Potential existence of storage capacity in subnet
Dynamically varying number of connections
Transport layer -- May 2004 16
etp: Addressing
 TSAP = transport service access point
o Internet: IP address + local port
o ATM: AAL-SAPs
 Connection scenario
 Getting TSAP addresses?
 From TSAP address to NSAP address?

Transport layer -- May 2004 17


etp: Addressing
 Connection scenario

Transport layer -- May 2004 18


etp: Addressing
 Connection scenario
o Host 2 (server)
• Time-of-day server attaches itself to TSAP 1522
o Host 1 (client)
• Connect from TSAP 1208 to TSAP 1522
• Setup network connection to host 2
• Send transport connection request
o Host 2
• Accept connection request

Transport layer -- May 2004 19


etp: Addressing
 Getting TSAP addresses?
o Stable TSAP addresses
• For key services
• Not for user processes
– active for a short time
– number of addresses limited
o Name servers
• to find existing servers
• map service name into TSAP address
o Initial connection protocol

Transport layer -- May 2004 20


etp: Addressing
 Getting TSAP addresses?
o Initial connection protocol
• to avoid many waiting servers  one process server
– waits on many TSAPs
– creates requested server

Transport layer -- May 2004 21


etp: Addressing
 From TSAP address to NSAP address?
o hierarchical addresses
• address = <country> <network> <host> <port>
– Examples: IP address + port
Telephone numbers (<> number portability?)
• Disadvantages:
– TSAP bound to host!
o flat address space
• Advantages:
– Independent of underlying network addresses
– TSAP address not bound to host
• Mapping to network addresses:
– Name server
– broadcast

Transport layer -- May 2004 22


etp: Establishing a connection
 Problem: delayed duplicates!
 Scenario:
o Correct bank transaction
• connect
• data transfer
• disconnect
o Problem: same packets are received in same order a
second time!

Recognized?

Transport layer -- May 2004 23


etp: Establishing a connection
 Unsatisfactory solutions:
o throwaway TSAP addresses
• need unlimited number of addresses?
• process server solution impossible
o connection identifier
• Never reused!
 Maintain state in hosts

 Satisfactory solutions

Transport layer -- May 2004 24


etp: Establishing a connection
 Satisfactory solutions
o Ensure limited packet lifetime (incl. Acks)
o Mechanisms
• prevent packets from looping + bound congestion delay
• hopcounter in each packet
• timestamp in each packet
o Basic assumption

Maximum packet lifetime T


If we wait a time T after sending a packet all traces
of it (including Acks) are gone
Transport layer -- May 2004 25
etp: Establishing a connection
 Tomlinson’s method
o requires: clock in each host
• Number of bits > number of bits in sequence number
• Clock keeps running, even when a hosts crashes
o Basic idea:

2 identically numbered TPDUs are


never outstanding at the same time!

Transport layer -- May 2004 26


etp: Establishing a connection
 Tomlinson’s method
Never reuse a sequence number x within
the lifetime T for the packet with x
o Problems to solve
• Selection of the initial sequence number for a new connection
• Wrap around of sequence numbers for an active connection
• Handle host crashes

 Forbidden region
Transport layer -- May 2004 27
etp: Establishing a connection
 Tomlinson’s method
o Initial sequence number
= lower order bits of clock
o Ensure initial sequence numbers are always OK
 forbidden region
o Wrap around
• Idle
• Resynchronize sequence numbers

Transport layer -- May 2004 28


etp: Establishing a connection
 Tomlinson - forbidden region

Transport layer -- May 2004 29


etp: Establishing a connection
 Tomlinson – three-way-handshake

No combination of
delayed packets can
cause the protocol to fail

Transport layer -- May 2004 30


etp: Establishing a connection
 Tomlinson – three-way-handshake

Transport layer -- May 2004 31


etp: Releasing a connection
 2 styles:
o Asymmetric
• Connection broken when one party hangs up
• Abrupt!  may result in data loss
o Symmetric
• Both parties should agree to release connection
• How to reach agreement? Two-army problem
• Solution: three-way-handshake
o Pragmatic approach
• Connection = 2 unidirectional connections
• Sender can close unidirectional connection

Transport layer -- May 2004 32


etp: Releasing a connection
 Asymmetric: data loss

Transport layer -- May 2004 33


etp: Releasing a connection
 Symmetric: two-army-problem

Simultaneous attack by blue army


Communication is unreliable

No protocol exists!!

Transport layer -- May 2004 34


etp: Releasing a connection
 Three-way-handshake + timers
o Send disconnection request
+ start timer RS to resend (at most N times)
the disconnection request
o Ack disconnection request
+ start timer RC to release connection

Transport layer -- May 2004 35


etp: Releasing a connection

RC

Transport layer -- May 2004 36


etp: Releasing a connection

RS

Transport layer -- May 2004 37


etp: Flow control and buffering
Transport Data link
connections, lines many few
varying fixed

(sliding) window size varying fixed

buffer management different sizes? fixed size

Transport layer -- May 2004 38


etp: Flow control and buffering
 Buffer organization

Transport layer -- May 2004 39


etp: Flow control and buffering
 Buffer management: decouple buffering from Acks

Transport layer -- May 2004 40


etp: Flow control and buffering
 Where to buffer?
o datagram network  @ sender
o reliable network
+ Receiver process guarantees free buffers?
• No: for low-bandwidth bursty traffic
 @ sender
• Yes: for high-bandwidth smooth traffic
 @ receiver

Transport layer -- May 2004 41


etp: Flow control and buffering
 Window size?
o Goal:
• Allow sender to continuously send packets
• Avoid network congestion
o Approach:
• maximum window size = c * r
– network can handle c TPDUs/sec
– r = cycle time of a packet
• measure c & r and adapt window size

Transport layer -- May 2004 42


etp: Multiplexing
 Upward: reduce number of network connections to reduce cost
 Downward: increase bandwidth to avoid per connection limits

Transport layer -- May 2004 43


etp: Crash recovery
 recovery from network, router crashes?
o No problem
• Datagram network: loss of packet is always handled
• Connection-oriented network: establish new connection + use
state to continue service
 recovery from host crash?
o server crashes, restarts: implications for client?
Recovery from a layer N crash can only
o assumptions:
be •done bysaved
no state layer N+1 and
at crashed serveronly if the
• no simultaneous events
higher layer retains enough status
o NOT POSSIBLE
information.
Transport layer -- May 2004 44
etp: Crash recovery
 Illustration of problem: File transfer:
o Sender: 1 bit window protocol: states S0, S1
• packet with seq number 0 transmitted; wait for ack
o Receiver: actions
• Ack packet
• Write data to disk
• Order?

Transport layer -- May 2004 45


etp: Crash recovery
 Illustration of problem: File transfer

Transport layer -- May 2004 46


Transport Layer
 Services
 Elements of transport protocol
 Simple transport protocol
 UDP
 Remote Procedure Call (see Distributed Systems)
 TCP

Transport layer -- May 2004 47


Simple transport protocol
 Service primitives:
o connum = LISTEN (local)
• Caller is willing to accept connection
• Blocked till request received
o connum = CONNECT ( local, remote)
• Tries to establish connection
• Returns identifier (nonnegative number)
o status = SEND (connum, buffer, bytes)
• Transmits a buffer
• Errors returned in status
o status = RECEIVE (connum, buffer, bytes)
• Indicates caller’s desire to get data
o status = DISCONNECT (connum)
• Terminates connection

Transport layer -- May 2004 48


Simple transport protocol
 Transport entity
o Uses a connection-oriented reliable network
o Programmed as a library package
o Network interface
• ToNet(…)
• FromNet(…)
• Parameters:
– Connection identifier (connum = VC)
– Q bit: 1 = control packet
– M bit: 1 = more data packets to come
– Packet type
– Pointer to data
– Number of bytes of data

Transport layer -- May 2004 49


Simple transport protocol
 Transport entity: packet types

Network packet Meaning

Call request Sent to establish a connection

Call accepted Response to Call Request

Clear Request Sent to release connection

Clear confirmation Response to Clear request

Data Used to transport data

Credit Control packet to manage window

Transport layer -- May 2004 50


Simple transport protocol
 Transport entity: state of a connection

State Meaning

Idle Connection not established

Waiting CONNECT done; Call Request sent

Queued Call Request arrived; no LISTEN yet

Established

Sending Waiting for permission to send a packet

Receiving RECEIVE has been done

Disconnecting DISCONNECT done locally

Transport layer -- May 2004 51


Simple transport protocol
 Transport entity: code
o See fig 6-20, p. 514 – 517
o To read and study at home!
o Questions?
• Is it acceptable not to use a transport header?
• How easy would it be to use another network protocol?

Transport layer -- May 2004 52


Example Transport Entity (1)

Transport layer -- May 2004 53


Example Transport Entity (2)

Transport layer -- May 2004 54


Example Transport Entity (3)

Transport layer -- May 2004 55


Example Transport Entity (4)

Transport layer -- May 2004 56


Example Transport Entity (5)

Transport layer -- May 2004 57


Example Transport Entity (6)

Transport layer -- May 2004 58


Example Transport Entity (7)

Transport layer -- May 2004 59


Example Transport Entity (8)

Transport layer -- May 2004 60


Transport Layer
 Services
 Elements of transport protocol
 Simple transport protocol
 UDP
 Remote Procedure Call (see Distributed Systems)
 TCP

Transport layer -- May 2004 61


UDP
 User Data Protocol
o Datagram service between processes
• No connection overhead
o UDP header:
• Ports = identification of end points

Transport layer -- May 2004 62


UDP
 Some characteristics
o Supports broadcasting, multicasting
(not in TCP)
o Packet oriented
(TCP gives byte stream)
o Simple protocol

o Why needed above IP?

Transport layer -- May 2004 63


Transport Layer
 Services
 Elements of transport protocol
 Simple transport protocol
 UDP
 Remote Procedure Call (see Distributed Systems)
 TCP

Transport layer -- May 2004 64


TCP service model
 point-to-point
o one sender, one receiver
 reliable, in-order byte stream
o no message/packet boundaries
 pipelined & flow controlled
o window size set by TCP congestion and flow control
algorithms
 connection-oriented
o handshaking to get at initial state
 full duplex data
o bi-directional data flow in same connection

Transport layer -- May 2004 65


TCP service model
…
 send & receive buffers

a p p lic a t io n a p p lic a t io n
w r it e s d a t a re a d s d a ta
socket socket
door door
TC P TC P
s e n d b u ffe r r e c e iv e b u f f e r
segm ent

Transport layer -- May 2004 66


TCP protocol
 Three-way handshake to set up connections
 Every byte has its own 32-bit sequence number
o Wrap around
o 32-bit Acks; window size in bytes
 Segment = unit of data exchange
o 20-byte header + options + data
o Limits for size
• 64Kbyte
• MTU, agreed upon for each direction
o Data from consecutive writes may be accumulated in a single
segment
o Fragmentation possible
 Sliding window protocol

Transport layer -- May 2004 67


TCP header

Transport layer -- May 2004 68


TCP header
 source & destination ports (16 bit)
 sequence number (32 bit)
 Acknowledgement number (32 bit)
 Header length (4 bits) in 32-bit words
 6 flags (1 bit)
 window size (16 bit): number of bytes the sender is
allowed to send starting at byte acknowledged
 checksum (16 bit)
 urgent pointer (16 bit) : byte position of urgent data

Transport layer -- May 2004 69


TCP header
 Flags:
o URG: urgent pointer in use
o ACK: valid Acknowledgement number
o PSH: receiver should deliver data without delay to user
o RST: reset connection
o SYN: used when establishing connections
o FIN: used to release connection
 Options:
o Maximum payload a host is willing to receive
o Scale factor window size
o Use selective repeat instead of go back n

Transport layer -- May 2004 70


TCP connection management
 Three-way handshake
o Initial sequence number: clock based
o No reboot after crash for T (maximum packet lifetime=120 sec)
o Wrap around?
 Connection identification
o Pair of ports of end points
 Connection release
o Both sides are closed separately
o No response to FIN: release after 2*T
o Both sides closed: wait for time 2 * T

Transport layer -- May 2004 71


TCP connection management

Transport layer -- May 2004 72


Transport layer -- May 2004 73
TCP connection management
State Description

Closed No connection is active or pending


Listen The server is waiting for an incoming call
SYN rcvd A connection request has arrived; wait for ACK
SYN sent The application has started to open a connection
Established The normal data transfer state
FIN wait 1 The application has said it is finished
FIN wait 2 The other side has agreed to release
Timed wait Wait for all packets to die off
Closing Both sides have tried to close simultaneously
Close wait The other side has initiated a release
Last Ack Wait for all packets to die off

Transport layer -- May 2004 74


TCP transmission policy
 Window size decoupled from Acks (ex. next slides)
 Window = 0  no packets except for
o Urgent data
o 1 byte segment to send Ack & window size
 Incoming user data may be buffered
o May improve performance: less segments to send
 Ways to improve performance:
o Delay acks and window updates for 500 msec
o Nagle’s algorithm
o Silly window syndrome

Transport layer -- May 2004 75


TCP transmission policy

Transport layer -- May 2004 76


Transport layer -- May 2004 77
TCP transmission policy
 Telnet scenario: interactive editor reacting on each
keystroke: One character typed
 21 byte segment or 41 byte IP packet
 (packet received) 20 byte segment with Ack
 (editor has read byte) 20 byte segment with window update
 (editor has processed byte; sends echo) 21 byte segment
 (client gets echo) 20 byte segment with Ack
 Solutions:
o delay acks + window updates for 500 msec
o Nagle’s algorithm:
• Receive one byte from user; send it in segment
• Buffer all other chars till Ack for first char arrives
• Send other chars in a single segment
• Disable algorithm for X-windows applications (do not delay sending
of mouse movements)

Transport layer -- May 2004 78


TCP transmission policy
 Silly window syndrome
o Problem:
• Sender transmits data in large blocks
• Receiver reads data 1 byte at a time
o Scenario: next slide
o Solution:
• Do not send window update for 1 byte
• Wait for window update till
– Receiver can accept MTU
– Buffer is half empty

Transport layer -- May 2004 79


TCP transmission policy

Transport layer -- May 2004 80


TCP transmission policy
 General approach:
o Sender should not send small segments
• Nagle: buffer data in TCP send buffer
o Receiver should not ask for small segments
• Silly window: do window updates in large units

Transport layer -- May 2004 81


Principles of Congestion Control
Congestion:
 informally: “too many sources sending too much data too
fast for network to handle”
 different from flow control!
= end-to-end issue!
 manifestations:
o lost packets (buffer overflow at routers)
o long delays (queue-ing in router buffers)
 a top-10 problem!

Transport layer -- May 2004 82


Causes/costs of congestion: scenario

 two senders, two


receivers
 one router, infinite
buffers
 no retransmission

 large delays
when congested
 maximum
achievable
throughput
Transport layer -- May 2004 83
Approaches towards congestion control
Two broad approaches towards congestion control:
end-to-end congestion Network-assisted
control: congestion control:
 no explicit feedback from  routers provide feedback
network to end systems
 congestion inferred from o single bit indicating
end-system observed loss, congestion (SNA, ATM)
delay o explicit rate sender
 approach taken by TCP should send at

Transport layer -- May 2004 84


TCP Congestion Control
 How to detect congestion?
 Timeout caused by packet loss: reasons
o Transmission errors : Rare for wired networks
o Packed discarded at congested router

Packet loss

Hydraulic example illustrating two limitations


for sender!

Transport layer -- May 2004 85


TCP congestion control

Transport layer -- May 2004 86


TCP Congestion Control
 How to detect congestion?
 Timeout caused by packet loss: reasons
o Transmission errors : Rare
o Packed discarded at congested router

Packet loss  congestion

Approach: 2 windows for sender


Receiver window
Minimum of  Congestion window

Transport layer -- May 2004 87


TCP Congestion Control
 end-end control (no network assistance)
 transmission rate limited by congestion window size, Congwin, over
segments:

Congwin

 w segments, each with MSS bytes sent in one RTT:

w * MSS
throughput = Bytes/sec
RTT

Transport layer -- May 2004 88


TCP Congestion Control:
 “probing” for usable  two “phases”
bandwidth: o slow start
o ideally: transmit as fast as o congestion avoidance
possible (Congwin as large as 
important variables:
possible) without loss
o Congwin
o increase Congwin until loss
o threshold: defines
(congestion)
threshold between two
o loss: decrease Congwin, then
phases:
begin probing (increasing)
• slow start phase
again
• congestion control phase

Transport layer -- May 2004 89


TCP Slow start
Host A Host B
Slow start algorithm one segm
ent

RTT
initialize: Congwin = 1
for (each segment ACKed) two segm
ents
Congwin++
until (loss event OR
four segm
CongWin > threshold) ents

 exponential increase (per RTT)


in window size (not so slow!)
 loss event: timeout (Tahoe
time
TCP) and/or three duplicate
ACKs (Reno TCP)

Transport layer -- May 2004 90


TCP Congestion Avoidance

Congestion avoidance
/* slowstart is over */
/* Congwin > threshold */
Until (loss event) {
every w segments ACKed:
Congwin++
}
threshold = Congwin/2
Congwin = 1
1
perform slowstart
1: TCP Reno skips slowstart (fast
recovery) after three duplicate ACKs
Transport layer -- May 2004 91
TCP congestion control

Transport layer -- May 2004 92


TCP timer management
 How long should the timeout interval be?
o Data link: expected delay predictable
o Transport: different environment; impact of
• Host
• Network (routers, lines)
unpredictable
 Consequences
o Too small: unnecessary retransmissions
o Too large: poor performance
 Solution: adjust timeout interval based on continuous
measurements of network performance
Transport layer -- May 2004 93
TCP timer management

Data link layer Transport layer

Transport layer -- May 2004 94


TCP timer management
 Algorithm of Jacobson:
Timeout = RTT + 4 * D
o RTT = best current estimate of the round-trip time
o D = mean deviation (cheap estimator of the standard
variance)
o 4?
• Less than 1% of all packets come in more than 4 standard
deviations late
• Easy to compute

Transport layer -- May 2004 95


TCP timer management
 Algorithm of Jacobson:
Timeout = RTT + 4 * D
o RTT =  RTT + (1 -) M  = 7/8
M = last measurement of round-trip time

o D =  D + (1 - ) RTT - M
 Karn’s algorithm: how handle retransmitted segments?
o Do not update RTT for retransmitted segments
o Double timeout

Transport layer -- May 2004 96


TCP timer management
 Other timers:
o Persistence timer
• Problem: lost window update packet when window is 0
• Sender transmits probe; receivers replies with window size
o Keep alive timer
• Check whether other side is still alive if connection is idle for
a long time
• No response: close connection
o Timed wait
• Make sure all packets are died off when connection is closed
• =2T

Transport layer -- May 2004 97


Wireless TCP & UDP
 Transport protocols
o Independent of underlying network layer
o BUT: carefully optimized for wired networks
o Assumption:
• Packet loss caused by congestion
• Invalid for wireless networks: always loss of packets
 Congestion algorithm:
o Timeout ( = congestion)  slowdown
Wireless: Lower throughput – same loss  NO solution

 Solution for wireless networks:


o Retransmit asap
Transport layer -- May 2004 98
Wireless TCP
 Heterogeneous networks

 Solutions?
o Retransmissions can cause congestion in wired network

Transport layer -- May 2004 99


Wireless TCP
 Solutions for heterogeneous networks
o Indirect TCP
+ 2 homogeneous connections
– violates TCP semantics

Transport layer -- May 2004 100


Wireless TCP
 Solutions for heterogeneous networks
o Snooping agent at base station

Snooping k e d
nvo
e i
agent
• Cashes segments for mobile host b
• m ay
Retransmits segment if ack is missingm
i t h
• Removes duplicate acks gor
a l
• n requests for segments originating at
Generates selectiveorepeat
i
t
ges
mobile host
Con
Transport layer -- May 2004 101
Wireless UDP
 UDP = datagram service  loss permitted
no problems?

 Programs using UDP expect it to be


highly reliable
 Wireless UDP: far from perfect!!!

 Implications for programs recovering from lost


UDP messages

Transport layer -- May 2004 102


Transactional TCP
 How to implement RPC?
o On top of UDP?
o Yes if
• Request and reply fit in a single packet
• Operations are idempotent
o Otherwise
• Reimplementation of reliability

o On top of TCP?

Transport layer -- May 2004 103


Transactional TCP
How to implement RPC?
 On top of UDP?
o Yes if
• Request and reply fit in a single
packet
• Operations are idempotent
o Otherwise
• Reimplementation of reliability
 On top of TCP?
o Unattractive because of connection
set up
 Solution: transactional TCP

Transport layer -- May 2004 104


Transactional TCP
How to implement RPC?
 On top of UDP?
o Problems withreliability
 On top of TCP?
o Overhead of connection set up
 Solution: transactional TCP
o Allow data transfer during setup
o Immediate close of stream

Transport layer -- May 2004 105


Computer Networks

Transport layer

Transport layer -- May 2004 106

You might also like