网卡驱动2----虚拟网卡

来源:互联网 发布:如何去除软件试用期 编辑:程序博客网 时间:2024/04/28 18:27

1、入口函数和出口函数

(1)入口函数(主要关心net_dev_ops结构体)


(2)出口函数



2、net_dev_ops结构体(里面有发包函数)


3、发包函数(关心里面的上报sk_buff函数

把skb的数据写入了网卡,因而能够释放skb.(数据全部发送出去应该是指sk_buff的数据发送到网卡队列)然后唤醒网卡队列,让网卡发送数据出去


4、上报sk_buff函数(构造假的包)

(1)对调源和目的的MAC地址和IP地址,修改type(0x8表示ping包,回复包用0表示),check校验码

(2)分配sk_buff并填充

(3)更新统计信息

(4)提交sk_buff




5、网卡相关参数


(1)TX packets(发送的包数)和TX bytes(发送的字节数)

这两个参数在发包函数里面运用net_device结构体里的net_device_stats结构体里的参数,其中skb->len是sk_buff结构体的字节数。


(2)MAC地址(在入口函数)


0 0
原创粉丝点击