خوب عزیزان این هم توضیحی در مورد TCP CONNECTION TERMINATION :
When the user has sent all its data and wishes to close the connection it sends a CLOSE primitive to TCP which sends a segment with the FIN flag set. On receipt of this, the peer TCP issues a CLOSING primitive flag to the user and returns an ACK segment. If the peer TCP user has finished send all it's data it sends a CLOSE primitive. If the user still has some data to send it sends the data in a segment with the SEQ and FIN flags set. On receipt of this segment the initiating TCP issues a TERMINATE primitive to the user and returns an ACK for the data just received. When the peer TCP receives the ACK, it returns a TERMINATE primitive to the user.
In the case where the user wants to abort the connection, the user can send an ABORT primitive to the TCP entity which sends a segment with the RST flag set. On receipt of this segment, the peer TCP closes both sides of the connection and issues a TERMINATE primitive with a reason code to the peer TCP user.
حالا لطفا یه نفر در مورد sniff کردن بسته های TCP توضیح بده.