文件名称:4.网络设备驱动.zip
文件大小:2.23MB
文件格式:ZIP
更新时间:2022-09-24 09:56:52
dm9000c napi net_device sk_buff
NAPI 是 Linux 上采用的一种提高网络处理效率的技术,它的核心概念就是不采用中断的方式读取数据,而代之以首先采用中断唤醒数据接收的服务程序,然后 POLL 的方法来轮询数据,(类似于底半(bottom-half)处理模式);从我们在实验中所得到的数据来看,在随着网络的接收速度的增加,NIC 触发的中断能做到不断减少,目前 NAPI 技术已经在网卡驱动层和网络层得到了广泛的应用,驱动层次上已经有 E1000 系列网卡,RTL8139 系列网卡,3c50X 系列等主流的网络适配器都采用了这个技术,而在网络层次上,NAPI 技术已经完全被应用到了著名的 netif_rx 函数中间,并且提供了专门的 POLL 方法--process_backlog 来处理轮询的方法;根据实验数据表明采用NAPI技术可以大大改善短长度数据包接收的效率,减少中断触发的时间;由于 RTL8139CP 是一种应用比较广泛的网络适配器,所以本文以其为例,说明了NAPI技术在网络适配器上的应用和基本原理。 但是 NAPI 存在一些比较严重的缺陷:而对于上层的应用程序而言,系统不能在每个数据包接收到的时候都可以及时地去处理它,而且随着传输速度增加,累计的数据包将会耗费大量的内存,经过实验表明在 Linux 平台上这个问题会比在 FreeBSD 上要严重一些;另外采用 NAPI 所造成的另外一个问题是对于大的数据包处理比较困难,原因是大的数据包传送到网络层上的时候耗费的时间比短数据包长很多(即使是采用 DMA 方式),所以正如前面所说的那样,NAPI 技术适用于对高速率的短长度数据包的处理,在本文的末尾提出了 NAPI 的改善方法,和实验数据。
【文件预览】:
4.网络设备驱动
----网络栈的层次结构.png(60KB)
----NAPI 技术在 Linux 网络驱动上的应用和完善.doc(285KB)
----net_device.txt(19KB)
----day.1()
--------1.字符设备驱动.png(152KB)
--------2.块设备驱动层次结构.png(30KB)
--------dm9000.docx(915KB)
--------1.字符设备工作原理.doc(46KB)
--------3.demo()
----ifreq.txt(4KB)
----sk_buff及其他内核函数.txt(3KB)
----DM9000网卡芯片.doc(793KB)
----框架.txt(3KB)
----DM9000C-DS-P02-011808.pdf(439KB)