4-웨이 핸드셰이크와TIME_WAIT ★★★
by yjym334-way 핸드셰이크 (4-way handshake)
4-way 핸드셰이크는 TCP (Transmission Control Protocol) 연결을 종료하는 프로세스입니다. 3-way 핸드셰이크가 연결 설정을 시작할 때 사용되는 것과 유사하게, 4-way 핸드셰이크는 연결을 종료할 때 사용됩니다. 연결 종료 과정은 다음과 같습니다.
호스트 A에서 호스트 B로 연결 종료 요청 (FIN):
호스트 A는 연결 종료를 원할 때 호스트 B로 FIN (Finish) 플래그가 설정된 패킷을 보냅니다. 이것은 호스트 A가 더 이상 데이터를 보내지 않을 것임을 나타냅니다.
호스트 B에서 호스트 A로 확인 (ACK):
호스트 B는 호스트 A로부터의 연결 종료 요청을 받으면, ACK (Acknowledgment) 플래그가 설정된 패킷을 보내 호스트 A로 연결 종료 요청을 수락한다는 응답을 합니다. 이때 호스트 B는 여전히 보낼 데이터가 남아 있을 수 있으므로, 연결을 아직 완전히 종료하지 않습니다.
호스트 B에서 호스트 A로 연결 종료 요청 (FIN):
호스트 B는 데이터를 모두 보냈다면 이제 호스트 A로 FIN 플래그가 설정된 패킷을 보냅니다. 이것은 호스트 B가 더 이상 데이터를 보내지 않을 것임을 나타냅니다.
호스트 A에서 호스트 B로 확인 (ACK):
호스트 A는 호스트 B로부터의 연결 종료 요청을 받으면, ACK 플래그가 설정된 패킷을 보내 호스트 B로 연결 종료 요청을 수락합니다. 이제 양쪽 호스트 간의 연결이 완전히 종료됩니다.
4-way 핸드셰이크를 통해 연결이 안전하게 종료되며, 양쪽 호스트는 더 이상 데이터를 주고받지 않음을 알 수 있습니다.
TIME_WAIT
TIME_WAIT는 TCP 연결이 종료된 후에 호스트가 일정 시간 동안 대기하는 상태를 나타냅니다. 이 상태에서 호스트는 다음과 같은 역할을 수행합니다.
마지막 ACK 패킷을 수신한 호스트는 상대 호스트로부터의 재전송된 패킷을 수신할 가능성이 있으므로, 이 패킷을 대기합니다.
TIME_WAIT 상태의 호스트는 다시 사용될 수 있는 연결에 대한 충돌을 방지하기 위해 일정 시간 동안 해당 포트와 IP 주소를 사용하지 않습니다.
이로써 연결이 종료된 후에도 데이터 패킷이 중복되거나 오래된 패킷이 재전송되는 것을 방지하며, 안전한 통신을 보장합니다.
TIME_WAIT 시간은 일반적으로 2 MSL (Maximum Segment Lifetime)로 설정됩니다. MSL은 네트워크에서 패킷이 유효한 시간을 나타내며, 일반적으로 2분 정도입니다. 따라서 TIME_WAIT 상태의 호스트는 대략 4분 동안 해당 상태를 유지한 후에 포트와 IP 주소를 다시 사용할 수 있습니다.
'Development > CS' 카테고리의 다른 글
| 라우팅테이블 ★★★ (1) | 2023.10.01 |
|---|---|
| 라우팅의 개념과 라우터 ★★★ (0) | 2023.10.01 |
| 3-웨이 핸드셰이크 ★★★ (0) | 2023.09.30 |
| 인터넷 계층(network) 과 ICMP ★★★ (1) | 2023.09.30 |
| 전송 계층(transport) : TCP와 UDP ★★★ (0) | 2023.09.29 |
블로그의 정보
생각보다 실천을
yjym33