3-Way Handshake란 무엇인가?

3-Way Handshake란 무엇인가?

인터넷에서 우리가 웹사이트에 접속하거나 데이터를 주고받을 때, 단순히 “데이터를 보낸다”는 행위만으로 통신이 이루어지지는 않습니다. 특히 TCP 기반 통신에서는 데이터를 보내기 전에 반드시 서로 연결을 맺는 과정이 필요합니다. 이 연결 설정 과정을 3-Way Handshake라고 합니다. 직역하면 “세 번의 악수”라는 의미입니다.

TCP는 신뢰성을 보장하는 프로토콜입니다. 데이터가 순서대로 도착하고, 손실되면 재전송하며, 통신 상태를 유지합니다. 이러한 기능을 제공하려면 먼저 “서로 통신 준비가 되었는지” 확인해야 합니다. 이때 사용하는 절차가 바로 3-Way Handshake입니다.

3-Way Handshake는 총 세 단계로 이루어집니다.

첫 번째 단계는 SYN입니다. 클라이언트가 서버에 연결 요청을 보냅니다. 이때 보내는 패킷에는 SYN(Synchronize) 플래그가 설정되어 있습니다. 이는 “나와 연결을 시작하고 싶다”는 의미입니다. 동시에 클라이언트는 자신의 초기 시퀀스 번호(Sequence Number)를 함께 보냅니다. 시퀀스 번호는 이후 데이터의 순서를 관리하기 위해 사용됩니다.

두 번째 단계는 SYN-ACK입니다. 서버는 클라이언트의 요청을 받으면 응답을 보냅니다. 이 응답에는 SYN과 ACK(Acknowledgment) 플래그가 함께 설정됩니다. SYN은 “나도 연결을 수락한다”는 의미이고, ACK는 “너의 요청을 잘 받았다”는 확인 메시지입니다. 서버 또한 자신의 초기 시퀀스 번호를 함께 전달합니다.

세 번째 단계는 ACK입니다. 클라이언트는 서버의 응답을 확인한 후, 다시 ACK 패킷을 보냅니다. 이는 “서버의 응답을 잘 받았고 연결이 완료되었다”는 의미입니다. 이 세 번째 메시지가 전달되면 TCP 연결이 완전히 성립됩니다.

이 과정을 정리하면 다음과 같습니다.
클라이언트 → SYN → 서버
서버 → SYN + ACK → 클라이언트
클라이언트 → ACK → 서버

이 세 번의 교환이 완료되어야만 실제 데이터 전송이 시작됩니다.

왜 굳이 세 번이나 확인해야 할까요? 그 이유는 신뢰성과 동기화 때문입니다. 네트워크 환경에서는 패킷이 손실되거나 지연될 수 있습니다. 단순히 한 번의 요청과 한 번의 응답만으로는 양쪽이 동일한 상태에 있는지 보장하기 어렵습니다. 세 번의 교환을 통해 양쪽 모두가 서로의 존재와 준비 상태를 확실히 확인합니다.

또한 이 과정에서 교환되는 시퀀스 번호는 이후 데이터 흐름을 관리하는 핵심 요소입니다. TCP는 각 데이터 조각에 번호를 붙여 전송합니다. 만약 데이터가 순서가 바뀌어 도착하거나 일부가 손실되면, 이 시퀀스 번호를 기준으로 재정렬하거나 재전송을 요청합니다. 따라서 3-Way Handshake는 단순한 연결 요청이 아니라, 향후 데이터 관리의 기준을 설정하는 중요한 단계입니다.

비유를 들어보면 3-Way Handshake는 전화 통화와 비슷합니다.
A: “여보세요?”
B: “네, 들립니다.”
A: “저도 잘 들립니다.”
이 과정을 거쳐야 비로소 본격적인 대화가 시작됩니다.

이와 반대로 UDP는 이런 연결 과정이 없습니다. 데이터를 바로 전송합니다. 그래서 속도는 빠르지만 신뢰성은 낮습니다. 반면 TCP는 연결 설정 과정이 있어 초기 지연이 조금 발생하지만, 안정적인 통신을 보장합니다.

보안 측면에서도 3-Way Handshake는 중요합니다. 예를 들어 SYN Flood 공격은 이 과정을 악용하는 대표적인 DDoS 공격 방식입니다. 공격자는 다량의 SYN 요청을 보내고 마지막 ACK를 보내지 않아 서버 자원을 고갈시킵니다. 이를 방지하기 위해 SYN Cookie 같은 보안 기술이 사용됩니다.

정리하자면, 3-Way Handshake는 TCP 통신에서 연결을 설정하기 위한 세 단계의 확인 절차입니다. SYN, SYN-ACK, ACK의 과정을 통해 서로의 준비 상태를 확인하고, 시퀀스 번호를 동기화하며, 안정적인 데이터 전송 기반을 마련합니다. 서버와 네트워크를 이해하려면 반드시 알아야 할 핵심 개념이며, 웹 브라우징, 파일 다운로드, HTTPS 통신 등 대부분의 인터넷 활동 뒤에는 이 과정이 숨어 있습니다.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *