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 가 있다.
하지만 보완성이 하나도 없기때문에, 보안사고가 많이 발생하는 부분이다.
'Computer Science' 카테고리의 다른 글
[CS] URI과 URL의 차이 (0) | 2023.03.16 |
---|---|
[CS] HTTP 웹 서버는 어떻게 동작할까? (0) | 2023.03.10 |
[CS] 컴퓨터의 데이터 / 비트(bit)와 바이트(bite) / 2진수와 10진수 / binary (0) | 2022.10.17 |
[CS] 문자 자료형과 Java에서의 char 자료형 / 아스키 코드 / 유니코드 / UTF-8과 UTF-16의 차이점 / 왜 UTF - 8 인코딩 방식을 사용할까? (0) | 2022.10.15 |
[CS] 스택(Stack)과 큐(Queue)에 관해서 (0) | 2022.09.18 |