[네트워크] TCP 3 way-handshake & 4 way-handshake

nayoon·2021년 6월 22일
0

computer

목록 보기
22/25

TCP 3 way-handshake

TCP 통신

  • 정확한 전송을 보장

  • unreliable network에서 reliable network를 보장할 수 있도록 하는 프로토콜

  • network congestion avoidance algorithm 사용

정의

TCP/IP 프로토콜을 이용해서 통신을 하는 응용 프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정

#세션

session

세션 수립은 연결 지향 통신을 수행하는 데 기초적인 요구사항

정보 교환을 전제하는 컴퓨터와 사용자 간의 송수신 연결상태를 의미하는 보안적인 다이얼로그 및 시간대를 의미

논리적인 접속을 성립하기 위해 3 way-handshake 과정을 진행한다.

과정

  1. 클라이언트 -> 서버
    SYN(M)를 보낸다.

  2. 서버 -> 클라이언트
    SYN(N), ACK(M+1)를 보낸다.

  3. 클라이언트 -> 서버
    ACK(N+1)를 보낸다.

3번의 통신으로 연결이 성립된다.

ACK: 상대의 통신에 대한 응답

SYN: 상대의 접속 요청

SYN 패킷과 ACK 패킷에 들어있는 것은 시퀀스 번호로 난수이다.

난수인 이유는 이전 connection과 구분해서 오류를 줄이기 위해서이다.

TCP 4 way-handshake

정의

연결 성립 후, 연결을 해제하기 위한 과정

과정

  1. 클라이언트 -> 서버
    FIN 플래그를 보낸다.

  2. 서버 -> 클라이언트
    ACK를 보낸다. (FIN 플래그를 받았다는 확인 메시지)
    모든 데이터를 클라이언트에게 보내기 위해 TIME WAIT(대기) 상태가 된다.

  3. 서버 -> 클라이언트
    데이터를 모두 보냈다면, FIN 플래그를 보낸다.

  4. 클라이언트 -> 서버
    FIN 플래그를 받고, 확인했다는 의미로 ACK를 보낸다.
    아직 서버로부터 받지 못한 데이터가 있을 수 있기 때문에 TIME WAIT을 통해 기다린다.
    TIME WAIT의 기본값은 240초로 세션을 종료하지 않은 상태로 서버로부터 미처 받지 못했을 데이터를 기다린다.

FIN: 접속을 종료하는 것

참고 사이트

  1. [TCP] 3-way-handshake & 4-way-handshake
  2. [ 네트워크 쉽게 이해하기 22편 ] TCP 3 Way-Handshake & 4 Way-Handshake
  3. [TCP] 3 way handshake & 4 way handshake
  4. [네트워크] TCP 3-way handshake
profile
뚜벅뚜벅 열심히 공부하는 개발자

0개의 댓글