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.

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.
|