設計WiMAX MAC層模擬模組 NS-2模擬器當紅

國家通訊傳播委員會(NCC)於2007年7月底完成六張全球微波存取互通介面(Worldwide Interoperability for Microwave Access, WiMAX)分區執照的招標,預計兩年後再釋出一張以上全區執照。隨著執照釋出,新一代無線傳輸技術WiMAX在台灣正式啟動,預計最快2008年台灣即可完成布建,並開始營運。
由於WiMAX被視為下一代無線寬頻接取的革命性技術,產官學研均積極投入相關產品的技術開發,並透過行動台灣(M-Taiwan)計畫以加速台灣WiMAX環境的布建。  

雖然現在市場上早已出現WiMAX實際產品,但網路模擬器仍具價值,就技術發展而言,WiMAX技術仍不斷演進中。除大家所熟知的IEEE 802.16d、IEEE 802.16e外,IEEE 802.16工作組於2007年7月舊金山會議中,達成IEEE802.16j「收斂為標準草案」的共識,在8月中產生初版草案文件供會員參考,並進行會員投票(Letter Ballot),這將使得整體WiMAX設備市場商機再增加新的需求動能,另一方面,號稱WiMAX2的802.16m,目前規畫以2008年第二季為時間點,完成相關規格的內容制訂。  

技術的發展尚不斷演進,而參與標準會議規格的制定,對於所提技術的模擬驗證是不可或缺的一環。就已商品化的產品來說,相關的模擬數據也是布建時考量流量、涵蓋率、服務品質保證等規畫的重要依據,適度的模擬分析可避免Over-provision或Under-provision的發生。  

NS-2模擬器廣獲青睞  

接下來介紹目前最廣為使用的NS-2模擬器(Network Simulator 2, NS-2),其模擬分析的系統設計與整體操作流程,其實並不難。現有的網路模擬軟體大體可分為商用模擬軟體及開放原始碼的模擬軟體,在商用模擬方面,較著名的為QualNet和OPNet,可提供較完整、系統化的模組架構,以及額外資訊服務,但因為是商用等級軟體,使用者必須支付龐大的授權費與維護費用,動輒幾十萬甚至百萬的費用並不是一般研究單位所能負擔。  

至於免費的開放原始碼軟體,目前較有名的有由原來的Harvard NS衍生而來的交通大學NCTUns;另一則是發源於美國加州柏克萊大學(UC Berkeley)的NS-2,目前則是美國國防部高等計畫研究局(DARPA)下VINT(Virtual Inter-Network Testbed)計畫的一部分。  

NCTUns除可做網路模擬外,也可以與真實網路設備作為仿真(Emulation)時的一連結網路節點,功能相當強大。NCTUns主要由交大所開發維護;相對的NS-2則有相當豐富的資源,由許多研究單位共同貢獻,提供新的模組與功能。  

驗證演算法並模擬大量節點移動  

網路模擬器可以在產品尚未問世前,就先驗證一些演算法的效能,這種應用在學術界也相當普遍;另一方面,透過模擬也可以將網路拓撲的規模(Scale)擴大,模擬大量節點的移動情形,對於真正的網路布建亦有參考價值。舉例而言,資策會與交大團隊學研合作研究802.16d的網狀(Mesh)模式時,便發現原先標準規格所設計的分散式演算法在高密度網狀網路中,由於控制訊息的碰撞而嚴重影響新進節點進場程序(Network Entry Process)的成功率。這樣的模擬成果至少有兩層意義:對營運商而言,在實際布建時,可預估涵蓋範圍之布建規模;對設備製造商而言,則是可針對其缺失提出改進方法,透過專利保護,來增加產品的利基。  

至於缺點部分,當然模擬也有其先天的限制,一般較常見對網路模擬的批評,則是其準確度。以WiMAX模擬而言,主要著重在媒體存取控制(MAC)層與拓撲/網路(Topology/Networking)的研究。然而,WiMAX系列的標準中不只定義MAC層,其中也包括實體(PHY)層的部分。在IEEE 802.16d中,實體層使用正交分頻多工調變(Orthogonal Frequency Division Modulation, OFDM);而IEEE 802.16e中,實體層則是使用正交分頻多工存取調變(Orthogonal Frequency Division Multiple Access, OFDMA),OFDM和OFDMA在技術上有相當大的差距,但是NS-2對於實體層的模擬本來就較為薄弱,如難以模擬在實體層受到干擾或雜訊,通常只能帶入一些機率模型,以達實體層通道的效果。  

開放原始碼網路模擬  

除了交大的NCTUns,NS-2可能是目前開放原始碼網路模擬器中,最多學術研究單位所支持的,國內外大專院校的學生及教授也不乏對NS-2多有涉獵。相較於QualNet與OPNet提供的圖形化介面,NS-2的確顯得較為陽春,要會一些TCL Script,利用簡單的Script對NS-2進行模擬環境的配置和操作。但由於許多研究單位的貢獻,往往在新的網路協定公告後,便有免費的模組可供下載。  

NS-2模擬器採用TCL/C++語言  

NS-2採用兩種程式語言,包括在上層給使用者撰寫的TCL語言;以及核心部分使用的C++程式語言。為什麼一套模擬軟體要分成兩種語言呢?其實這樣的設計方式正是NS-2方便好用之處。基本上,模擬軟體就是要讓人方便使用,在先期實驗各種演算法與情境設計時,可以快速改變模擬的腳本或者參數條件,而毋須更動核心的程式碼,如此可省去麻煩且費時的編譯過程。而NS-2的核心程式部分使用C++程式語言,具用物件導向的優點,而使得程式有更好的擴充性,同時也讓模擬更加彈性。  

接下來由產生模擬結果的不同階段加以說明,如圖1所示,NS-2模擬的流程總共有四個步驟,主要核心部分在第一與第二步驟,也就是前面提到的C++與TCL設計;第三與第四步驟,則是對模擬的後續分析與選擇性的圖形化顯示介面的產生。  

以WiMAX模擬之設計開發為例,如果原先的NS-2模擬器中不支援WiMAX相關模組,使用者要先在NS-2的MAC層的通訊協定裡面,再新增支援WiMAX的模組;如果原先的NS-2模擬器中已支援WiMAX相關模組,但卻不合用,例如原來提供簡單的輪詢(Round-robin)排程,而正要實驗一個新發明的排程演算法時,則要去修改或取代相關模組。  

在實作WiMAX模組時,如圖1所示,須用C++程式語言加入依據IEEE 802.16d/e標準中定義的協定(Protocol)、計時器(Timers)以及狀態機(State Machine);接著和其他原本的NS-2模組一起編譯,這些新加入的程式碼,由於C++的特性,會和所有的物件共同編譯成為一個NS-2的物件,可視為一個執行檔。

點圖放大
資料來源:資策會
圖1 模擬流程示意圖

再來,使用者可以根據想要模擬的腳本用TCL語言寫一些測試程式,內容包括參數的設定、物件行為、流量模型和模擬的拓撲等。利用剛剛編譯完成的NS-2執行檔,程式便可依據設定進行模擬。  

待模擬結果產出後,NS-2會輸出成追蹤檔(Trace File),這個追蹤檔有許多種輸出格式,使用者可以在TCL中設定,而追蹤檔裡面有一堆紀錄(Log),所以還必須利用解析器(Parser)解析這分原始資料。一般而言,取決於個人習慣以及使用喜好,解析器通常會使用AWK程式語言或者Perl程式語言。最常被拿來探討的議題包括延遲時間(Delay)、網路吞吐量(Throughput)、封包遺失率(Loss Rate)、抖動(Jitter)和電力(Power)等。  

最後,得到的模擬資料亦可以利用繪圖軟體加以展現,相較於微軟Office Excel文書軟體,Linux使用者常用的製圖軟體是Gnuplot,使用方式簡單而且也具有彈性。另一方面,如果在TCL中開啟NAM追蹤功能,輸出的檔案還會有一個附檔名為.nam的影片檔,透過這個視覺化的輔助軟體,使用者可以更清楚了解模擬的過程(圖2)。

點圖放大
資料來源:資策會
圖2 NAM視覺化模擬結果

NS-2對於網路各層都內建現成的模組,而它們之間都設定有溝通的介面,讓使用者易於新增自己的模組。  

各單位合作進行NS-2之WiMAX模擬  

目前NS-2的WiMAX模組部分,最有名的當推美國國家標準局(National Institute of Standards and Technology, NIST)及國內長庚大學-資策會(CGU-III)兩個單位學研合作所開發的模組,兩者皆是獨立開發的,所以架構也完全不同。另外,韓國科技技術學院(Korea Advance Institute of Science and Technology, KAIST)電腦網路實驗室也發表WiBro模組。  

國內長庚大學-資策會透過學研合作,在2006年8月中旬發表有關IEEE802.16-2004實作模組,並且於ACM Value Tool研討會中發表,獲得高度讚許。  

國外方面,美國國家標準技術局(National Institute of Standards and Technology, NIST)於2006年9月下旬則釋出支援部分行動換手能力之模組,且由於其架構彈性大,修改容易,所以廣受好評。  

從表1的比較結果中可發現,NIST、CGU-III與KAIST皆支援802.16d,而其中NIST並提供部分的802.16e功能。在換手機制(Handover)方面,只有NIST提供Soft Handover機制。而在服務品質(QoS)部分,則只有CGU-III提供802.16e所定義之五種基本服務類型,其他兩者都只有支援Best Effort服務。

表1 國內外WiMAX MAC模擬模組功能比較表
項目 IEEE 802.16標準依據 網路進場機制 換手機制 服務品質 實體層
NIST 16d及部分16e模組 只提供16d進場機制 只提供硬式換手 Best Effort OFDM
CGU-III 16d 只提供16d進場機制 N/A 16d五種基本服務類別 OFDM
KAIST 16d(Based on 802.11) 只提供16d進場機制 N/A Best Effort DSSS(Base on 802.11)
資料來源:資策會整理

實體層的部分,NIST與CGU-III皆採用OFDM,而KAIST採用直接序列展頻技術(Direct Sequence Spread Spectrum, DSSS)。基於上述的比較,可以發現NIST與CGU-III之WiMAX MAC模組相對於KAIST的模組要完整許多。  

NIST負責制訂實做功能  

NIST WiMAX模組的實作主要是建構於固定式IEEE 802.16通訊協定(802.16-2004)與行動式IEEE 802.16通訊協定(802.16e-2005)上,截至2007年4月30日止,於NIST所公布之最新版本中,仍有許多模組尚未實作完全,2007年8月3日則先期提供第二版給十二家WiMAX論壇會員測試。NIST將未完成的部分分成兩類:第一類並不是其主要計畫「Seamless and Secure Mobility國家計畫」的主要研究目標;第二類是由於時間的限制,而無法即時完成的部分。  

目前NIST最新版的WiMAX模組功能整理歸納如表2所示,上表中分成三個部分,已實作功能(Implemented Features)部分已經由NIST所完成,而尚未實作功能(Not Implemented Features)部分,是因為開發時程尚未設計,但是可以發現這些都是非必備的功能。

表2 NIST WiMAX模組功能表整理
已實作功能 尚未實作功能 範圍外的功能

.OFDM實體層
.TDD
.訊息管理
.排程(Round Robin)
.IEEE 802.16e延伸,支援掃描與換手
.Fragmentation And Reassembly of Frames

.OFDMA
.FDD
.ARQ
.QoS
.Periodic Ranging And Power Adjustments
.網狀網路

.ATM整合子層
.WirelessMAN-SC
.WirelessMAN-SCa
.WirelessHUMAN
.認證
資料來源:FY96資策會創新前瞻計畫期中報告

另外,NIST也定義一些不打算實作的範圍外的功能(Out-of-scope Features),由於在IEEE 802.16通訊協定中有某些部分作法並未詳細定義明確或並未提及,且該部分的實作方法不止一種,因此NIST決定將這些較具爭議的部分留給使用者自行設計,以避免其不適用。其中包括頻寬排程器(Bandwidth Scheduler)與服務流處理器(Flow Handler)等,因此可說NIST已完成一個相當完整的WiMAX NS-2模組。  

設計NIST WiMAX模組架構  

NIST WiMAX模組的架構主要分為三大部分:MAC層模組架構、訊框結構與IEEE 802.16e延伸。  

MAC層模組架構  

NIST WiMAX模組的Mac802_16類別(Class)繼承NS-2原有的Mac類別,它是MAC模組的主要部分,負責處理封包的傳送與接收。圖3中可看到此架構下有:

點圖放大
資料來源:資策會整理
圖3 NIST 802.16 MAC NS-2物件類別圖
SduClassifier類別
  透過適當的連線識別碼(CID)來對應到每一個流出的封包。
DestClassifier類別
  以連線目的端IP位址作為分類的根據。
ServiceFlowHandler類別
  用來處理服務流的要求與回覆,同時也將一長串的服務流(Serviceflow)儲存在節點上。
PeerNode類別
  包含一連串該節點已連線節點的資訊,這些資訊包含連線的狀態與對象。
WiMAXScheduler抽象類別(Abstract Class)
  BS排程器(BsScheduler)和SS排程器(SsScheduler)。
封包和資料量做相關統計
  StatWatch和ThroughputWatch。
其中有多個封包分類器(sduClassifier),使用者可以透過TCL語言設定一連串的封包分類器。而NIST MAC層最重要的處理核心就在其內部的排程器(Scheduler)中,WiMAXScheduler抽象類別會與NIST MAC層建立一個排程器介面,此抽象類別再由SS與基地台排程器來實現。另外,NIST MAC層會透過ThroughputWatch與StatWatch類別針對封包和資料量做相關統計,方便使用者直接獲取資訊。  

在NIST架構中,SS只能與BS進行連線,而BS可以與多個SS連線,所以SS的連線節點只有基地台,而基地台的連線節點包含多個SS。圖4顯示此模組可以藉由ConnectionManager類別來存取節點上的多個連線(Connection),而連線類別又可分為上鏈(Uplink)與下鏈(Downlink)兩種。

點圖放大
資料來源:NIST NS-2專案文件
圖4 NIST 802.16 MAC NS-2訊框結構關係圖

由於基地台與SS各自擁有不同的狀態機,所以NIST分別為基地台與SS定義出Mac802_16BS與Mac802_16SS兩種子類別,以利使用者以後可以只針對SS或者基地台的MAC做修改。  

TDD訊框結構  

NIST WiMAX模組的訊框結構是依照分時多工(Time Division Duplex, TDD)模式,如圖4所示,一個訊框(FrameMap)包含一個下行子訊框(DlSubFrame)與一個上行子訊框(UlSubFrame)。每個子訊框都被切割成PHY PDU的間隔,在每個間隔中,基地台將頻寬分配到不同使用者的資料組中,由Burst抽象類別,DlBurst類別與Ulburst類別表之。而每一個資料量都有各自的設定檔類別(Profile),其中有個別的調變與頻率資訊。

就頻寬分配而言,基地台除了要分配頻寬以提供SS實際傳送資料外,另外也要分配頻寬供SS進行初始測距(Initial Ranging)與頻寬請求(Bandwidth Request)的競爭所使用。競爭間隔以ContentionSlot類別表之,只會在上行產生,因下行資料排程完全由基地台所控制;另外,FrameMap類別內含多種可解析控制訊息的方式。  

在基地台端,排程器會先根據分配演算來安排MAP結構,接著呼叫FrameMap類別的getDL_MAP、getUL_MAP、getDCD與getUCD來產生控制訊息,並填入SS所需的資訊;而在SS端,排程器會呼叫Frame Map類別的parseDL_ MAP、parseUL_MAP、parseDCD與parseUCD來解析控制訊息,並建立傳送與接收封包所需的資料結構。  

NIST供16e掃描/換手  

NIST除了提供IEEE 802.16d的功能外,也提供IEEE 802.16e通訊協定的掃描與換手,當SS想要尋找鄰近可連線的基地台時,該SS便會傳送掃描請求(Scan Request)給目前的基地台。當基地台收到掃描請求時,基地台會分配掃描間隔(Scanning Interval),如此基地台與SS就可暫時停止封包傳輸以避免封包遺失。NIST模組中的WiMAXCtrl代理人(Agent)類別便是用來負責分配掃描間隔以與基地台同步,同時也傳送鄰居通告(Neighbor Advertisement)給SS。  

排程器決定封包傳送順序  

圖5顯示NIST WiMAX NS-2各模組間彼此封包流入與流出的關係與處理流程,在傳送過程中,當收到上層協定如網際網路通訊協定(IP)或乙太網路(Ethernet)傳給MAC的封包時,這些封包會先經過分類器(Classifier)判斷其所屬的連線並進行切割。切割後的封包便存在佇列(Outgoing Queue With Fragmentation Per CID)中等待傳送,此時排程器(Scheduler)會決定佇列中封包的傳送優先順序(Priority),接下來透過OFDM實體層傳送出去,優先順序為Basic Connection Msg→Primary Management Connection Msg→Secondary Management Connection Msg→OutgoingData。

資料來源:NIST NS-2專案文件
圖5 NIST WiMAX NS-2各封包流入流出處理流程

接收時,當收到OFDM實體層流入的封包時,會先將這些封包重組,接著判斷重組後的封包型態。若為控制訊息,則將封包交由排程器處理;反之,則將其繼續往上層送。  

設計WiMAX MAC模擬模組  

介紹完NIST WiMAX MAC NS-2模組設計,接下來介紹由長庚大學與資策會學研合作所開發的WiMAX MAC模組。這個模組於2006年開發,也是建構於固定式IEEE 802.16通訊協定(802.16-2004)上,另外加上802.16e-2005的ertPS(Extended-real-time Polling Service)。  

目前團隊正合力將相關成果,加上新進開發的802.16j Multi-hop Relay相關部分模組移植到NIST架構下,以便貢獻較具官方色彩的AATG(Application Architecture Task Group)的NS-2小組。  

架構與內部設計  

如同NIST的Mac802_16類別(Class)一樣,CGU-III WiMAX模組的Mac802_16類別也是繼承NS-2的Mac類別的一個子類別(Subclass),該模組實作IEEE 802.16-2004標準,並在NS-2 2.29版本完成測試(圖6)。

點圖放大
資料來源:NIST NS-2專案文件
圖6 CGU-III WiMAX模組系統架構圖

首先,所有封包透過SFID-CID Mapping機制,將不同類型與連線的封包置入不同佇列中,佇列內的封包被視為MAC接收資料單元(MAC SDU, MSDU)。接著排程器會採用輪詢方式切割MSDU佇列內的封包,處理之後的MSDU會變成MAC協定資料單元(MAC PDU, MPDU),並置入到MPDU佇列中等待傳送。  

在SS端,WiMAX模組接收到MSDU佇列內的MSDU時,MAC Management Entity會觸發SS發送Initial Ranging,以加入WiMAX網路,抑或藉由上行排程(Uplink MAP, UL-MAP)IE (Information Element)所描述的時間將MPDU送出。上述動作須透過無線網路介面,根據設定檔的調變資訊算出傳送延遲時間,並將封包串接傳送出去。  

封包處理運作架構  

CGU-III WiMAX NS-2各模組間封包流程的關係如圖7所示,流量產生代理器(Traffic generating agent, TGA)的目的是為了在應用層產生不同型態的資料量,分別為網路語音通訊協定(VoIP)、MPEG、FTP和HTTP等不同等級的資料。依照標準規定,這些封包被區分成五類,其優先等級由高至低分別為:

UGS(Unsolicited Grant Service
rtPS(real-time Polling Service)
ertPS(extended-real-time Polling Service)
nrtPS(non-real-time Polling Service)
BE(Best Effort)

資料來源:FY96資策會創新前瞻計畫期中報告
圖7 CGU-III WiMAX模組關係圖

WiMaxMAC(Proposed WiMAX MAC Module)下方透過網路介面以及Radio Propagation Model可以往實體層的通道傳送;而其上方是鏈結層(Link Layer, LL),中間必須經過一個介面佇列(Interface Queue)。  

WiMAX省電機制模擬實作  

耗電量為行動終端技術能否成功的一個關鍵因素,在IEEE 802.16e的標準中定義睡眠模式,讓行動台可以在沒有資料收送的時候進入休眠,以減少電力的消耗。然而,一旦有資料傳至基地台,就會喚醒行動台,而行動台一被喚醒又須再等待一段時間,才能再進入睡眠模式,往往無法有效節能。有鑑於此,可設計一個排程演算法,並透過NS-2網路模擬器的模擬,來驗證此方法的效能。  

模擬設計  

可使用NS-2 2.31網路模擬器進行模擬分析,因為NIST已經釋出NS-2之WiMAX模組,所以直接在其中增加新設計的模組。截至2007年4月30日止,於NIST公布的最新版本中,其WiMAX模組仍有些許部分尚未實作完全,如之前表2所討論。

主要增加一些通訊協定必須交換之控制訊息,以及相關計時器(Timer)與旗標(Flag);其中最重要的是實現節能模式中的狀態控制機制與流程,新增的功能如下:

Process Control Messages
Set up The Timer And Flags
Design Sleeping State Machine
Implementation Of Our Proposed Mechanism For Managing MS Sleeping Intervals

參數設定  

採用表3的WiMAX系統模擬參數,這些參數遵照IEEE 802.16標準;使用的底層調變技術為OFDM;而頻寬大小為5MHz,一個超級訊框(Super Frame)的時間為四毫秒,它是由一個下傳子訊框(DL Sub-frame)與上傳子訊框(UL Sub-frame)所組成;因為模擬中採用TDD,故必須切換接收與發送模式。在模擬中使用一台基地台;而為了探討不同數量的行動台對所提出的方法之影響,分別對一至二十台行動台的情境做測試。

表3 模擬參數表
類別 參數
頻寬 5MHz
Number of FFT size 256
訊框持續 0.004秒
Preamble Duration (Symbol) 1
DL/UL Map Duration (Symbol) 4
下載/上傳比例 1:1
TTG/RTG Duration 20微秒
雙工 TDD
資料來源:資策會

模擬結果圖示  

如前所述,將模擬產生之追蹤檔(Trace File)用Gnuplot軟體處理後,展現模擬結果(圖8、圖9)。

圖8 使用20個MS模擬物件的節能比例與不同流量之模擬分析
圖9 使用20個MS模擬物件的延遲時間與不同流量之模擬分析

WiMAX模組架構漸趨完整  

整體來說,自行開發一個NS-2模組並非簡單的事情,難處在於沿用既有之NS-2架構,所以必須遵照一些程式流程;除了在開發階段常常因為缺一個環節就造成系統當機,或者程式無法正常運作外,設計的模組若要同時兼具真實性與高效能,則更是需要經驗的累積。  

目前NIST已經在NS-2官方網站登記其貢獻,在經過NS-2官方網站一連串的相關測試之後,以後從NS-2官方網站下載的NS-2 All-In-One版本中,就會內建WiMAX模組。另外,WiMAX論壇AATG的NS-2小組,正致力於開發WiMAX模擬相關模組,開發成員除了幾所美國知名大學外,也不乏有產業界的研究人員,當然NIST也參與其中並且扮演要角。其成果初期只供WiMAX論壇成員使用。資策會身為WiMAX論壇會員,在積極參與國際標準組織的同時,也積極參與此合作計畫。預期NS-2 WiMAX模組在眾人齊心努力下,將可更趨完整。  

(本文作者任職於資策會網多所WiMAX技術中心)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!