본문 바로가기
Computer Science/Network

[ Computer Science ] Network - TCP 3 way Handshake / 4 way Handshake

by 마늘아빠 2021. 4. 2.
728x90
반응형

컴퓨터 사이언스(CS) - 네트워크 부분 -

TCP의 3 방향 핸드 셰이크 / 4 방향 핸드 셰이크

TCP란?

OSI 7계층 중에 4계층인 전송계층(Transport Layer)에서 사용하는 프로토콜

사용자들이 신뢰성 있는 데이터를 주고받을 수 있도록 보장해주는 프로토콜이다!


TCP의 자세한 구조는 아래의 포스트에서 확인해보도록 하자!

so-cute-danu-dev.tistory.com/74

 

[ Computer Science ] Network - TCP의 구조

컴퓨터 사이언스(CS) - 네트워크 부분 - TCP의 세그먼트와 헤더 TCP ( Transmission Control Protocol )  인터넷 프로토콜 스위트(IP)의 핵심 프로토콜 중 하나. IP와 함께 TCP / IP라는 명칭으로 널리 불린다...

so-cute-danu-dev.tistory.com


핸드 셰이크란?
TCP는 신뢰성 있는 데이터를 주고 받을 수 있도록 보장해준다고 했다!

신뢰성을 위해서 사용자 간에 논리적인 접속을 확립해야만 한다.

이후 채널의 물리적인 확립이 잇따르며, 정상적인 정보 전송 이전에 이루어진다.

이 과정을 핸드셰이크(주고받기- 안녕(?) - handshake)라고 한다.


TCP 3방향 핸드 셰이크 - 연결 확립
정상적인 TCP 연결을 수립하려면 3가지 단계가 필요하다.
- 두명의 호스트가 서로 연결을 하려고 한다고 한다. ( Alice, Bob )

1. 최초의 호스트인 Alice가 두 번째 호스트인 Bob에게 SYN(동기화) 메시지를 보낸다. ( 이때 sequence = x 이다 )
2. Bob은 SYN-ACK 메시지와 함께 응답한다. 이 메시지는 체 시퀀스 번호 y와 응답 번호 x+1을 포함하며, Alice가 받는다
3. Alice는 응답 메시지와 함께 응답한다. 이 메시지는 응답 번호 y+1이 폼함되며 Bob은 이것을 받고 응답할 필요는 없다.

그림으로 표현하면 아래와 같다!

 


3단계이므로 3방향 핸드 셰이크라고 한다

TCP 4 방향 핸드 셰이크 - 연결 해제
연결 할때는 3단계로 연결을 했다.
그럼 해제할때도 3단계일까? 정답은 NO!
해제할때는 4방향 핸드셰이크를 이용한다

정상적인 TCP 연결을 해제하려면 4가지 단계가 필요하다.
- 두명의 호스트가 서로 연결을 하려고 한다고 한다. ( Alice, Bob )

1. 최초의 호스트인 Alice가 두 번째 호스트인 Bob에게 FIN(연결종료) 메시지를 보낸다. 
2. Bob은 FIN 메시지를 수신하고 ACK 메시지와 함께 응답한다. 이때 모든 데이터를 전송하기 위해 TIME OUT 상태가 된다)
3. Bob은 남은 데이터를 모두 전송하면 Alice에게 FIN(연결종료) 메시지를 보낸다.
4. Alice는 FIN을 받고 Bob에게 ACK 메시지로 응답한다.  이때 Bob에게서 아직 데이터가 더 올 수 있으므로 TIME_WAIT을 통해 기다린다.

- Bob은 ACK 메시지를 받은 이후 소켓을 닫는다( Closed )
- TIME_WAIT 시간이 끝나면 Alice도 닫는다 ( Closed )

그림으로 표현하면 아래와 같다!


TIME_WAIT을 제외한 전체적인 단계는 4단계이므로 4방향 핸드 셰이크라고 한다!

반응형