인프런 커뮤니티 질문&답변

Daehoon Seong님의 프로필 이미지
Daehoon Seong

작성한 질문수

외워서 끝내는 네트워크 핵심이론 - 기초

TCP 연결종료 및 상태변화

TCP 연결 종료 과정 중 Time wait관련

해결된 질문

작성

·

625

0

서버로부터 FIN + ACK을 수신 후, 최종 ACK를 서버로 다시 전달한 다음, TIME_WAIT 상태로 넘어가고, 일정 시간이 지난 다음 Close 처리가 된다는 설명에서,

  1. TIME_WAIT 시간은 정해진 값이 있는 것인지? 아니면 소켓 프로그래밍 시 따로 정해주는 것인지?

  2. 바로 CLOSED하지 않고, TIME_WAIT을 하는 이유(목적)는 무엇인지?

질문의 드립니다. :) 널널한개발자님 답변 부탁 드립니다!!

답변 1

3

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

  1. 네, 표준에서 정한 값이 있습니다. 참고로 2MSL(Maximum Segment Lifetime) 입니다.

  2. 가장 큰 이유는 지연 문제 때문입니다. 데이터가 늦게 올 수 있을 가능성을 고려하는 것이죠. 해서 해당 소켓이 즉시 재사용되지 못하도록 막는 것입니다. 그리고 마지막 ACK가 손실될 경우 종료과정에 문제가 발생합니다. 이러한 경우를 막기 위한 것으로 이해하면 되겠습니다.

감사합니다.

Daehoon Seong님의 프로필 이미지
Daehoon Seong

작성한 질문수

질문하기