idea·blog

03 · 연결 준비 확인

두 컴퓨터는 세 번 인사한 뒤 대화합니다.

전화의 “여보세요? — 네, 들려요 — 저도 들려요”와 같습니다. 어려운 번호는 접어두고 세 문장만 따라가 보세요.

이것만 기억하세요시작 요청 → 서버 응답 →
마지막 확인

아래 파란 버튼만 누르세요

세 문장만 주고받으면 연결돼요

  1. 1시작 요청
  2. 2서버 응답
  3. 3마지막 확인
  4. 4연결 완료
준비
아직 두 컴퓨터 사이에 연결이 없어요

‘첫 인사 보내기’를 누르면 세 번의 인사와 연결 완료를 차례로 보여드려요.

대기 중
내 컴퓨터192.168.0.10CLOSED연결 없음
Redis 서버192.168.0.20 : 6379LISTEN기다리는 중
아직 연결이 없어요.서버는 포트 6379에서 기다리는 중이에요. 연결 시작을 누르면 세 번의 인사가 오가는 과정을 한 단계씩 보여드려요.

이유 세 가지만

왜 두 번이 아니라 세 번일까요?

01양쪽 모두 확인해요.

두 번째 인사만으로는 서버가 보낸 시작 번호가 상대에게 닿았는지 알 수 없어요. 세 번째 ACK이 와야 양쪽의 시작 번호가 모두 확인돼요.

02시작 번호를 교환해요.

서로의 SEQ를 알아두면 데이터가 여러 조각으로 잘리고 뒤섞여 도착해도 순서대로 복원할 수 있어요.

03준비되기 전엔 안 보내요.

일반적인 응용 데이터는 연결이 확인된 뒤 프로그램에 전달돼요. 오래된 중복 연결 요청을 새 연결로 착각할 가능성도 줄여요.

SYN — 시작하자SYN-ACK — 좋아, 나도ACK — 확인했어데이터 주고받기
규격 기반 시뮬레이션입니다.

이 페이지는 실제 패킷 캡처가 아니라 TCP 규격의 연결 수립 절차를 따라 만든 교육용 시뮬레이션입니다. 시작 번호(SEQ)는 읽기 쉽게 100과 300으로 고정했습니다. 실제 ISN은 공격자가 예측하기 어렵게 선택됩니다. 연결 종료(FIN), 재전송과 타임아웃, TCP Fast Open, TLS 핸드셰이크는 다루지 않습니다.

참고: RFC 9293 (TCP) · 3.5 Establishing a Connection

실험을 마쳤다면