linux内核数据包转发流程系列
shallnet
一个没赶上脑残一代90后的80后程序猿!
展开
-
linux内核数据包转发流程(二):中断
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。邮箱:shallnew*163.com】 内核在处理2层数据包之前,必须先处理中断系统,设立中断系统,才有可能每秒处理成千的帧。 当收到一个帧时,驱动程序会代表内核指示设备产生一个硬件中断,内核将中断其他的活动,然后调用一个驱动程序所注册的处理函数,以满足设备的需要。当事件是接收到一个帧时,处理函数原创 2014-05-14 11:07:37 · 3194 阅读 · 0 评论 -
linux内核数据包转发流程(一):网络设备驱动
网卡驱动为每个新的接口在一个全局的网络设备列表里插入一个数据结构.每个接口由一个结构 net_device 项来描述, 它在 里定义.每一个接口必须动态分配内存。原创 2014-05-14 11:05:27 · 6609 阅读 · 1 评论 -
linux内核数据包转发流程(三):网卡帧接收分析
每个cpu都有队列来处理接收到的帧,都有其数据结构来处理入口和出口流量,因此,不同cpu之间没有必要使用上锁机制,。此队列数据结构为softnet_data(定义在include/linux/netdevice.h中):/* * Incoming packets are placed on per-cpu queues so that * no locking is needed.原创 2014-05-19 17:32:39 · 7166 阅读 · 1 评论