2011-08-15 50 views
1

我已经从sk_buff(hook数据包并通过skb-> head到skb_> end)收集了char *缓冲区,并将此缓冲区传输到另一台PC。现在我想从一台新电脑重新发送这个数据包到网络。我怎样才能发送它?通过使用dev_queue_xmit(),我必须从char *和数据长度重构sk_buff结构。有可能的?或者我可以使用原始套接字重新发送我的数据?用sk_buff从内核的char * buf发送数据包到网络设备

回答

0

我相信你有构建sk_buff重构。另外我不认为从它收集char*是一个合理的想法。

sk_buff只是表示由单独的部分组成的字节流,因此在编写数据包时不必将其复制到整个位置。您不应该从sk_buff收集单个缓冲区,但是如果您有单个缓冲区,只需填写新的sk_buff,其中一部分指向缓冲区即可完成。

+0

我必须重新发送我的数据包在一个新的一面,这就是为什么我传输数据+标题......现在我想我该怎么做,我需要一个缓冲区或不同的char *缓冲区的有效载荷和标题 – SeregASM

相关问题