전체 방문자
오늘
어제
모달조아
Better than yesterday
모달조아
  • 분류 전체보기 (147)
    • PS (86)
      • BOJ (79)
      • 프로그래머스 (6)
    • 이론 (41)
      • 자료구조 (2)
      • 알고리즘 (8)
      • 데이터베이스 (1)
      • 운영체제 (1)
      • 네트워크 (3)
      • 디자인패턴 (7)
      • Java (13)
      • Spring (4)
      • JPA (1)
      • Git (1)
    • 개발 (18)
    • 프로젝트 (1)
    • 기록 (0)
      • 후기 (0)
    • etc (1)

최근 글

티스토리

hELLO · Designed By 정상우.
모달조아

Better than yesterday

이론/네트워크

TCP handshake 란?

2022. 12. 18. 19:07
  • 등장 배경
    • IP 프로토콜 만으로는 통신자들 간의 연결상태를 알지 못함.
    • 중간에 데이터가 소실되거나 데이터의 순서가 잘못되어도 알 수 있는 방법이 없음.
  • TCP
    • 3 way handshake 의 단계
      • 연결을 초기화할 때 거치는 과정
      • SYN: 클라이언트가 서버와 연결하기 위해 커넥션을 보낸다.
      • SYN+ACK: 서버가 클라이언트가 보낸 SYN 을 받고 받았다는 ACK 과 함께 SYN 을 보낸다.
      • ACK: 다시 클라이언트에서 서버가 보낸 SYN 을 받고 ACK 을 보낸다.
      • 이 과정을 통해 클라이언트와 서버 모두 통신할 준비가 되었다는 것을 서로가 확인할 수 있다.
    • 4 way handshake 의 단계
      • 종료하기 위해 수행되는 과정
      • 클라이언트 FIN-WAIT: 클라이언트가 연결을 종료하겠다는 FIN 신호를 보내고 FIN-WAIT 상태가 됨.
      • 서버 CLOSE-WAIT: 서버가 클라이언트의 FIN 을 받고 확인했다는 ACK 을 보내고 자신의 통신이 끝날 때까지 대기함. 이때 서버 상태는 CLOSE-WAIT.
      • 서버 LAST-ACK: 서버의 통신이 끝나면 연결 해지 준비가 되었다는 신호로 FIN을 보냄.
      • 클라이언트 TIME-WAIT: 서버의 FIN 을 받았다는 ACK 을 보내고 TIME-WAIT 상태가 됨. 아직 서버로부터 받지 못한 데이터가 있을 수 있으므로 TIME-WAIT 상태로 기다리는 것임.
      • 이후 서버는 ACK 을 받고 종료
      • TIME-WAIT 이 끝나면 클라이언트도 종료
저작자표시

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

HTTP 와 HTTPS  (0) 2023.01.07
세션 인증 방식과 토큰 인증 방식  (0) 2022.12.18
    '이론/네트워크' 카테고리의 다른 글
    • HTTP 와 HTTPS
    • 세션 인증 방식과 토큰 인증 방식
    모달조아
    모달조아

    티스토리툴바