1

我正在寻找 UDP 调试器工具,以满足以下要求

1) netstat -s,显示 udpInOverflows=23000 并且这个计数器不断增加。如何检查由于没有缓冲区空间而抛出的 udp 数据包。

2)出现此问题的可能原因是什么以及如何解决。

3) 有什么方法可以检查内核在所有验证后收到的传入 UDP 数据包,例如 udp 套接字为该端口打开并且没有校验和错误,snoop 将不起作用,因为它直接从网络接口捕获。

问候尼丁

4

1 回答 1

0

如果您愿意花一点时间在内核源代码上,您应该能够使用 dtrace 来获取您想要的信息。例如“dtrace -n 'fbt::udp_input:entry{stack();}' 将显示数据包如何进入 udp_input(不是那么有趣)。您还应该检查 mib::: 探针和 fbt:ip :ip_drop*:. 当然,这完全取决于您使用的 Solaris 版本。

于 2011-02-17T06:44:49.733 回答