What's the typical sequence of events in a TCP connection? Let's say Alice is opening a TCP session with Bob. (Enjoy the sparkling ASCII graphics.)
Alice Bob
(open phase)
SYN --->
<--- SYN+ACK (no data in packets here)
SYN+ACK --->
(data transfer)
PSH ---> (PSH packets have data)
<--- ACK (Bob is just ACKing without sending data back)
PSH+ACK --->
<--- PSH+ACK (ACKs can be sent along with data)
PSH+ACK --->
...
(close phase)
FIN --->
<--- FIN+ACK (also no data in packets here)
FIN+ACK --->
(closed)
At this point the connection remains in TIME_WAIT state for a time to prevent stray packets from this connection from being accepted