【发布时间】:2013-09-04 10:14:45
【问题描述】:
目前在由 2 个传感器(每个传感器的数据速率为 1Khz)组成的系统中遇到网络问题,通过以太网链路与 Windows 7 操作系统通信。 windows系统上运行的程序是用Java编写的。
问题:由于 TCP 本地缓冲区溢出,程序在未定义的时间段内正常运行,然后停止。
我的直觉让我相信这是由于 TCP RWIN 造成的——消费者从堆栈中接收数据包的速度太慢,最终导致缓冲区溢出。
查看从 NIC 捕获的数据包,崩溃前的最终序列始终如下所示:一个大的 ACK 块,然后是来自每个传感器的 RST,然后关闭连接。我们可以看到,在每个 RST 上,WIM 大小设置为 200,而在此之前为 1000 以上。
谁能提供一些关于如何开始解决这个问题的建议?在这一点上所做的所有研究中,我仍然不知道如何解决这个问题。
【问题讨论】:
标签: networking tcp crash buffer-overflow