摘要: Proc File Proc FS 被称为进程文件系统,在/proc文件夹下,存储了各个进程的详细的信息。与此同时proc也作为一种应用层和内核交互的手段。 Proc function proc FS除了存储各个进程的详细信息,也会在proc的虚拟文件系统中存储内核的状态数据,用于调试。 Proc 阅读全文
posted @ 2018-05-04 16:21 johnson.c 阅读(242) 评论(0) 推荐(0) 编辑
摘要: skb_queue_head_init: init one list for skb skb_queue_head : 加一个skb到链表头 skb_queue_tail: 加一个skb到链表尾 skb_dequeue : 将一个skb queue 从链表头去掉 skb_dequeue_tail : 阅读全文
posted @ 2018-05-02 10:38 johnson.c 阅读(2027) 评论(0) 推荐(0) 编辑
摘要: 在Linux对网络数据包的处理过程中,会用到对skb的拷贝,skb的拷贝分成了几种拷贝,之所以分成几种拷贝,在于不同情况下,可能需要修改的skb范围不同,核心思想在于尽可能小的重新开辟内存,尽可能的共享内存,共享数据区。 对一个正常的skb来讲,一般要包括sk_buff以及数据区两部分。而数据区又分 阅读全文
posted @ 2018-05-01 16:47 johnson.c 阅读(1134) 评论(0) 推荐(0) 编辑
摘要: skb 几个关键指针 Note: 针对于Linux2.6,随之Linux迁移,可能会有所变化。 在申请一个skb的时候,其实申请了两块内存,一块用于存放sk_buff,另一块用于存放真正的包内的数据。 在sk_buff当中会有几个指针指向数据块内存。 skb head: 申请的数据块的头 skb e 阅读全文
posted @ 2018-05-01 14:35 johnson.c 阅读(1003) 评论(0) 推荐(0) 编辑
摘要: Enet 与 Phy Phy 作为更底层的驱动,会将网口的状态信息对Enet驱动进行传递, Enet层更多的是逻辑的处理,并将网口状态变化向内核进行传递。 Enet 网络驱动的port_init当中, 注册了一个钩子函数: 当phy驱动中感知到网络状态的变化,就会触发并调用该钩子函数。 网络端口的状 阅读全文
posted @ 2018-04-20 09:52 johnson.c 阅读(534) 评论(0) 推荐(0) 编辑
摘要: pcap_create-->pcap_create_interface-->handle->activate_op = pcap_activate_linux;pcap_activate-->status = p->activate_op(p); <--> pcap_activate_linux-- 阅读全文
posted @ 2018-04-19 17:04 johnson.c 阅读(117) 评论(0) 推荐(0) 编辑