CONNECTION MANAGEMENT
A TCP
connection begins with a client doing an active open to a server. Assuming that
the server had earlier done a passive open, the two sides engage in an exchange
of messages to establish the connection. Only after this connection
establishment phase is over do the two sides begin sending data. Likewise, as
soon as a participant is done sending data, it closes one direction of the
connection, which causes TCP to initiate a round of connection termination
messages.
Connection
setup is an asymmetric activity (one side does a passive open and the other
side does an active open) connection teardown is symmetric (each side has to
close the connection independently).
Therefore it is possible for one side to have done a close, meaning that it can
no longer send data but for the other side to keep the other half of the
bidirectional connection opens and to continue sending data.
THREE WAY HANDSHAKES:
The
algorithm used by TCP to establish and terminate a connection is called a three way handshake. The client (the active participant) sends a segment to the server(the passive participation)
stating the initial sequence number it plans to use(flag =SYN,SequenceNum =x).
The
server then responds with a single segment that both acknowledges the client‟s sequence number
(Flags =ACK, Ack=x+1)
and states its
own beginning sequence
number
(Flags=SYN, SequenceNum=y).
That is, both the SYN and ACK bits are set in the Flags field of this second message. Finally, the client responds with a third segment that acknowledges the server‟s sequence number Flags =ACK, Ack=y+1).
The
"three-way handshake" is the procedure used to establish a
connection. This procedure normally is initiated by one TCP and responded to by
another TCP. The procedure also works if two TCP simultaneously initiate the
procedure. When simultaneous attempt occurs, each TCP receives a
"SYN" segment which carries no acknowledgment after it has sent a
"SYN". Of course, the arrival of an old duplicate "SYN"
segment can potentially make it appear, to the recipient, that a simultaneous
connection initiation is in progress. Proper use of "reset" segments
can disambiguate these cases.
The
three-way handshake reduces the possibility of false connections. It is the
implementation of a trade-off between memory and messages to provide
information for this checking.
The
simplest three-way handshake is shown in figure below. The figures should be
interpreted in the following way. Each line is numbered for reference purposes.
Right arrows (-->) indicate departure of a TCP segment from TCP A to TCP B,
or arrival of a segment at B from A. Left arrows (<--), indicate the
reverse. Ellipsis (...) indicates a segment which is still in the network
(delayed). TCP states represent the state AFTER the departure or arrival of the
segment (whose contents are shown in the center of each line). Segment contents
are shown in abbreviated form, with sequence number, control flags, and ACK
field. Other fields such as window, addresses, lengths, and text have been left
out in the interest of clarity.
Basic
3-Way Handshake for Connection Synchronisation
In line 2
of above figure, TCP A begins by sending a SYN segment indicating that it will
use sequence numbers starting with sequence number 100. In line 3, TCP B sends
a SYN and acknowledges the SYN it received from TCP A. Note that the
acknowledgment field indicates TCP B is now expecting to hear sequence 101,
acknowledging the SYN which occupied sequence 100.
At line
4, TCP A responds with an empty segment containing an ACK for TCP B's SYN; and
in line 5, TCP A sends some data. Note that the sequence number of the segment
in line 5 is the same as in line 4 because the ACK does not occupy sequence
number space (if it did, we would wind up ACKing ACK's!).
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.