TCP 연결이 중지되고 데이터가 RecvQ 상태이며 ESTABLISHED가 닫힙니다.

TCP 연결이 중지되고 데이터가 RecvQ 상태이며 ESTABLISHED가 닫힙니다.

내 네트워킹 기술이 매우 열악하여 다음 netstat -ton의 의미를 이해하려고 노력하고 있습니다.

Redis 서버와 PUB/SUB를 통해 연결된 스레드가 있는 클라이언트가 있습니다. SUBSCRIBERedis 채널용 클라이언트.

나는 이것이 둘 사이에 오래 지속되는 TCP 링크를 생성한다고 생각하며 채널에서 어떤 일이 발생하면 서버는 클라이언트에 데이터를 보냅니다.

그러나 때로는(한 달에서 3개월까지) 클라이언트가 아무것도 수신하지 않지만 충돌하거나 오류가 발생하지 않는 경우도 있습니다.

이 상태에서는 다음이 표시됩니다.

Recv Q가 중지되고 ESTABLISHED가 종료되었습니다.

여기에 이미지 설명을 입력하세요.

나는 그것에 대해 읽었으며 TCP 연결 유지 매개 변수를 포함하여 많은 것과 관련될 수 있습니까?

이 상태를 디버깅하는 방법에 대한 팁이나 아이디어가 있나요?

클라이언트를 다시 시작하면 모든 것이 해결되었습니다.

답변1

설정된 연결의 Recv-Q는 해당 소켓에 연결된 사용자 프로그램에 의해 복사되지 않은 바이트 수이기 때문에 문제는 클라이언트 내에 있는 것 같습니다. 즉, 애플리케이션이 소켓에서 데이터를 읽지 않습니다.

관련 정보