3 & 4 way handshake

3 - Way Handshake & 4 - Way Handshake (TCP / UDP)

3 Way Handshake 와 4 Way Handshake는 TCP 프로토콜에서 호스트 간 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정이다

 

그럼 여기서 TCP 와 UDP가 무엇인지 간단하게 알고 가보자

TCP

  • 연결형 서비스를 지원하는 전송계층 프로토콜
  • 인터넷 환경에서 기본 사용
  • 호스트간 신뢰성 있는 데이터 전달(연결형 서비스니까 !)흐름제어혼잡제어 등을 제공하는 전송 계층 (데이터 흐름 제어)
  • 호스트 간의 연결의 설정(3 way handshake)과 해제(4 way handshake)

 

여기서 중요한 흐름제어혼잡제어를 꼭 알아야 한다! ==> 요 건 링크

 

UDP

  • 비연결형 서비스를 지원하는 전송계층 프로토콜
  • 사용자 데이터그램형 프로토콜
  • TCP와는 달리 연결의 설정과 해제(3 way handshake & 4 way handshake) 과정이 없음
  • 송신측에서 수신측이 데이터를 잘받았는지 확인하지 않고, 일방적으로 데이터를 보내기만 함

 

image

 

일단 미리 알아두어야 할 것은 클라이언트와 서버간의 서로 통신하기 위해 두 종류의 패킷(ACK , SYN)을 보낸다

일단 패킷들의 종류를 몇가지 알아보면

CWR : 송신자의 자신의 윈도우 사이즈를 줄인다.

ECE : 혼잡 감지 시 수신자가 ECE를 설정하여 송신자에게 알린다.

URG : Urgent Point 필드와 함께 사용되고 플래그 설정 시 TCP는 해당 세그먼트를 전송 큐의 제일 앞으로 보낸다.

ACK : SYN에 대한 확인의 의미이다. 3 way handshake에서의 syn과 reset을 제외하고 모든 세그먼트에 ACK가 설정

PSH : 일반적으로 모든 데이터를 전송하고 마지막에 보내는 신호로 수신측은 데이터를 즉시 전송하라는 의미

RST : 송신자가 유효하지 않은 연결을 시도할 때 거부하는데 이용되고 또한 통신의 연결 및 종료를 정상적으로 할 수 없을 때 사용

SYN : 통신 시작 시 연결을 요청하고 ISN(순서번호)을 교환

FIN : 데이터 전송을 종료

 

3 Way HandShake

흐름을 설명하자면

  1. Client는 맨 처음 close 상태이며 , Server와 연결하기 위해 SYN을 보낸다
  2. Server는 맨 처음 Listen 상태이며, SYN을 받고, 그거에 대한 ACK를 보내고 , Client도 포트를 열어 달라고 SYN을 보낸다
  3. Client가 Server의 ACK 와 SYN을 받고(여기서 클라는 established상태), SYN에 대답으로 ACK를 보낸다,
  4. Server가 마지막으로 ACK를 받으면 established로 상태가 변경되며 , tcp 연결이 완료된다

image

Closed : 닫힌 상태

LISTEN : 포트가 열린 상태로 연결 요청 대기 중

SYN_RCV : SYNC 요청을 받고 상대방의 응답을 기다리는 중

ESTABLISHED : 포트 연결 상태


 

4 Way Handshake

  1. Client가 연결을 종료하겠다는 FIN플래그를 전송한다.

  2. Server는 FIN플래그를 받은 다음 플래그에 대한 ACK를 보낸 후 TIME_WAIT 상태가 된다.

    (FIN을 받았지만 , Client가 보낸 패킷이 라우팅 지연이나 패킷 손실의 이유로 재전송을 보낼 수 있는데, 이 때 FIN패킷보다 늦게 도착할 수 있기 때문에 TIME_WAIT상태에서 일정시간 기다리는 것이다.)

  3. Time_wait상태가 끝나면 Server는 연결을 종료하겠다는 FIN플래그를 전송한다.

  4. Client는 FIN플래그에 대한 ACK플래그를 보낸 후 tcp 연결을 종료 된다

image

 

 

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

SSL 동작과정  (0) 2020.08.19
TCP 프로토콜 - (흐름제어 와 혼잡제어)  (0) 2020.08.19
Post와 GET의 차이  (0) 2018.03.11

+ Recent posts