TCP握手确定,那么客户端没有收到来自服务器的任何数据包

拓扑:客户端—–中间设备—–服务器

客户端:win7

中间设备:未知

服务器:CentOS 5.8

客户端和服务器尝试build立SSL连接时会发生此问题。 它发生在一个特定的端口,2000年。我还没有能够复制与其他端口号的问题。

我捕获客户端和服务器上的数据包。 在TCP握手之后,从客户的angular度来看,它没有收到先前发送的数据包的ACK,所以它不断的重新发送它们。 然而,在服务器端,它确实收到了这些数据包并发送了ACK数据包。

奇怪的是,在服务器发送这些ACK之后,从中间设备收到它发送的每个数据包的[RST,ACK]数据包。

可能是什么原因?

如果在SSL连接协商之后发生这种情况,中间设备有可能将端口2000上的encryptionstream量视为潜在的安全威胁(或以某种方式“不需要”),并做出两件事情:

  • 拦截由服务器发送的“ACK”,以便它们不会到达将认为服务器没有响应的客户端
  • 发送重置到服务器,以便它不会保持连接打开,等待永远不会来自客户端的stream量