有没有办法查看/测量 Windows Server 2008 R2 上的 UDP 套接字缓冲区丢失?我尝试过“netstat -s”并查看可用的性能计数器,但没有任何东西可以衡量套接字缓冲区的大小或丢失。
如果无法通过 Windows 提供的某种机制查看它,我应该注意,此服务器中的 NIC 是 Intel 千兆 ET 双端口服务器适配器。也许 Intel 提供了某些实用程序可以显示此信息?
提前致谢
答案1
我假设您所说的“缓冲区丢失”是指由于缓冲区已满而导致的丢失。(只有通过设计会话级算法来跟踪和确认所有数据包的接收,才能检测到网络中的 UDP 丢失。)
传出缓冲区丢失将在套接字 API 级别通过以下错误返回进行报告:发给()(或其等价物),例如WSAENOBUFS
、WSAEWOULDBLOCK
或WSAEMSGSIZE
。
据我所知,任何地方都没有明确报告传入丢失。但是,您可以使用它ioctl(FIONREAD)
来确定传入缓冲区中有多少数据。如果它接近满,并且您检测到丢失,那么可以肯定这些丢失是缓冲区溢出的结果。