tcpconnection-setupsyn-ack

TCP 3-way handshake를 설명해 주세요

예상 시간
6
30초 답변

꼬리질문

조금 더 깊게 물어본다면

답변 뒤에 이어질 수 있는 질문들을 하나씩 열어볼 수 있어요.

왜 2-way가 아니라 3-way인가요?

부가 설명

TCP는 그냥 데이터를 던지는 방식이 아니라 연결을 먼저 맞춰 놓고 통신합니다. Client가 “연결하고 싶다”는 SYN을 보내고, server는 “나도 준비됐다”는 SYN-ACK를 돌려줍니다. 마지막으로 client가 ACK를 보내면 양쪽이 서로의 응답 가능성을 확인한 상태가 됩니다.

이 과정은 단순한 인사처럼 보이지만 sequence number를 맞추는 의미도 있습니다. TCP는 이후 데이터를 순서대로 재조립하고 손실을 감지해야 하므로 시작 번호를 서로 확인합니다. handshake 비용 때문에 짧은 요청이 많을수록 연결 재사용이나 HTTP keep-alive가 성능에 영향을 줍니다.

한 줄 정리

3-way handshake는 TCP가 데이터를 보내기 전에 서로 준비와 시작 번호를 확인하는 절차입니다.