我正在Linux机器上创建以太网帧嗅探/转发程序,该程序将用于嗅探从计算机到以太网的传输帧,反之亦然。

我试图激活暂停帧,以免丢失任何数据包,因为到路由器的两步传输可能会导致一些延迟。

我发现这样做的唯一方法是使用ethtool,例如,从接收端打开暂停帧:

ethtool -A eth0 rx on


我对此感到怀疑,但是我希望ethtool专家可以放心。

使用“ ethtool -A”可用的选项是打开或关闭自动协商。据我所知,自动协商与暂停帧无关。
另外,缺少ethtool提供的有关暂停帧的选项,这有点令人不安。例如,ethtool不能管理帧发送者请求的暂停时间。

那么,ethtool真的是最好的还是唯一的配置暂停帧的方法?理想情况下,我想通过C代码配置它们,但是如果ethtool是这样做的唯一方法,我只是想通过使用ethtool配置暂停帧来确认自己做的正确。

而且,如果有人可以向我指出在C中配置暂停帧的正确方向,我将不胜感激。

谢谢。

最佳答案

为什么要重新发明轮子?为什么不使用例如libpcapnetfilter hooks截取数据包?

09-07 09:31