본문 바로가기

CS

[CS] 3-Way Handshake

 

 


 

 

개요

TCP 프로토콜은 신뢰성 있는 데이터 전달을 위해, 통신 전 3-way handshake를 통해 기기 간의 연결을 설정해야 합니다. 3-way handshake가 무엇인지 알아봅시다.

 

 


 

 

 

3-Way Handshake

네트워크에서 TCP(Transmission Control Protocol) 연결을 설정할 때 사용하는 3단계 통신 절차를 말합니다. 이는 클라이언트와 서버 간의 신뢰성 있는 연결을 수립하기 위해 사용됩니다.

 

 


 

 

3단계 절차

1. SYN(synchronize) - 클라이언트 ➝ 서버

클라이언트가 서버에 연결 요청을 보냅니다. 이때 SYN 플래그("연결을 시작하고 싶다")가 설정된 패킷을 보냅니다.

  • 패킷에는 자신의 초기 시퀀스 번호(ISN)를 포함합니다.
    (이를 통해 TCP 프로토콜이 데이터 전송 순서를 관리합다.)

 

2. SYN-ACK (synchronize + acknowledge) – 서버 ➝ 클라이언트

서버가 요청을 수락하고 클라이언트에게 응답합니다. 이때 SYN과 ACK 플래그가 동시에 설정된 패킷을 보냅니다.

 

  • 서버도 자신의 ISN을 포함. (클라이언트 시퀀스 번호에 1을  더한 값을 ACK로 응답합니다.)
  • 동시에 클라이언트의 SYN 요청에 대한 확인(ACK)을 포함.

 

3. ACK (acknowledge) – 클라이언트 ➝ 서버

클라이언트가 서버의 SYN-ACK에 대해 확인 응답을 보냅니다. 이때는 ACK 플래그만 설정됩니다.

 

 

✅ 3단계 과정을 거치면, TCP 연결이 성공적으로 설정되어 양측이 데이터 통신을 시작할 수 있습니다.

 

 

'CS' 카테고리의 다른 글

[CS] 웹 주소 체계: DNS, URI, URL, URN  (0) 2025.05.06
[CS] 포트(PORT)  (0) 2025.05.06
[CS] TCP와 UDP  (0) 2025.05.04
[CS] IP (Internet Protocol)  (0) 2025.05.04
프론트엔드(Front-End)와 백엔드(Back-End)는 뭐가 다를까?  (0) 2025.04.19