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