In computing and telecommunications,
the transport layer is layer four of the seven layer OSI model.
It responds to service requests from the session layer and issues service requests
to the network layer.
The transport layer provides transparent transfer of data
between hosts. It is responsible for end-to-end error recovery and flow control.
It ensures complete data transfer. In the IP protocol Stack this function is
achieved by the connection oriented Transmission Control Protocol (TCP) or the
datagram type User Datagram Protocol (UDP). 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.
The transport layer turns the unreliable and very basic service
provided by the Network layer into one worthy of the term 'Communication'. There
is a long list of services that can be optionally provided at this level. None
of them are compulsory, because not all applications want all the services available.
Some can be wasted overhead, or even counterproductive in some cases.
- 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.
- Error 'Free' 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.
On the internet there are a variety
of Transport services, but the two most common are TCP and UDP. TCP is the more
complicated, providing a connection and byte oriented stream which is almost
error free, with flow control, multiple ports, and same order delivery. UDP
is a very simple 'datagram' service, which provides limited error reduction
and multiple ports. TCP stands for Transmission Control Protocol, while UDP
stands for User Datagram Protocol.
Some things, such as connection orientation
can be implemented at either Transport or Network layer. 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. The Transport
layer uses this simplest set of options to implement whatever combinations of
options are actually desired.
Examples
- AEP
- AMTP
- AppleTalk Transaction Protocol
(ATP)
- CUDP
- IL
- NBP
- NetBEUI
- RTMP
- SMB
- SPX
- TCP
- UDP
- SCTP
- RTP
|