본문 바로가기

네트워크

TCP Handshak

3-Way-Handshak

TCP/IP 프로토콜을 이용한 통신에서 데이터를 주고받기 전 연결 과정

순서

  1. 클라이언트는 서버에 접속을 요청하는 SYN(M) 패킷을 보낸다.
  2. 서버는 클라이언트의 요청 패킷을 받고 요청을 수락한다는 ACK(M+1)과 SYN(N)이 설정된 패킷을 발송한다.
  3. 클라이언트는 서버의 수락 응답 패킷을 받고 ACK(N+1)을 서버로 보낸다. 연결이 성립된다.

4-Way-Handshak

TCP/IP 프로토콜을 이용한 통신에서 연결 해제 과정

순서

  1. 클라이언트가 서버에 FIN 패킷 전송 → FIN-WAIT 상태
  2. 서버가 FIN 패킷 수신, 클라이언트에 ACK 전송 → CLOSE_WAIT 상태

    (자신이 보낼 데이터 다 보낼 때까지 대기)
  3. 서버가 연결 종료할 준비가 되었으면 클라이언트에 FIN 패킷 전송 → LAST_ACK 상태
  4. 클라이언트가 FIN 수신, 해지 준비 되었으면 ACK 전송 → TIME-WAIT 상태
  5. 클라이언트는 MSL * 2만큼 기다린 후에 CLOSED 상태
    • Server에서 FIN을 전송하기 전에 전송한 패킷이 Routing 지연이나 패킷 유실로 인한 재전송 등으로 인해 FIN패킷보다 늦게 도착하는 상황 대비

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

로드 밸런싱  (0) 2024.03.05
HTTP & HTTPS  (0) 2024.03.05
TCP/IP 흐름제어, 혼잡제어  (0) 2024.03.05
TCP와 UDP  (0) 2024.03.01
OSI 7계층  (0) 2024.03.01