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
The transport layer of the TCP/IP protocol suite is responsible for providing reliable data transfer services to the upper layers. Its main functions include:
- Segmentation and Reassembly: The transport layer divides large messages into smaller segments for transmission and reassembles them at the destination.
- Connection Establishment and Termination: It manages the setup and teardown of connections between hosts. This includes the three-way handshake process for establishing a connection and a similar process for closing it.
- Flow Control: The transport layer ensures that a sender does not overwhelm a receiver by sending too much data too quickly. This is managed through mechanisms like sliding windows.
- Error Detection and Correction: It detects and corrects errors in transmitted segments. Checksums are used to verify data integrity, and corrupted segments are retransmitted.
- Data Integrity: The transport layer ensures that data is delivered without duplication or loss and in the correct order.
- Multiplexing and Demultiplexing: It allows multiple applications to use the network simultaneously. By using ports, the transport layer can direct incoming data to the appropriate application process.
- Reliable Transmission: For protocols like TCP, the transport layer provides reliability through acknowledgments and retransmissions of lost or corrupted segments.
Protocols in the Transport Layer
- TCP (Transmission Control Protocol): A connection-oriented protocol that provides reliable, ordered, and error-checked delivery of a stream of data.
- UDP (User Datagram Protocol): A connectionless protocol that provides a lightweight, low-latency communication service without guaranteed delivery, order, or error checking.
In summary, the transport layer is crucial for ensuring that data is transferred accurately, efficiently, and reliably across the network.
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.