Transport services allow users to segment and reassemble several upper-layer applications onto the same transport layer data stream.
It also establishes the end-to-end connection, from your host to another host. As the transport layer sends its segments, it can also ensure data integrity. Essentially the transport layer opens up the connection from your system through a network and then through a wide area cloud to the receiving system at the other end.
– Segments upper-layer applications
– Establishes an end-to-end connection
– Sends segments from one end host to another
– Optionally, ensures data reliability
Transport Layer— Segments Upper-Layer Applications
The transport layer has several functions. First, it segments upper layer application information. You might have more than one application running on your desktop at a time. You might be sending electronic mail open while transferring a file from the Web, and opening a terminal session. The transport layer helps keep straight all of the information coming from these different applications.
Transport Layer— Establishes Connection
Another function of the transport layer is to establish the connection from your system to another system. When you are browsing the Web and double-click on a link your system tries to establish a connection with that host. Once the connection has been established, there is some negotiation that happens between your system and the system that you are connected to in terms of how data will be transferred. Once the negotiations are completed, data will begin to transfer. As soon as the data transfer is complete, the receiving station will send you the end message and your browser will say done. Essentially, the transport layer is responsible then for connecting and terminating sessions from your host to another host.
Transport Layer— Sends Segments with Flow Control
Another important function of the transport layer is to send segments and maintain the sending and receiving of information with flow control.
When a connection is established, the host will begin to send frames to the receiver. When frames arrive too quickly for a host to process, it stores them in memory temporarily. If the frames are part of a small burst, this buffering solves the problem. If the traffic continues, the host or gateway eventually exhausts its memory and must discard additional frames that arrive.
Instead of losing data, the transport function can issue a not ready indicator to the sender. Acting like a stop sign, this indicator signals the sender to discontinue sending segment traffic to its peer. After the receiver has processed sufficient segments that its buffers can handle additional segments, the receiver sends a ready transport indicator, which is like a go signal. When it receives this indicator, the sender can resume segment transmission.
Transport Layer— Reliability with Windowing
In the most basic form of reliable connection-oriented data transfer, a sequence of data segments must be delivered to the recipient in the same sequence that they were transmitted. The protocol here represents TCP. It fails if any data segments are lost, damaged, duplicated, or received in a different order. The basic solution is to have a receiving system acknowledge the receipt of every data segment.
If the sender had to wait for an acknowledgment after sending each segment, throughput would be low. Because time is available after the sender finishes transmitting the data segment and before the sender finishes processing any received acknowledgment, the interval is used for transmitting more data. The number of data segments the sender is allowed to have outstanding–without yet receiving an acknowledgment– is known as the window.
In this scenario, with a window size of 3, the sender can transmit three data segments before expecting an acknowledgment. Unlike this simplified graphic, there is a high probability that acknowledgments and packets will intermix as they communicate across the network.
Transport Layer— An Acknowledgement Technique
Reliable delivery guarantees that a stream of data sent from one machine will be delivered through a functioning data link to another machine without duplication or data loss. Positive acknowledgment with retransmission is one technique that guarantees reliable delivery of data streams. Positive acknowledgment requires a receiving system or receiver to communicate with the source, sending back an acknowledgment message when it receives data. The sender keeps a record of each packet it sends and waits for an acknowledgment before sending the next packet.
In this example, the sender is transmitting packets 1, 2, and 3. The receiver acknowledges receipt of the packets by requesting packet number 4. The sender, upon receiving the acknowledgment sends packets 4, 5, and 6. If packet number 5 does not arrive at the destination, the receiver acknowledges with a request to resend packet number 5. The sender resends packet number 5 and must receive an acknowledgment to continue with the transmission of packet number 7.
Transport to Network Layer
The transport layer assumes it can use the network as a given “cloud” as segments cross from sender source to receiver destination.
If we open up the functions inside the “cloud,” we reveal issues like, “Which of several paths is best for a given route?” We see the role that routers perform in this process, and we see the segments of Layer 4 transport further encapsulated into packets.