이번 글에서는 전송계층(4 Layer)의 TCP 3-Way handshake에 대해서 정리한다.
1. TCP 3-Way handshake
TCP 장치들은 논리적인 접속을 성립하려고 Three-way handshake를 사용하는데, TCP/IP 프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해서 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 Three-way handshake라고 한다. (연결 지향 프로토콜)
2. TCP 3-Way handshake 과정

- Step 1 : 클라이언트 A 는 서버 B을 요청하는 SYN 패킷을 보낸다. 이때 A클라이언트는 SYN을 보내고 SYN/ACK 응답을 기다리는 SYN_SENT 상태가 되는 것이다.
- Step 2 : 서버 B는 SYN 요청을 받고, 클라이언트 A에게 요청을 수락한다는 ACK와 SYN Flag가 설정된 패킷을 발송함, A가 다시 ACK로 응답하기를 기다린다. 이때 서버 B는 SYN_RECEIVED 상태가 된다.
- Step 3 : 클라이언트 A는 서버 B에게 ACK를 보내고 이후로부터는 연결이 이루어지고 데이터가 오가게 되는 것이다. 이때의 서버 B 상태가 ESTABLISHED 이다.