有没有办法在Windows Server 2008 R2上查看/测量UDP套接字缓冲区丢失? 我已经尝试过“netstat -s”并查看可用的perfmon计数器,但是没有任何东西可以作为套接字缓冲区大小或丢失的测量值跳到我身上。
如果没有办法通过Windows提供的一些机制来查看它,我应该注意到这个服务器中的NIC是一个Intel千兆位ET双端口服务器适配器。 也许英特尔提供的一些实用工具可以显示这些信息吗?
提前致谢
通过“缓冲损失”,我认为你的意思是由于缓冲区已满而造成的损失。 (networking中的UDP丢失只能通过devise一个会话级别的algorithm来跟踪和确认所有数据包的接收。
由于sendto() (或其等价物)(如WSAENOBUFS
, WSAEWOULDBLOCK
或WSAEMSGSIZE
)的错误返回,将在套接字API级别报告输出缓冲区WSAEMSGSIZE
。
据我所知,input的损失没有明确的报告。 但是,您可以使用ioctl(FIONREAD)
来确定传入缓冲区中有多less数据。 如果它已经接近满了,而且你正在检测丢失,那么可以肯定的是,这些损失是缓冲区溢出的结果。