개발조아

3 way handshake, 4 way handshake 본문

CS/네트워크

3 way handshake, 4 way handshake

개발조아 2021. 10. 21. 16:53
728x90
  • TCP 방식에서 두 시스템간의 정확한 데이터 송수신을 위해 연결을 설정, 해제하는 과정
  • 3 way handshaking
    • 연결을 설정하는 과정
    • https://gyoogle.dev/blog/computer-science/network/TCP 3 way handshake & 4 way handshake.html
    • 과정
      • 1. 클라이언트가 서버와 통신을 위해 SYN 패킷을 보냄
      • 2. 서버가 SYN을 받고, 클라이언트부터 받았다는 신호인 ACK와 SYN를 클라이언트에 보냄
      • 3. 클라이언트는 서버가 보낸 ACK와 SYN을 받고 다시 서버에 ACK를 보냄
    • 3번의 과정을 통해 연결 성립
  • 4 way handshaking
    • 연결을 해제하는 과정
    • https://gyoogle.dev/blog/computer-science/network/TCP 3 way handshake & 4 way handshake.html

      • 과정
        • 1. 클라이언트는 서버에게 연결을 종료한다는 FIN 플래그를 보냄
        • 2. 서버는 FIN을 받고, 확인했다는 ACK를 클라이언트에 보냄
          • 이때 남은 데이터를 보내기 위해 CLOSE_WAIT 상태가 됨
        • 3. 서버가 데이터를 모두 보냈다면, 연결이 종료됐다는 FIN 플래그를 클라이언트에 보냄
        • 4. 클라이언트는 FIN을 받고, 확인했다는 ACK를 서버에게 보냄
          • 이때 서버로 부터 받지 못한 데이터가 있을 수 있으므로 TIME_WAIT 시간만큼 기다림)
      • 서버가 ACK를 받았다면 소켓을 닫음(CLOSE)
      • 클라이언트가 TIME_WAIT 시간이 끝나면 클라이언트 소켓도 닫음(CLOSE)
      • 4번의 과정을 통해 연결 해제

'CS > 네트워크' 카테고리의 다른 글

HTTP와 HTTPS  (0) 2021.10.21
대칭키 암호화, 공개키 암호화  (0) 2021.10.21
TCP, UDP  (0) 2021.10.21
TCP/IP 4계층  (0) 2021.10.21
OSI 7계층  (0) 2021.10.21
Comments