  Main responsibility of a transport protocol is to support communication
between two end-to-end entities. These entities can be hosts or devices, such
as routers, firewalls etc. Transport protocol provides mechanism to have a
virtually circuited route between these two end-to-end devices. Transport
protocol are of two types: Connection oriented and connection-less. As these
name suggest, connection oriented requires additional work of setting up
connections and provide reliability in terms of packet reordering, congestion
control, reliable delivery of packets. On the other hand connectionless
transport protocol adapts, sends and forgets mechanism. Its entire purpose is
to deliver the datagram without having to worry about its delivery. There are
two major protocols, TCP and UDP, used for connection oriented and
connection-less services respectively. Being a connection oriented protocol,
TCP provides a reliable end-to-end connection and have congestion control
mechanisms to avoid buffer overflow at the receiver side.
