2014-07-22 2 views
1

동일한 LAN의 중앙 서버와 함께 통신하는 약 20 명의 클라이언트가 있습니다. 클라이언트는 서버와 동시에 트랜잭션을 수행 할 수 있습니다. 서버는 각 트랜잭션을 네트워크의 외부 기기로 전달합니다. 때로는 제대로 작동하는 경우가 있는데, 때로는 내 응용 프로그램이 클라이언트 화면에 "시간 초과"메시지를 표시합니다. (무작위로)재설정 RST 플래그 이후의 TCP 재전송

나는 모든 트래픽을 미러링하고 첫 번째 TCP 시퀀스에 대한 TCP 재설정 패킷 이후에 TCP 재전송을 발견했습니다. 나는 패킷 손실에 대해 즉시 생각했지만 모든 케이블/NIC는 괜찮 았고 캡처에는 DUP ACK가 표시되지 않습니다.

RST 패킷의 의미가 다를 수 있습니다.
이러한 TCP 재설정의 원인은 무엇입니까?
내 조사에 초점을 맞추어야하는 부분 : 네트워크 또는 응용 프로그램 디자인?

어떤 도움을 주셔서 감사합니다. 미리 감사드립니다.

+0

클라이언트가 연결을 닫기 전에 서버에서 읽을 수없는 데이터를 보내는 경우 RST가 발생할 수 있습니다. 예 : 이것은 클라이언트로부터의 요청을 읽지 않지만 클라이언트로부터 접속 한 후 즉시 데이터를 보내고 연결을 닫는 HTTP 서버를 구축하려는 시도 일 수 있습니다. –

답변

1

캡처 한 것으로 판단하면, 귀하의 중앙 서버가 137.56.64.31이라고 가정합니다. 클라이언트는 SYN 패킷을 사용하여 서버에 연결을 시작하고 서버는 RST으로 응답합니다. 서버가 해당 특정 포트에서 수신 대기하는 응용 프로그램이없는 경우 일반적입니다. 웹 서버 응용 프로그램이 실행되고 있지 않고 클라이언트가 포트 80에 연결을 시도합니다.

클라이언트는 서버의 다른 포트에 모두 연결되어 있지만 이는 예기치 않은 일입니다. 클라이언트가 서버에 연결하는 대상 포트는 11007, 11012, 11014, 11108, and 11115입니다. 응용 프로그램에 정상입니까? 그렇지 않은 경우 클라이언트는 응용 프로그램 서버가 수신하는 모든 포트에 연결해야합니다.

재전송 이유는 서버에서 RST을 수신하면 연결을 포기하는 대신 클라이언트가 다시 연결을 시도하여 Wireshark가 재전송으로 간주하기 때문입니다.

관련 문제