|The basic function of the transport layer, is to
accept data from the session layer, split it up into smaller
units if need be, pass these to the network layer, and ensure
that the pieces all arrive correctly at the other end.
Furthermore, all this must be done efficiently, and in a way
that isolates the session layer from the inevitable changes in
the hardware technology.
Under normal conditions, the transport layer creates a
distinct network connection for each transport connection
required by the session layer. If the transport connection
requires a high throughput, however, the transport layer might
create multiple network connections, dividing the data among
the network connections to improve throughput. On the other
hand, if creating or maintaining a network connection is
expensive, the transport layer might multiplex several
transport connections onto the same network connection to
reduce the cost. In all cases, the transport layer is required
to make the multiplexing transparent to the session layer.
The transport layer also determines what type of service to
provide to the session layer, and ultimately, the users of the
network. The most popular type of transport connection is an
error-free point-to-point channel that delivers messages in
the order in which they were sent. However, other possible
kinds of transport, service and transport isolated messages
with no guarantee about the order of delivery, and
broadcasting of messages to multiple destinations. The type of
service is determined when the connection is established.
The transport layer is a true source-to-destination or
end-to-end layer. In other words, a program on the source
machine carries on a conversation with a similar program on
the destination machine, using the message headers and control
Many hosts are multi-programmed, which implies that
multiple connections will be entering and leaving each host.
There needs to be some way to tell which message belongs to
which connection. The transport header is one place this
information could be put.
In addition to multiplexing several message streams onto
one channel, the transport layer musk take care of
establishing and deleting connections across the network. This
requires some kind of naming mechanism, so that process on one
machine has a way of describing with whom it wishes to
converse. There must also be a mechanism to regulate the flow
of information, so that a fast host cannot overrun a slow one.
Flow control between hosts is distinct from flow control
between switches, although similar principles apply to both.