The previous chapter described the connectionless packet delivery service provided by IP and the companion protocol used to report errors. This chapter examines TCP, the major transport protocol in the TCP/IP suite, and explains how the protocol provides reliable delivery.
TRANSPORT PROTOCOLS
So far we have primarily dealt with network operations. Frame format, routing, congestion control and addressing are all essential to allow one station to talk to another. But how they talk with each other is equally important. A transport protocol is the lowest-layer protocol that defines what one station can say to another on behalf of the user. The lower three layers define how a network operates; the transport layer is the first to define the end-user protocol.
There are similarities between the transport and the data link protocols, in that, both focus on how information is exchanged between two entities. However, data link protocols define communication between stations with a physical connection. Connection-oriented transport protocols define communications between sites with a logical connection. There are also connectionless transport protocols, but for now we will just consider a connection-oriented protocol.
The transport layer also provides the "connection" the user perceives. For example, users can log on to computers at remote sites, giving them the impression they are connected but without connection wires or making telephone calls. There is not necessarily a dedicated circuit devoted to transmitting information between the user and computer. The transport layer can provide the perception of a connection by interfacing between the user and network protocols.
A transport protocol does more than make and break connections, however. The lowest three layers provide the means to connect separate devices, but the transport layer is the lowest layer that actually allows its users to communicate effectively and securely. Some transport layer functions are as follows:. Connection management: This function defines the rules that allow two users to begin talking with each other as if they were connected directly. Defining and setting up the connection is also called handshaking.
0 Flow control: We discussed flow control and its relevance to the data link layer. To have flow control again in transport layer may seem strange at first, but remember that the transport layer must operate independently of the lower layers. Furthermore, the transport layer defines flow control between the end users. Data link protocols define flow control between the intermediate, but adjacent entities.
. Error detection: This is another case that seems to duplicate lower-layer features. Some errors do escape lower-layer error-detection. This statement may sound unusual because it implies that even if data link error detection provides reliable transmission along each link, there is still no guarantee of error-free transmission between the source and destination. How can this be? Consider the router in Figure . Suppose it receives the IP packet intact, but an error that affects the packet's contents occurs during reformatting of the frame containing the packet.

Any number of software or hardware errors can cause such a problem. Since the checksum is calculated after the new frame is created, it could include erroneous data. Strictly speaking, this is not a transmission error because it occurred while the packet was in the possession of the router. But try telling that to the transport user, who saw his or her data changed while in transit. A transport-layer error detection mechanism would detect such an error during:
Response to the user's request: Examples include sending and receiving data, as well as specific requests. For example, a user may request high throughput, low delays, or reliable service. IP can deal with these. The transport layer passes the request from the user to the IP.
Establishment of connectionless or connection-oriented communication.
To summarize, a transport protocol must provide reliable communication between the end users. This is especially important because IP does not guarantee reliable service. Transport protocols must provide acknowledgements and timers to make sure all of a user's data is sent and received. As with error detection, lower-layer protocols can determine when frames are lost in transit. But again, we want reliability to exist independent of lower layers. Besides, suppose an intermediate network node lost a frame after it received and acknowledged it, but before it retransmitted the frame. As mentioned earlier, any number of on-site errors could cause this. Because there was no error in any point-to-point link it would be up to an end-to-end protocol to detect the error.
Two transport-layer protocols that the DoD designed specifically to run with its ARPANET IP are the Transmission Control Protocol (TCP) and the User Datagram Protocol (UDP). TCP is a connection-oriented protocol that forms the connection management facilities of the Internet. It is the most widely used transport-layer protocol in the world. UDP is a connectionless transport-layer protocol. It is used much less frequently but is still part of the TCP/IP suite.
Reliability is the responsibility of a transport protocol; applications interact with a transport service to send and receive data. In the TCP/IP suite, the Transmission Control Protocol (TCP) provides reliable transport service. TCP is remarkable because
it solves a difficult problem satisfactorily: although other protocols have been created, no general-purpose transport protocol has proved to work better. Consequently, most Internet applications are built to use TCP.
BACK |