TCP연결시에는 알다시피 3way handshaking을 한다. close시에는 client, server 가 각각 FIN을 보낸 후 ACK를 받는다(총 4번의 트랜젝션). TCP연결에는 여러개의 상태가 있는데, netstat으로 확인할 수 있는 상태들에 대해 간단히 정리해보면, 서버에서 listen()이 호출되면 상태는 LISTEN으로 바뀐다. 이 때 client에서 SYN을 보낸 후 SYN_SENT로 상태가 바뀌면 서버에서 이를 받고 SYN_RCVD로 바뀌고 SYN ACK를 보내준다. 그리고 client에서 SYN을 다시 받게 되면 비로소 ESTABLISHED로 바뀐다. 이 후 send(), recv()군의 함수들로 계속 통신을 하다가 client에서 close()호출로 인해 FIN 을 보내고 FIN..