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