SYN-ACK가 수신되지 않음


3

서버와 클라이언트 간의 표준 TCP 연결에서이 문제가 발생합니다. SYN-ACK는 서버에서 전송되는 동안 클라이언트로부터 수신되지 않습니다. 나는 서버와 클라이언트 모두에서 Wireshark에서 이것을 볼 수있었습니다.

클라이언트 PC에서 다른 TCP 클라이언트 (예 : 텔넷)를 사용하면 SYN-ACK가 수신되고 연결이 작동합니다. 또한 라우터를 변경하면 첫 번째 클라이언트에서 작동합니다.

확실하지는 않지만 두 클라이언트의 주된 차이점은 SYN 요청입니다. 첫 번째 경우에는 len=0 Wireshark에서는 len은 telnet을 사용하여 0이 아닙니다.

내가 사용할 수있는 방법이 있나? 어떤 라우터 (서버) (자바)와 첫 번째 클라이언트, C로 작성된 # (어쩌면 일부 옵션을 변경)?

편집하다 : 서버와 클라이언트가 서로 다른 두 개의 네트워크에 있으며 두 가지를 모두 확인할 수 있습니다. 사이에 방화벽이 없습니다. 그 len=0 SYN에서 내가 걱정하고있는 유일한 것입니다. 나는 이것이 허용 될 수 있다고 생각하지 않는다.


먼저 라우터가 관련되어 있다고 생각하십니까? 네트워크의 서버와 클라이언트가 다른 곳에 있습니까? 방화벽 로그는 그때부터 시작하기에 좋은 장소입니다. .NET 소켓 라이브러리는 기본 연결 (핸드 셰이크와 같은 TCP 구현 세부 정보)과 관련된 모든 것을 코더에서 격리하므로 사용자가 조정해야 할 옵션이 없어야합니다. 닷넷은 패킷 자체가 아닌 네트워크 스트림과 관련이 있습니다. 귀하의 클라이언트에 대해 우려하는 경우 stackoverflow에 게시하십시오.
Frank Thomas

고맙습니다. 서버와 클라이언트는 서로 다른 네트워크에 있지만 두 가지를 모두 확인할 수 있습니다. 양쪽에서 방화벽이 없습니다. 나는 그것에 대해 우려하고있다. len=0 SYN에서 나는 Wireshark (이 정보를 추가하기 위해 편집 된 질문)에서 읽었다.
Fra H

1
내 요점은 나쁜 트래픽을보기 위해 wireshark를 사용하는 대신 앱 프레임 워크가 올바르게 연결할 수없는 이유에 집중하는 것입니다. 패킷 트레이스를 추적하면 궁극적으로 무슨 일이 일어나고 있는지에 대한 이해를 얻을 수 있지만 나중에는 0kb 응답이 아닌 다른 클라이언트 런타임에서 다른 결과를 얻으므로 코드에 집중할 것입니다. wireshark (이 호에 대한)에서 바라는 최선의 방법은 방화벽이 어디에서 발생 하는지를 결정하는 것입니다.
Frank Thomas

len = 0 SYN 세그먼트의 스크린 샷이나 성적 증명서를 게시 할 수 있습니까?
artistoex

답변:


0

실제 캡처를 보지 않고 읽고있는 LEN 필드를 말하기는 어렵습니다. Wireshark는 어떤 시점에서 해독기를 전환했을 수 있으며 현재 예상 한 것 이외의 길이를 읽는 중입니다.

응용 프로그램을 작성할 때 프로토콜 추적을 수행하는 잡초가 너무 깊어지지 않습니다. 텔넷을 통해 연결할 수 있으면 네트워크 계층이 작동하고 문제가 코드에서 발생할 가능성이 큽니다.

방정식을 소켓을 단순화하는 다른 응용 프로그램을 만들어 소켓이 연결할 수 있는지 확인하십시오. 유용한 컨텐츠를 송수신하지 않더라도 연결은 전혀 진행되지 않습니다.

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