王君怡
摘要: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