사이버보안공부

3-Way Handshake

wnstj 2023. 7. 24. 23:06

3-way Handshake 는 TCP에서 연결을 성립시키는 과정이다.

TCP Flag?

SYN( synchronization ) 연결 요청 플래그

통신 시작 시 세션을 연결하기 위한 플래그

 

ACK( Acknowledgement ) 응답 플래그

송신측 으로부터 패킷을 잘 받았다는 걸 알려주기 위한 플래그

 

FIN( Finish ) 연결 종료 플래그

더 이상 전송할 데이터가 없고 세션 연결을 종료시키겠다는 플래그

 

이외에도 RST, PSH, URG 등이 있다.

3-way Handshake?

3-way Handshake는 위에서 말했다시피 TCP 통신을 이용하여 데이터를 전송하기 위해서

네트워크 연결을 설정하는 과정이다. (Connection Establish)

STEP1 (SYN)

클라이언트는 서버와 연결을 하기위해 SYN(요청) 패킷을 보낸다.

이때 클라이언트는 SYN 을 보내고 SYN/ACK 응답을 기다리는SYN_SENT 상태가 되는 것이다.

Client : CLOSED → SYN_SENT

Server : LISTEN

STEP2 (SYN + ACK)

서버가 SYN을 받고, 클라이언트에게 받았다는 신호인 ACK와 SYN 패킷을 보낸다.

그리고 클라이언트가 다시 ACK으로 응답하기를 기다린다. 이때 서버는 SYN_RECEIVED 상태가 된다.

Clent : CLOSED

Server : SYN_RECV

STEP3 (ACK)

클라이언트는 서버에게 ACK을 보내고 이후로부터는 연결이 이루어진다.

이때의 서버 상태가 ESTABLISHED 이다.

Client : ESTABLISHED

Server : SYN_RECV → ACK → ESTABLISHED

위와 같은 방식으로 통신하는것이 신뢰성있는 연결지향 프로토콜 TCP의 3-Way Handshake 방식이다.