프로그램이 종료된 후 수신 TCP 포트를 정리하는 데 최대 몇 분이 걸리는 이유는 무엇입니까?

프로그램이 종료된 후 수신 TCP 포트를 정리하는 데 최대 몇 분이 걸리는 이유는 무엇입니까?

TCP 포트에서 수신 대기 중인 프로그램을 종료하면 시스템이 포트를 회수하고 다시 사용할 수 있을 때까지 몇 분 정도 걸립니다. 여러 Q&A에서 이 현상에 대해 언급했지만 설명이 없는 것을 보았습니다. 이런 일이 발생하는 이유는 무엇이며 시스템이 포트를 즉시 재활용하지 않는 이유는 무엇입니까? Windows나 Mac과 같은 다른 시스템에서도 이런 일이 발생합니까?

답변1

그 뒤에 있는 아이디어는 해당 포트에서 수신 대기 중인 이전 프로그램을 위한 패킷을 수신하지 않도록 하는 것입니다. 이 TIME_WAIT상태는 다음에 정의되어 있습니다.RFC793최대 세그먼트 수명의 두 배입니다.

다른 운영 체제에 대해서는 모르지만 모두 비슷한 동작을 한다고 가정합니다.

이 문제의 해결 방법은 다음과 같습니다.SO_REUSEADDR상태를 무시해야 하는 소켓에서 TIME_WAIT.

관련 정보