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