- •4 Osi Transport Layer
- •4.0 Chapter Introduction
- •4.0.1 Chapter Introduction Page 1:
- •4.1 Roles of the Transport Layer
- •4.1.1 Purpose of the Transport Layer Page 1:
- •Identifying the Applications
- •4.1.2 Controlling the Conversations Page 1:
- •4.1.3 Supporting Reliable Communication Page 1:
- •4.1.5 Port Addressing Page 1:
- •Identifying the Conversations
- •4.1.4 Tcp and udp Page 1:
- •4.1.6 Segmentation and Reassembly - Divide and Conquer Page 1:
- •4.2 The tcp Protocol - Communicating with Reliability
- •4.2.2 Tcp Server Processes Page 1:
- •4.2.3 Tcp Connection Establishment and Termination Page 1:
- •4.2.4 Tcp Three-Way Handshake Page 1:
- •4.2.5 Tcp Session Termination Page 1:
- •4.3 Managing tcp Sessions
- •4.3.1 Tcp Segment Reassembly Page 1:
- •4.3.2 Tcp Acknowledgement with Windowing Page 1:
- •4.3.3 Tcp Retransmission Page 1:
- •4.3.4 Tcp Congestion Control - Minimizing Segment Loss Page 1:
- •4.4 The udp Protocol - Communicating with Low Overhead
- •4.4.2 Udp Datagram Reassembly Page 1:
- •4.4.3 Udp Server Processes and Requests Page 1:
- •4.4.4 Udp Client Processes Page 1:
- •4.5 Lab Activities
- •4.5.1 Observing tcp and udp using Netstat Page 1:
- •4.5.2 Tcp/ip Transport Layer Protocols, tcp and udp Page 1:
- •4.5.3 Application and Transport Layer Protocols Page 1:
- •4.6 Chapter Summary
- •4.6.1 Summary and Review Page 1:
- •4.7 Chapter Quiz
- •4.7.1 Chapter Quiz Page 1:
Identifying the Applications
In order to pass data streams to the proper applications, the Transport layer must identify the target application. To accomplish this, the Transport layer assigns an application an identifier. The TCP/IP protocols call this identifier a port number. Each software process that needs to access the network is assigned a port number unique in that host. This port number is used in the Transport layer header to indicate to which application that piece of data is associated.
The Transport layer is the link between the Application layer and the lower layer that are responsible for network transmission. This layer accepts data from different conversations and passes it down to the lower layers as manageable pieces that can be eventually multiplexed over the media.
Applications do not need to know the operational details of the network in use. The applications generate data that is sent from one application to another, without regard to the destination host type, the type of media over which the data must travel, the path taken by the data, the congestion on a link, or the size of the network.
Additionally, the lower layers are not aware that there are multiple applications sending data on the network. Their responsibility is to deliver data to the appropriate device. The Transport layer then sorts these pieces before delivering them to the appropriate application.
Data Requirements Vary
Because different applications have different requirements, there are multiple Transport layer protocols. For some applications, segments must arrive in a very specific sequence in order to be processed successfully. In some cases, all of the data must be received for any of it to be of use. In other cases, an application can tolerate some loss of data during transmission over the network.
In today's converged networks, applications with very different transport needs may be communicating on the same network. The different Transport layer protocols have different rules allowing devices to handle these diverse data requirements.
Some protocols provide just the basic functions for efficiently delivering the data pieces between the appropriate applications. These types of protocols are useful for applications whose data is sensitive to delays.
Other Transport layer protocols describe processes that provide additional features, such as ensuring reliable delivery between the applications. While these additional functions provide more robust communication at the Transport layer between applications, they have additional overhead and make larger demands on the network.
Page 2:
Separating Multiple Communications
Consider a computer connected to a network that is simultaneously receiving and sending e-mail and instant messages, viewing websites, and conducting a VoIP phone call. Each of these applications is sending and receiving data over the network at the same time. However, data from the phone call is not directed to the web browser, and text from an instant message does not appear in an e-mail.
Further, users require that an e-mail or web page be completely received and presented for the information to be considered useful. Slight delays are considered acceptable to ensure that the complete information is received and presented.
In contrast, occasionally missing small parts of a telephone conversation might be considered acceptable. One can either infer the missing audio from the context of the conversation or ask the other person to repeat what they said. This is considered preferable to the delays that would result from asking the network to manage and resend missing segments. In this example, the user - not the network - manages the resending or replacement of missing information.
Page 3:
As explained in a previous chapter, sending some types of data - a video for example - across a network as one complete communication stream could prevent other communications from occurring at the same time. It also makes error recovery and retransmission of damaged data difficult.
Dividing data into small parts, and sending these parts from the source to the destination, enables many different communications to be interleaved (multiplexed) on the same network.
Segmentation of the data, in accordance with Transport layer protocols, provides the means to both send and receive data when running multiple applications concurrently on a computer. Without segmentation, only one application, the streaming video for example, would be able to receive data. You could not receive e-mails, chat on instant messenger, or view web pages while also viewing the video.
At the Transport layer, each particular set of pieces flowing between a source application and a destination application is known as a conversation.
To identify each segment of data, the Transport layer adds to the piece a header containing binary data. This header contains fields of bits. It is the values in these fields that enable different Transport layer protocols to perform different functions.
