• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于NS-3 網(wǎng)絡(luò)模擬器的TDMA 協(xié)議仿真實(shí)現(xiàn)

      2021-12-07 07:45:50王心源李雪妍
      電子設(shè)計(jì)工程 2021年23期
      關(guān)鍵詞:網(wǎng)絡(luò)設(shè)備隊(duì)列數(shù)據(jù)包

      王心源,程 鵬,吳 斌,李雪妍

      (1.中國科學(xué)院微電子研究所,北京 100029;2.中國科學(xué)院大學(xué),北京 100049)

      WiFi是IEEE定義的一個無線網(wǎng)絡(luò)通信的工業(yè)標(biāo)準(zhǔn)(IEEE 802.11)[1],WiFi 是一種短程無線傳輸技術(shù)[2]。無線局域網(wǎng)(Wireless Local Area Networks,WLAN)技術(shù)或WiFi技術(shù)由于技術(shù)成熟、易于部署以及成本較低被廣泛地應(yīng)用于短距離場景如家庭場景。但在某些遠(yuǎn)距離特殊場景下不便于有線通信設(shè)備的安裝和部署,技術(shù)人員也渴望使用WiFi技術(shù)。增大WiFi的發(fā)射功率可以顯著增加傳輸距離,在傳輸功率方面滿足了遠(yuǎn)距離傳輸?shù)囊髸r仍存在一些問題,如隱藏節(jié)點(diǎn)等。這些問題的根源在于WiFi 所采用的媒體訪問控制(Media Access Control,MAC) 技術(shù)為載波監(jiān)聽多路訪問/沖突避免(Carrier Sense Multiple,CSMA/CA),CSMA 基于競爭的設(shè)計(jì)原理導(dǎo)致了特定場景性能低下,且無法避免[3]?;跁r分多址(Time Division Multiple Access,TDMA)的MAC 協(xié)議對共享的媒介在時間上進(jìn)行精細(xì)的劃分,各個節(jié)點(diǎn)只在自己歸屬的時隙內(nèi)發(fā)送數(shù)據(jù),實(shí)現(xiàn)了無競爭機(jī)制,避免數(shù)據(jù)競爭信道時產(chǎn)生碰撞,很好地解決了遠(yuǎn)距離傳輸下的隱藏節(jié)點(diǎn)問題[4]。在當(dāng)前WiFi商用硬件設(shè)備上對TDMA模式支持較少。文中在開源網(wǎng)絡(luò)仿真器NS-3中基于WiFi組件實(shí)現(xiàn)了TDMA 的MAC協(xié)議仿真。

      1 TDMA協(xié)議

      1.1 TDMA協(xié)議簡介

      時分多址是一種無爭用的介質(zhì)訪問協(xié)議。網(wǎng)絡(luò)中所有節(jié)點(diǎn)共享的信道帶寬被劃分為時間槽,每一個節(jié)點(diǎn)循環(huán)使用時間槽。各節(jié)點(diǎn)只在其分配的時間段內(nèi)傳輸數(shù)據(jù),傳輸槽通常是固定的時間間隔[5-6]。

      每個傳輸槽之間插入保護(hù)間隔,以便傳輸不重疊。保護(hù)間隔的值通常是一個數(shù)據(jù)包傳輸?shù)街付ǖ膫鬏敺秶枰臅r間。在這個簡單的時分多址模型中,假設(shè)節(jié)點(diǎn)的時鐘是同步的。

      1.2 隱藏節(jié)點(diǎn)問題

      在多節(jié)點(diǎn)網(wǎng)絡(luò)中,許多沖突都是由隱藏節(jié)點(diǎn)問題引起的。如圖1 所示,AP 為接入點(diǎn),STA1 和STA2為兩個站點(diǎn)。在家庭場景中,STA1 和STA2 的距離較近,它們可以通過載波偵聽感受到彼此的存在,即STA1 或STA2 要發(fā)送數(shù)據(jù)包時會先檢測載波是否正在被使用,如果被使用會進(jìn)行隨機(jī)退避,此時不會發(fā)生沖突。一旦STA1和STA2均距離AP較遠(yuǎn)甚至為傳輸極限距離時,STA1 和STA2 將無法感受到彼此的存在,對于站點(diǎn)STA1 和STA2 來說載波是空閑的。若此時兩個站點(diǎn)同時向AP 發(fā)送數(shù)據(jù),那么將會產(chǎn)生沖突導(dǎo)致數(shù)據(jù)的傳輸錯誤或失敗[7]。

      圖1 隱藏節(jié)點(diǎn)問題

      當(dāng)兩個不在彼此傳輸范圍內(nèi)的節(jié)點(diǎn)向同一接收器發(fā)送數(shù)據(jù)時,來自兩個發(fā)射器的數(shù)據(jù)包在接收器上發(fā)生碰撞。這就是所謂的隱藏節(jié)點(diǎn)問題。

      IEEE 802.11 是一種基于爭用的MAC 協(xié)議,通過引入無競爭的TDMA協(xié)議可以有效地解決此類問題。

      2 NS-3中實(shí)現(xiàn)TDMA協(xié)議

      2.1 NS-3仿真原理

      NS-3 將連續(xù)變化的網(wǎng)絡(luò)過程按照時間順序分割成一系列的離散事件[8]。完整的NS-3 網(wǎng)絡(luò)模擬過程就是按時間先后執(zhí)行這些離散事件,如圖2 所示。

      圖2 發(fā)送過程從連續(xù)到離散的過程

      一個分組從節(jié)點(diǎn)0到節(jié)點(diǎn)1,其步驟可總結(jié)如下:

      1)T1時刻,節(jié)點(diǎn)0 開始向信道中發(fā)送分組的第一個字節(jié),這時節(jié)點(diǎn)0 的網(wǎng)絡(luò)設(shè)備被占用,無法發(fā)送其他分組;

      2)T2時刻,分組的最后一個字節(jié)發(fā)送完畢。網(wǎng)絡(luò)設(shè)備被釋放。T1到T2時刻這段時間就是分組的傳輸延時;

      3)T3時刻,分組被節(jié)點(diǎn)1 接收,NS-3 假設(shè)節(jié)點(diǎn)沒有傳輸延遲,所有到達(dá)其網(wǎng)絡(luò)設(shè)備的分組被立即接收。T2到T3這段時間即使分組的傳播延遲。

      物理網(wǎng)絡(luò)中所有分組發(fā)送過程都是連續(xù)的,NS-3 將這個連續(xù)過程抽象為3 個離散事件,也就是3 個函數(shù)[9]。

      T1時刻的分組發(fā)送事件,節(jié)點(diǎn)0 在T1開始發(fā)送分組,與物理網(wǎng)絡(luò)不同的是,節(jié)點(diǎn)0 一次性將整個分組發(fā)送給信道的C++對象,通過鎖定網(wǎng)絡(luò)設(shè)備,使其無法發(fā)送其他分組(后續(xù)分組將進(jìn)入到網(wǎng)絡(luò)設(shè)備對象的緩存中),直到T2時刻新的事件發(fā)生,即網(wǎng)絡(luò)設(shè)備解鎖。

      通過在T1時刻鎖定網(wǎng)絡(luò)設(shè)備和T2時刻解鎖網(wǎng)絡(luò)設(shè)備兩件離散時間模擬出一個連續(xù)的分組發(fā)送過程。同樣模擬分組在信道中的傳輸過程,信道在T1時刻計(jì)劃一個新的事件,在T3時刻將分組一次性的轉(zhuǎn)發(fā)給目標(biāo)節(jié)點(diǎn)1 網(wǎng)絡(luò)設(shè)備的C++對象[10]。

      通過在腳本中設(shè)置分組大小、傳輸速率和傳播延遲的屬性,可以模擬不同的網(wǎng)絡(luò)仿真。

      2.2 TDMA相關(guān)類的實(shí)現(xiàn)

      在NS-3 中將節(jié)點(diǎn)(node)、設(shè)備(device)、協(xié)議層(MAC)、物理層(PHY)以及信道(Channel)均抽象成一個個C++的類[11]。該文通過在NS-3 仿真平臺中加入TDMA 相關(guān)的類TdmaMac 類、TdmaQueue 類以及TdmaController 類,實(shí)現(xiàn)了簡單的TDMA 協(xié)議。

      2.2.1 TdmaMac

      上層的數(shù)據(jù)包(packe)由IP 層傳送到TdmaMac中,TdmaMac 在收到數(shù)據(jù)包后,調(diào)用Enqueue 函數(shù)將數(shù)據(jù)包放入隊(duì)列并等待。等待到屬于該節(jié)點(diǎn)的傳輸時隙到來,TdmaMac 通過Get QueueState 函數(shù)查詢TdmaQueue 中的入隊(duì)數(shù)據(jù)包packet,然后將數(shù)據(jù)包packet 循環(huán)地從隊(duì)列中取出,并附加上MAC 頭和尾,執(zhí)行函數(shù)Start Transmission 將數(shù)據(jù)包發(fā)送給SimpleWireless Channel 類。同時在傳輸開始之前TdmaMac 中還需要根據(jù)packet 的大小(size)計(jì)算出傳輸所需的時間,把所有需要傳輸?shù)膒acket 的時間總和和TdmaController 分配給該節(jié)點(diǎn)的傳輸時間進(jìn)行比較,如果在該節(jié)點(diǎn)回合下不能再傳輸一個packet,則終止傳輸循環(huán),即使還剩余一定的時間。

      2.2.2 TdmaQueue

      TdmaQueue 隊(duì)列主要實(shí)現(xiàn)丟包策略。查詢隊(duì)列的state 為full 時,將此時上層發(fā)送的packet 丟掉。TdmaQueue 中主要的兩個屬性變量為QueueLength和QueueTime。QueueLength 變量為隊(duì)列最大長度,QueueTime 為隊(duì)列最大延時。當(dāng)隊(duì)列中數(shù)據(jù)包數(shù)達(dá)到QueueLength 數(shù)量時,后邊得到的數(shù)據(jù)包均丟掉。QueueTime 設(shè)定的時間為數(shù)據(jù)packet 在隊(duì)列中能夠存儲的最長時間,當(dāng)數(shù)據(jù)包在隊(duì)列中存儲的時間大于QueueTime 時,數(shù)據(jù)包packet 同樣被丟掉。TdmaQueue 實(shí)現(xiàn)了以上兩種根據(jù)隊(duì)列長度以及數(shù)據(jù)包存儲時間的丟包策略。

      2.2.3 TdmaController

      TdmaController 負(fù)責(zé)管理和計(jì)劃實(shí)現(xiàn)TDMA 協(xié)議的控制,TdmaController 類初始化TDMA 傳輸參數(shù),授權(quán)節(jié)點(diǎn)進(jìn)行傳輸。在仿真開始前將分配給傳輸?shù)牟宀蹟?shù)量和插槽持續(xù)時間分配給每一個節(jié)點(diǎn)[12-14]。仿真開始后,仿真程序通過MAC 指針列表中調(diào)用TdmaMac,并指示節(jié)點(diǎn)它可以傳輸一個特定的SlotTime。當(dāng)傳輸完成后,等待一個GuardTime,然后開始下一個節(jié)點(diǎn),從列表中調(diào)用下一個節(jié)點(diǎn)。一旦所有節(jié)點(diǎn)全部遍歷完成,等待一個InterFrame Time 時間再開始下一個周期。

      TdmaController 函數(shù)為Tdmacontroller 起始執(zhí)行函數(shù),Start 函數(shù)中首先啟動controller。Start 函數(shù)調(diào)用仿真器simulator 執(zhí)行StartTdmaSessions 函數(shù)。Start TdmaSessions 函數(shù)在第0 秒執(zhí)行ScheduleTdma Session 函數(shù)。ScheduleTdmaSession 函數(shù)中創(chuàng)建了一個mac 的map。在每一個slot 中不斷地循環(huán)執(zhí)行ScheduleTdmaSession 函數(shù),Start 函數(shù)調(diào)用關(guān)系如圖3 所示。

      圖3 Start函數(shù)調(diào)用關(guān)系

      ScheduleTdmaSession 函數(shù)通過調(diào)用 Tdma CentralMac::StartTransmission 函數(shù),不斷地調(diào)用SendPacketDown 函數(shù)將packet 傳遞下去。Send PacketDown 函數(shù)調(diào)用lowmac 層的StartTransmission函數(shù)最終將packet傳輸出去進(jìn)入到信道中[15-17]。

      函數(shù) TdmaController::CalculateTxTime 調(diào)用CalculateBytesTxTime 計(jì)算packet 的TX 時間,以供TdmaMac::StartTransmission 使用,判斷剩余packet 是否能在slot時間內(nèi)傳輸完成。

      圖4 傳輸函數(shù)執(zhí)行過程

      TdmaMac::StartTransmission 執(zhí)行后,TdmaCon troller 先對packet 的傳輸時間進(jìn)行計(jì)算得到packetTransmissionTime,然后將其與totalTransmi ssionSlot 進(jìn)行比較。

      3 TDMA協(xié)議仿真測試

      該系統(tǒng)測試TDMA 性能采用一個接入點(diǎn),4 個客戶端的應(yīng)用場景,仿真參數(shù)設(shè)置如表1 所示。4 個客戶端STA1、STA2、STA3、STA4 按時隙順序分配,且時隙大小相同,每個客戶端均占用一個slottime 進(jìn)行輪詢。

      表1 仿真參數(shù)設(shè)置

      圖5 TDMA仿真拓?fù)?/p>

      通過配置上層的應(yīng)用產(chǎn)生packet 的速率以及分別設(shè)置物理層的傳輸速率進(jìn)行吞吐率測試,吞吐率仿真結(jié)果如表2 所示。

      表2 吞吐率仿真結(jié)果

      4 結(jié)論

      文中對WiFi 設(shè)備在特定場景下應(yīng)用的缺點(diǎn)進(jìn)行了簡要分析,簡單介紹了隱藏節(jié)點(diǎn)問題的定義,其根本原因來自協(xié)議的競爭機(jī)制,因此提出使用公平接入的TDMA 協(xié)議。同時在NS-3 開源仿真器中增加了相關(guān)模塊,Tdmamac 類,TdmaQueue 類 和Tdmacontroller 類,這3 類實(shí)現(xiàn)了基本TDMA 協(xié)議,并對其正確性進(jìn)行了驗(yàn)證。如有需要,可以在此基礎(chǔ)上添加TDMA 調(diào)度算法。

      猜你喜歡
      網(wǎng)絡(luò)設(shè)備隊(duì)列數(shù)據(jù)包
      隊(duì)列里的小秘密
      一種基于C# 的網(wǎng)絡(luò)設(shè)備自動化登錄工具的研制
      基于多隊(duì)列切換的SDN擁塞控制*
      軟件(2020年3期)2020-04-20 00:58:44
      在隊(duì)列里
      SmartSniff
      豐田加速駛?cè)胱詣玉{駛隊(duì)列
      數(shù)據(jù)中心唯“快”不破
      基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
      基于列車監(jiān)測網(wǎng)絡(luò)設(shè)備的射頻功放模塊設(shè)計(jì)
      基于三層交換技術(shù)架構(gòu)數(shù)字化校園網(wǎng)絡(luò)設(shè)備的配置與管理
      和平区| 筠连县| 泗阳县| 滕州市| 元谋县| 丽水市| 威信县| 邯郸市| 芜湖市| 和顺县| 遂昌县| 承德市| 宣城市| 徐州市| 西华县| 大竹县| 年辖:市辖区| 镇沅| 叙永县| 涪陵区| 济南市| 隆昌县| 莲花县| 丰镇市| 札达县| 洞口县| 会理县| 漯河市| 邹城市| 台前县| 峡江县| 徐汇区| 区。| 肥东县| 沅江市| 濮阳县| 诸暨市| 拉萨市| 突泉县| 陈巴尔虎旗| 萨嘎县|