在分析網絡卡驅動程式之前,我們先來了解一下linux網路驅動體系結構:
我們來說一下流程:當網路裝置驅動載入時,首先在入口函式裡面完成一些初始化工作,這主要就是對net_device結構體的設定,以及跟硬體相關的設定,其中發包和收包函式比較重要。
ifconfig ***.***.***.*** up來配置網絡卡的時候,會呼叫net_device結構體的open函式。
當傳送資料報時,協議介面層的dev_queue_xmit會呼叫net_device結構體的hard_start_xmit函式來傳送資料報,資料報被放在sk_buff結構體中,先被傳送到傳送緩衝區,然後通過設定相應的傳送位將資料傳送出去。
接受資料的時候,當資料到達後會產生乙個中斷,在中斷處理函式中來處理收到的資料報,但是中斷處理函式中對資料報只是做乙個簡單的處理,接著就把資料報上報給網路協議層,網路協議層的netif_rx會對接受到的資料報做進一步的處理。
網路體系結構
osi 的七層協議包括應用層 表示層 會話層 運輸層 網路層 資料鏈路層 物理層,這一體系結構概念清楚,理論也較完整,但它既複雜又不實用,因此只作為參考模型。後來出現了四層的 tcp ip 體系結構,它們分別是 應用層 傳輸層 網際互連層 和網路介面層,現已被非常廣泛的利用。應用層對應於 osift...
網路體系結構
世界上第乙個網路體系結構由ibm公司提出 1974年,sna 以後其他公司也相繼提出自己的網路體系結構。為了促進計算機網路的發展,國際標準化組織iso在現有網路的基礎上,提出了不基於具體機型 作業系統或公司的網路體系結構,稱為開放系統互連參考模型,即osi rm open system interc...
linux核心體系結構
linux核心第一記 1.linux體系結構 從上圖可知,linux分為 使用者空間和核心空間。核心空間和使用者空間是程式執行的兩種不同的狀態,通過系統呼叫和硬體中斷能夠完成從使用者空間到核心空間的轉移。www.2cto.com 2.linux核心架構 2.1系統呼叫介面 sci sci層為使用者空...