無線IP網關的設計與應用
網關軟件運行后,用戶通過菜單命令啟動網絡監聽線程。網絡監聽線程負責接收和發送數據報。網絡監聽線程首先從外部讀入初始化信息,包括本機IP地址、NDIS序號、網絡ARP表、路由表。然后裝載VxD程序,并進行初始化,完成監聽的準備工作。接下來線程開始循環訪問網絡接收緩沖區和串口緩沖區,對其中的IP數據報進行分析、轉發。
對于從網絡接收緩沖區得到的數據報,網絡監聽線程首先對其目的IP地址進行分析,判斷該數據分組是否需要轉發。對于需要轉發的,網關計算機給它加上相應的數據鏈路的頭信息,并進行碼字透明處理后存入串口發送緩沖區;對于不需要轉發的數據報不予處理。這樣的處理主要是為局域網中可能存在多個網關而設計的。
對于從串口接收緩沖區得到的數據報,網絡監聽線程首先提取該數據報的目的IP地址,通過該IP地址查詢ARP表得到目的主機的MAC地址。線程在該數據報前加上MAC幀頭,通過調用VxD接口函數發送該數據報。
串口通信部分為上層網關功能模塊提供透明傳輸。實驗規定的串口通信速率很低(4800bps),當局域網的數據流量增大時,將成為整個通信的瓶頸。因此,對這部分軟件的主要要求是在保證通信誤碼率低的基礎上達到高效。串口通信包括發送和接收兩部分,以全雙工的方式工作。這樣可以保證串口的工作效率。采用線程的工作方式也便于和整個軟件其他模塊的協調運行(如與上層網關功能模塊之間)。
(1)數據發送模塊
IP數據報的發送通過一個獨立的線程來進行。由于串口通過無線鏈路連接,采用短波通信,誤碼率較高,因此要求一定的傳輸協議來保證數據的可靠傳輸。實際實施時,采用奇校驗和停止等待協議來保證串口數據的可靠傳輸。每一個字節的傳輸都采用奇校驗方式。在發送一個IP數據包采用停止等待協議。每次發送數據時,先查詢是否有確認或出錯幀要發送,如果有,則發送確認或出錯幀。如果沒有,則查詢數據緩沖區是否有IP包要發送。如果有,則從數據緩沖區中取出一個包,附上幀頭和數據起始標志進行發送。發送完數據后,等待對方返回確認。如果對方在規定時間內沒有返回確認則重新發送剛才的數據。在等待期間不發送新的數據,但是如果本地接收數據后需要發送確認消息給對方,則盡快發送。
在本軟件中,兩個半網關用于連接兩個局域網。對串口通信的要求是雙向高速。兩個半網關可能同時有大量數據要傳送。當使用停止等待協議時,停止等待協議的等待時間應為對方發送最大一個數據包所需要的時間。根據實驗得知,在以太網上,最大數據包長度為1500字節,因此,等待時間應為:1500×2×8/4800=5s。這個時間是最大等待時間。在實驗中,得到平均等待時間為853ms。因此,在軟件中設置等待時間為1s。
(2)數據接收模塊
接收模塊由消息響應函數完成。先搜索報文頭,對報文頭進行處理。再判斷接收幀的類型,作出相應處理。接收完后,查詢數據接收錯誤標志,如果有錯誤發生,則丟棄該數據包;反之,將該數據包存入緩沖區。
4 系統測試與應用前景
WWW是目前Internet網上的主要服務,它是基于TCP/IP的典型應用。以這項服務對所開發的網關軟件進
行了測試。實驗表明,網關軟件原理正確。
由于采用了串口通信技術,該成果可經簡單改裝,用在基于modem的網絡互連等多方面,如在監控系統的
各級之間、公司總部與分公司、辦事處之間實現廉價的LAN互聯。
評論