← 질문 목록
#351깊이 0
TCP 3-way handshake는 어떤 과정인가?
데이터베이스
TCP 3-way handshake는 클라이언트와 서버가 패킷을 세 번 주고받아 연결을 확립하는 과정이다.
- 1. 클라이언트에서 서버로: SYN. 내 시작 시퀀스 번호를 보낸다
- 2. 서버에서 클라이언트로: SYN + ACK. 받았고 내 시퀀스 번호도 보낸다
- 3. 클라이언트에서 서버로: ACK. 확인했다
이 세 단계를 거쳐 양쪽의 송수신 상태를 모두 확인한다. 각자 데이터의 순서를 맞출 시퀀스 번호를 교환한다. 한쪽의 번호를 상대가 확인해야 양방향 통신이 보장된다.
연결을 맺을 때 네트워크 왕복 시간이 발생한다. DB 커넥션을 매번 새로 맺으면 이 오버헤드가 요청마다 누적된다.
시퀀스 번호는 무작위 난수로 생성된다. 이전 연결의 낡은 패킷이 현재 연결에 혼입되는 사고를 막기 위해서다.