3-way handshake, 4-way handshake

박재빈·2024년 12월 19일
1

TCP(Transmission Controll Protocol)에서 신뢰성을 확보하기 위해 사용되는 두 가지 중요한 과정이 있는데 바로 3-Way Handshake와 4-Way Handshake입니다. 이 글에서 각 과정에 대해 알아보도록 하겠습니다.

3-Way Handshake (연결 설정)

3-Way Handshake는 TCP 연결을 설정하기 위해 클라이언트와 서버 간에 이루어지는 세 단계의 과정입니다.

  1. SYN (Synchronization)
    • 클라이언트는 서버에 클라이언트의 ISN(Inital Sequence Numbers)을 담아 SYN을 보냅니다.
  2. SYN - ACK (Synchronization-Acknowledgment)
    • 서버는 클라이언트의 SYN을 수신하고 서버의 ISN을 보내며 승인번호로 클라이언트의 ISN + 1을 보냅니다.
  3. ACK (Acknowledgment)
    • 클라이언트는 서버의 ISN + 1 한 값인 승인번호를 담아 ACK를 서버에 보냅니다.

이렇게 3-Way Handshake 과정 이후 신뢰성이 구축되고 데이터 전송을 시작합니다.

4-Way Handshake (연결 해제)

4-Way Handshake는 TCP 연결을 종료하기 위해 클라이언트와 서버간에 이루어지는 네 단계의 과정입니다.

  1. 클라이언트가 연결을 종료하겠다는 요청(FIN)을 보냅니다.
  2. 서버는 클라이언트의 요청을 확인하고 ACK를 보냅니다.
  3. 서버에서 데이터를 모두 보내고 통신이 끝나면 클라이언트에 FIN을 보냅니다.
  4. 클라이언트는 FIN을 확인했다는 ACK를 보내고 서버는 CLOSED 상태가 됩니다.
  5. 클라이언트는 어느 정도의 시간을 대기한 후 연결이 닫힙니다. (TIME_WAIT)

용어 정리

  • SYN(Synchronization) : 연결 요청 플래그
  • ACK(Acknowledgement) : 응답 플래그
  • ISN(Initail Sequence Numbers) : 초기 네트워크 연결을 할 때 할당된 32비트 고유 시퀀스 번호
  • FIN(Finish) : 연결 종료 플래그
  • TIME_WAIT : 소켓이 바로 소멸되지 않고 일정 시간 유지되는 상태

0개의 댓글