我對基於裝置輪詢,PF RING機制的理解

2021-05-02 08:24:19 字數 1912 閱讀 2706

我們在試驗中,採用了

napi

技術,pf_ring

技術,mmap

技術,rtirq

技術。在網絡卡抓包的時候,未採用

napi

的程式在每個包到達時,由網絡卡硬體觸發核心中斷。這樣,如果在高流量

gbit

情況下,核心忙於處理由頻繁的中斷而引發的現場儲存和恢復,而無暇處理其他,導致包的丟失。現在採用

napi

技術(需要網絡卡支援和版本在

2.4.23

以上的核心),由作業系統採用輪詢的方式來處理中斷,即中斷的控制權交給作業系統,網絡卡在判斷出有乙個包到達時,不會引發中斷,只用當作業系統輪詢到該裝置時,網絡卡中斷才有效。當核心裝置輪詢佇列未輪詢到該網絡卡時,在此期間,到來的包都被放入網絡卡的環形緩衝區中。直到輪詢到來,對於未採用

pf_ring

技術的核心,作業系統將包拷貝到核心協議棧緩衝區中進行排隊,而採用

pf_ring

技術,作業系統將包採用

dma方式拷貝到核心緩衝區的環形佇列中,再把網絡卡緩衝區中收到的這些包丟棄,不把他們傳入核心協議棧快取區中進行排隊。環形快取區在每個套接字被建立時分配,直到套接字關閉時,環形快取區才被釋放。每次由網絡卡快取區拷入核心環形快取區時,不會進行分配和去配的操作,而是新到的包按環形的方式,將原有的包覆蓋。

pf_ring

技術提供了對

mmap

技術的支援。該技術將使用者應用程式空間對映到核心快取區,從而省略了將資料從核心快取區向使用者快取區的拷貝操作。即所說的零拷貝技術。這樣可以節省一次拷貝所占用的系統資源,和縮短包處理的時間。

rtirq

技術是用來確定核心中斷的時間片的。當作業系統每次將包從網絡卡快取拷貝到核心環形快取時,都會引發乙個中斷,這個中斷會要求呼叫使用者程式對核心中的資料進行處理,當在大流量網路環境下,這樣的中斷也是很頻繁的。會消耗大量的系統資源,所以我們採用合適的時間片,使核心「睡眠」一小段時間,即在核心「睡眠」過程中,每次將包拷貝到核心快取區時,不會引發中斷,直到度過了這個時間片,核心就會使由核心包拷貝引發的中斷生效,如果這時有資料報被拷貝到核心,則引發中斷,如果等待了一定的時間,還沒有包拷貝到核心,則核心繼續睡眠。該技術就被稱為

rtirq。

以上是我對這些技術的理解。不知道分析的對不對。希望有高人更正和補充。

匯入論壇 引用鏈結 收藏 分享給好友 管理 舉報

tag:

引用刪除

netarchon

/   2009-05-27 05:21:12

樓主對rtirq的解釋不對,你的理解其實指的是device polling,在乙個中斷期間禁用該裝置的中斷,並一直poll該裝置中接收的資料報,直到沒有了或超過一定的數量或超過一定的時間,才重新使能該裝置。而rtirq是為了保證系統呼叫有乙個time上的constraint,在pf_ring中主要是為了解決poll開銷太大的問題,不過最近採用adaptive 的poll已經解決了這個問題。

採用pf_ring

技術,作業系統將包採用

dma方式拷貝到核心緩衝區的環形佇列中,再把網絡卡緩衝區中收到的這些包丟棄,不把他們傳入核心協議棧快取區中進行排隊。環形快取區在每個套接字被建立時分配,直到套接字關閉時,環形快取區才被釋放。每次由網絡卡快取區拷入核心環形快取區時,不會進行分配和去配的操作,而是新到的包按環形的方式,將原有的包覆蓋。

pf_ring

技術提供了對

mmap

技術的支援。該技術將使用者應用程式空間對映到核心快取區,從而省略了將資料從核心快取區向使用者快取區的拷貝操作。即所說的零拷貝技術。這樣可以節省一次拷貝所占用的系統資源,和縮短包處理的時間。

我對android中Activity的理解

一 activity是什麼 在我們的應用中,我們看到裝置螢幕顯示出來的東西都是屬於activity的,activity可以說是乙個平台,這個平台上我們用來展示view的各種子類 布局 控制項 自定義的view activity就像乙個魚缸或者窗戶,而view就像魚缸的水和魚,窗戶外面的風景。我們看到...

我對字元裝置驅動的理解

實驗要求 編寫簡單的字元裝置驅動模組,能夠支援建立和刪除節點,節點進行讀寫操作時分別列印 you are reading 和 you are writing 思想整理 1.本實驗需要我們編寫乙個驅動程式,如mymodule.c 2.該驅動程式經編譯後生成.ko檔案,使用makefile檔案生成mym...

顛覆我對裝置廠家的認識

提供開源硬體產品 嵌入式軟硬體開發 技術諮詢 店 以前看到某某企業聲稱研發 生產 銷售一體化,比如我參觀過做新能源充電樁的 汽車波箱油換油機的 工業雷射焊接機的 家電做破壁機的等等。實際上絕大多數裝置企業根本沒有自己的研發,都是採用方案外包,這樣大大降低人力成本和風險。現在中小企業分工很細很專業,做...