未收到 SYN-ACK

未收到 SYN-ACK

在服务器和客户端之间的标准 TCP 连接上,我遇到了这个问题:客户端未收到 SYN-ACK,而服务器发送了 SYN-ACK。我可以在服务器和客户端的 Wireshark 上看到这个问题。

使用来自客户端 PC 的不同 TCP 客户端(例如 telnet),SYN-ACK 被接收,连接正常。更改路由器也适用于第一个客户端。

我不确定,但这两个客户端之间的主要区别在于 SYN 请求。在第一种情况下,len=0Wireshark 中有一个,而使用 telnet 时 len 不为零。

有什么方法我可以使用吗任何路由器与服务器(java)和第一个客户端,用 C# 编写(也许会更改一些选项)?

编辑:服务器和客户端位于两个不同的网络上,我可以检查两者。两者之间没有防火墙。len=0我唯一担心的是 SYN 中的防火墙。我认为这是不允许的。

答案1

如果没有看到实际捕获,很难说出您正在读取的 LEN 字段。Wireshark 可能在某个时候切换了解析器,您现在读取的长度与您预期的不一样。

当您尝试编写应用程序时,我不会太深入地进行协议跟踪。如果您可以通过 telnet 连接,则网络层可以正常工作,问题很可能出在您的代码中。

尝试创建另一个应用程序,将方程简化为一个套接字,看看它是否可以连接。即使它不发送/接收有用的内容,任何连接都是进步。

相关内容