《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > 無線IP網(wǎng)關(guān)的設(shè)計與應(yīng)用

無線IP網(wǎng)關(guān)的設(shè)計與應(yīng)用

2009-03-17
作者:郝代春 胡修林 張?zhí)N玉

???? 摘? 要: 介紹了實現(xiàn)專用無線網(wǎng)與局域網(wǎng)之間的IP級互連原理和關(guān)鍵技術(shù),并討論了此項技術(shù)的應(yīng)用前景。

??? 關(guān)鍵詞: IP網(wǎng)關(guān)? 串口通信

?

  在實際網(wǎng)絡(luò)中,許多不在同一地點的局域網(wǎng)之間需要交互信息。為實現(xiàn)專用無線網(wǎng)與局域網(wǎng)之間的互連,研制具備下述功能的網(wǎng)關(guān)。首先,實現(xiàn)IP級互連,即某一局域網(wǎng)的IP數(shù)據(jù)報經(jīng)過網(wǎng)關(guān)的轉(zhuǎn)換后可以通過無線網(wǎng)傳到另一網(wǎng)關(guān),再經(jīng)轉(zhuǎn)換后,IP數(shù)據(jù)報可到達(dá)另一局域網(wǎng)的相應(yīng)的主機上,如圖1所示;其次,實現(xiàn)連接認(rèn)證。當(dāng)網(wǎng)關(guān)啟動時,與另一網(wǎng)關(guān)進(jìn)行連接認(rèn)證,當(dāng)認(rèn)證通過時,才建立IP連接。

?

?

  實驗采用自主開發(fā)的軟件,工作在Windows 9x操作系統(tǒng)下,在局域網(wǎng)中獲得所有的IP數(shù)據(jù)報,通過判斷、修改Ethernet頭信息,將IP數(shù)據(jù)報送至串口,通過連接在串口的無線設(shè)備發(fā)送出去。目的網(wǎng)絡(luò)的網(wǎng)關(guān)串口上連接的無線設(shè)備接收到后,通過網(wǎng)關(guān)轉(zhuǎn)發(fā)到目的計算機。從功能上說,網(wǎng)關(guān)計算機實現(xiàn)的是路由器的功能。

1 路由器功能

  路由器的功能主要有以下五個方面:

  (1)網(wǎng)絡(luò)間截獲發(fā)送到遠(yuǎn)地網(wǎng)段的報文,起轉(zhuǎn)發(fā)的作用;

  (2)選擇最合理的路由,引導(dǎo)通信;

  (3)路由器在轉(zhuǎn)發(fā)報文的過程中,為了便于在網(wǎng)絡(luò)間傳送報文,按照預(yù)定的規(guī)則把大的數(shù)據(jù)包分解成適當(dāng)大小的數(shù)據(jù)包,到達(dá)目的地后再把分解的數(shù)據(jù)包包裝成原有形式;

  (4)多協(xié)議的路由器可以連接使用不同通信協(xié)議的網(wǎng)絡(luò)段,作為不同通信協(xié)議網(wǎng)絡(luò)段通信連接的平臺;

  (5)路由器的主要任務(wù)是把通信引導(dǎo)到目的地網(wǎng)絡(luò),然后到達(dá)特定的節(jié)點站地址。后一個功能是通過網(wǎng)絡(luò)地址分解完成的。

  根據(jù)本項目的具體要求,所設(shè)計的無線網(wǎng)關(guān)實現(xiàn)了路由器的一部分功能,但并不是一個完整意義上的路由器。

2 系統(tǒng)設(shè)計與實現(xiàn)

2.1 系統(tǒng)結(jié)構(gòu)

  系統(tǒng)結(jié)構(gòu)如圖1所示。

  對LAN而言,無線數(shù)據(jù)鏈?zhǔn)请[含在網(wǎng)關(guān)內(nèi)的協(xié)議實體,它對LAN1和LAN2都是透明的。對外部而言,半網(wǎng)關(guān)1和半網(wǎng)關(guān)2構(gòu)成一個整體網(wǎng)關(guān),它完成與IP有關(guān)的信息處理,路由選擇和LAN內(nèi)部物理尋址。兩個LAN間的IP數(shù)據(jù)報傳輸處理過程如圖2所示。這里網(wǎng)關(guān)主要解決轉(zhuǎn)發(fā)決策、時延處理、地址轉(zhuǎn)換等。

?

2.2 半網(wǎng)關(guān)的體系結(jié)構(gòu)

  半網(wǎng)關(guān)的體系結(jié)構(gòu)如圖3所示。

  其中:

  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地址,進(jìn)而組成完整的MAC幀交由VxD發(fā)送到本地LAN;

  IP處理模塊:負(fù)責(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),那么入口端負(fù)責(zé)IP數(shù)據(jù)報的過濾,出口端負(fù)責(zé)IP數(shù)據(jù)報的轉(zhuǎn)發(fā)。連接認(rèn)證模塊負(fù)責(zé)在建立IP連接前兩個半網(wǎng)關(guān)的認(rèn)證。

  管理模塊:負(fù)責(zé)半網(wǎng)關(guān)的進(jì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í)行不同的功能。進(jìn)程間的運行是互相獨立的,有各自的堆棧。網(wǎng)關(guān)功能模塊和串口通信模塊是同時運行的。需要設(shè)計成兩個單獨的線程??紤]到串口通信模塊中數(shù)據(jù)的收發(fā)也是同時進(jìn)行的,因此將串口通信模塊設(shè)計成收發(fā)兩個進(jìn)程。

  根據(jù)上述設(shè)計思想,軟件的整體框圖如圖4所示。

?

3.2 模塊設(shè)計

3.2.1 認(rèn)證模塊設(shè)計

  開機后首先進(jìn)行連接認(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ā)送

  網(wǎng)關(guān)軟件運行后,用戶通過菜單命令啟動網(wǎng)絡(luò)監(jiān)聽線程。網(wǎng)絡(luò)監(jiān)聽線程負(fù)責(zé)接收和發(fā)送數(shù)據(jù)報。網(wǎng)絡(luò)監(jiān)聽線程首先從外部讀入初始化信息,包括本機IP地址、NDIS序號、網(wǎng)絡(luò)ARP表、路由表。然后裝載VxD程序,并進(jìn)行初始化,完成監(jiān)聽的準(zhǔn)備工作。

接下來線程開始循環(huán)訪問網(wǎng)絡(luò)接收緩沖區(qū)和串口緩沖區(qū),對其中的IP數(shù)據(jù)報進(jìn)行分析、轉(zhuǎn)發(fā)。

  對于從網(wǎng)絡(luò)接收緩沖區(qū)得到的數(shù)據(jù)報,網(wǎng)絡(luò)監(jiān)聽線程首先對其目的IP地址進(jìn)行分析,判斷該數(shù)據(jù)分組是否需要轉(zhuǎn)發(fā)。對于需要轉(zhuǎn)發(fā)的,網(wǎng)關(guān)計算機給它加上相應(yīng)的數(shù)據(jù)鏈路的頭信息,并進(jìn)行碼字透明處理后存入串口發(fā)送緩沖區(qū);對于不需要轉(zhuǎn)發(fā)的數(shù)據(jù)報不予處理。這樣的處理主要是為局域網(wǎng)中可能存在多個網(wǎng)關(guān)而設(shè)計的。

  對于從串口接收緩沖區(qū)得到的數(shù)據(jù)報,網(wǎng)絡(luò)監(jiān)聽線程首先提取該數(shù)據(jù)報的目的IP地址,通過該IP地址查詢ARP表得到目的主機的MAC地址。線程在該數(shù)據(jù)報前加上MAC幀頭,通過調(diào)用VxD接口函數(shù)發(fā)送該數(shù)據(jù)報。

3.2.3 串口通信模塊設(shè)計

  串口通信部分為上層網(wǎng)關(guān)功能模塊提供透明傳輸。實驗規(guī)定的串口通信速率很低(4800bps),當(dāng)局域網(wǎng)的數(shù)據(jù)流量增大時,將成為整個通信的瓶頸。因此,對這部分軟件的主要要求是在保證通信誤碼率低的基礎(chǔ)上達(dá)到高效。

串口通信包括發(fā)送和接收兩部分,以全雙工的方式工作。這樣可以保證串口的工作效率。采用線程的工作方式也便于和整個軟件其他模塊的協(xié)調(diào)運行(如與上層網(wǎng)關(guān)功能模塊之間)。

  (1)數(shù)據(jù)發(fā)送模塊

  IP數(shù)據(jù)報的發(fā)送通過一個獨立的線程來進(jìn)行。由于串口通過無線鏈路連接,采用短波通信,誤碼率較高,因此要求一定的傳輸協(xié)議來保證數(shù)據(jù)的可靠傳輸。實際實施時,采用奇校驗和停止等待協(xié)議來保證串口數(shù)據(jù)的可靠傳輸。每一個字節(jié)的傳輸都采用奇校驗方式。在發(fā)送一個IP數(shù)據(jù)包采用停止等待協(xié)議。每次發(fā)送數(shù)據(jù)時,先查詢是否有確認(rèn)或出錯幀要發(fā)送,如果有,則發(fā)送確認(rèn)或出錯幀。如果沒有,則查詢數(shù)據(jù)緩沖區(qū)是否有IP包要發(fā)送。如果有,則從數(shù)據(jù)緩沖區(qū)中取出一個包,附上幀頭和數(shù)據(jù)起始標(biāo)志進(jìn)行發(fā)送。發(fā)送完數(shù)據(jù)后,等待對方返回確認(rèn)。如果對方在規(guī)定時間內(nèi)沒有返回確認(rèn)則重新發(fā)送剛才的數(shù)據(jù)。在等待期間不發(fā)送新的數(shù)據(jù),但是如果本地接收數(shù)據(jù)后需要發(fā)送確認(rèn)消息給對方,則盡快發(fā)送。

  在本軟件中,兩個半網(wǎng)關(guān)用于連接兩個局域網(wǎng)。對串口通信的要求是雙向高速。兩個半網(wǎng)關(guān)可能同時有大量數(shù)據(jù)要傳送。當(dāng)使用停止等待協(xié)議時,停止等待協(xié)議的等待時間應(yīng)為對方發(fā)送最大一個數(shù)據(jù)包所需要的時間。根據(jù)實驗得知,在以太網(wǎng)上,最大數(shù)據(jù)包長度為1500字節(jié),因此,等待時間應(yīng)為:1500×2×8/4800=5s。

這個時間是最大等待時間。在實驗中,得到平均等待時間為853ms。因此,在軟件中設(shè)置等待時間為1s。

  (2)數(shù)據(jù)接收模塊

  接收模塊由消息響應(yīng)函數(shù)完成。先搜索報文頭,對報文頭進(jìn)行處理。再判斷接收幀的類型,作出相應(yīng)處理。接收完后,查詢數(shù)據(jù)接收錯誤標(biāo)志,如果有錯誤發(fā)生,則丟棄該數(shù)據(jù)包;反之,將該數(shù)據(jù)包存入緩沖區(qū)。

4 系統(tǒng)測試與應(yīng)用前景

  WWW是目前Internet網(wǎng)上的主要服務(wù),它是基于TCP/IP的典型應(yīng)用。以這項服務(wù)對所開發(fā)的網(wǎng)關(guān)軟件進(jìn)行了測試。實驗表明,網(wǎng)關(guān)軟件原理正確。

  由于采用了串口通信技術(shù),該成果可經(jīng)簡單改裝,用在基于modem的網(wǎng)絡(luò)互連等多方面,如在監(jiān)控系統(tǒng)的各級之間、公司總部與分公司、辦事處之間實現(xiàn)廉價的LAN互聯(lián)。

?

參考文獻(xiàn)

1 謝希仁.計算機網(wǎng)絡(luò).北京:電子工業(yè)出版社,1999

2 馬得翔.PC網(wǎng)絡(luò)原理與實際應(yīng)用,北京:清華大學(xué)出版社,1997

3 楊強,李堂秋.Win9x虛擬設(shè)備驅(qū)動程序編程指南,北京:清華大學(xué)出版社,1999

4 K.Yao.Error probability of asynchronous spread spectrum?multiple access communication systems. IEEE Trans.on

? Comm,Vol 25 Aug 1977
本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。