CLOSE_WAIT 및 TIME_WAIT 상태는 무엇입니까?


165

netstat -aWindows 컴퓨터에서 작업 할 때 네 가지 상태 중 하나를 가진 포트 목록이 나타납니다.

- LISTENING
- CLOSE_WAIT
- TIME_WAIT
- ESTABLISHED

무엇 CLOSE_WAITTIME_WAIT의미 하고 의미 / 표시합니까?



'man netstat'을 참조하십시오. linux.die.net/man/8/netstat
MaQleod at 10:14

1
자매 사이트 서버 결함 에 대한 답변에 부끄러움이없는 플러그 입니다.
Hennes

교차 사이트 속보
Mokubai

답변:


177

TCP / IP의 작동 방식으로 인해 연결을 즉시 닫을 수 없습니다. 연결이 종료 된 후 패킷이 잘못 도착하거나 재전송 될 수 있습니다. CLOSE_WAIT는 원격 끝점 (연결의 다른 쪽)이 연결을 닫았 음을 나타냅니다. TIME_WAIT는 로컬 끝점 (이 쪽)이 연결을 닫았 음을 나타냅니다. 지연된 패킷이 연결과 일치하고 적절하게 처리 될 수 있도록 연결이 유지됩니다. 연결이 4 분 내에 시간 초과되면 연결이 제거됩니다. 자세한 내용은 http://en.wikipedia.org/wiki/Transmission_Control_Protocol 을 참조하십시오.


그러나 이것은 함수가 반환 된 후에 패킷이 도착하더라도 응용 프로그램에 의해 여전히 버려지는 것을 의미하지 않습니까?
MonsterMMORPG

@MonsterMMORPG 연결이 닫힌 후 순서에 도달하지 못한 패킷은 네트워크 스택에서 처리됩니다. 이들은 보통 중복 패킷 규칙에 따라 안전하게 버릴 수 있습니다. 알 수없는 활성 연결과 관련된 것으로 보이는 패킷은 일반적으로 삭제되고 응답을 생성합니다. WAIT 상태는이 트래픽으로부터 보호합니다.
BillThor

29

기본적으로 "WAIT"상태는 한쪽이 연결을 닫았지만 닫기에 대한 최종 확인이 보류 중임을 의미합니다.

자세한 내용은이 TCP 상태 다이어그램을 참조하십시오.

http://www.jxos.org/Projects/TCP/tcpstate.html


13
CLOSE_WAIT는 정확하게 설명하지만 TIME_WAIT은 아닙니다. TIME_WAIT는 로컬 응용 프로그램이 연결을 닫았 음을 나타내고 다른 쪽은 자신의 FIN을 확인하고 보냈습니다. 우리는 이제 동일한 포트의 새로운 사용자를 화나게 할 수있는 흩어진 중복 패킷을 기다리고 있습니다.
Chris Smowton

1
@ChrisSmowton, 그렇다면 누가 올바른 용어를 사용하고 있습니까? 도표 또는 netstat? ( cf. )
Pacerier

@Pacerier 나는 그들이 일치한다고 생각합니다-당신은 그들이 동의하지 않는다고 생각합니까?
Chris Smowton

@ChrisSmowton 따라서 이것은 다음 포트 소유자가 여분의 바이트를 얻을 수 있고 TIME_WAIT = 0으로 설정하면 응답을 깰 수 있음을 의미합니다.
MonsterMMORPG

응용 프로그램이 스트림에 스 플라이 싱 된 불량 패킷을 보려면 시퀀스 번호가 일치해야하거나 수신기가 올바른 시퀀스 번호가 나올 때까지 순서가 잘못된 패킷을 버퍼링해야하기 때문에 가능하지만 가능성은 거의 없습니다. 실제 구현이 실제로 수행되는지 여부를 알려주는 실제 구현에 대해 충분히 알지 못합니다.
Chris Smowton

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.