TCP 3 way handshake란

마동찬·2023년 8월 21일

TCP 3 way handshake란

연결하고자 하는 두 장치 간의 논리적 접속을 성립하기 위해 사용하는 연결 확인 방식으로, 3번의 확인 과정을 거친다고 해서 3 way handshake라고 부른다.

TCP 3 way handshake를 간단히 표현하면 다음과 같다.

  • A -> B : 내 말 들려?

  • B -> A : 잘 들려. 내 말은 들려?

  • A -> B : 잘 들려!

SYN (synchronize sequence numbers) - 연결 확인을 위해 보내는 무작위의 숫자값 (내 말 잘 들려?)

ACK (acknowledgements) - Client 혹은 Server로부터 받은 SYN에 1을 더해 SYN을 잘 받았다는 ACK (잘 들려)

ISN (Initial sequence numbers) - Client와 Server가 각각 처음으로 생성한 SYN

👉 SYN의 값에 무작위 수를 사용하는 이유?

Connection을 맺을 때 사용하는 포트는 유한 범위 내에서 사용하고 시간이 지남에 따라 재사용된다.

따라서 두 통신 호스트가 과거에 사용된 포트 번호 쌍을 사용할 가능성이 존재한다.

서버 측에서 패킷의 SYN을 보고 패킷을 구분하게 되는데 난수가 아닌 순차적인 숫자가 전송된다면 이전의 connection으로부터 오는 패킷으로 인식할 수 있어 이러한 문제 발생 가능성을 줄이기 위해 ISN을 무작위 난수로 사용하는 것이다.

Ref. https://seongonion.tistory.com/74

profile
새내기개발자 성장기록

0개의 댓글