The transport layer is layer four of the seven
layer OSI model (Wikipedia 2006). It responds to service requests
from the session layer and issues service requests to the network
layer (Wikipedia 2006).
"The transport layer provides transparent
transfer of data between hosts. It is usually responsible for
end-to-end error recovery and flow control, and ensuring complete
data transfer. In the Internet protocol suite this function is
achieved by the connection oriented Transmission Control Protocol
(TCP). (The datagram-type transport, User Datagram Protocol (UDP),
provides neither error recovery, nor flow control, leaving these to
the application.) " (Wikipedia 2006)
The purpose of the Transport layer is to
provide transparent transfer of data between end users, thus
relieving the upper layers from any concern with providing reliable
and cost-effective data transfer (Wikipedia 2006).
The transport layer usually turns the
unreliable and very basic service provided by the Network layer
into a more powerful one (Wikipedia 2006). There is a long list of
services that can be optionally provided at this level (Wikipedia
2006). None of them are compulsory, because not all applications
want all the services available (Wikipedia 2006). Some can be
wasted overhead, or even counterproductive in some cases (Wikipedia
2006). These services are summarised by (Wikipedia 2006) as:
- Connection-Oriented. This is normally easier to deal with
than connection-less models, so where the Network layer only
provides a connection-less service, often a connection-oriented
service is built on top of that in the Transport layer.
- Same Order Delivery. The Network layer doesn't generally
guarantee that packets of data will arrive in the same order that
they were sent, but often this is a desirable feature, so the
Transport layer provides it. The simplest way of doing this is to
give each packet a number, and allow the receiver to reorder the
packets.
- Reliable Data. The underlying network may well be noisy, and
the data received may not always be the same as the data sent. The
Transport layer can fix this: typically by providing a checksum of
the data which detects if there has been a glitch of some kind. Of
course, error free is impossible, but it is possible to
substantially reduce the numbers of undetected errors. This layer
may also retransmit packets which have gone missing en
route.
- Flow Control. The amount of memory on a computer is limited,
and without flow control a larger computer might flood a computer
with so much information that it can't hold it all before dealing
with it. Nowadays, this is not a big issue, as memory is cheap
while bandwidth is comparatively expensive, but in earlier times it
was more important. Flow control allows the receiver to say "Whoa!"
before it is overwhelmed. Sometimes this is already provided by the
network, but where it is not, the Transport layer may add it
on.
- Byte Orientation. Rather than dealing with things on a
packet-by-packet basis, the Transport layer may add the ability to
view communication just as a stream of bytes. This is nicer to deal
with.
- Ports. Ports are essentially ways to address multiple
entities in the same location. For example, the first line of a
postal address is a kind of port, and distinguishes between
different occupants of the same house. Computer applications will
each listen for information on their own ports, which is why you
can use more than one network-based application at the same
time.
Some things, such as connection orientation
can be implemented at either Transport or Network layer (Wikipedia
2006). The idea is that the Network layer implements whatever set
of options is easiest: for some underlying networks it is easiest
to implement connectionless communication, while for others it is
easiest to implement connection oriented communication (Wikipedia
2006). The Transport layer uses this simplest set of options to
implement whatever combinations of options are actually desired
(Wikipedia 2006).
Examples: These examples are extracted from
(Wikipedia 2006).
- AppleTalk Echo Protocol (AEP)
- AppleTalk Transaction Protocol (ATP)
- CUDP
- IL
- NBP
- NetBEUI
- RTMP
- SPX
- TCP
- UDP
- SCTP
- RTP
References:
Wikipedia. "Transport layer", Wikimedia
Foundation Inc,
http://en.wikipedia.org/wiki/Transport_layer, Last accessed
14 February 2006.
Brandon Hodgson