APP下载

Linux网络设备驱动优化的研究

2018-01-20王君怡

魅力中国 2017年50期
关键词:网络设备驱动

王君怡

摘要:Linux计算机操作系统中的驱动设备的运行过程和启动渠道是通过一个专门的网络接口来进行的,且在运行过程中主要依赖庞大的数据结构库来支持。为了在实际应用中提高这部分驱动程序的使用效率,改善使用效果,现通过分析网络设备驱动的结构和运行原理来寻找优化驱动运行的有效途径。

关键词 :Linux;网络设备;驱动

引言:

网络设备就是计算机与外界信息进行沟通和传输的一个媒介和渠道 ,所以,其设备驱动的性能和运作形式直接关系到信息传输的速度和质量,在Linux操作系统下,网络设备驱动的数据接收、数据分析以及数据传输是一个具有一定复杂程度的过程,要实现其驱动设备的优化,就必须从驱动程序开发和运行的各个环节深入分析其工作原理,保证功能优化工作有针对性的进行。

一、Linux网络设备驱动的特点

(一)专门性特点

Linux操作系统下的网络设备驱动,有一个专门的网络接口,所有的信息接收都统一通过这个网络接口的传输来实现,这种驱动类型的操作执行对象,不再是某一个固定的文件,在这种情况下,计算机中的应用程序就无法直接访问网络设备驱动程序,而需要通过网络体系中的子系统实现他们彼此之间的交互[1]。而且,这种类型的驱动程序在/dev的目录中也没有具体的显示,因此,用户也无法从计算机中找到直接的驱动程序入口点。这种模式和特点有效提高了驱动程序的信息传输速度,也一定程度上提高了信息保密性。

(二)实时性特点

此操作系统的网络驱动设备,是随着系统初始化的过程实时产生的,所以,整个过程是在计算机系统内部自行完成的,相对于一些虽然受到核心系统支持,但实质上并不存在的外部物理的网络连接设备,这种驱动模式是不会与之建立起对应的程序链条结构的。也就是说,这种驱动程序的安裝和识别方式都是网络化的,与外界物理设备不存在任何联系[2]。

下图为网络驱动设备的工作原理图,从图中我们可以直观的看到此设备的工作原理,对其性能特点有一个更清晰的认识和了解。

网络驱动设备工作原理图

二、网络驱动工作流程

(一)数据传送流程

这个流程中的具体数据流向和运行方式是,计算机中的网络协议层首先向信息处理器发出通知,通知其准备开始进行数据的整合和传输,接着处理器便会从缓存设备中选取一段数据缓存通道,在计算机术语中用字母BD来代表这个片段性的通道,简单的来说,就是一种缓存描述符。当缓存结束后,处理器再通过信息通道通知设备进行信息发送[3]。当信息发送完毕再次回到缓存通道BD中时,控制器DMA会截取有效的BD数据信息进一步发送到下一个控制接收系统MAC模块中,最终由此模块把经过处理的信息传送至计算机网络中。至此,数据传送的流程才进行完毕。且在这个传输过程中,有三分之二的流程都是由计算机系统自动完成的,并不需要人为的操作干预,这种模式不仅可以节省网络传输的时间,而且对网络传输中的信息质量也会有一定的保证。

(二)数据接收阶段

控制处理器分别对BD设备以及网络设备进行初始化,然后MAC模块向DAM控制系统发送数据信息的取用通知,然后同传送流程相似,当BD中的相应数据被取用后在发送至相应的缓存系统中,随后,网络设备传输信号通知处理器接受数据信息,接受方式主要有中断接收形式和轮流询问的接收形式。当数据接收完毕后,网络协议系统从中取走这些有效的数据信息。同传输过程一样,在数据的接收阶段,也有很大一部分接收过程是通过计算机系统的自动传输识别完成的,同步的接收质量和接受速率也同样的会得到提升。

三、网络驱动优化方法

(一)引入NAPI数据处理方式

这种数据处理方式优点在于减低网络数据包传输到位后的网络信息通道终端频率。应用了这种数据处理方式,就可以实现一部分的数据信息传输在不需要引起网络终端的情况下正常进行。从影响上来说,每一次的网络中断,都会影响计算机系统中驱动程序的整体信息传输和接受速度,进一步对计算机运行的总体速度也会造成影响[4]。这种处理方式减低中断频率的途径是通过中断和轮询结合的方式来保证信息传输的轮次正常运行。这里要注意的是,两种方式的选取标准要通过网络信息流量的高低来进行判断,在低流量的情况下,一般会选取中断式的数据接收方式。在高流量的情况下,就会采取轮询式为主的数据接收方式。

(二)NAPI的优化原理

首先,处理中断函数。在NAPI的模式下,一般会发出信号告知系统禁止通过终端系统信息传输的方式来进行数据处理,而通知网络驱动子系统通过轮询的方式加快数据程序包的接收速度。在这个过程中,何时禁止数据传输的中断,什么时间点进入轮询的数据处理模式,分别有驱动系统的硬件和软件设备来完成。

其次,轮询模式 的使用。轮询模式的使用是基于调节中断模式而产生的,因此,在进入轮询模式时,必须首先切断中断模式的运行。且无论是什么方向的切换,另一种模式都必须提前关闭运行。

三、数据传输中的优化应用

(一)传输优化

利用网卡实现对大数据传输程序包的合理分割,当一个庞大的数据包被分割成多个小的数据包时,计算机CPU的负荷就会相应的减低 ,那么驱动程序的传输效率就会有很大的提高,这与计算机系统信息处理的高效性要求十分符合。

(二)接收优化

这个阶段的优化方式主要是通过对信息的整合打包来实现的。具体的应用原理是,将多个不同的TCP数据资源包共同整合存储在一个skb系统结构中,并在非常短的时间间隔后,将这个大的数据包整合,然后整体发送给上一层的网络协议接受系统中,由其统一处理。这种大批量数据统一处理的方式,降低了上层协议的信息处理成本,提升了TCP的整体数据接收能力。

四、结束语

总之,Linux系统中的网络驱动设备优化是一个非常具有技术含量的过程,其中的数据传输和数据接收是优化工作的主体,做好这两个环节的优化,才吃呢个实现网络设备驱动的整体优化。

参考文献:

[1]陈豹,陈虎.Linux下HDLC通道网络设备驱动的设计[J].煤炭工程,2012(9):125-126.

[2]常锋,孟传良.基于ARM-Linux的网络驱动程序设计[J].通信技术,2012,45(6):32-35.

[3]姚萌萌,张俊,沈亮.Linux多核环境网卡驱动优化研究[J].计算机系统应用,2014,23(10):223-227.

[4]张康.基于ARM-Linux平台的无线网络功能设计与实现[J].大众科技,2013(2):7-10.endprint

猜你喜欢

网络设备驱动
网络设备的安装与调试课程思政整体设计
探讨问题驱动教学法在高中数学教学中的应用
优化网络设备维护提高数据通信传输质量
AMD VS微软 SSD的AHCI驱动选哪家