摘要:Ad Hoc網絡中無線信道的時變特性和網絡拓撲的不斷變化導致了鏈路的頻繁斷續(xù),使得數據包大量丟失。這就要求高層應用協議能夠快速訪問底層傳輸協議甚至信道的狀態(tài)信息,各層協議之間能夠根據需要互相交換信息,迅速作出決策,提高分組接收成功率。本文基于QualNet網絡仿真器設計并實現了一種網絡協議??鐚咏换サ臋C制。結果表明,利用該機制,能夠快速建立跨層協議的交互,使得高層協議及時獲取低層協議的有用信息,從而可根據信道的狀況動態(tài)調節(jié)網絡協議設置,提高分組發(fā)送成功率,優(yōu)化網絡傳輸的性能。
關鍵詞:無線,網絡,跨層,自組織,仿真
1. 引言
傳統(tǒng)的基于TCP/IP的網絡協議棧將各個協議層獨立開來,相鄰層之間通過良好的層間接口進行直接通信,而非相鄰層之間不允許進行直接通信。每個協議層專注于完成本層內部的全部功能,而不必去關心其它層的功能實現。這樣做的好處在于,設備廠商內能夠專注于某一協議層的網絡設備的開發(fā),進行功能優(yōu)化與添加,只要保證層間接口的標準化,就不會影響到整個網絡的互通。這一理念鼓勵了設備廠商的技術創(chuàng)新,使得市場上不斷出現質優(yōu)價廉的產品和服務,促成了全球互聯網Internet的飛速發(fā)展。但是,對于無線動態(tài)網絡和有線、無線混合異構網絡來說,嚴格的分層限制了信息獲取的靈活性,使得網絡設計者無法根據無線網絡的動態(tài)特性做出自適應優(yōu)化,導致傳統(tǒng)用于有線網絡的嚴格分層的協議棧在上述網絡中無法高效運行。
在一個典型的無線移動自組織網絡(MANET)中,由于無線信道的時變性和節(jié)點的移動性,使得鏈路的斷開、路由的改變頻繁發(fā)生,要維護網絡的正常運行,就要及時發(fā)送網絡控制信息,這就會給目前低帶寬的無線鏈路帶來很大的開銷。在某一層次的性能優(yōu)化也許還會導致全局協議棧的性能的降低。同時,基于嚴格分層的協議棧使得高層協議希望直接得到的網絡底層信息需要經歷幾個中間協議層才能得到,信息的更新帶有明顯的遲滯性。針對無線網絡的特點及問題,許多研究人員提出,打破基于TCP/IP協議棧的嚴格分層限制,使得相關協議層次能夠直接進行信息的交互,從而極大提高網絡的傳輸性能。Vineet Srivastava等人綜述了跨層設計的現狀和發(fā)展方向,將跨層定義為違反參考協議棧構架的協議設計,并將跨層分類為創(chuàng)建新接口、合并相鄰層、無新接口的耦合設計和全局垂直信息交互四種。Taesang Yoo等人利用NS-2網絡仿真器構建了一個跨層設計框架用以研究Ad Hoc網絡上的視頻傳輸性能。XinSheng Xia和Qilian Liang利用OPNET建立了一個MAC層和物理層耦合的跨層機制。Ning Yang等人基于NS-2建立了物理層和介質訪問控制(MAC)層、網絡層和MAC層之間的信息交互。
目前的跨層協議研究大多是基于網絡仿真器軟件實現的,跨層協議交互的研究主要針對于有延時限制的多媒體信息傳輸,而仿真軟件的仿真速度及實時性影響著許多研究的順利開展,例如我們建立的Ad Hoc網絡實時視頻傳輸實驗平臺就必須要依托于高速的網絡仿真引擎。同時,仿真工具的易用性也影響著我們的研究進度?;谏鲜鲈?,我們選擇QualNet作為我們的網絡仿真工具,取得了良好的效果。
本文首先介紹了QualNet網絡仿真器及與我們跨層協議實現相關的消息處理機制,接著以應用層和網絡層跨層交互為例,講解了如何在QualNet里面實現跨層協議設計,然后給出了不同節(jié)點、不同應用之間跨層協議交互的設計實現。最后總結全文并指出下一步的工作方向。
2. QualNet及其消息處理機制
2.1 QualNet網絡仿真器
QualNet是一種應用于無線、有線以及混合動態(tài)網絡的快速而且精確的開發(fā)、仿真系統(tǒng)。Scalable Network Technologies Inc.公司將美國加州大學洛杉磯分校(UCLA)開發(fā)的開放源代碼的GloMoSim成功地轉化為了商業(yè)版本——QualNet。目前已經在世界范圍內50多個國家和地區(qū)得到了推廣應用,它的客戶主要是美國的大的軍方項目承包商,包括DARPA、微軟、NASA、雷神、美國空軍等,目前已經成為美國軍方網絡中心戰(zhàn)及未來作戰(zhàn)系統(tǒng)(FCS)的主要仿真平臺。
2.2 QualNet協議棧構架
QualNet協議棧的設計遵循著TCP/IP網絡協議棧分層結構, 如圖1所示。但是,QualNet還提供了一套完整的消息傳遞機制,使得我們能夠進行類似圖2所示的跨層協議開發(fā)。
2.3 QualNet消息處理流程
以應用層恒定比特率(CBR)協議為例,QualNet標準協議棧的內部消息處理流程如圖3所示。
首先,應用層對CBR分組使用MESSAGE_Alloc( )函數分配內存空間,并利用MESSAGE_PacketAlloc( )函數將用戶載荷拷貝到packet結構體指針,通過MESSAGE_Send( )遞交給傳輸層,傳輸層利用MESSAGE_AddHeader( )函數增加一個TCP或者UDP頭,通過MESSAGE_Send( )函數遞交給網絡層,網絡層通過路由尋徑,增加了IP頭以后遞交給MAC子層,MAC子層增加MAC幀頭后遞交給物理層,經過相應的編碼、調制、天線發(fā)射出去,經過無線信道的模擬傳輸,歷經了衰落、多徑、損耗,到達接收端,如果發(fā)生差錯就要根據MAC層設置進行相應的處理,如重傳。接收端的處理過程與發(fā)送端相反,經過MESSAGE_RemoveHeader( )函數層層剝離協議頭,將消息遞交給上層進行相應的處理,最終到達目的應用協議,利用MESSAGE_Free( )函數釋放掉由發(fā)送端使用的MESSAGE_Alloc( )函數和MESSAGE_PacketAlloc( )函數分配的內存空間。
可見,如果要想實現跨層信息交互,就要在執(zhí)行MESSAGE_Send( )函數的時候,將原來的消息參數進行相應的更改,使得仿真器經過事件調度以后能夠將此消息遞交給期望的處理函數。下面,我們就將CBR協議進行修改,實現如圖2所示的繞過UDP傳輸協議直接將CBR分組遞交給IP層的跨層協議交互功能。
3 基于QualNet的跨層交互機制
如圖2所示,跨層協議交互分為兩個部分,一部分是應用層直接將數據遞交給IP層處理,另一部分是IP層將數據繞過UDP協議傳送到CBR處理函數入口。
3.1 應用層到網絡層的通信
常規(guī)協議棧中,基于UDP的應用層協議將用戶數據發(fā)送到UDP,添加UDP頭后發(fā)送到IP。為了使得CBR能直接將用戶數據發(fā)送到IP,我們就要首先確定UDP使用了哪些接口來和網絡層進行通信,然后在CBR和IP之間使用相同的接口。
圖4所示為分層的協議棧接口,可以看到,CBR調用接口函數APP_UdpSendNewHeaderVirtualDataWithPriority( )將CBR數據發(fā)送給UDP協議,UDP協議調用接口函數NetworkIpReceivePacketFromTransportLayer( )將數據發(fā)送給IP,接著IP進行相應的處理并調用函數RoutePacketAndSendToMac( )將數據包發(fā)送到MAC層。我們所需要做的,就是要將原來的數據通路打斷,讓CBR協議直接調用接口函數NetworkIpReceivePacketFromTransportLayer( ),并傳遞相應的參數。
3.2 網絡層到應用層的通信
對于網絡層到應用層的跨層通信,首先要確定傳輸層和應用層之間使用的是什么接口函數,然后使得網絡層使用相同的接口將數據傳遞給應用層。網絡層函數DeliverPacket( )從接收到的IP包的頭內讀取接收端協議編號ipProtocolNumber,將數據包傳遞給目的協議。對于一個基于UDP的應用程序,DeliverPacket( )使用函數SendToUdp( )發(fā)送接收到的數據包給UDP,因而,將數據包傳遞給應用層就要使用UDP函數TransportUdpSendToApp( )。為了使得IP能夠直接向CBR發(fā)送數據,編寫一個函數SendToCbr( )并修改DeliverPacket( )使之調用SendToCbr( )向CBR發(fā)送數據包,該修改過程的偽代碼如圖5所示。
4 跨層仿真實例
我們針對上述的CBR跨層協議交互,進行了無線移動Ad Hoc網絡數據傳輸的仿真實驗,實驗結果表明,即使是經過簡單的跨層交互(只是跨過了傳輸層),較之嚴格分層的協議棧,分組投送成功數量提高了33%。
4.1 實驗設置
我們選取了1000M×1000M見方的場景,上面均勻放置著50個無線通信節(jié)點,都運行802.11b的MAC協議和物理層協議,移動模型是Random Waypoint,暫停時間0S,最小移動速度10M/S,最大移動速度20M/S,都運行AODV路由協議。業(yè)務流量配置如下:每隔10MS發(fā)送一個長度為1240字節(jié)的CBR包,直到仿真結束,仿真時間2000S。
圖5 IP函數DeliverPacket( )的修改
我們主要考察了延時、抖動、分組投送成功數量、網絡吞吐量四種網絡性能參數指標,進行了多次實驗,實驗結果取平均值列于表1當中。
|
延時 |
抖動 |
接收量 |
吞吐量 |
分層 |
1.283S |
0.246S |
8572.8 |
42623.8bps |
跨層 |
1.368S |
0.231S |
11410.4 |
56721.0bps |
性能變化 |
增大6.58% |
減少6.28% |
增大33.1% |
增大33.07% |
表1 跨層交互與分層協議的網絡性能對比
4.3 實驗結論
從表1當中可以看出,經過跨層,減少了UDP傳輸層的處理流程,在延時和抖動變化不大(±6.5%左右)的情況下,極大地提高了網絡吞吐量和成功接收應用層分組的數量(提高了約33%),降低了丟包率,對于數字通信網絡的多媒體視頻傳輸質量而言是至關重要的。
5 結語
我們設計并實現了基于QualNet的跨層協議的交互機制,仿真結果表明,跨層協議信息交互在Ad Hoc網絡中能明顯地改善多媒體傳輸的性能。
下一步我們要基于這個實驗平臺,針對不同的路由協議、MAC協議和應用層協議進行跨層優(yōu)化,以改善Ad Hoc網絡視頻傳輸的性能。
北京華儀盛科科技有限公司供稿
www.qualnet.com.cn