無線IP網(wǎng)關的設計與應用
VxD:從本地LAN接收和向本地LAN發(fā)送MAC幀(VxD是Windows 95/98下虛擬設備驅動程序);
LAN接收:去掉VxD傳遞的數(shù)據(jù)中的MAC幀控制信息,并根據(jù)目的IP地址決定是否將其轉給IP處理模塊;
LAN發(fā)送:根據(jù)IP模塊轉來的目的IP地址,查找對應的MAC地址,進而組成完整的MAC幀交由VxD發(fā)送到本地LAN;
IP處理模塊:負責路由選擇和其他IP層處理,并將LAN接收模塊交來的IP數(shù)據(jù)報處理后交給Line發(fā)送模塊,將Line接收模塊交來的IP數(shù)據(jù)報交給本地LAN發(fā)送模塊;
Line接收模塊:把從數(shù)據(jù)鏈路接收的完整IP數(shù)據(jù)報交給IP處理模塊;
Line發(fā)送模塊:把從IP處理模塊接收的IP數(shù)據(jù)報發(fā)送到數(shù)據(jù)鏈路上。
由上述功能可以看出,若把網(wǎng)關看作是一個雙向系統(tǒng),那么入口端負責IP數(shù)據(jù)報的過濾,出口端負責IP數(shù)據(jù)報的轉發(fā)。連接認證模塊負責在建立IP連接前兩個半網(wǎng)關的認證。
管理模塊:負責半網(wǎng)關的進程調度,并提供地址庫的修改接口。
對網(wǎng)卡的操作通過調用VxD軟件實現(xiàn)。
此外,半網(wǎng)關中附有一個地址庫,存儲本地LAN的IP地址和對應的MAC地址的信息,供LAN發(fā)送和接收模塊查詢或調用。
3 系統(tǒng)實現(xiàn)
3.1 軟件結構
軟件開發(fā)平臺為Windows 95/98,開發(fā)軟件為Microsoft Visual C++ 6.0。
Windows 95支持多線程運行,一個軟件可以創(chuàng)建多個線程同時執(zhí)行不同的功能。進程間的運行是互相獨立的,有各自的堆棧。網(wǎng)關功能模塊和串口通信模塊是同時運行的。需要設計成兩個單獨的線程。考慮到串口通信模塊中數(shù)據(jù)的收發(fā)也是同時進行的,因此將串口通信模塊設計成收發(fā)兩個進程。
根據(jù)上述設計思想,軟件的整體框圖如圖4所示。
3.2 模塊設計
3.2.1 認證模塊設計
開機后首先進行連接認證。在實施認證時,網(wǎng)關軟件以client和server的方式運行,每個半網(wǎng)關均工作于Client/Server 模式,即都包含client和server實體,任何一方都可以請求建立連接。當請求超時,請求方將退出請求等待狀態(tài),待對方請求時再建立通信連接。在認證通過前不啟動軟件的網(wǎng)關功能,認證通過后開放網(wǎng)關功能。
軟件提供加密函數(shù)的接口,對本地輸入的用戶名和口令加密后傳送。接收端提供認證函數(shù)的接口,返回認證結果。
3.2.2 數(shù)據(jù)幀的監(jiān)聽和發(fā)送
評論