2012-06-14 2 views
1

현재 우분투 12.04 x64 VM에서 실행중인 서버 응용 프로그램을 작성했습니다. 응용 프로그램은 다른 서버에 연결하여이 서버의 일부 데이터를 빨아 들여 변환 한 다음 다른 곳에서 실행되는 클라이언트 응용 프로그램으로 다시 보냅니다. 이 모든 것은 TCP 위에 boost :: asio를 넘어서있다. 입출력은 상당히 무겁습니다.리눅스 프로세스가 끊임없이 연결을 끊습니다.

몇 시간 정도 지나면 우리 서버가 클라이언트 연결을 끊는 것을 볼 수 있습니다. 클라이언트가 다시 연결을 시도하면 연결이 설정되는 즉시 다시 끊어집니다. boost :: asio에 의한 에러보고는 "Peer에 의한 Connection reset"입니다. 이것은 겉으로는 무한정 계속됩니다. 이 시간 동안 나는 기계에 ssh 할 수 있으며 응용 프로그램에서 서버 프로세스로의 연결은 여전히 ​​건강합니다. 적재물은 보통입니다. 응용 프로그램을 다시 시작하면 문제가 해결됩니다.

추가 조사 방법에 대한 의견이 있으십니까?

+0

1에 있는지 확인합니다 네트워크 수준에서

귀하의 개발 환경에서? 2. tcp 덤프가 있습니까? 3. 서버 프로세스 란 무엇이며 로그에는 무엇이 있습니까? 4. 호스트간에 상태를 유지하는 방화벽, 상태 저장 방화벽 또는 라우터가 있습니까? 4. 고객으로부터 스트 레스 결과를 얻었습니까? – MarkR

+0

또 다른 옵션 :'netstat -an'이 (앱이 오동작하는 경우) 무엇을 말합니까? – ChristopheD

+0

MarkR : 1) 아니요,이 특별한 설치로 어디서나 발생하지 않습니다. 2) 지금 tcpdump를 실행 중입니다. 3) 서버 프로세스가 관련성이 없어야합니다. 연결이 안정적으로 유지되고 있습니다. 4) 잘 모르겠습니다. 클라이언트 사이트에 있습니다. 5) 아니오. 나는 그것을 얻으려고 노력할 것이다. – samwise

답변

1

오류 클리토넷 응용 프로그램이 연결을 시도 할 때 "피어가 연결 재설정"을 시도하면 연결하려는 포트 응용 프로그램이 열려 있지 않거나 열리지 만 추가 연결을받을 수 없습니다 (서버에 허용 된 최대 연결 수 없음) . 당신이 SYN 서버에 클라이언트가 전송하고 서버가 RST로 응답합니다.

실행 netstat -antp를 서버에보고 서버 포트는 이런 일이 있습니까 LISTEN 상태입니다.

+0

감사합니다. dimba. 피어 메시지로 연결 재설정이 클라이언트가 아닌 내 서버에 표시됩니다 (클라이언트는 Windows 상자). 새로운 연결은 서버에 의해 받아 들여지지만 재설정 메시지로 즉시 삭제됩니다. – samwise

관련 문제