기본 콘텐츠로 건너뛰기

라벨이 패킷인 게시물 표시

TCP 3-Way Handshake는 어떻게 연결을 만드는가

TCP 3-Way Handshake는 어떻게 연결을 만드는가 빠른 답 3-way handshake는 양쪽이 서로 송수신 가능하다는 사실과 초기 순서 번호를 확인하는 연결 설정 절차입니다. SYN은 연결 요청, SYN-ACK은 요청 수락과 서버의 초기 번호 전달, ACK는 클라이언트의 최종 확인입니다. 연결이 안 될 때는 애플리케이션 코드보다 먼저 포트 리슨 상태, 방화벽, 라우팅, SYN 재전송 여부를 확인해야 합니다. tcpdump나 Wireshark 출력에서 SYN만 반복되면 서버 응답이 없거나 중간 네트워크에서 막힌 상황일 가능성이 큽니다. 목차 시간 흐름으로 이해하기 흐름으로 보기 TCP 연결 설정이 필요한 이유 Sequence Number와 ACK Number 서버 포트와 배포 구성 연결 확인을 위한 최소 예시 패킷 캡처로 보는 정상 handshake 장애 징후와 점검 순서 흔한 오해 시간 흐름으로 이해하기 연결 요청 전 DNS 조회나 설정을 통해 대상 IP와 포트가 정해집니다. → 첫 번째 왕복 전 클라이언트가 SYN 으로 연결 의사와 초기 순서 번호를 보냅니다. → 서버 응답 시점 서버가 포트를 열고 있다면 SYN-ACK 로 요청 수락과 서버의 초기 순서 번호를 돌려줍니다. → 최종 확인 시점 클라이언트가 ACK 를 보내면 양쪽 TCP 상태가 ESTABLISHED 로 바뀝니다. → 데이터 전송 이후 HTTP, 데이터베이스, gRPC 같은 애플리케이션 프로토콜 데이터가 TCP 연결 위에서 오갑니다. 흐름으로 보기 흐름 다이어그램 이 흐름은 브라우저, API 클라이언트, 백엔드 서비스, 데이터베이스 클라이언트 모두에서 같은 구조로 나타납니다. 차이가 있다면 80, 443, 5432, 6379처럼 대상 포트와 그 위에서 동작하는 애플리케이션 프로토콜이 달라진다는 점입니다. ESTABLISHED 상태가 되었다는 말은 TCP 연결이 만들어졌다는 뜻입니다. TLS 인증서 검증, HTTP 라우팅, 데이터베이스 인증, 애플리케이션 권한 ...