Transport Layer

Transport Layer

Residing between the application and network layers, the transport layer is the most important part of the layered network architecture. It has the critical role of providing communication services directly to the application processes running on different hosts. The pedagogic approach we take in this section is to alternate between discussions of transport-layer principles and discussions of how these principles are implemented in existing protocols: as usual, particular emphasis will be given to Internet protocols, especially the TCP and UDP transport-layer protocols.

We'll begin by discussing the relationship between the transport and network layers. This sets the stage for examining the first critical function of the transport layer - extending the network layers delivery service between two end systems to a delivery service between two application-layer processes running on the end systems. Well demonstrate this function in our coverage of the Internets connectionless transport protocol, UDP.

We'll then return to principles and tackle one of the most basic problems in computer networking - how two entities can communicate consistently over a medium that may lose and corrupt data. Through a series of progressively more complex (and realistic) scenarios, we'll build up an array of techniques that transport protocols use to solve this problem. We'll then show how these principles are embodied in TCP, the Internet's connection-oriented transport protocol. 

Well next move on to a second basically important problem in networking - controlling the transmission rate of transport-layer entities in order to avoid, or recover from, congestion within the network. We'll look at the causes and consequences of congestion, as well as commonly used congestion-control techniques. After obtaining a solid understanding of the problems behind congestion control, we'll learn TCP's approach to congestion control.

Introduction and Transport-Layer Services

In the previous two sections we touched on the role of the transport layer and the services that it provides. Let's quickly review what we have already learned about the transport layer.

A transport-layer protocol provides for logical communication between application processes running on different hosts. By logical communication, we mean that from an application's point of view, it is as if the hosts running the processes were directly connected; in fact, the hosts may be on opposite sides of the planet, connected via various routers and a wide range of link types. Application processes use the logical communication provided by the transport layer to send messages to each other, free from the worry of the details of the physical infrastructure used to carry these messages. Figure 1 shows the notion of logical communication.

As shown in Figure 1, transport-layer protocols are implemented in the end systems but not in network routers. On the sending side, the transport layer converts the messages it receives from a sending application process into transport-layer packets, known as transport-layer segments in Internet terminology. This is done by (possibly) breaking the application messages into smaller chunks and adding a transport-layer header to each chunk to create the transport-layer segment. The transport layer then passes the segment to the network layer at the sending end system, where the segment is encapsulated within a network-layer packet (a datagram) and sent to the destination. It's important to note that network routers act only on the network-layer fields of the datagram; that is, they do not examine the fields of the transport-layer segment encapsulated with the datagram. On the receiving side, the network layer extracts the transport-layer segment from the datagram and passes the segment up to the transport layer. The transport layer then processes the received segment, making the data in the segment available to the receiving application.

More than one transport-layer protocol may be available to network applications. For instance, the Internet has two protocols - TCP and UDP. Each of these protocols provides a different set of transport-layer services to the invoking application.

Relationship Between Transport and Network Layers

Remember that the transport layer lies just above the network layer in the protocol stack. Whereas a transport-layer protocol provides logical communication between processes running on various hosts, a network-layer protocol provides logical communication between hosts. This difference is slight but important. Let's look at this difference with the aid of a household analogy.

The transport layer provides logical rather than physical communication between application processes

Think about two houses, one on the East Coast and the other on the West Coast, with each house being home to a dozen kids. The kids in the East Coast household are cousins of the kids in the West Coast household. The kids in the two households love to write to each other - each kid writes each cousin every week, with each letter delivered by the usual postal service in a separate envelope. In this way, each household sends 144 letters to the other household every week. (These kids would save a lot of money if they had e-mail). In each of the households there is one kid - Ann in the West Coast house and Bill in the East Coast house - responsible for mail collection and mail distribution. Each week Ann visits all her brothers and sisters, collects the mail, and gives the mail to a postal-service mail carrier, who makes daily visits to the house. When letters arrive at the West Coast house, Ann also has the job of distributing the mail to her brothers and sisters. Bill has a similar job on the East Coast.

In this example, the postal service provides logical communication between the two houses - the postal service moves mail from house to house, not from person to person. On the other hand, Ann and Bill provide logical communication among the cousins - Ann and Bill pick up mail from, and deliver mail to their brothers and sisters. Note that from the cousins point of view, Ann and Bill are the mail service, even though Ann and Bill are only a part (the end-system part) of the end-to-end delivery process. This household example serves as a nice analogy for explaining how the transport layer relates to the network layer:

application messages = letters in envelops
processes = cousins
hosts (also called end systems) = houses
transport-layer protocol = Ann and Bill
network-layer protocol = postal service (including mail carriers)

Continuing with this analogy, note that Ann and Bill do all their work within their respective homes; they are not involved, for instance, in sorting mail in any intermediate mail center or in moving mail from one mail center to another. In the same way, transport-layer protocols live in the end systems. Within an end system, a transport protocol moves messages from application processes to the network edge (that is, the network layer) and vice versa, but it doesn't have any say about how the messages are moved within the network core. In reality, as shown in Figure 1, intermediate routers neither act on, nor recognize, any information that the transport layer may have added to the application messages.

Continuing with our family saga, assume now that when Ann and Bill go on vacation, another cousin pair - say, Susan and Harvey - substitute for them and  provide the household-internal collection and delivery of mail. Unfortunately for the two families, Susan and Harvey do not do the collection and delivery in exactly the same way as Ann and Bill. Being younger kids, Susan and Harvey pick up and drop off the mail less frequently and occasionally lose letters (which are sometimes chewed up by the family dog). Thus, the cousin-pair Susan and Harvey do not provide the same set of services (that is, the same service model) as Ann and Bill. In an analogous manner, a computer network may make available multiple transport protocols, with each protocol offering a different service model to applications.

The possible services that Ann and Bill can provide are clearly constrained by the possible services that the postal service provides. For instance, if the postal service doesnt provide a maximum bound on how long it can take to deliver mail between the two houses (for example, three days), then there is no way that Ann and Bill can guarantee a maximum delay for mail delivery between any of the cousin pairs. In a similar manner, the services that a transport protocol can provide are frequently constrained by the service model of the underlying network-layer protocol. If the network-layer protocol cannot provide delay or bandwidth guarantees for transport-layer segments sent between hosts, then the transport-layer protocol cannot provide delay or bandwidth guarantees for application messages sent between processes.

However, certain services can be offered by a transport protocol even when the underlying network protocol doesn't offer the corresponding service at the network layer. For instance, as we'll see in this section, a transport protocol can offer reliable data transfer service to an application even when the underlying network protocol is unreliable, that is, even when the network protocol loses, garbles, or duplicates packets, As another instance (which we'll explore in "Security in Computer Networks" when we discuss network security), a transport protocol can use encryption to guarantee that application messages are not read by intruders, even when the network layer cannot guarantee the confidentiality of transport-layer segments.


network layer, transport layer, internet protocol, end system, transmission rate, logical communication, segments

Copy Right

The contents available on this website are copyrighted by TechPlus unless otherwise indicated. All rights are reserved by TechPlus, and content may not be reproduced, published, or transferred in any form or by any means, except with the prior written permission of TechPlus.