TCPstream量控制误解的原因是什么?

客户端无法连接到我们的Web服务器。 我嗅探客户端和Web服务器,发现客户端看到TCP连接成功,而服务器将其视为失败。 这个问题的可能原因是什么? 当客户端通过networking发送到服务器的ACK数据包是否被破坏?

两者的屏幕截图显示在下面的链接中。

客户 在这里输入图像说明

服务器 http://postimg.org/image/c089q8hrt/

这两个设备之间肯定有一些重写数据包的东西。 客户端从自己的TCP / 58055端口打开到TCP / 80的连接。 服务器看到来自TCP / 5822的SYN数据包。 这只有在某些networking设备正在重写数据包(如NAT设备或某些防火墙)时才会发生。

在客户看来,“SACK_PERM = 1”的存在进一步支持了这一点。 这是select性确认,是一个TCP选项。 服务器看到的SYN数据包已经被剥离了。 这是一个经典的防火墙设置,因为SACK被认为是不安全的或能够被DDoSed。

这两个之间的设备之间有一个阻碍。 你不能在终点解决这个问题。

我的第一个猜测是在两个系统之间的状态不佳的防火墙,这是不正确的。 它也可以是本地防火墙。 请注意,没有任何ACK数据包似乎通过。