실제로 TCP 소켓을 닫는 시스템은 무엇이며 그 이유는 무엇입니까?

실제로 TCP 소켓을 닫는 시스템은 무엇이며 그 이유는 무엇입니까?

저는 TCP 소켓을 처리하는 C# 응용 프로그램을 작업 중입니다.

서버 응용 프로그램이 있습니다(헤라클레스) 원격 시스템에서 소켓을 열린 상태로 유지하려고 합니다.
내 컴퓨터에 해당 열린 소켓을 구독하는 애플리케이션이 있습니다.

나는 사용하고있다마이크로소프트의 TCPViewer무슨 일이 일어나는지 따라가려고요.

몇 분 후에 소켓이 설정된 상태에서 시간 대기 상태로 바뀌고 소켓 연결이 끊어지는 것을 볼 수 있습니다.

모든 일반 위치(Windows 로그/응용 프로그램, /Security, /Setup, /System 및 /Forwarded Events)에서 이벤트 ID 4227에 대한 두 컴퓨터의 이벤트 뷰어를 모두 살펴봤지만 아무것도 찾지 못했습니다.

어떤 컴퓨터가 실제로 TCP 소켓을 닫고 있는지, 그리고 그 이유를 알려면 어떻게 해야 합니까?

답변1

어떤 컴퓨터가 실제로 TCP 소켓을 닫고 있는지 확인하려면 어떻게 해야 하나요?

어느 쪽에서 연결을 닫는지 확인하려면 패킷 캡처를 수행해야 합니다. 보다https://wiki.wireshark.org/TCP-4-times-close.mdWireshark에서 연결 종료가 어떻게 보이는지. 초기 FIN을 보낸 당사자는 연결을 종료한 당사자입니다.

... 그리고 왜?

이는 교통 상황만 보면 알 수 없습니다. 애플리케이션 계층 프로토콜이 예상하거나 허용하기 때문에 연결이 닫힐 수 있습니다. 클라이언트 또는 서버 충돌로 인해 닫힐 수 있습니다. 프로토콜 위반으로 인해 당사자에 의해 종료될 수 있습니다. 즉 상대방이 예상과 다르게 동작하는 경우... 따라서 애플리케이션 프로토콜을 이해해야 하는 이유를 찾으려면 로그 파일을 살펴보고 다음 사항을 확인하십시오. 프로세스가 실행 중입니다.

관련 정보