• 카테고리

    질문 & 답변
  • 세부 분야

    네트워크

  • 해결 여부

    해결됨

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

23.02.28 09:36 작성 조회수 509

0

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

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

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

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

답변 1

답변을 작성해보세요.

3

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

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

감사합니다.