본문 바로가기
기초 CS 정리

TCP 3way handshake

by 쿠리의일상 2023. 2. 5.

1. 연결 성립 : 3 way handshake

TCP는 정확한 전송을 보장해야하므로 통신하기 앞서, 논리적 접속을 성립해야 한다.

이를 위해 3번의 통신이 완료되면 연결이 성립하는 방식

  • 클라이언트가 서버에 SYN 패킷을 보낸다. (seq = x)
  • 서버가 SYN(x) 을 받고 클라이언트로 받았다는 신호인 ACK와 SYN 패킷을 보낸다. (seq=y, ACK(x+1))
  • 클라이언트는 서버의 응답을 받고 ACK(y+1)을 서버로 보낸다

 

 

2. 연결 해제 : 4 way handshake

연결 성립 후 모든 통신이 끝났다면 해제해야 한다.

  • 클라이언트는 서버에게 연결을 종료한다는 FIN 플래그를 보낸다.
  • 서버는 FIN을 받고 확인했다는 ACK를 클라이언트에게 보낸다. → 이때 모든 데이터를 보내기 위해 CLOSE_WAIT 상태가 된다.
  • 서버가 데이터를 모두 보냈다면 연결이 종료되었다는 FIN 플래그를 클라이언트에게 보낸다.
  • 클라이언트는 FIN을 받고 확인했다는 ACK을 서버에 보낸다. → 서버로부터 받지 못한 데이터가 있을 수 있으므로 TIME_WAIT를 통해 기다린다.
    • 서버는 ACK을 받은 뒤 소켓을 닫고
    • 클라이언트 TIME_WAIT 시간이 끝나면 클라이언트도 닫는다

 

  1.  

'기초 CS 정리' 카테고리의 다른 글

대칭키와 공개키  (0) 2023.02.07
TCP/IP의 흐름제어, 혼합제어  (1) 2023.02.05
OSI 7계층  (0) 2023.02.04
함수형 프로그래밍과 객체지향 프로그래밍  (0) 2023.02.03
파일 시스템  (0) 2023.02.02