Transport Layer: Internet Protocol Suite
Transport Layer: Internet Protocol Suite
Transport Layer: Internet Protocol Suite
Transport layer
Internet
protocol suite
Application layer
BGP
DHCP
DHCPv6
DNS
FTP
HTTP
IMAP
IRC
LDAP
MGCP
NNTP
NTP
POP
RPC
RTP
RTSP
RIP
SIP
SMTP
SNMP
SOCKS
SSH
Telnet
TLS/SSL
XMPP
more...
Transport layer
TCP
UDP
DCCP
SCTP
RSVP
more...
Internet layer
IP
IPv4
IPv6
ICMP
ICMPv6
ECN
IGMP
IPsec
more...
Transport layer
2
Link layer
ARP/InARP
NDP
OSPF
Tunnels
L2TP
PPP
Ethernet
DSL
ISDN
FDDI
DOCSIS
more...
v
t
e [1]
In computer networking, a transport layer provides end-to-end or host-to-host communication services for
applications within a layered architecture of network components and protocols.[2] The transport layer provides
services such as connection-oriented data stream support, reliability, flow control, and multiplexing.
Transport layer implementations are contained in both the TCP/IP model (RFC 1122),[3] which is the foundation of
the Internet, and the Open Systems Interconnection (OSI) model of general networking, however, the definitions of
details of the transport layer are different in these models. In the Open Systems Interconnection model the transport
layer is most often referred to as Layer 4.
The best-known transport protocol is the Transmission Control Protocol (TCP). It lent its name to the title of the
entire Internet Protocol Suite, TCP/IP. It is used for connection-oriented transmissions, whereas the connectionless
User Datagram Protocol (UDP) is used for simpler messaging transmissions. TCP is the more complex protocol, due
to its stateful design incorporating reliable transmission and data stream services. Other prominent protocols in this
group are the Datagram Congestion Control Protocol (DCCP) and the Stream Control Transmission Protocol
(SCTP).
The OSI
model
7 Application layer
6 Presentation layer
5 Session layer
4 Transport layer
3 Network layer
2 Data link layer
LLC sublayer
MAC sublayer
1 Physical layer
v
t
e [4]
Transport layer
Services
Transport layer services are conveyed to an application via a programming interface to the transport layer protocols.
The services may include the following features:
Connection-oriented communication: It is normally easier for an application to interpret a connection as a data
stream rather than having to deal with the underlying connection-less models, such as the datagram model of the
User Datagram Protocol (UDP) and of the Internet Protocol (IP).
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. This is usually done through the use of segment
numbering, with the receiver passing them to the application in order. This can cause head-of-line blocking.
Reliability: Packets may be lost during transport due to network congestion and errors. By means of an error
detection code, such as a checksum, the transport protocol may check that the data is not corrupted, and verify
correct receipt by sending an ACK or NACK message to the sender. Automatic repeat request schemes may be
used to retransmit lost or corrupted data.
Flow control: The rate of data transmission between two nodes must sometimes be managed to prevent a fast
sender from transmitting more data than can be supported by the receiving data buffer, causing a buffer overrun.
This can also be used to improve efficiency by reducing buffer underrun.
Congestion avoidance: Congestion control can control traffic entry into a telecommunications network, so as to
avoid congestive collapse by attempting to avoid oversubscription of any of the processing or link capabilities of
the intermediate nodes and networks and taking resource reducing steps, such as reducing the rate of sending
packets. For example, automatic repeat requests may keep the network in a congested state; this situation can be
avoided by adding congestion avoidance to the flow control, including slow-start. This keeps the bandwidth
consumption at a low level in the beginning of the transmission, or after packet retransmission.
Multiplexing: Ports can provide multiple endpoints on a single node. For example, the name on a postal address is
a kind of multiplexing, and distinguishes between different recipients of the same location. Computer applications
will each listen for information on their own ports, which enables the use of more than one network service at the
same time. It is part of the transport layer in the TCP/IP model, but of the session layer in the OSI model.
Analysis
The transport layer is responsible for delivering data to the appropriate application process on the host computers.
This involves statistical multiplexing of data from different application processes, i.e. forming data packets, and
adding source and destination port numbers in the header of each transport layer data packet. Together with the
source and destination IP address, the port numbers constitutes a network socket, i.e. an identification address of the
process-to-process communication. In the OSI model, this function is supported by the session layer.
Some transport layer protocols, for example TCP, but not UDP, support virtual circuits, i.e. provide connection
oriented communication over an underlying packet oriented datagram network. A byte-stream is delivered while
hiding the packet mode communication for the application processes. This involves connection establishment,
dividing of the data stream into packets called segments, segment numbering and reordering of out-of order data.
Finally, some transport layer protocols, for example TCP, but not UDP, provide end-to-end reliable communication,
i.e. error recovery by means of error detecting code and automatic repeat request (ARQ) protocol. The ARQ protocol
also provides flow control, which may be combined with congestion avoidance.
UDP is a very simple protocol, and does not provide virtual circuits, nor reliable communication, delegating these
functions to the application program. UDP packets are called datagrams, rather than segments.
TCP is used for many protocols, including HTTP web browsing and email transfer. UDP may be used for
multicasting and broadcasting, since retransmissions are not possible to a large amount of hosts. UDP typically gives
higher throughput and shorter latency, and is therefore often used for real-time multimedia communication where
Transport layer
packet loss occasionally can be accepted, for example IP-TV and IP-telephony, and for online computer games.
In many non-IP-based networks, for example X.25, Frame Relay and ATM, the connection-oriented communication
is implemented at network layer or data link layer rather than the transport layer. In X.25, in telephone network
modems and in wireless communication systems, reliable node-to-node communication is implemented at lower
protocol layers.
The OSI connection-mode transport layer protocol specification defines five classes of transport protocols: TP0,
providing the least error recovery, to TP4, which is designed for less reliable networks.
Protocols
This list shows some protocols that are commonly placed in the transport layers of TCP/IP, OSI, NetWare's
IPX/SPX, AppleTalk, and Fibre Channel.
UDP
UDP Lite
8 bytes
TCP
8 bytes
Multipath TCP
SCTP
DCCP
12 bytes
12 or 16 bytes
Datagram Datagram
RUDP
Datagram
Connection oriented
No
No
Yes
Yes
Yes
Yes
Yes
Reliable transport
No
No
Yes
Yes
Yes
No
Yes
Unreliable transport
Yes
Yes
No
No
Yes
Yes
Yes
Yes
Yes
No
No
Yes
Yes
Yes
Ordered delivery
No
No
Yes
Yes
Yes
No
Yes
Unordered delivery
Yes
Yes
No
No
Yes
Yes
Yes
Data checksum
Optional
Yes
Yes
Yes
Yes
Yes
Unsure
16
16
16
16
32
16
Unsure
Partial checksum
No
Yes
No
No
No
Yes
No
Path MTU
No
No
Yes
Yes
Yes
Yes
Unsure
Flow control
No
No
Yes
Yes
Yes
No
Yes
Transport layer
Congestion control
No
No
Yes
Yes
Yes
Yes
Unsure
No
No
Yes
Yes
Yes
Yes
Multiple streams
No
No
No
Yes
Yes
No
No
Multi-homing
No
No
No
Yes
Yes
No
No
Bundling / Nagle
No
No
Yes
Yes
Yes
No
Unsure
Connectionless network
No
No
No
Error Recovery
No
Yes
No
Yes Yes
No
Yes
No
Yes
No
No
No
No
Retransmission on timeout
No
No
No
No
No
Yes
No
Yes Yes
No
No
Yes
No
Yes
There is also a connectionless transport protocol, specified by ISO/IEC 8602/ITU-T Recommendation X.234.
References
[1]
[2]
[3]
[4]
License
Creative Commons Attribution-Share Alike 3.0
//creativecommons.org/licenses/by-sa/3.0/