TCP
provides a reliable communication channel over an unreliable
network.When we send data from one system to another, packets may
be lost, they may be transmitted out of order, the network can be
congested or the receiver end can be overloaded. While establishing
a TCP connection with our software,we usually don’t need to deal
with this complexity, we just write some data to a socket and TCP
makes sure the packets are delivered correctly to the receiver
node.
- In TCP, the flow control ensures that the
sender is not distressing the receiver by sending packets faster
than its limit.Flow
control is like the congestion control over the receiving
end.
- TCP ensures that the data packets delivered
are in the exact order as they are sent from the sender
end.TCP makes it possible
with the help of send buffer and receive buffer.
- TCP uses the Receive Window (rwnd) to control
the amount of data that can be delivered from the send
buffer.
- TCP provides the ‘ack’ message concept, to
acknowledge the sender that it receives the packet correctly and also the
value of current window receive window in order to let the send
buffer know whether or not it can send the next packet or
not.
- TCP uses the sliding window protocol to
control the number of bytes it can have in one packet
i.e. it can easily understand the
number of packets it has to send to empty the send
buffer.
- Deadlock situations like one when the zero window
situation or the ack message is lost, TCP enables the persist timer, which sends the
‘WindowProbe’ message in order to check the availability of the
receiving window to receive the packets.
The
basic deficiencies (or limitations ) of the IP are :
- No Error Reporting : IP does not have error
reporting mechanisms with it. For example, Suppose that the
lifetime of a packet is completed while traveling on the Internet
and in time, the value of the Time to Live (TIL) field in the
packet becomes 0, then in this situation, the packet will be
discarded. But there is no mechanism for the receiver to tell the
sender that the following packet has been lost. TCP handles
such errors by sending
the ‘ack’ message mechanism with a closed socket to the
sender. Thus, sender
resends the message until it receives a success
message.
- No Communication : In Internet Protocol, there is
no way to establish the communication between the two devices,
whenever the two devices need to communicate, say for the situation
when one device needs to check whether or not the device is
alive. At the transport
layer, TCP uses the
network socket interface(NSI) to handle all handshaking and
transmission details and present an abstraction of the network
connection to the application.