[TCP] 3 way handshake & 4 way handshake

김민구·2023년 6월 27일
0

컴퓨터 네트워크

목록 보기
5/13

TCP 프로토콜

TCP는 트랜스포트 계층에서 사용되는 프로토콜이로 다음과 같은 특징을 지닌다.

  1. 신뢰적 데이터 전송
  2. 핸드 쉐이킹
  3. 혼잡제어

TCP는 데이터 전송에 있어 신뢰적이다.

TCP가 신뢰적으로 데이터를 전송할 수 있는 이유는 ‘핸드 쉐이킹’라는 과정이 있기 때문이다.

연결을 만드는 과정 3 Way Handshake

0단계: 서버 프로그램이 연결될 준비가 되어있는지 확인한다. (서버가 켜져있어야함)

1단계: 클라이언트는 서버에 연결을 요청을 보낼때 시퀀스 번호를 SYN 패킷에 담아서 보낸다.

2단계: 서버가 요청을 제대로 받으면 응답으로 ACK(Acknowledgement)를 클라이언트에 보낸다.

3단계: 클라이언트는 서버에 ACK 응답을 보낸다.

연결을 해제하는 과정 4 Way Handshake

1단계: 연결 해제를 원하는 클라이언트는 서버에 FIN 패킷을 보낸다.

2단계: 요청을 받은 서버는 응답으로 ACK를 클라이언트에 보내고, 서버는 CLOSE_WAIT 상태로 들어간다.

3단계: 더이상 처리할 데이터가 없다면 서버는 클라이언트에 다시 FIN 패킷을 보낸다.

4단계: 클라이언트는 서버에 ACK를 보내 응답한다. 서버는 CLOSED 상태에 들어가며 연결을 종료한다.

간단하게 알아보는 TCP의 데이터 전송원리

TCP프로토콜은 패킷 전송을 사용하기 때문에 클라이언트는 서버에 데이터를 한번에 보내는것이 아니라 패킷 단위로 나눠서 보낸다.

profile
성장하는 개발자가 되고싶어요😀

0개의 댓글