본문 바로가기

네트워크

TCP 세션 연결 및 종료 (3-way handshake, 4-way handshake)

TCP/IP 프로토콜을 이용해서 통신을 하는 응용 프로그램이 데이터를 전송하기 전에 정확한 전송을 보장하기 위해

상대방 컴퓨터와 사전에 세션을 수립하는 과정을 3-way handshake라고 한다.

 

3-way handshake

Client가 Server에게 TCP 통신을 하기 위해 3-way handshake를 하는 모습이다.

 

[3-way handshake 풀이]

먼저 Client가 SYN 플래그를 보내 SYN_SENT상태가 되고 Server의 답변을 기다리게 된다.

Server는 답변으로 SYN+ACK 플래그를 보내어 통신이 가능하다는 답변을 하고 SYN_RECVED 상태가 된다.

Server의 통신가능 답변을 받은 Client는 ACK 플래그를 보내어 자신도 통신 준비가 되었다고 알리고, ESTABLESHED

상태가 된다.

Client의 통신 준비완료 메시지를 받은 Server도 ESTABLESHED상태가 되며, 통신을 위한 세션이 맺어지게 된다.

 

 

통신이 끝난 후 논리적인 접속 상태를 해제하기 위해 4-way handshake를 하게 된다.

4-way handshake

Client가 Server에게 TCP 연결 종료를 위해 4-way handshake를 하는 모습이다.

 

[4-way handshake 풀이]

Client가 연결 종료를 위해 Server에게 FIN 플래그를 전송한다.

Server는 확인메시지(ACK)를 전송한 후, 자신의 통신이 끝날 때 까지 기다린다.(TIME_WAT)

Server가 자신의 통신이 끝나게 되면 서로간의 연결이 종료되었다고 Client에게 FIN 플래그를 전송한다.

Client는 확인메시지(ACK)을 전송한다.

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

네트워크 라우팅(Routing)  (0) 2020.07.29
TCP와 UDP 정리  (0) 2020.07.29
네트워크 주소 변환 NAT (Network Address Translation)  (0) 2020.07.29
ARP - 주소 결정 프로토콜  (0) 2020.07.29
OSI 7 Layer, 네트워크 7계층  (0) 2020.07.29