.net Tcp Server每隔几分钟就会收到大块的字节

背景:

  • C#.net同步Tcp服务器
  • 通过使用AcceptTcpClient方法阻塞TcpListener来分配TcpClient对象
  • 一旦有了一个TcpClient对象,我将它传递给一个线程,该线程调用客户端的GetStream方法来创建一个NetworkStream
  • 这个NetworkStream循环,在每次迭代中做一个networkStream.Read(someBuffer,0,4096)
  • 现在客户端和服务器位于同一网络上,没有拥塞可言
  • 我的服务器有足够的内存空间
  • 如果我将我的服务器软件加载到另一台机器上,问题就会消失
  • 踢球者: 来自网络Linux盒子的流量可以准时到达

我的服务器已经好几个月了。 但是,在过去的周末中,不是快速连续接收小组字节,而是每隔几分钟就会发生进程开始的地方(tcpListener.AcceptTcpClient())。 所以我的服务器处于空闲状态,然后将30-50个客户端请求全部捆绑到一个巨大的字节块中。 毋庸置疑,这会导致巨大的延迟,并对我的服务器造成压力。 如果客户端请求的数量足够大,我的服务器可能需要30分钟才能赶上。

在我的客户端内置的日志记录中,我可以看到它们进行网络写入,并在每个写入之间进行刷新。 所以客户端运行正常。

某种系统干预的这种意外。 我的Tcp服务器(如上所述)是坏的,还是Windows中的某些东西干扰了我的流量,我该怎么说?

多谢你们。

您可能希望在每个Tcp端点安装一些数据包捕获软件。 你会感到惊讶。 我现在遇到类似的问题,实际上几乎完全相同。

当我将捕获软件放到位时,我注意到端点之间的流量很快并按预期准时到达。