TCP에서의 연결 설정 과정을 3-Way Handshaking이라 한다. 그 과정을 가볍게 살펴보면 아래와 같다.
3-Way Handshaking의 첫 번째 과정으로, '지금 데이터를 보내도 될까요?'를 묻는 메시지를 보낸다.
3-Way Handshaking의 두 번째 과정으로, 'SYN 데이터 잘 받았습니다. 통신 준비가 끝났습니다.' 하는 내용의 메시지를 보낸다.
3-Way Handshaking의 마지막 과정으로, '잘 알겠습니다.' 하는 내용의 메시지를 보낸다.
A가 B에게 접속을 요청하는 SYN 패킷을 보낸다. 그리고 A는 SYN/ACK 응답을 기다린다.
A: 지금 보내는 패킷에 1000번이라는 번호를 부여하니, 잘 받았다면 1001번 패킷을 달라고 알려줘라!
[SYN] SEQ: 1000, ACK: -
B는 A가 보낸 SYN 패킷을 수신하고, A에게 SYN/ACK 응답을 보낸다.
A: 지금 보내는 패킷에 2000번이라는 번호를 부여한다. 1000번 패킷은 잘 받았으니 1001번 패킷을 전송해라!
[SYN+ACK] SEQ: 2000, ACK: 1001
A는 B가 보낸 SYN/ACK 패킷을 수신하고, B에게 ACK 응답을 보낸다.
A: 1001번 패킷을 보낸다! 보낸 2000번 패킷은 잘 받았으니 2001번 패킷을 보내주길 바란다!
[ACK] SEQ: 1001, ACK:2001