[Network] TCP 3 way handshake & 4 way handshake

foresec·2023년 6월 22일
0

Computer Science

목록 보기
8/28

연결을 성립하고 해제하는 과정을 말함

3 way handshake(연결 성립)

TCP가 정확한 전송을 보장해야하는 만큼, 통신 전에 논리적인 접속을 성립하기 위해 3 way handshake과정이 필요

  1. 클라이언트가 서버에 접속을 요청하는 SYN 패킷을 보냄(sequence : x)
  1. 서버가 SYN(x)를 받고 클라이언트로부터 받았다는 신호인 ACK와 SYN 패킷을 보냄(sequence : y, ACK : x+1 )
  1. 클라이언트는 서버의 응답인 ACK(x+1)과 SYN(y)패킷을 받고, ACK(y+1)을 서버로 보냄

4 way handshake(연결 해제)

모든 통신이 끝났다면 해제 과정이 필요

  1. 클라이언트는 서버에게 연결을 종료한다는 FIN플래그를 보냄

  2. 서버는 FIN을 받고, 확인했다는 ACK를 클라이언트에게 보냄
    (이때, 모든 데이터를 보내기 위해 CLOSE_WAIT) 상태가 됨

  3. 데이터를 모두 보냈다면, 연결이 종료되었다는 FIN 플래그를 클라이언트에게 보냄

  4. 클라이언트는 FIN을 받고, 확인했다는 ACK를 서버로 보냄
    (아직 서버로부터 받지 못한 데이터가 있을 수 있어 TIME_WAIT을 통해 기다림)

서버는 ACK를 받은 후 소켓을 닫음(Closed)
TIME_WAIT 시간이 끝나면 클라이언트도 닫음(Closed)


참고
https://gyoogle.dev/blog/computer-science/network/TCP%203%20way%20handshake%20&%204%20way%20handshake.html

https://bangu4.tistory.com/74

profile
왼쪽 태그보다 시리즈 위주로 구분

0개의 댓글