[ CS / Network ] TCP Hand-Shake Sequence Number

황승환·2022년 8월 9일
0

CS

목록 보기
59/60

TCP Hand-shake

TCP는 데이터를 주고 받을 때 사용되는 프로토콜 중 하나로, 연결 지향형으로 알려져 있다. 가상 회선을 연결하여 클라이언트와 서버 간의 통신에 신뢰를 보장하는 방식이다.

가상 회선을 연결하기 위해 연결 요청과 연결 허가에 대한 통신이 먼저 이루어지고, 이 과정에서 신뢰성을 보장하기 위해 Acknowledge라는 신호를 같이 보내게 된다.

요청 또는 응답 & Acknowledge

Acknowledge는 요청이나 응답을 제대로 전송 받았다는 확인 메세지이다. 어떤 요청 또는 응답에 대한 Acknowledge인지 구분하기 위해 Sequence Number가 요청 또는 응답, Acknowledge에 부여된다. 요청 또는 응답에 a라는 Sequence Number가 부여되었다면 이에 해당하는 Acknowledge에는 a+1이라는 Sequence Number가 부여된다.

Sequence Number가 난수로 부여되는 이유

요청 또는 응답이 생성될 때 Sequence Number는 난수로 지정된다. 이에 대한 이유로 Sequence Number를 순차적으로 부여했을 때, 요청 또는 응답과 Acknowledge를 구분하는 데에 어려움이 발생할 수 있기 때문이다. 이 때문에 아예 다른 난수로 매번 부여하여 이러한 어려움을 방지한다.

profile
꾸준함을 꿈꾸는 SW 전공 학부생의 개발 일기

0개의 댓글