4월 26일- 4-Way Handshake

Yullgiii·2024년 4월 26일
0
post-thumbnail

TCP/IP 4-Way Handshake 상세 설명

4-Way Handshake란 무엇인가?

4-Way Handshake는 TCP/IP 프로토콜에서 사용하는 연결 종료 과정으로, 두 통신 당사자가 데이터 전송이 완료되었음을 확인하고 연결을 안전하게 종료할 준비가 되었음을 보장한다. 이 과정은 연결을 안정적으로 마무리하고, 누락된 데이터 없이 모든 패킷이 전송되었는지 확인하는 데 중요하다.

패킷이 4-Way Handshake 목적인지 파악하는 방법

4-Way Handshake에서 사용되는 패킷은 TCP 헤더 내의 플래그를 통해 구별할 수 있다. 특히, FIN (Finish) 및 ACK (Acknowledgment) 플래그가 사용되며, 이들은 다음 단계로 진행되는 과정을 나타낸다:
1. 종료를 원하는 호스트가 FIN 플래그를 설정한 패킷을 전송한다.
2. 수신 호스트는 이를 수신 후 ACK 플래그를 설정하여 응답한다.
3. 수신 호스트 또한 FIN 플래그를 설정하여 연결 종료 준비가 되었음을 전송한다.
4. 최초의 호스트가 최종적으로 ACK 플래그로 응답하여 연결을 종료한다.

급하게 연결을 종료하는 방법

만약 4-Way Handshake를 수행할 여유가 없다면, RST (Reset) 플래그가 설정된 패킷을 전송하여 연결을 강제로 종료할 수 있다. RST 플래그는 연결을 즉시 종료시키며, 이는 오류 상황이나 긴급한 종료가 필요할 때 유용하다.

네트워크 강제 종료 시 반대쪽 인식 방법

한쪽 네트워크에서 연결이 강제로 종료된 경우, TCP는 설정된 타임아웃을 기준으로 ACK 패킷을 기다린다. ACK 패킷이 정해진 시간 내에 도착하지 않으면, 연결이 강제 종료된 것으로 간주하고 해당 연결을 종료하거나 재시도한다.

TIME_WAIT 상태의 중요성

연결 종료 후 TIME_WAIT 상태로 대기하는 것은 네트워크 내에서 지연되거나 순서가 바뀐 패킷이 최종적으로 소멸될 수 있도록 보장하기 위함이다. 이 상태는 일반적으로 최대 세그먼트 수명(MSL)의 두 배 동안 지속되며, 이 기간 동안 모든 패킷이 네트워크에서 소멸하도록 한다. 이는 같은 포트 번호를 사용하는 새 연결이 이전 연결의 잔류 데이터로 인해 문제를 겪지 않도록 하기 위해서다.

이러한 과정을 통해 TCP 연결의 종료가 안정적으로 관리되며, 네트워크의 안정성과 데이터의 정확성이 유지된다.

profile
개발이란 무엇인가..를 공부하는 거북이의 성장일기 🐢

0개의 댓글