Professional Documents
Culture Documents
3: Transport Layer
1. Introduction
The transport layer aims at ensuring end to end reliable data
transfer.
Datagram Services:
• Packet can be lost, corrupted, etc. It is up to the hosts
to make sure that messages are delivered in order
without loss, error, or duplication.
1
• The transport protocol becomes complex and
sophisticated.
2
2. Quality of Service
QoS can be characterized by a number of specific
parameters. OSI transport service allows the applications to
specify preferred, acceptable, and unacceptable values for
these parameters at the time a connection is set up.
3. Throughput
4. Transit delay
9. Protection
10. Priority
3
3. Transport Service
Provided to the session layer.
Connection-less Service:
Service Primitives:
T - UNITDATA.request (callee, caller, qos, user_data)
T - UNITDATA.indication (callee, caller, qos, user_data)
Three phases:
• Transport Connection (TC) establishment
(This is a logical connection)
• Data Transfer
• Transport Connection Release
Service Primitives:
T - CONNECT.request (callee, caller, exp_wanted, qos, user_data)
T - CONNECT.indication (callee, caller, exp_wanted, qos, user_data)
T - CONNECT.response (qos, responder, exp_wanted, user_data)
T - CONNECT.confirm (qos, responder, exp_wanted, user_data)
T - DISCONNECT.request (user_data)
T - DISCONNECT.indication (reason, user_data)
T - DATA.request (user_data)
T - DATA.indication (user_data)
T - EXPEDITED - DATA. request (user_data)
T - EXPEDITED - DATA. indication (user_data)
4
Terminology:
• Callee: Transport address (TSAP) to be called
• Caller: Transport address (NSAP) used by calling
transport entity
• Exp_wanted: Boolean flag specifying whether
expedited data will be sent
• Qos: Quality of service desired
• User_data: 0 or more bytes of data transmitted but
not examined
• Reason: Why did it happen
• Responder: Transport address connected to at the
destination
4. Transport Protocol
Two transport layer entities communicate with each other by
exchanging TPDUs.
5
The use of each TPDU will be described in relation to the
various services previously described.
6
5.1.2. TCP connection establishment
• Allow each end to now the other exists and willing to
communicate
• Negotiation of optional parameters for the
communication
• At both ends: Allocation of transport entity resources
done at this time.
7
2-way handshake Æ obsolete SYN Æ problems …
8
There is a need for 3-way handshaking
9
5.1.3. Connection Termination
One scenario:
On one side:
• A Transport Service (TS) user calls Close request primitive
• Transport entity (TE) sends FIN segement, requesting
termination
• Connection on this side is placed in FIN WAIT state
• Continue to accept data from the other TE and deliver data to
user
• User does not send any more data from this side
• When FIN received from the other TE, informs user and closes
connection
10
11
5.1.5. Flow Control
Fixed size Sliding Window does not work properly, because
of unreliable networks, and variable conditions for the TCP
entity …
Credit Scheme:
12
5.1.6. Error Detection
Checksum Algorithm is used: It is more adapted to software
implementations than CRC.
Checksum not only for the header, but for the whole
segment.
Window Management
• Slow start
1. awnd = MIN[credit, cwnd]
2. Start connection with cwnd=1
3. Increment cwnd at each ACK, to some max
Problems …
13
5.2 User Datagram Protocol (UDP)
Connectionless service: Segments may arrive in disorder,
corrupted, and forwarded to the application as they
arrive.
Header format
14
15