The Transport Layer

Download Report

Transcript The Transport Layer

The Transport Layer (L4)
• Provides an end-to-end,
reliable transport service
between l4 entities
– Reliable - error-free, insequence, no loss or duplication
• Typically connection-oriented
– can be connectionless
– depends on needs of application
ISO Transport Layer
• ISO classify subnets as type A, B
and C
– (reliable to unreliable)
• Define 5 different Layer 4
protocols to operate over these
3 types
• Class 4 protocols (TP4) is
defined to operate over an
unreliable network
• TP4 functionality almost
identical to TCP
Connection oriented service
• typical 3 phase connection
– establish connection
– data transfer
– terminate connection
• T-Connect, T-Data, TDisconnect services, with
service primitives
–
–
–
–
.request
.indication
.response
.confirm
• Parameters associated with
primitives, e.g.
– Addressing
– Quality of Service parameters
• Addresses are T-SAP
identifiers
– (Sockets in TCP/IP
terminology)
– Can be well known addresses
– Can be ‘discovered’ at
connection set-up time
• T-Connect can then be
directed to appropriates
– address, T-SAP identifier
(socket)
• Quality of service is
negotiated.
– Source specifies requirements
– network and destination agree
or modify these.
• Typical QoS parameters
– throughput, end-to-end delay,
error rate, etc
• Connection requests can be
denied by local or remote L4
entity
• L4 has very similar
functionality to L2 (link
layer), but
– L2 operates (typically) across a
link
– L4 operates end-to-end (across
a network)
• Main issues are:– Connection establishment and
termination.
– Error and flow control
– Buffering and multiplexing.
• The problems arising from
these issues are:– how to guarantee ordered
delivery of PDUs to the users
– how to ensure that only
legitimate connections are
established
– how to ensure that connections
are broken down in a proper
manner
– how to ensure that connections
are terminated correctly
– how to separate
acknowledgements from flow
control, i.e.
• Tell source everything has arrived
OK
• send / don’t send any more (yet)
• Ordered delivery
– relies on every (data) TPDU
being numbered
– SREJ typically used at L4 for
error recovery, this impacts on
• number of TPDUs which can be ‘in
transit’
– remember connection is across a
network
» connection distance is long
– potential inefficient use of channel
capacity
– need long sequence numbers
• buffering at destination
• Long connection distance can
cause other problems
– if connectionless layer 3 in
operation
• TPDUs can take different routes
• therefore can get delayed (lost)
– Can’t therefore allow same
sequence numbers to be reused
between different connections
• else a delayed TPDU, from a
terminated call, could arrive and be
accepted
– Initial Sequence Numbers
defined at connection
establishment
• Connection establishment
phase - three-way handshake
– CR(Connection Request) sent
by source, with proposed start
sequence no
• CR(ISN = x)
– CC (Connect Confirm) sent by
destination, with ack of x, and
their own start sequence no
• CC(ISN=y, ack=x)
– Source acks CC
• ACK(seq = x, ack=y)
– Only valid connections will be
established
• Connection Termination
– Three way handshake also used
to ensure all TPDUs have
arrived before connection
terminated
– TPDUs are DR and DC, e.g.
• DR(last sent = a, ack =b)
• DC(last sent = b + 2, ack = a)
• Ack(last sent = a, ack = b+2)
– Connection will remain opern
until final Ack is received
• Error Control
– Typical ARQ, but with sequence
numbers constraints outlined
above
• clearly includes acks,
retransmissions, etc, as appropriate
– Can also use checksum on data
Flow Control
• Flow Control is a more
difficult problem
– SREJ typically used for error
recovery
• essential if error control is across the
network
• essential if connectionless network
(L3) under L4
– Need to buffer out of sequence
frames
– Need large buffers at
destination, to buffer out of
sequence TPDUs
• Hence, Ack cannot be
misinterpreted as meaning
– ‘I have acked another 2 TPDUs’
– ‘So, you can send 2 more
TPDUs’
• Ack means TPDUs have
arrived correctly
• Permission to transmit more
data must be signalled
separately
– this is a flow control issue
• Mechanics of separate Acks
and Flow Control
– Acks (and certain other TPDUs)
have a separate CR(credit field)
• e.g. (AK=n, CR=m)
• Acking upto TPDU n, permission to
send m TPDUs (after n)
• Flow control is achieved by
adjusting value of m
• m may be zero
– Timers used (as for L2) to
ensure deadlock doesn’t occur
Multiplexing
• Upwards and Downwards
multiplexing allowed
• Upwards Multiplexing
– Several transport connections
using one layer 3 connection
– Multiple calls to the same
destination
• Downwards Multiplexing
– One L4 connection spread over
multiple L3 connections
– Necessary if L3 connect slow,
and high data rate to transmit
• One-to-one multiplexing more
common
Summary - L4 Functionality
• To insulate application (upper
layers from subnet (lower 3
layers)
• End-to-end (connection
oriented) service
– Ordered delivery of TPDUs
• Issues and sequence number
selection and sequence number
length
– Ensuring only valid connections
accepted
• Need for 3 way hand shake
– Ensuring connections
terminated correctly