TCP/IP Concepts   «Prev  Next»

Lesson 5 The transport layer of the TCP-IP Protocol
Objective Responsibilities of transport layer of TCP/IP protocol

Transport Layer of the TCP/IP Protocol

What are the responsibilities of the transport layer of the TCP/IP protocol?
The Transport Layer in the TCP/IP protocol stack plays a crucial role in providing end-to-end communication services for applications. It enables network hosts to communicate data across the network more easily and efficiently. The key responsibilities of the Transport Layer are:
  1. Connection Management: One of the Transport Layer's primary responsibilities is establishing, maintaining, and terminating connections between communicating hosts. Depending on the protocol being used, these connections may be connection-oriented, such as with TCP (Transmission Control Protocol), or connectionless, like UDP (User Datagram Protocol).
  2. Reliable Transmission: In TCP/IP, the TCP protocol at the Transport Layer provides reliable transmission. This means that it guarantees the delivery of packets to the destination host. If a packet is lost during transmission, TCP detects this loss and resends the packet. TCP also provides acknowledgements of received packets.
  3. Flow Control: TCP at the Transport Layer manages the rate of data transmission between two network hosts. This is to ensure that a fast sender cannot overwhelm a slow receiver with more data than it can process at a given time. Flow control mechanisms prevent network congestion and ensure efficient use of network resources.
  4. Error Checking: Both TCP and UDP include a checksum with each segment to verify the integrity of data. If the receiving host detects an error in a packet (via a mismatched checksum), TCP can request retransmission of that packet.
  5. Segmentation and Reassembly: The Transport Layer breaks large chunks of data into smaller segments for transmission. Upon receiving these segments, it's also the Transport Layer's responsibility to reassemble them back into the original data for the application layer. Each segment includes a sequence number, allowing for proper reassembly at the destination.
  6. Multiplexing: The Transport Layer allows multiple applications to use the network simultaneously. It uses port numbers to direct incoming data to the correct application on the destination host. This is akin to a post office using a PO Box number to correctly route mail to individuals.
  7. Congestion Avoidance: TCP includes mechanisms for congestion avoidance, reducing the transmission rate when signs of network congestion are detected. This helps maintain network performance during high-usage periods.

The Transport Layer provides essential services that allow networked applications to communicate effectively. By managing connections, ensuring reliable transmission, controlling the flow of data, checking for errors, handling segmentation and reassembly, enabling multiplexing, and avoiding congestion, the Transport Layer plays a critical role in the smooth operation of the TCP/IP protocol stack.
Question: What are the responsibilities of the transport layer of the TCP/IP protocol?
The transport layer handles the problem of directing information between processes, rather than just between machines.
For example, a single machine may be involved in many network transactions at the same time, including FTP[1] sessions, telnet sessions, and World Wide Web (HTTP)[2] sessions.
The transport layer ensures that traffic intended for the FTP service reaches the process responsible for that service, separately from traffic intended for the HTTP and other services. The two transport-layer protocols in TCP/IP networking are called the User Datagram Protocol (UDP)[3] and the Transmission Control Protocol (TCP).

Transport Layer Security (TLS and DTLS)

So far we have discussed security protocols at layers 2 and 3. The most widely used protocol for security operates just above the transport layer and is called Transport Layer Security (TLS). TLS is used for securing Web communications and for several other popular protocols, including POP and IMAP (which are called POP3S and IMAPS, respectively, when protected with TLS). One reason for TLS's popularity is that it can be implemented within or underneath applications that ride on top of the lower layers, whereas protocols such as EAP and IPsec usually require capabilities within the operating systems and protocol implementations of hosts and embedded devices.
There are several versions of TLS and its predecessor, the Secure Sockets Layer (SSL) [RFC6101]. We shall focus on TLS version 1.2 [RFC5246], which is the mostrecent at the time of writing. TLS 1.2 can support backward compatibility with most older versions of TLS and SSL (e.g., TLS 1.0, 1.1, and SSL 3.0). However, SSL 2.0 is weaker, and while interoperability with it is possible, it is now prohibited [RFC6176]. After discussing TLS 1.2, which operates over a stream-oriented protocol (usually TCP), we will look at the datagram-oriented variant called the Datagram Transport Layer Security (DTLS) [RFC4347]. DTLS is slowly gaining popularity for some applications such as VPN implementations that do not use IPsec. Its current specification is based on TLS 1.1 [RFC4346], but updates are under way [IDDTLS].

The TCP transport-layer protocol adds reliability to the process-level addressing capabilities it shares with UDP. TCP can create a reliable connection on top of the underlying unreliable network and link-layer protocols.
This connection is necessary because the link and network layers make no guarantees regarding delivery of information, nor do they arrange to acknowledge receipt of information. By some sophisticated software techniques, TCP overcomes the underlying unreliability of the lower-level protocols.

[1]File Transfer Protocol (FTP) : Protocol used to transfer data over a network.
[2] Hypertext Transfer Protocol (HTTP) : Hypertext Transport Protocol defines how messages are formatted and transmitted over the Web and how Web browsers should respond to those messages.
[3] User Datagram Protocol: A connectionless datagram service in the Transport layer used by applications that typically transmit small quantities of data.