Sie sind auf Seite 1von 2

TCP/IP State Transition Diagram (RFC793)

Gordon McKinney (23 Feb 2002)

A connection progresses through a series of states during its lifetime. The states are: LISTEN, SYN-SENT, SYN-
RECEIVED, ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK, TIME-WAIT, and
the fictional state CLOSED. CLOSED is fictional because it represents the state when there is no TCB, and
therefore, no connection. Briefly the meanings of the states are:

LISTEN represents waiting for a connection request from any remote TCP and port.

SYN-SENT represents waiting for a matching connection request after having sent a connection request.

SYN-RECEIVED represents waiting for a confirming connection request acknowledgment after having both
received and sent a connection request.

ESTABLISHED represents an open connection, data received can be delivered to the user. The normal state
for the data transfer phase of the connection.

FIN-WAIT-1 represents waiting for a connection termination request from the remote TCP, or an
acknowledgment of the connection termination request previously sent.

FIN-WAIT-2 represents waiting for a connection termination request from the remote TCP.

CLOSE-WAIT represents waiting for a connection termination request from the local user.

CLOSING represents waiting for a connection termination request acknowledgment from the remote
TCP.

LAST-ACK represents waiting for an acknowledgment of the connection termination request previously
sent to the remote TCP (which includes an acknowledgment of its connection termination
request).

TIME-WAIT represents waiting for enough time to pass to be sure the remote TCP received the
acknowledgment of its connection termination request.

CLOSED represents no connection state at all.

A TCP connection progresses from one state to another in response to events. The events are the user calls,
OPEN, SEND, RECEIVE, CLOSE, ABORT, and STATUS; the incoming segments, particularly those containing
the SYN, ACK, RST and FIN flags; and timeouts.
starting point
CLOSED

appl: passive open


send: <nothing>

ap sen
pl
: a : SY
timeout

cti
send: RST LISTEN

d
ve N
C K
,A passive open

op
N ap

en
: SY pl
nd se : se
se ST nd nd
; :S d
YN v :R YN ata
v:
S rec
rec
recv: SYN appl: close
SYN_RCVD SYN_SENT
send: SYN, ACK or timeout
simultaneous open active open
se r CK
nd ecv ,A K
:< :A N
no CK SY AC
th c v: d:
in
g> re sen

appl: close recv: FIN


ESTABLISHED CLOSE_WAIT
send: FIN send: ACK
data transfer state
e
os
: cl
IN appl: close
pl :F send: FIN
ap nd
se
simultaneous close
recv: FIN recv: ACK
FIN_WAIT_1 CLOSING LAST_ACK
send: ACK send: <nothing>
re
cv passive close
se : FIN
recv: ACK nd recv: ACK
send: <nothing> :A ,A send: <nothing>
CK CK

recv: FIN
FIN_WAIT_2 TIME_WAIT
send: ACK
2MSL timeout
active close

normal transitions for client


normal transitions for server
appl: state transitions taken when application issues operation
recv: state transitions taken when segment received
send: what is sent for this transition

TCP state transition diagram.

Reprinted from TCP/IP Illustrated, Volume 2: The Implementation


by Gary R. Wright and W. Richard Stevens,
Copyright 1995 by Addison-Wesley Publishing Company, Inc.

Das könnte Ihnen auch gefallen