TCP 3-way Handshake

YHC·2022년 4월 18일
1
post-thumbnail

TCP란(feat.UDP)


Transmission Control Protocol의 약자로 OSI Model의 전송계층(Transport Layer)에 속하는 하나의 통신규약(프로토콜)이다. 전송계층에서 사용되는 대표적인 프로토콜에는 TCP와 UDP가 있으며 간단히 알아보면 TCP는 신뢰성 있는 연결지향 프로토콜이고, UDP는 신뢰성 없는 비연결지향 프로토콜이다.

TCP는 데이터 전달에 있어 패킷 손실, 중복, 순서불변을 보장하므로 주로 HTTP, FTP(파일 전송), SMTP(메일) 등에 사용된다. 반면 TCP와 정반대의 특성을 가진 UDP는 주로 실시간 스트리밍, 게임, DNS 등에서 사용된다.


3-way Handshake


3-way Handshake는 앞서 확인한 TCP의 연결지향적 특성을 갖게 해주는 과정이다.

  • 데이터를 전송하기에 앞서 신뢰성을 보장하기 위해 상대 컴퓨터와 사전에 세션을 수립하는 과정
  • 양쪽이 통신할 준비가 되었는지 확인하는 과정

3-way Handshake 과정


3-way-handshake

1 단계 : 연결 요청

  • 클라이언트가 연결을 요청하는 SYN(Synchronize Sequence Number) 패킷 전송
  • 클라이언트는 SYN을 보낸 뒤 응답을 기다리는 상태

2 단계 : 요청 수락 및 수신 양호 요청

  • 서버는 SYN 요청을 받고, 클라이언트에게 ACK와 SYN 패킷을 전송하며 요청 수락
  • 서버가 전송하는 ACK는 SYN+1
  • SYN 패킷 전송을 통해 클라이언트에 수신 양호 여부를 요청
  • 서버는 SYN_RECEIVED 상태

3단계 : 수신 양호

  • 서버의 SYN을 받은 클라이언트가 최종적으로 ACK 전송, 이후 데이터 전송 가능

4-way Handshake


4-way-handshake

3-way Handshake가 TCP 통신을 위한 연결 초기화 과정이었다면, 4-way Handshake는 연결을 종료하기 위한 과정이다. 아래와 같은 4단계의 과정으로 나눠 진행한다.

  1. (클라)연결 종료 FIN 전송
  2. (서버)요청 확인 응답 후 CLOSE_WAIT
  3. (서버)연결 종료 FIN 전송
  4. (클라)확인 메세지 응답

참고

[정리] 3 Way-Handshake

TCP / UDP

[ 네트워크 쉽게 이해하기 22편 ] TCP 3 Way-Handshake & 4 Way-Handshake

TCP 3 Way-Handshake

profile
배워서 나도쓰고, 남도 주고

0개의 댓글