• 沒有找到結果。

第四章 移植RIOMIP

4.1 RIOMIP 軟體架構簡介

圖 4-1 所展示的便是RIOMIP 軟體系統架構。圖中深(藍)色的部分為視窗作業系統 中原有的元件,包括在核心層的 TCP/IP 協定堆疊與各類型網路卡的迷你連接埠驅動程 式,其中標示為 PPP 的裝置則是屬於 GPRS, PHS 與 CDMA2000 等類型之數據卡所使用。

此外,在用戶層則有使用 Windows Sockets 所開發的網路相關應用程式。上述的元件在 整合的過程中皆無須有所變更或修改。而淺(粉紅)色的部分則是為了整合異質網路所新 增開發的程式,與 NDIS 部分相關的有 NdisProt 協定驅動程式,Mobile IP 服務中間層 驅動程式以及 NdisFlt 驅動程式。此外還有搭配 NdisFlt 所使用的 IpFlt 驅動程式。以 上部分皆屬於核心層之範圍,唯一在用戶層的只有 RIOMIP 行動管理客戶端程式。底下 我將簡介各個元件的功能。

22

Kernel Level

Mobile IP Service IM Driver

Ethernet WiFi NDIS Wrapper

NdisFlt Driver

PPP TCP/IP Protocol

Stack

NdisProt Protocol Driver IpFlt Driver

RIOMIP Mobility Management Client

New code developed, specifically for

heterogeneous network integration

Interaction with existing Windows OS modules

User Level

Windows Sockets Application

圖 4-1RIOMIP 軟體架構圖

z NdisFlt Driver:

NdisFlt 驅動程式是利用所謂的 NDIS-Hook 的技巧來攔截封包用的驅動程式。

基本上它會去修改 ndis.sys 的匯出表 (Export Table) 來置換 NDIS Wrapper 所提 供的函式,達到攔截封包的功能。此外它還提供了一個介面,讓其他在核心的驅動 程式可以註冊回叫函式 (Callback Function),決定過濾封包的規則 (Rule),做 過濾封包的核心動作。

z IpFlt Driver:

IpFlt 驅動程式最主要是向 NdisFlt 驅動程式註冊過濾封包的回叫函式 (Callback Function)。另外一個功能則是提供一個介面,來傳遞攔截到的封包給 在使用者層級的RIOMIP Mobility Management Client 中的封包監測模組 (Packet Sniff Module) 。

z Mobile IP Service Intermediate Driver:

23

在 Windows 2000 之後版本的微軟視窗作業系統具備了媒體感應(Media Sense) 的功能,其用來偵測網路介面的媒體是否處於連結狀態。當媒體不除於連線狀態 時,介面卡跟 TCP/IP 通訊協定的聯繫會被取消,會造成該網路介面卡的 TCP/IP 相 關設定被移除,如 IP 位址與其相關的路由。此驅動程式就是來欺騙 TCP/IP 通訊協 定驅動程式,來取消媒體感應的功能

z NdisProt Protocol Driver:

NdisProt 驅動程式為一協定驅動程式,但它的作用並非真正的實作某種特定的 傳輸協定堆疊,而是用來提供一個介面作為用戶模式程式與核心模式 NDIS 驅動程 式間溝通的橋樑。

z RIOMIP Mobility Management Client:

RIOMIP行動管理客戶端程式是整個軟體套件的核心, 它整合運用了上述各個 NdisProt 協定驅動程式間的溝通。主要的功能為透過該模組取得迷你連接埠驅 動程式內相關的物件識別元, 例如乙太網路卡所使用之 MAC 位址或是無線區域

„ 配接卡管理模組 (Adapter Management Module): 主要功能為負責對於網 路卡的使用及切換。透過系統所提供的 IPHLPAPI 動態連結函式庫(Dynamic Link Library, DLL), 配接卡管理模組可透過該函式庫存取及設定 TCP/IP 協 定驅動程式內相關的參數, 諸如網路卡的 IP 配置, 路由表與 ARP 快取等。此 模組也會利用 NDIS 用戶模式輸入/出模組取得物件識別元以及網路媒體事件通 知,作為網路卡切換之判斷依據。而當配接卡管理模組完成網路卡的切換動作 後, 它必須通知行動網際網路協定狀態機模組做後續相關的處理。

24

„ 行動網際網路協定通道模組 (Mobile IP Tunneling Module): 行動網際網

„ 圖形化使用者監控介面 (Graphical User Monitoring and Controlling Interface): 此模組為一圖形化的使用者介面,讓使用者可以設定欲使用的主 /副配接卡。此外,透過其它模組的配合,即時的網路卡及行動網際網路協定相

在 Windows NT 系列的作用平台上,所有的輸入輸出都是封包驅動(Packet Driven)

的。每一個輸入輸出的動作,都會被一個封包所描述,藉由這個封包所帶的資訊來告訴 驅動程式應該做些什麼動作。而這個封包被稱為 IRP(I/O Request Packet)。整個 I/O 運作的流程如約略為下面幾個步驟:

1. User-mode 的應用程式透過系統的 Win32 Subsystem 發出 I/O 請求,例如呼叫 CreateFile()、ReadFile()和 WriteFile()等系統函式。

25

相關文件