• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    基于藍牙的個人局域網(PAN)的設計

    發布: 2007-6-23 21:39 | 作者:   | 來源:   | 查看: 50次 | 進入軟件測試論壇討論

    領測軟件測試網

       
      人們所攜帶的電子信息設備越來越多,像筆記本電腦、移動電話、PDA等已不再只是商務人員的必備工具,正逐步進入百姓的日常生活。

    這些信息設備的功能越來越強大,同時尺寸卻越來越小,但是人們已不能僅僅滿足于它們各自獨立工作,而是迫切需要各種設備之間能方便地進行信息的交互。因此,在小范圍內能夠將個人設備互聯而組成的網絡―――個人局域網(PAN)便應運而生。藍牙(Bluetooth)作為一種小范圍無線連接技術,能夠在設備間實現方便快捷、靈活安全、低成本、低功耗的數據和語音通信,是目前實現無線個域網的主流技術之一。本文提出了怎樣實現現有上層協議(如TCP/IP)與藍牙協議的無縫連接;怎樣實現藍牙個人區域網的數據轉發(主要集中在PAN的網橋算法上)的解決方法;最后提供了一個藍牙個人區域網模塊的完整設計方案供參考,希望對各個同行有借鑒意義。本文所提出的解決方案現已用軟件實現,并投入國外市場,用戶反映運行良好。
      
      1 藍牙PAN實現原理
      
      藍牙技術是一種近距離無線通信的開放性標準,其目的是單芯片、低功耗,用來代替有線電纜連接,實現短距離無線語音和數據通信。由多個藍牙設備就可以組成一個藍牙網絡。藍牙個人區域網PAN有兩種應用模型:一種被稱為組網絡(Group Ad-hoc Networking,GN);另一種被稱為網絡訪問點(Networking Access Point,NAP)。這兩種實現模式分別有不同的網絡結構和協議模型。下面對它們分別進行敘述。
      
      1.1組網(GN)與網絡訪問點(NAP)
      
      一個簡單的組網由一個主設備和1~7個活動的從設備組成。在這一個主從網中,主設備與從設備之間的點對點或點對多點通訊在主設備的控制下進行,這個網絡不需與外部網絡相連。另外一種就是由一個NAP和其它藍牙設備組成的網絡。這種無線設備充當網絡設備(10baseT,GSM等)之間的網橋、代理或者路由。網絡訪問點與Inte.net相連,它是其它計算機或設備與外部網絡相連的中介。計算機通過網絡訪問點共享所有的網絡資源。
      
      1.2PAN協議棧模型
      
      由上可見,NAP和GN是兩種不同的服務。組網被設計用來允許一個或多個藍牙設備組成一個局域網絡,而網絡訪問點提供藍牙設備進入Internet網絡的能力。無論是NAP還是GN都必須提供與TCP/IP和其它網絡協議的無縫實現。與GN網絡比較而言,NAP除了要實現數據轉發之外,還必須實現網橋,能夠實現網絡的路由,從而能通過網絡訪問外部網絡。
      
      2 PAN實現要解決的問題
      
      藍牙個人區域網就是要用無線代替有線,用藍牙硬件在不同設備之間建立一條虛擬的藍牙鏈路,從而使現有的各種應用軟件不經修改,就可以在不同藍牙設備之間進行數據傳輸和數據交換。它必須解決以下問題:
      
      (1)怎樣支持IPv4和IPv6協議和其它可選協議。
      
      (2)怎樣實現GN和NAP。
      
      (3)怎樣實現藍牙協議棧與現有網絡協議如TCP/IP和PPP等網絡協議無縫連接,從而通過藍牙硬件在下層建立一條虛擬的藍牙鏈路,使現有網絡應用程序就像在有線網絡中使用一樣。
      
      3 PAN的具體實現
      
      3.1實現高層協議與藍牙協議的無縫連接
      
      要充分運用現有的各種協議,如TCP/IP協議和其它上層協議的接口,PAN網絡需要在上層協議與藍牙協議棧之間建立一條藍牙無線鏈路。怎樣實現現有協議與藍牙協議的無縫連接?
      
      在Windows驅動程序設計構架中,現在的通訊協議(如TCP,IPX/SPX等)都是建立在Miniport Driver之上的。因此,只需實現一個Windows關于NDIS的Miniport驅動程序即可。從TCP/IP等高層協議過來的數據通過Miniport進入Dispatch Driver,然后進入個人區域網應用程序,通過應用程序進入藍牙協議棧。當然,PAN Interface也可以在Kernel Mode層實現。通過PAN Interface,數據就可以進入藍牙協議棧了。
      
      3.2網橋轉發算法(實現GN和NAP)
      
      為了實現GN和NAP,就必須在GN和NAP端實現一個虛擬網橋,實現數據的轉發。網橋轉發算法是藍牙個人區域網PAN實現的關鍵技術。根據藍牙個人區域網的特點,筆者提出了網橋三個端口的模型,并提出了一個網橋轉發算法。
      
      3.2.1網橋轉發算法基本思想
      
      網橋在一定程度上就相當于一個集線器。在它上邊可以有三種類型的端口:BNEP端口(數據轉發是直接建立在BNEP[3]之上的),本地端口(服務端本身)和外部網絡端口(如接入Internet)。由于一個藍牙主設備只能連接七臺藍牙從設備,所以網橋的BNEP端口最多能有七個;本地端口表示的就是提供服務設備自己,它只有一個;如果本設備支持NAP,那么將會注冊一個外部網絡端口?梢,一個網橋最多有九個端口,它的主要功能就是根據相應的網橋轉發算法,把數據從一個藍牙設備轉發到其它的藍牙設備或者外部網絡,從而實現在不同設備間(GN)或者和外部網絡(NAP)通信的目的。在每一個BNEP端口設置一個自學習標志位來標志來自這個端口的數據包的源地址和目的地址是否已經被記憶下來,這樣就沒必要每次都去查找來自這個端口的每一個數據包的源地址或目的地址。如果要轉發的數據包不是來自內部網絡,并且在端口列表中沒有找到目標端口,則默認為被轉發到外部網絡,如果沒有外部網絡端口,則丟棄該包。另外,在每一個端口還有一個包過濾器,它可以過濾掉某些類型的網絡包和來自或發往某地址范圍段的網絡包。
      
      3.2.2算法具體步驟
      
      (1)有數據包到達網橋,該數據包可能來自本地設備、其它藍牙設備或外部網絡(如果實現了NAP)。
      
      (2)從包頭中取得該數據包得源地址,檢查該數據包的是否來自外部網絡。若是,則檢查數據包的源端口是否自學習的;若不是,則記下該數據包的源地址并設置自學習標志位為TRUE。
      
      (3)從包頭中取得該數據包的類型。如果它是EARP/ERARP類型數據包,則把它作為廣播包,并對除源端口外的每一個端口進行廣播,然后轉到(8)。
      
      (4)如果它是IPv4,IPv6或者其它類型的數據包,則檢查所記憶的目標端口是否是一個有效端口。如果所記憶的目標端口有效,則把所記憶的目標端口作為該數據包要轉發的目標端口。
      
      (5)如果該數據包的目標地址是一個廣播地址或多播地址,則把該數據包進行廣播或多播,然后轉到(8);否則,在除源端口外的所有端口中查找目標端口。
      
      (6)如果找到目標端口,則記憶該目標端口;否則,若該網橋有默認端口(即外部網絡端口),并且源端口不是外部網絡端口,則把外部網絡端口作為目標口,若沒有外部網絡端口,則丟棄該包,然后轉到(8)。
      
      (7)進行包過濾,如果該包沒有被過濾掉,則轉發該數據包到目標端口。
      
      (8)接收下一個到來的數據包,重復上述步驟。
      
      4 模塊介紹
      
      4.1 PAN UI
      
      PAN UI模塊是位于最上層的圖形用戶界面,它是與用戶交互的接口。它使用戶能夠方便快捷地完成相應操作,如建立網絡,進行數據交互等。
      
      4.2 PAN Profile
      
      PAN Profile模塊是藍牙個人區域網PAN實現的關鍵模塊。一方面,它與用戶界面打交道,另一方面,它又要負責與協議棧和網絡驅動程序的數據交互。它有以下功能:
      
     、僖环矫嫠芴峁㏄AN服務,并等待接收來自客戶端的連接。
      
     、诹硪环矫嫠帜茏鳛榭蛻舳,發出建立連接請求,并接收來自服務端的響應。
      
     、廴绻峁㎞AP服務,則還需實現一個網橋,詳見網橋算法。
      
      4.3 Pan Interface
      
      PAN Interface模塊是與系統相關的模塊,它直接和位于核心態的Virtual NIC模塊進行交互,接收來自Virtual NIC模塊的數據(即TCP/IP等上層協議發來的數據)或發送數據到Virtual NIC(即TCP/IP等上層協議接收的數據)。
      
      4.4 Virtual NIC
      
      Virtual NIC模塊即網卡驅動部分,它位于Windows系統的核心態,實現了一個虛擬的藍牙網卡,直接與Windows系統通信。
      
      5 結束語
      
      本文首先對PAN藍牙協議進行了一個概括性的描述,然后對PAN設計中會遇到的問題進行了闡述,并在最后提出了作者對問題的解決方法。本文描述了PAN的設計和實現過程,提出了算法及解決方案,具有很強的實用性。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>