如何不使用套接字将数据包发送到网络?

mus*_*001 6 c interrupt linux-device-driver linux-kernel

我想绕过Linux网络堆栈将数据包发送到网络中。我的意思是,有什么方法可以中断网卡驱动程序并将帧直接放置在网卡缓冲区中以在网络中发送?我是Linux Kernel黑客的新手,因此任何有关如何入门的指南都将非常有帮助。

ldx*_*ldx 1

如果您使用像TAP这样的虚拟设备,您的情况会更好。您可以轻松地将控制接口侵入 TAP 内核模块,然后您可以通过该接口传递准备发送给驱动程序的帧。该方法可以与作为基准的常规套接字应用程序的性能进行比较。由于最终 TAP 设备将通过字符设备“发送”出出口帧,因此您可以轻松编写测量性能和延迟的测试应用程序。