- The left portion
of the diagram is for the "server"
The right portion
of the diagram is for the "client"
- Begin the client
and the server
in the CLOSED state
- The UNIX "listen()" system call
(extern action by the program)
will trigger the external action
Passive open
This event
will cause the TCP protocol at the server
to enter into the
Listen state:
This transistion does not trigger any response....
- When a client program
wants to make a TCP connection,
the client program
will invoke the
UNIX system call "connect()"
The corresponding (external) event
is called active open:
This transition will cause
a response
of transmitting a SYN message
to the server
The client TCP protocol enters into
the
SYN_Sent state.
- When the
SYN message
is received by the server TCP
protocol, it causes the
responses of
sending a
SYN+ACK message
to the client:
The server TCP
protocol to enter the
SYN_Recv state.
- When the SYN+ACK message
is received by the
client TCP protocol,
it causes the response
of sending a
ACK message to the server:
The client to
enter in the EXSTABLISH state
(client is done !)
While in the EXSTABLISH state, the TCP protocol will send and
receive data messages.
- Finally, when the ACK message
is received by the
server TCP protocol, it causes the server TCP module to
enter in the
EXSTABLISH state:
Now the server can also send
data messages to the client...
|