Professional Documents
Culture Documents
Transport Layer
IBR, TU Braunschweig
Mühlenpfordtstr. 23, D-38106 Braunschweig, Germany,
Email: wolf@ibr.cs.tu-bs.de
Transport Layer
Scope
www.ibr.cs.tu-bs.de
Complementary Courses
Applications
Email
Web
...
Transitions, Address.
L5 Application Layer
L4 Transport Layer Internet: (TCP, UDP, ...)
L3 Network Layer
Computer Networks 1
Introduction
Transport Layer
Overview
1 Transport Layer Function
www.ibr.cs.tu-bs.de
6 Disconnect
Computer Networks 1
Transport Layer
1 Transport Layer Function
Provide data transport
www.ibr.cs.tu-bs.de
• reliably
• efficiently
• at low-cost
for
• process-to-process (applications)
• i.e. at endsystem-to-endsystem
Computer Networks 1
Transport Layer
Transport Service
www.ibr.cs.tu-bs.de
Computer Networks 1
Transport Service
Similar services of
www.ibr.cs.tu-bs.de
• network layer
and transport layer:
Why 2 Layers?
Network service
• not influenced by the user
• independent from application & user
• provides, for example,
Computer Networks 1
Transport Layer
Transport Service: Terminology
Entities exchanged:
www.ibr.cs.tu-bs.de
Layer Data Unit
Transport TPDU / Message
Network Packet
Data Link Frame
Physical Bit/Byte (bitstream)
Transport Layer
Primitive Meaning
SOCKET Create a new communication end point
Transport Layer
14
Transport Layer
Elements of Transport Protocols
Transport protocols resemble somehow data link protocols:
www.ibr.cs.tu-bs.de
• but significant differences exist
Addressing:
• DL: outgoing line of a router specifies particular router
Computer Networks 1
Transport Layer
Model:
16
Transport Layer
Steps
In general
www.ibr.cs.tu-bs.de
Transport Layer
Determination of Service Provider TSAP
How does the specific address of a service becomes known?
www.ibr.cs.tu-bs.de
1. Approach: TSAP known implicitly
• services that are well known and often used have pre-defined
TSAPs
• as "well known ports" of a transport protocol
Computer Networks 1
Transport Layer
19
Transport Layer
• context
• server process already exists
• procedure
1. client addresses Name server (establishing connection)
2. client specifies the service as an ASCII data set
• example “name of day”
3. name server supplies TSAP
4. client disconnects from name server
Computer Networks 1
• comments
• new services
• have to register at the name server
• name server
• adds corresponding information at the database
20
Transport Layer
4 Duplicates
Initial (problematic) situation:
www.ibr.cs.tu-bs.de
• network has
• varying transit times for packets
• certain loss rate
• storage capabilities
• packets can be
• manipulated
• duplicated
• resent by the original system after timeout
Computer Networks 1
Transport Layer
Example: Duplicates
Example of problems caused by
www.ibr.cs.tu-bs.de
duplicates:
• Let’s assume duplicates occur in
the network
• duplication of all sender’s packets
• subsequent to the first 5 packets,
duplicates are transferred in
correct order to the receiver
Result:
• without additional means the
receiver cannot differentiate
between correct data and
duplicated data
à Receiver would re-execute the
transaction !
23
Transport Layer
24
Transport Layer
Duplicates – Problematic Issues
www.ibr.cs.tu-bs.de
1. How to handle duplicates within a connection?
àuse consecutive sequential numbers from sufficiently large
sequential number range
• TCP uses 32 bit sequence numbers
• 32 bit was large in 1980ies (link rates were low), but is small today
• sequence number range exploitation
• 10 Mbit/sec ~ 3400 sec (~57 Min)
• 10 Gbit/sec ~ 3,4 sec
• consecutive connections or
• connections which are being re-established after a crash?
à Choose initial sequential number wisely,
consider max. message lifetime (MSL)
Transport Layer
Transport Layer
3. Acknowledgment
• initiator (A) acknowledges
• sequence numbers X, Y (as received before)
• only after receiving a valid ACK, receiver (B) accepts data
Note:
• some protocols (including TCP) acknowledge the next byte expected
• (ACK X+1,Y+1), not the last byte received
38
Transport Layer
Three Way Handshake Protocol: Results
www.ibr.cs.tu-bs.de
Computer Networks 1
39
Transport Layer
Transport Layer
6 Disconnect
Two variants:
www.ibr.cs.tu-bs.de
• asymmetric disconnect
• symmetric disconnect
41
Transport Layer
6.1 Asymmetric Disconnect
Approach
www.ibr.cs.tu-bs.de
• disconnect in one direction implies disconnect for both
“directions”
• analog to telephone
• may result in data losses
Example
Computer Networks 1
Transport Layer
Properties
Computer Networks 1
Host A Host B
Send DR DR
+ start timer Send DR
+ start timer
DR
Release
connection
Computer Networks 1
Send AC K
ACK Release
connection
46
Transport Layer
Disconnect with Three-Way Handshake
Last acknowledgment lost
www.ibr.cs.tu-bs.de
• timer disconnects from host 2
• therefore no further problems
Host A Host B
Send DR DR
+ start timer Send DR
+ start timer
DR
Computer Networks 1
Release
connection
AC K
Send
ACK Lost (Timeout)
release
connection
47
Transport Layer
48
Transport Layer
• disconnects by timeout
Computer Networks 1
49
Transport Layer
Disconnect with Three-Way Handshake
www.ibr.cs.tu-bs.de
All “disconnect requests” lost
• resulting problem:
Computer Networks 1
• Host1 disconnects,
but Host2 retains inconsistent information: “half-open” connections
• prevented by activity strategy
• TPDUs have to arrive within a certain time
• otherwise automatic disconnect
• implementation
• after TPDU has been sent: re-initiate timer
• when timeout before data has been sent: send “Dummy-TPDU” to retain
connection
(“keep-alive” packets without actual data)
50 (but these might be lost as well ...)
Transport Layer
Strategies
1. sliding window / static buffer allocation
2. sliding window / no buffer allocation
51
3. credit mechanism / dynamic buffer allocation
Transport Layer
Characteristics
+ receiver can accept all PDUs
- buffer requirement may be very high
• proportional to #transport-connections
Computer Networks 1
Transport Layer
7.2 Sliding Window / No Buffer Allocation
Flow control
www.ibr.cs.tu-bs.de
• sliding window (or no flow control)
Buffer reservation
• receivers do not reserve buffers
• buffer allocation upon arrival of TPDU
• TPDU will be discarded if there are no buffers available
Computer Networks 1
• sender maintains TPDU buffer until ACK arrives from receiver
Characteristics
+ optimized memory utilization
- possibly high rate of discarded TPDUs during high traffic load
i.e.
è good for intermittent (and bursty) traffic with low throughput
è poor for traffic with high throughput
53
Transport Layer
• credit mechanism
Buffer reservation
• receiver allocates buffers dynamically for the connections
• allocation depends on the actual situation
Principle
• sender requests required buffer amount
Computer Networks 1
54
Transport Layer
Credit Mechanism
www.ibr.cs.tu-bs.de
Computer Networks 1
Dynamic adjustment to
• buffer situation
• number of open connections
• type of connections
• high throughput: many buffers
55 • low throughput: few buffers
Transport Layer
8 Some Familiar Internet Protocols
www.ibr.cs.tu-bs.de
SMTP HTTP FTP TELNET NFS RTP
SCTP
TCP UDP
IP + ICMP + ARP
WANs LLC & MAC LANs, MANs
ATM, … Physical Ethernet, …
Computer Networks 1
Host A Host B
Application Application
Computer Networks 1
end-to-end protocol
Transport Transport
Gateway G
Internet Internet Internet
64
Physical Net 1 Physical Net 2
Transport Layer
65
Transport Layer
Transport Layer: End-to-End Communications
www.ibr.cs.tu-bs.de
Email Email File S. File Web Web
Client Server Client Server Client Server
Transport
Internet
Network Interface
Computer Networks 1
• RFC 768
67
Transport Layer
UDP: Characteristics
UDP is mostly IP with a short transport header
www.ibr.cs.tu-bs.de
= socket = process
application P3 P1
P1 application P2 P4 application
Computer Networks 1
68
Transport Layer
UDP: Characteristics
no connection establishment
www.ibr.cs.tu-bs.de
• no delay for connection setup
simple
• no connection state at sender, receiver
Transport Layer
0 16 31
• 16 bit sender
identification Sender Port Receiver Port
• is optional
Packet Length Checksum
• use: response may
be sent there Data
…..
Receiver port
• receiver identification
Computer Networks 1
Packet length
• in bytes UDP Header
(including UDP header)
• minimum: 8 (byte)
i.e. header without data
Checksum
• of header and data for error detection
70
• use of checksum optional
Transport Layer
Specification:
• RFC 793: originally
• Enhancements, further details also in RFC 1122, RFC 1323
71
Transport Layer
TCP Features
Reliable, bidirectional, unstructured byte stream between two
www.ibr.cs.tu-bs.de
communicating peers
• fully ordered, fully reliable
Connections established & torn down
• three-way handshake connection setup
• disconnect per direction
Multiplexing/ demultiplexing
• ports at both ends
Computer Networks 1
Error control
• checksums, sequence numbers, automatic retransmissions
à users see correct, ordered byte sequences
End-to-end flow control
• avoid to overwhelm machine on other side
• credit mechanism (dynamic window size)
Congestion avoidance
72 • avoid to create traffic jam within network
Transport Layer
TCP Segments
www.ibr.cs.tu-bs.de
Flags:
CWR ECE URG ACK PSH RST SYN FIN
73
Transport Layer
Deliver(dt[100])
ACK, ...
Close
FIN-WAIT-1 FIN, ... Closing
ACK, ... CLOSE-WAIT
Close
FIN-WAIT-2 FIN, ...
Terminate LAST-ACK
TIME-WAIT ACK, ... Terminate
CLOSED CLOSED
74
Transport Layer
TCP Congestion Control
Objective:
www.ibr.cs.tu-bs.de
• avoid that too much traffic exists which could collapse network
Basic idea:
• detect congestion, typically using packet loss as indicator
• on detection: adjust sending rate
75
Transport Layer
ent 1
ACK for segm
cwnd = 2 segment 2
Computer Networks 1
segment 3
ents 2 + 3
ACK for segm
cwnd = 4 segment 4
segment 5
segment 6
segment 7
ents 4+5+6+7
ACK for segm
cwnd = 8
76
Transport Layer
12
ss_thresh
• additive increase
Cwnd (in segments)
10
• gradually probe for additional bandwidth 8
• if cwnd > ss_thresh then 6
• each time a segment is acknowledged 4
• increment cwnd by 1/cwnd 2
0
0
• multiplicative decrease
t=
t=
t=
t=
Roundtrip times
• decreasing cwnd upon loss/timeout
Computer Networks 1
cwnd ss_thresh
Timeout
Congestion
Avoidance
ss_thresh
Slow Start
77
Time
Transport Layer