네트워크

TCP 연결과 종료

_주야 2016. 12. 29. 23:52

 

 

 

* TCP 연결과 종료

 

TCP 연결 (3 way handshake)

 

1. Server에서는 통신을 위해 특정 포트에 대해 LISTEN 상태이다.

   Client는 연결 요청을 위한 SYN 패킷을 보내고 SYN_SENT 상태로 바뀐다.

2. Server는 SYN 패킷을 받으면 SYN_RCVD 상태로 바뀌고 연결 요청과 응답으로 SYN+ACK 패킷을 보낸다.

3. Client는 연결 요청을 위한 SYN패킷을 받으면 ESTABLISTHED 상태로 바뀌고

   연결에 대한 응답으로 ACK 패킷를 보내면 Server 또한 ESTABLISHED 상태가 된다.

 

 

TCP 종료 (4 way handshake)

 

1. Client와 Server는 통신이 가능한 ESTABLISTHED 상태이다.

   Client에서 통신을 종료하고자 FIN 패킷을 보내고 FIN_WAIT1 상태로 대기한다.

2. Server는 FIN 패킷을 받고 CLOSE_WAIT 상태로 바뀌고 연결 종료에 대한 응답으로 ACK패킷을 보낸다.

   Client는 ACK 패킷을 받고 FIN_WAIT2 상태로 대기하며 서버의 종료 호출 (close)을 기다린다.

3. Server에서 종료 호출 (close)이 되면 통신을 종료하고자 FIN 패킷을 보내고 LAST_ACK 상태로 바뀐다.

4. Client는 FIN 패킷을 받으면 TIME_WAIT 상태로 바뀌고 종료에 대한 응답으로 ACK 패킷을 보낸 후 소켓을 종료한다.

   Server는 ACK 패킷을 받고 CLOSED 상태로 바뀌고 소켓을 종료한다.

 

 

'네트워크' 카테고리의 다른 글

tcpdump 추출  (1) 2022.03.19
Wireshark 설치  (0) 2021.01.01
연결형/비연결형 소켓 통신  (1) 2016.12.29
IP의 종류 (Class)  (0) 2013.04.07
IP의 이해  (0) 2013.04.07