transport layer
Definition:
           
The transport layer ensures that messages are  delivered error-free, in sequence, and with no losses or duplications. It  relieves the higher layer protocols from any concern with the transfer of data  between them and their peers.  
The size and complexity of a transport protocol depends on the type of service it can get from the network layer. For a reliable network layer with virtual circuit capability, a minimal transport layer is required. If the network layer is unreliable and/or only supports datagrams, the transport protocol should include extensive error detection and recovery. It Provides the following activities:
           The size and complexity of a transport protocol depends on the type of service it can get from the network layer. For a reliable network layer with virtual circuit capability, a minimal transport layer is required. If the network layer is unreliable and/or only supports datagrams, the transport protocol should include extensive error detection and recovery. It Provides the following activities:
Message segmentation:
           
It accepts a message from the (session) layer above it, splits the message into  smaller units (if not already small enough), and passes the smaller units down  to the network layer. The transport layer at the destination station  reassembles the message.
           
Message  acknowledgment:
           
It provides reliable end-to-end message delivery with  acknowledgments.            
           
Message traffic  control:
           
It tells the transmitting station to "back-off" when no message  buffers are available.
           
Session multiplexing:
           
It multiplexes several message streams, or sessions onto one logical link and  keeps track of which messages belong to which sessionsTypically,  the transport layer can accept relatively large messages, but there are strict  message size limits imposed by the network (or lower) layer. Consequently, the  transport layer must break up the messages into smaller units, or frames,  prepending a header to each frame. 
             
The transport layer header information must then include control information, such as message start and message end flags, to enable the transport layer on the other end to recognize message boundaries. In addition, if the lower layers do not maintain sequence, the transport header must contain sequence information to enable the transport layer on the receiving end to get the pieces back together in the right order before handing the received message up to the layer above.
           The transport layer header information must then include control information, such as message start and message end flags, to enable the transport layer on the other end to recognize message boundaries. In addition, if the lower layers do not maintain sequence, the transport header must contain sequence information to enable the transport layer on the receiving end to get the pieces back together in the right order before handing the received message up to the layer above.