Main Page>Table of contents>Transport Layer>
Services located in the Transport layer both segment and reassemble data from upper-layer applications and unite it onto the same data stream. They provide end-to-end data transport services and can establish a logical connection between the sending host and destination host on an internetwork.
The Transport layer is responsible for providing mechanisms for multiplexing upper-layer application, session establishment, and teardown of virtual circuits. It also hides details of any network-dependent information from the higher layers by providing transparent data transfer.
Data integrity is ensured at the Transport layer by maintaining flow control and allowing users the option of requesting reliable data transport between systems. Flow control prevents a sending host on one side of the connection from overflowing the buffers in the receiving host—an event that can result in lost data. Reliable data transport employs a connection-oriented communicationssession between systems, and the protocols involved ensure the following will be achieved:
In reliable transport operation, one device first establishes a connection-oriented session with its peer system. In it, both hosts’ application programs begin by notifying their individual operating systems that a connection is about to be initiated. The two operating systems communicate by sending messages over the network confirming that the transfer is approved and that both sides are ready for it to take place. Once the required synchronization is complete, a connection is fully established and the data transfer begins.
While the information is being transferred between hosts, the twomachines periodically check in with each other, communicating through their protocol software to ensure that all is going well and that the data is being received properly.
During a transfer, congestion can occur because a high-speed computer is generating data traffic faster than the network can transfer it or because many computers are simultaneously sending datagrams through a single gateway or destination. In the latter case, a gateway or destination can become congested even though no single source caused the problem. In either case, the problem is basically akin to a freeway bottleneck—too much traffic for too small a capacity. Usually, no one car is the problem; there are simply too many cars on that freeway.
When a machine receives a flood of datagrams too quickly for it to process, it stores them in a memory section called a buffer. This buffering action solves the problem only if the datagrams are part of a small burst. However, if the datagram deluge continues, a device’s memory will eventually be exhausted, its flood capacity will be exceeded, and it will discard any additional datagrams that arrive.
But, no worries—because of the transport function, network flood control systems work quite well. Instead of dumping resources and allowing data to be lost, the transport can issue a “not ready” indicator to the sender, or source, of the flood. This mechanism works kind of like a stoplight, signaling the sending device to stop transmitting segment traffic to its overwhelmed peer. After the peer receiver processes the seg-ments already in its memory reservoir, it sends out a “ready” transport indicator.
When the machine waiting to transmit the rest of its datagrams receives this “go” indictor, it then resumes its transmission.
Data throughput would be low if the transmitting machine had to wait for an acknowledgment after sending each segment. Because there’s time available after the sender transmits the data segment and before it finishes processing acknowledgments from the receiving machine, the sender uses the break to transmit more data. The quantity of data segments the transmitting machine is allowed to send without receiving an acknowledgment for them is called a window.
Windowing controls how much information is transferred from one end to the other. While some protocols quantify information by observing the number of packets, TCP/IP measures it by counting the number of bytes. When a window size of 1 is configured, the sending machine waits for an acknowledgment for each data segment it transmits before transmitting another.
Configured to a window size of 3, it’s allowed to transmit three data segments before an acknowledgment is received. In our simplified example, both the sending and receiving machines are workstations. Reality is rarely that simple, and most often acknowledgments and packets will commingle as they travel over the network and pass through routers.
Reliable data delivery ensures the integrity of a stream of data sent from one machine to the other through a fully functional data link. It guarantees the data won’t be duplicated or lost. The method that achieves this is known as positive acknowledgment with retransmission. This technique requires a receiving machine to communicate with the transmitting source by sending an acknowledgment message back to the sender when it receives data. The sender documents each segment it sends and waits for this acknowledgment before sending the next segment. When it sends a segment, the transmitting machine starts a timer and retransmits if it expires before an acknowledgment is returned from the receiving end.