Transport Layer Unit 5
Introduction The transport layer is the fourth layer from the bottom in the OSI reference model. It is responsible for message delivery from process running in source computer to the process running in the destination computer. Transport layer does not perform any function in the intermediate nodes. It is active only in the end systems. Transport Layer is responsible for delivery of entire message from one process running on source to another process running on destination. This is called process-to process delivery.
Transport Layer Design Issue The transport layer delivers the message from one process to another process running on two different hosts. Thus, it has to perform number of functions to ensure the accurate delivery of message. The various functions of transport layer are: Establishing, Maintaining & Releasing Connection Addressing Data Transfer Flow Control Error Control Congestion Control
Establishing, Maintaining & Releasing Connection: The transport layer establishes, maintains & releases end-to-end transport connection on the request of upper layers. Establishing a connection involves allocation of buffers for storing user data, synchronizing the sequence numbers of packets etc. A connection is released at the request of upper layer.
Addressing: In order to deliver the message from one process to another, an addressing scheme is required. Several process may be running on a system at a time. In order to identify the correct process out of the various running processes, transport layer uses an addressing scheme called por number. Each process has a specific port number.
Data Transfer: Transport layer breaks user data into smaller units and attaches a transport layer header to each unit forming a TPDU (Transport Layer Data Unit). The TPDU is handed over to the network layer for its delivery to destination. The TPDU header contains port number, sequence number, acknowledgement number, checksum and other fields
Flow Control: Like data link layer, transport layer also performs flow control. However, flow control at transport layer is performed end-to-end rather than node-to-node. Transport Layer uses a sliding window protocol to perform flow control.
Error Control: Transport layer also provides end-to-end error control facility. Transport layer deals with several different types of errors: Error due to damaged bits. Error due to non delivery of TPDUs. Error due to duplicate delivery of TPDUs. Error due to delivery of TPDU to a wrong destination.
Congestion Control: Transport layer also handles congestion in the networks. Several different congestion control algorithms are used to avoid congestion
Transport Layer Services Transport layer protocols can provide two types of services: Connection Oriented Service Connectionless Service
Connection Oriented Service: In connection oriented service, a connection is first established between sender and the receiver. Then, transfer of user data takes place. At the end, connection is released. The connection oriented service is generally reliable. Transport layer protocols that provide connection oriented service are TCP and SCTP (Stream Control Transmission Protocol).
Connectionless Service: In the service, the packets are sent from sender to receiver without the establishment of connection. In such service, packets are not numbered. The packets may be lost, corrupted, delayed or disordered. Connectionless service is unreliable. Transport layer protocol that provides this service is UDP.
TCP Services & Mechanisms Reliable communication service between pairs of processes Across variety of reliable and unreliable networks and internets Connection establishment Three way handshake Between pairs of ports Data transfer Logical stream of octets Flow control by credit allocation of number of octets Data buffered at transmitter and receiver Connection termination TCP users issues CLOSE primitive Transport entity sets FIN flag on last segment sent
TCP Congestion Control Window management AIMD Slow Start Retransmission timer management Estimate round trip delay by observing pattern of delay Set time to value somewhat greater than estimate Simple average Exponential average RTT Variance Estimation (Jacobson’s algorithm)
User Datagram Protocol (UDP) The Internet protocol suite supports a connectionless transport protocol, UDP (User Datagram Protocol). UDP provides a way for applications to send encapsulated IP datagram and send them without having to establish a connection. UDP transmits segments consisting of an 8-byte header followed by the payload. The two ports serve to identify the end points within the source and destination machines. When a UDP packet arrives, its payload is handed to the process attached to the destination port. This attachment occurs when BIND primitive or something similar is used, as we saw in Figure for TCP (the binding process is the same for UDP). In fact, the main value of having UDP over just using raw IP is the addition of the source and destination ports. Without the port fields, the transport layer would not know what to do with the packet. With them, it delivers segments correctly.
Performance Issues Performance problems. Measuring network performance. System design for better performance. Fast TPDU processing. Protocols for future high-performance networks.
Performance Problems in Computer Networks Some performance problems, such as congestion, are caused by temporary resource overloads. If more traffic suddenly arrives at a router than the router can handle, congestion will build up and performance will suffer. Network Performance Measurement The basic loop used to improve network performance contains the following steps: 1. Measure the relevant network parameters and performance. 2. Try to understand what is going on. 3. Change one parameter. System Design for Better Performance Measuring and tinkering can often improve performance considerably, but they cannot substitute for good design in the first place. A poorly-designed network can be improved only so much. Beyond that, it has to be redesigned from scratch.
Rules related to system design: Rule #1: CPU Speed Is More Important Than Network Speed Rule #2: Reduce Packet Count to Reduce Software Overhead Rule #3: Minimize Context Switches Rule #4: Minimize Copying Rule #5: You Can Buy More Bandwidth but Not Lower Delay Rule #6: Avoiding Congestion Is Better Than Recovering from It Rule #7: Avoid Timeouts Fast TPDU Processing TPDU processing overhead has two components: overhead per TPDU and overhead per byte. Both must be attacked. The key to fast TPDU processing is to separate out the normal case (one-way data transfer) and handle it specially. Although a sequence of special TPDUs is needed to get into the ESTABLISHED state, once there, TPDU processing is straightforward until one side starts to close the connection.
Protocols for Gigabit Networks The problem is that many protocol designers simply assumed, without stating it, that the time to use up the entire sequence space would greatly exceed the maximum packet lifetime. Consequently, there was no need to even worry about the problem of old duplicates still existing when the sequence numbers wrapped around. At gigabit speeds, that unstated assumption fails.