The Transport Layer

   Transport Layer Services

The Transport Layer provides reliable, cost-effective data transmission, despite a possibly unreliable network underneath it, and it insulates the higher levels from all concerns about the transportation of data.

Basic services provided by the Transport Layer include:

Addressing

Connection management

Flow control and buffering

Multiplexing and parallelization

Reliable and sequenced delivery

Service quality management

Addressing

The Transport Layer delivers data to a specific process within a node. The Transport Layer must also keep track of multiple "connections" between different pairs of processes, because many processes on the same node may be communicating simultaneously. For example, the same user may be accessing a Web server on one computer, downloading a file from another, and checking e-mail on a third. Conversely, a single Web server may host a Web server application, e-mail application, and file repository.

Each node is identified by its network address. Each process is identified by a number called a "port number." When establishing a connection, the sending Transport Layer process passes to the Network Layer both the network address of the target host and the port number of the target application process.

The network address becomes part of the Network Layer header. The port number is placed in the data's Transport Layer header. For convenience, frequently used processes are assigned "well-known" port numbers that are published among the technical community. For example, Hypertext Transfer Protocol (HTTP) for Web access is accessed by means of Port 80.

Why are multiple addresses needed in computer networking systems?

Click on the audio link for the answer.

Real Audio Clip

Connection Management

The Transport Layer is responsible for establishing and releasing connections between processes. When a connection is established, both peer processes are aware of the communication taking place between them. Essentially, they first agree to communicate, then cooperate to exchange data. In contrast, lower layers are only aware of one packet, frame, or bit at a time.

On each node, the Transport Layer allocates resources, such as memory, that the task will require. During data transfer, the Transport Layer processes on both hosts communicate to verify that data is being received without errors or loss. If the established connection fails because of network problems, both computers will detect the failure and report it to the appropriate higher layer application. When the communication is complete, the peer proceses terminate the connection to free up resources for other processes.

Flow Control and Buffering

Each node on a network is capable of receiving data at a certain rate, which is determined by the computing capacity of its computer and other factors. Each node also has a certain amount of processor memory available to store data. If data arrives too fast for the receiving node to process it, or more data arrives than the node can store, the excess data is simply lost, like water spilling over a full bucket.

The Transport Layer is responsible for ensuring that the receiving node has enough memory buffers to store the incoming data, and that data is not transmitted faster than the receiving node can accept it.