3 Way Handshake란 | TCP 연결 과정

2026. 3. 3. 21:47·IT 기초
반응형

웹 브라우저에 주소를 입력하면 페이지가 바로 열립니다. 눈에는 보이지 않지만 그 짧은 순간에 서버와 연결을 맺는 과정이 먼저 진행됩니다.

이때 사용되는 방식이 TCP 연결입니다. TCP는 데이터를 바로 보내지 않고 먼저 연결을 설정합니다. 그 과정을 3 Way Handshake라고 합니다.

이 과정을 이해하면 서버 접속 문제를 볼 때 시야가 조금 달라집니다.

 

데이터를 보내기 전에 왜 연결을 먼저 확인할까

UDP와 달리 TCP는 신뢰성을 중요하게 생각하는 프로토콜입니다. 데이터가 정확하게 도착했는지, 순서가 맞는지, 중간에 손실되지 않았는지를 관리합니다.

그래서 데이터를 보내기 전에 상대방이 준비되어 있는지 먼저 확인합니다. 이 과정이 바로 연결 설정 단계입니다.

만약 이 과정이 없다면 상대가 준비되지 않은 상태에서 데이터가 전달될 수 있고, 이전 통신의 잔여 패킷과 혼동이 생길 수도 있습니다.

TCP는 이런 상황을 방지하기 위해 연결을 명확하게 성립시킨 뒤 통신을 시작합니다.

 

3 Way Handshake는 어떻게 진행될까

과정은 세 단계로 이루어집니다.

첫 번째 단계에서는 클라이언트가 서버로 SYN 패킷을 보냅니다. 연결을 요청하는 신호입니다.

두 번째 단계에서는 서버가 SYN과 ACK를 함께 보냅니다. 요청을 받았고, 나도 연결할 준비가 되어 있다는 의미입니다.

세 번째 단계에서는 클라이언트가 다시 ACK를 보내면서 연결이 최종적으로 성립됩니다.

이 세 단계가 완료되어야 데이터 전송이 시작됩니다. 이 과정은 매우 빠르게 이루어지기 때문에 사용자는 거의 느끼지 못합니다.

 

왜 굳이 세 번이나 주고받을까

처음 보면 두 번이면 충분해 보일 수도 있습니다. 요청하고, 응답하면 끝날 것 같기 때문입니다.

하지만 네트워크 환경에서는 지연이나 중복 패킷이 발생할 수 있습니다. 과거에 보낸 요청이 늦게 도착하거나, 응답이 손실될 수도 있습니다.

마지막 ACK 단계는 양쪽이 동일한 연결 상태를 공유하고 있는지 확인하는 절차입니다.

이 확인 과정이 없으면 서버와 클라이언트가 서로 다른 상태를 인식하는 문제가 발생할 수 있습니다.

세 번째 단계는 단순 형식이 아니라 잘못된 연결을 방지하기 위한 안전 장치입니다.

 

연결이 중간에서 끊기면 어떻게 될까

서버 접속이 되지 않을 때 포트는 열려 있는데 연결이 안 되는 상황이 발생하기도 합니다.

관련 개념은 아래 글에서 먼저 정리해두었습니다.

👉[IT 기초] - 포트는 열려 있는데 왜 접속이 안 될까

이 경우 단순히 포트 문제라고 보기 어렵습니다. 3 Way Handshake 과정이 중간에서 실패했을 가능성도 있습니다.

예를 들어 SYN은 보냈지만 응답이 오지 않는 경우, SYN과 ACK는 받았지만 마지막 ACK가 전달되지 않은 경우, 방화벽에서 특정 패킷이 차단된 경우 등이 있습니다.

이런 상황에서는 연결이 성립되지 않으며, 연결이 성립되지 않으면 데이터 전송도 시작되지 않습니다.

 

TCP가 신뢰성을 유지하는 방식

3 Way Handshake는 단순히 시작 단계일 뿐입니다. 이후에도 TCP는 데이터 순서 보장, 손실 시 재전송, 흐름 제어, 혼잡 제어와 같은 기능을 수행합니다.

이 모든 기능은 연결이 정상적으로 성립되었다는 전제 위에서 동작합니다.

연결이 안정적으로 시작되어야 이후 통신도 안정적으로 유지됩니다.

 

정리

TCP 연결은 데이터를 보내기 전에 반드시 확인 과정을 거칩니다.

1. 연결 요청
2. 응답 확인
3. 최종 확인

이 세 단계를 통해 양쪽 상태를 맞춘 뒤 통신이 시작됩니다.

3 Way Handshake는 단순한 절차가 아니라 신뢰성 있는 통신을 위한 기본 구조입니다.

서버 접속 문제를 점검할 때도 단순히 포트가 열려 있는지만 보는 것이 아니라 연결이 실제로 성립되었는지를 생각해보는 것이 중요합니다.

반응형

'IT 기초' 카테고리의 다른 글

방화벽은 어떻게 패킷을 판단할까 | Stateful과 Stateless 차이  (0) 2026.03.04
UDP는 왜 빠를까 | TCP UDP 차이  (0) 2026.03.04
포트는 열려 있는데 왜 접속이 안 될까  (0) 2026.03.03
이벤트 뷰어 사용 방법  (0) 2026.03.03
로그(Log)란 무엇인가 | 왜 시스템 운영에서 중요한가  (0) 2026.03.03
'IT 기초' 카테고리의 다른 글
  • 방화벽은 어떻게 패킷을 판단할까 | Stateful과 Stateless 차이
  • UDP는 왜 빠를까 | TCP UDP 차이
  • 포트는 열려 있는데 왜 접속이 안 될까
  • 이벤트 뷰어 사용 방법
pdlunge
pdlunge
현대자동차 협력사 전산팀에서 근무 중입니다. 전산직 현실, IT 기초, 네트워크 및 운영 경험을 정리합니다.
  • pdlunge
    전산 운영 노트
    pdlunge
  • 전체
    오늘
    어제
    • 분류 전체보기 (79)
      • IT 기초 (66)
      • 전산직 이야기 (12)
  • 블로그 메뉴

    • 홈
    • 블로그 소개
    • 태그
    • 방명록
    • 문의하기
    • 개인정보처리방침
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    전산직 현실
    네트워크
    보안
    전산팀 업무
    전산직
    전산직 연봉
    방화벽
    제조업 전산
    전산팀
    Network
    전산직 전망
    it
    전산직 하는일
    제조업 전산직
    전산
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.6
pdlunge
3 Way Handshake란 | TCP 연결 과정
상단으로

티스토리툴바