티스토리 뷰

TCP - States

TCP 연결 상태

TCP - Connection Establishment

3-Way Handshake

 

핸드셰이킹(handshaking)은 정보기술과 전기통신 및 관련 분야에서 채널에 대한 정상적인 통신이 시작되기 전에 두 개의 실체 간에 확립된 통신 채널의 변수를 동적으로 설정하는 자동화된 협상 과정이다. 채널의 물리적인 확립이 잇따르며, 정상적인 정보 전송 이전에 이루어진다.

 

TCP는 안정적인 정보 전송을 보장하기 위해 3-Way Handshake 방식을 사용한다.

구체적인 진행 방식은 아래와 같다.

 

TCP - Connection Establishment (3-Way Handshake)

 

ISN(Initial Sequence Number)

 

클라이언트의 ISN이 0에서 시작하지 않고 무작위 난수로 설정되는 데에는 2가지 이유가 있다.

 

첫 번째로, TCP 연결의 포트 번호는 유한 범위에서 가져 오므로 시간이 지남에 따라 재사용된다.

따라서 두 통신 호스트가 과거에 사용 된 한 쌍의 포트 번호를 사용하고 있을 수 있다.

이때 서버는 같은 포트에서 전송된 패킷이 지연되어 수신했다고 생각할 수 있다.

아래는 Segment size가 100B인 두 클라이언트와의 통신에 문제가 생기는 예제이다.

 

ISN이 0가 아닌 이유

하지만 예측하기 어려운 난수를 ISN으로 사용하는 경우 손실 된 세그먼트가 얼마 후에 수신 되더라도 동일한 시퀀스 번호를 다시 가질 기회가 적다.

 

두 번째 이유는 0에서 시작하는 ISN은 이어지는 SEQ을 쉽게 예측하게 만들어 TCP sequence prediction attack등의 공격에 취약해지는 이유이다. 이를 방지하기 위해 예측하기 어려운 임의의 ISN을 만든다.

 

TCP - Connection Termination

4-Way Handshake

TCP는 세션의 종료에 4-Way Handshake 방식을 사용한다.
구체적인 진행 방식은 아래와 같다.

 

TCP - Connection Termination (4-Way Handshake)

 

 

참고문헌

https://ko.wikipedia.org/wiki/핸드셰이킹

https://asfirstalways.tistory.com/356

[Mind Net][ 네트워크 쉽게 이해하기 22편 ] TCP 3 Way-Handshake & 4 Way-Handshake
HyacinthWiki - TCP 연결 상태 의미

W::TCP 상태 변화 (TCP States)

jinb-park blog [패킷 분석 이용한 프로토콜 분석] 04_1 - TCP 설명

'Study > CS' 카테고리의 다른 글

송신 포트 vs 수신 포트 (Source Port vs Destination Port)  (0) 2019.07.30
TCP - Checksum  (0) 2019.07.16
TCP - Segment Structure  (0) 2019.07.12
TCP  (0) 2019.07.12
유니티 최적화 기법들  (0) 2019.02.11
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함