1. 程式人生 > >7、LwIP協議規範翻譯——網路介面

7、LwIP協議規範翻譯——網路介面

7、網路介面

在lwIP中,物理網路硬體裝置驅動是由類似於BSD網路介面結構表示。網路介面結構如圖5所示。網路介面被儲存在一個全域性的連結串列中,通過結構體中的next指標來完成連結串列的連結。

         每個網路介面都有一個名字,儲存在name欄位中,如圖5所示。以雙詞名稱來標識網路介面裝置驅動的型別,且僅在介面被人為配置時使用。名字有裝置驅動設定,並反映網路介面表示硬體型別。例如,藍芽驅動程式的網路介面可以命名為bt,IEEE802.11b WLAN硬體可以命名為wl。由於名稱不一定是唯一的,因此可以用num欄位來區分不同的網路介面。

         IP層傳送和接收資料包時使用三個IP地址,分別是ip addr (ip地址),netmask(子網掩碼)和gw(閘道器),在下一節將介紹它們的用法。一個網路介面不能配置多個IP地址,相反,必須為每個IP地址建立網路介面。

         input指標指向裝置驅動在收到資料包時應呼叫的函式。

         網路介面通過output指標連線到裝置驅動,output指標指向裝置驅動一個函式,該函式在物理層上傳輸資料,在當要傳送資料包時有IP層呼叫該函式。該欄位在裝置驅動程式的初始化函式裡填充。output函式指標的第三個引數ipaddr是接收實際鏈路層幀的主機IP地址,它不必和IP資料包的目的地址相同。特別是,當IP資料包不是給本地網路的主機發送時,鏈路級別的幀將會發送到網路中的路由器上。在這種情況下,output函式指標給定IP的地址將會是路由器的IP地址。最後,state指標指向網路介面裝置裝置驅動的特定狀態,該指標又裝置驅動設定。

圖5