The OSI Reference Model
The Transport Layer Provides reliable end-to-end service to processes in the application layer: Connection-oriented or connection-less services. TPDUs (Transport Protocol Data Units): Refer to messages sent between two transport entities. Transport service primitives: Allow application programs to access the transport layer services. Data received from application layer is broken into TPDUs that should fit into the data or payload field of a packet. Packets received possibly out-of-order from the network layer are reordered and assembled for delivery to application layer. Transport Entity: Hardware/software in the transport layer: In operating system kernel or, In a separate user process or, In the network interface card. Option Negotiation: The process of negotiating quality of service (QoS) parameters between the user and remote transport entities as specified by applications.
Nesting of TPDUs, Packets And Frames
Data Link Layer Vs. Transport Layer Data Link Layer Environment: Adjacent routers. Transport Layer Environment: End-to-End from source to destination.
Network, Transport, And Application Layers Interfaces (Transport Protocol Data Unit)
Simple Transport Layer Primitives Primitives used to provide transport services to applications
Transport Layer: Quality of Service (QoS) Parameters Application QoS requirements are specified using these parameters
Transport Layer Connection Management State diagram for a simple connection scheme. Solid lines: Client state sequence. Dashed lines: Server state sequence.
Transport Connection Addressing: TSAPs, NSAPs Network Layer Addresses: NSAP (Network Service Access Point) i.e IP address. Transport Layer Addresses: TSAP (Transport Service Access Point) i.e (IP address, local port)
Transport Flow Control To accomplish transport flow control a Sliding Window protocol is used end-to-end using TDPUs as protocol transfer units Available receiver capacity and buffering used as a receive window RWIN. Receiver buffer over-runs are usually not allowed. Each TPDU must carry an identifier or sequence number to distinguish between original TPDUs and delayed duplicates. To curtail the effect of delayed duplicates: Packets are not allowed to live forever. Each packet has a restricted maximum lifetime = T. The low-order k-bits of a time-of-day clock, of the form of a binary counter, are usually used to generate initial TPDU sequence numbers for new connections. This clock is assumed to keep running even if the host crashes. The clock frequency and k are selected such that a generated initial sequence number should not repeat (i.e. be assigned to another TPDU) for a period longer than the maximum packet lifetime T [forbidden region].
Transport Flow Control Once an initial TDPU sequence number is assigned, it’s incremented as required by the connection. TDPU sequence numbers of a connection may run into forbidden region if: A host sends too much data too fast on a newly opened connection: Here, actual used sequence number vs. time is more steep than initial sequence number generation vs. time. This restricts the maximum data rate of a connection to one TDPU per cycle. At any connection data rate less than the initial sequence number generation clock rate: The actual sequence numbers used will eventually run into the forbidden region from the left. This condition must be checked by transport entity requiring a TDPU delay of T, or sequence number re- synchronization.
TPDU Sequencing TPDUs may not be issued in the forbidden region The re-synchronization problem. Connection data rate less than initial sequence number generation clock rate T = Maximum Packet Lifetime
Transport Connection Protocol: Three-Way Handshake Normal operation Old duplicate CONNECTION REQUEST Transport Connection Protocol: Three-Way Handshake Duplicate CONNECTION REQUEST and duplicate ACK
Abrupt Asymmetric Transport Disconnection Leads to loss of data and incorrect operation. CR = Connection Request DR = Disconnect Request
Transport Connection Release Scenarios Normal case of three-way handshake Final ACK lost Response lost and subsequent DRS lost Response lost
Transport Layer: Flow Control and Buffering Chained fixed-size buffers Chained variable-size buffers One large circular buffer per connection