Linux内核网络协议栈笔记4 接收网络数据包详细过.docVIP

  • 4
  • 0
  • 约4.23千字
  • 约 6页
  • 2018-10-25 发布于贵州
  • 举报

Linux内核网络协议栈笔记4 接收网络数据包详细过.doc

Linux内核网络协议栈笔记4 接收网络数据包详细过

Linux内核网络协议栈笔记4 接收网络数据包详细过 Linux内核网络协议栈笔记4:接收网络数据包详细过程2010-08-10 15:41网络数据接收过程,从数据包到达网卡的物理接口开始,然后由网卡的驱动程序交给网络协议栈,最后经过协议栈的一层层处理之后交给应用程序。大致上是这样的过程,但实际上有更多的细节。本文中主要介绍第一个和第二个步骤。 我们本文中依然以一个Realtek 8139网卡为例(驱动程序为/drivers/net/8139too.c)。请注意在内核代码中receive都是用rx简写的。 (1)注册与激活软中断 在生成net_device对象及初始化的函数rtl8139_init_one中已经初始化dev-open方法为rtl8139_open函数(在本系列文章2:初始化中的net_device对象中已经介绍,点这里查看)。在rtl8139_open函数(这个函数在网卡启动时被调用)中注册了一个中断函数rtl8139_interrupt: retval=request_irq(devirq,rtl8139_interrupt,SA_SHIRQ,devname,dev);所以只要当网卡开启后(状态为up),当网络数据包到达时,都会产生一个硬件中断(这不同于后面的软中断)。这个硬件中断由内核调用中断处理程序rtl8139_interrupt函数处理。这个函数比较重要

文档评论(0)

1亿VIP精品文档

相关文档