我在以太网上运行客户端服务器配置,并测量两端的数据包延迟。客户端(windows)每隔5毫秒发送一次数据包(用线鲨鱼确认)。然而,服务器(嵌入式linux)仅以5毫秒的间隔接收数据包几秒钟,此时停止300毫秒。休息之后,延迟只有20美分。再过几秒钟后,又需要300毫秒的时间。这无限重复(300ms中断,20us数据包延迟突发)。看起来好像服务器程序正在优化中,以更短的突发读取IO。这是为什么发生?为什么UDP数据包接收似乎优化中执行?
免责声明:我还没有发布的代码,为客户端和服务器的更复杂的应用小的子集,但是,我愿意因素出来,如果一个显而易见的答案并不存在本身。
是否收到所有的数据包? – EJP
我相信如此。我明天可以验证这一点。 – Ralph
你如何测量20 us的延迟?是否有任何请求响应?你有原子钟吗?数据报的大小是多少? – rodolk