본문 바로가기

Back-end/Basic

TCP 3, 4-way handshake

TCP 3-way handshake는 TCP 통신을 이용하여 데이터를 전송하기 위해 네트워크 연결을 설정(Connection Establish) 하는 과정

 

클라이언트는 서버에 요청을 전송할 수 있는지, 서버는 클라이언트에게 응답을 전송할 수 있는지 확인하는 과정입니다.

 

SYN, ACK 패킷을 주고 받으며, 임의의 난수로 SYN 플래그를 전송하고, ACK 플래그에는 1을 더한 값을 전송합니다.
정확한 순서는 SYN(n) -> ACK(n+1) , SYN(m) -> ACK(m+1) 순으로 일어납니다.

 

왜 임의의 난수를 지정하는지는, 기존 요청과 구분하기 위해서 입니다.

 

 

TCP 4-way handshake TCP 연결을 해제(Connection Termination)하는 단계입니다.

 

FIN(finish): 세션을 종료시키는데 사용되며, 더 이상 보낸 데이가 없음을 나타냅니다.

클라이언트서버에게 연결 해제를 통지하고 서버가 이를 확인하고 클라이언트에게 이를 받았음을 전송해주고 최종적으로 연결이 해제됩니다.

 

단, 서버에서 소켓이 닫혔다고 통지해도 클라이언트 측에서는 일정 시간 대기하는데, 혹시나 패킷이 나중에 도착할 수도 있기 때문입니다.

 

'Back-end > Basic' 카테고리의 다른 글

대용량 트래픽 처리 방법 - Scale Up VS Scale Out  (0) 2022.03.09
성능, 부하, 스트레스 테스트  (0) 2022.03.08
SEDA(Staged Event-Driven Architecture)  (0) 2022.03.06
Kafka Streams API  (0) 2022.03.06
Cloud Native 란?  (0) 2022.03.06