These Notes are divided into hyperlinked section
Introduction
Transport Layer
Interface
Quality of Service
Transport Primitives
Disconnection
- Asymmetric and Symmetric
Addressing
Transmission
Windows - flow control
Disconnections
in the network
Multiplexing
Conclusion
Further Reading
This lecture will examine the Quality of Service parameters that are agreed by peer Transport entities. We will also look further at the use of transport primitives in the client/ server relationship.
We will examine how a networked connection may be disconnected gracefully.
We will also see the Transport Service Access Point (TSAP) which is otherwise known as a socket.
We will see how the Transport Layer deals with flow control so that receiving entities are not overwhelmed with data.
We will also see what happens when a network becomes congested or is disconnected.
Finally we will see how the Transport Layer attempts to save costs by multiplexing several different transport connections onto the same network connection.
Regardless of whether we look at the OSI or TCP/ IP protocol stack, the interface between the Transport and Network layers line up. In end systems, the Transport layer exists to provide a reliable front to an unreliable layer (network layer).
Therefore the task of the transport layer is to provide reliable, cost effective data transport from the source machine to the destination machine, independent of the physical network or networks in use. It provides services to its upper layer (session or application) and ensures that the (unreliable) network layer delivers correctly.
Figure 9.1 Transport Layers Line up between Protocol Implementations
The transport layer can oversee data transfers and if a connection is abruptly terminated, it is the transport layer that can set up a new network connection then interrogate the peer machine as to where the sent data was lost and then resume transmission from that point.
It isolates the upper layers from the technology, design and imperfections of the subnet.
The layers below the transport layer are often known as the Transport Service Provider Layers and those above (and including) are known as Transport Service User Layers.
The hardware and/ or software that form the transport layer are often referred to as the transport entity. This entity may be in the system kernel, a separate user process, a library package bound into network applications or on the NIC. In some cases the transport entity may be provided by the carrier and reside on special interface machines at the edge of the subnet to which the host is connected.
The transport layer enhances the QOS provided by the network layer.
Some of the QOS parameters agreed and provided by the transport layer are:
· Connection establishment delay
· Connection establishment failure probability
· Throughput
· Transit delay
· Residual error ratio
· Protection
· Priority
· Resilience
Connection establishment delay is elapsed time between transport connection being requested and the confirmation being received by the user of the transport service. Includes processing delay in remote transport entity.
Connection establishment failure probability is chance of connection not being established within maximum establishment delay time. Could be due to network congestion
Throughput is number of bytes transferred per second, measured independently for each direction
Transit delay is time between a message being sent and it being received by transport user on peer entity. Measured separately for each direction.
Residual error ratio is number of damaged messages as a fraction of the total sent. Theoretically should be zero, as this is the job of transport layer. In reality it may have a small finite value.
Protection allows transport user to specify an interest in having transport layer provide protection against unauthorised third parties e.g. wiretappers reading or modifying transmitted data.
Priority gives some connections importance over others so that in the event of congestion, high priority connections are serviced before low priority connections.
Resilience is probability of transport layer itself spontaneously terminating a connection due to internal problems or congestion.
The QoS parameters are given desired and minimum values and these are conveyed to the remote machine where they will be either agreed or rejected with a counteroffer. This is called option negotiation.
Once negotiated, the options remain as agreed for the life of the connection. Some carriers charge more for better QoS.
In computer programming, a primitive is a basic interface
or segment of code that can be used to build more sophisticated program
elements or interfaces. In the following diagram, a TPDU is a Transport
Protocol Data Unit.
Table 9.1 Transport Primitives
and Action taken when issued
Consider a client/ server system.
· The server executes a LISTEN primitive (calls a library procedure) that makes a system call to block the server until a client wishes its attention
· When a client wishes to talk to the server it issues a CONNECT primitive
· Transport entity now blocks the client and sends a packet to the server CONNECTION REQ containing a transport layer message for the server's transport layer
· When the CONNECTION REQ arrives at the server, the server's transport entity checks to see if the server is blocked on a LISTEN and can therefore handle server requests.
· Server is unblocked and a CONNECTION ACCEPTED TPDU is sent back to the client.
· This unblocks the client and the connection is established
· Data is exchanged using SEND and RECEIVE primitives
As long as both entities keep track of whose turn it is to send, this works well.
In the layer below, this is a complicated process, but the transport layer turns the connection into a reliable bit-pipe.
Disconnection - Asymmetric and Symmetric
In asymmetric, either entity may end the connection by issuing a DISCONNECT primitive. A DISCONNECT TPDU is sent to the remote transport entity.
In the symmetric option, each direction will be closed separately of the other. When one side issued a DISCONNECT, it means it has no more data to send but is prepared to carry on accepting data from the other direction. When both sides have received the DISCONNECT, the connection is terminated.
The transport layer must specify the final destination of the remote application process. In the Internet, addressing in the transport layer can take the form of a socket number. This is the IP address of the host plus a 16-bit number known as the port. The port is a number given to an application's entry point into the transport layer so that data may be directed to the appropriate software on the appropriate host. This is known as a TSAP (Transport Service Access Point).
A name server resides within the transport layer to direct external requests to the appropriate software. The name server maps application names onto numbers.
Transmission Windows - flow control
When a connection is established, both transport entities indicate their transmission window (based on buffer size) and the lower of the two is selected and used by both ends. Under no circumstances will the sender ever transmit more than this amount of data. A second window known as the congestion window is initialised to the size of the maximum transmission segment say 1K. There is a third parameter known as the threshold which is initialised at some value say 32K.
The sender then sends one segment of the message. If no timeout is received, it adds what it has just sent to the congestion window. This effectively doubles its size. The next transmission is now sent with the increased size of 2K. If no timeout is received, the current congestion window size has the amount of data that has just been sent i.e. 2K added to itself. This process repeats until either the threshold is reached or a time-out occurs.
If a time-out occurs before the threshold is reached, the threshold is halved and the congestion window is reset to the maximum transmission unit MTU size of 1K. The sender then begins sending and doubling the congestion window once more.
If the threshold is reached before a time-out, the exponential growth of the congestion window stops and the congestion window is increased linearly by the MTU (1K) for each subsequent transmission until a time-out occurs. At this point the threshold is reduced to ½ the congestion window size at time-out and the congestion window re-initialises to the MTU of 1K.
This process repeats itself until either it converges at the agreed window size of the two hosts or else it constantly readjusts the congestion window and threshold to suit network conditions.
All Internet TCP algorithms assume that time-outs are caused by congestion therefore transmission time-outs are monitored to give warning of congestion
Because the network may either hold or lose packets, it is essential that the transport layer have a facility to time out a request. When a DR (DISCONNECTION REQUEST) TPDU is sent, the sending entity starts a timer and if no acknowledgement is received, the entity will after a given period release the connection. Occasionally this can fail if the initial DR and successive retransmissions are lost. The other side will know nothing of this and this results in a half open connection.
Packets will not be lost due to buffer problems at the end points but internal congestion within the network may cause packets to be lost as the packets overwhelm the buffers in Intermediate Systems within the transmitting network.
This is needed because carriers tend to charge for connections open or per unit time. Thus to save costs, the transport layer tries to multiplex different transport connections onto the same network connection. This is called upward multiplexing. The transport layer groups transport connections and attempts to map each group onto the minimum number of network connections.
If too many transport connections are mapped onto one network connection, the service will be poor and result in a congested connection. If the network connection is under-utilised, the service will be expensive.
Another reason for multiplexing is to provide higher bandwidth. If a certain network connection has a sliding-window flow control scheme with an n-bit sequence number, the user must stop sending as soon as 2n-1 packets are outstanding. The user must now wait for ACKS to arrive back before any more can be sent.
With a satellite connection, this can be easily seen. Here the user will be limited to 2n -1 packets every 540 msec. With n = 8 and packet sizes of 128 bytes this gives a usable bandwidth of about 484 kbps. The physical channel bandwidth is about 100 times higher than this.
The solution here is to open multiple network connections and distribute traffic to them on a round robin basis. This is called downward multiplexing. With k network connections open, the effective bandwidth will be increased by a factor of k. With 4095 virtual circuits, 128 byte packets and an 8 bit sequence number this could give us 1.6 Gbit/ sec. This is possible if the output line can support this speed.
We have seen how the transport layer can negotiate different Qualities of Service according to the parameters of both end systems’ networks.
We have also looked further at the use of transport primitives in making networked connections between client and server.
We have seen how network connections may be released gracefully in a symmetrical or asymmetrical disconnection.
We have seen that a socket number is the combination of application port plus IP number, and serves as the exact address to deliver data to.
We have seen that Sliding Window is used to regulate the flow of data across a network so that the receiver is not overwhelmed with incoming data.
We have seen that a network may become congested or disconnect and how the Transport Layer is able to cope with this.
We saw how the Transport Layer attempts to save costs by multiplexing several different transport connections onto the same network connection.
Tannenbaum, Computer Networks, Prentice Hall
Services provided to upper layers 479
QoS Reliable transport on top of unreliable network 481
Transport service primitives 483
Addressing 489
Establishing a connection 493
Releasing a connection 498
Flow control and buffering 502
Multiplexing 506
Simple Transport Protocol 510
The Example Transport Entity 512
Example as a finite state machine
(c) M Clements 2001