본문 바로가기
Computer Science

[CS] TCP 연결이라는 착각 / 3-way-handshake

by bkuk 2023. 2. 24.

3 Way-Handshake

전송제어 프로토콜(TCP)에서 통신을 하는, 연결을 위해 주로하는 방법론이다. 서로 연결이 잘 되어있는지 확인하는 과정/방식이다. 

 

Client와 Sever에서 주고받는 데이터의 단위는 Segment 이다.

 

위 그림을 통해 알 수 있듯이 클라이언트가 하나의 데이터를 Server측으로 보내는데 이는 Segment이다. 또한, flag가 Syn(1000) 로 set 된 Segment이다.

Client에서 데이터를 보내기 전부터, Sever측에서는 계속 Listen 하며, Segment가 오면 '누가 나랑 통신하자고 연락이 왔네?' 라고 판단한다. Sever 측에서는 응답을 잘 받았다는 의미로 받은 시퀀스넘버에 +1을 해서 1001번과 자신의 시퀀스넘버 4000번을 보낸다.

Client측에서도 받은 시퀀스넘버에 +1 해서 다시 보낸다.

 

따라서, 이는 시퀀스 번호를 교환하는 행동이라고 볼 수 있다.

 

추가로, 위에서 데이터를 주고받을 때, MSS(maximum segment size)도 같이 보내며, 서로의 MSS 를 비교해서 둘 중 낮은 MSS로 선정한다.

또, 정책을 하나 교환하는데 이는 혼잡제어 정책을 교환한다. 대표적으로 SACK 가 있다.

하지만 보완성이 하나도 없기때문에, 보안사고가 많이 발생하는 부분이다.

 

출처: https://www.youtube.com/@nullnull_not_eq_null

댓글