Linux TCP堆栈包注入

时间:2010-03-25 14:29:38

标签: tcp stack

我可以在不修改以太网驱动程序的情况下将数据包注入Linux TCP堆栈吗?我可以使用库或某事吗?

谢谢,

3 个答案:

答案 0 :(得分:2)

如果通过“将数据包注入Linux TCP堆栈”,您的意思是发送一些Linux内核将其视为来自以太网接口的帧的数据,那么您可以使用“tap”设备。如果IP数据包(第3层)足够好,那么使用'tun'设备。

http://en.wikipedia.org/wiki/TUN/TAP

http://www.kernel.org/pub/linux/kernel/people/marcelo/linux-2.4/Documentation/networking/tuntap.txt

答案 1 :(得分:1)

Libnet

  

Libnet是一种通用网络API,可以访问多种协议。它不是设计为网络的“一体化”解决方案。目前,一些网络协议中常见的许多功能都不适用于Libnet,例如通过TCP / IP进行流式传输。我们认为Libnet不应提供其他协议中可能的特定功能。如果我们将Libnet限制为通信所需的最小值(数据报/数据包),那么这允许它支持更多接口。

答案 2 :(得分:0)

否则,如果您只是想知道将手工制作的数据包注入网络,请阅读手册页并查找原始套接字的在线帮助。一些好的开始的地方是man 7 raw,man packet,在security-freak.net上有一些好的教程,虽然那里的代码写得不是特别适合我的口味。