馬琳 張軍 劉凱
(北京航空航天大學(xué)電子信息工程學(xué)院∥國家空管新航行系統(tǒng)技術(shù)重點實驗室,北京100191)
無線Ad hoc網(wǎng)絡(luò)是一種無固定基礎(chǔ)設(shè)施、網(wǎng)絡(luò)拓?fù)鋭討B(tài)變化、多跳的臨時性自治系統(tǒng).由于其靈活的組網(wǎng)方式,已在無人機(jī)網(wǎng)絡(luò)、災(zāi)難救援、傳感器網(wǎng)絡(luò)等諸多領(lǐng)域得到廣泛應(yīng)用.隨著網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大和網(wǎng)絡(luò)應(yīng)用業(yè)務(wù)的不斷增多,網(wǎng)絡(luò)擁塞時常發(fā)生;為了保證網(wǎng)絡(luò)傳輸?shù)目煽啃?,保持網(wǎng)絡(luò)持續(xù)端到端的高吞吐量,需要研究擁塞控制算法,進(jìn)行有效的擁塞控制.文獻(xiàn)[1-4]中指出傳輸控制協(xié)議(TCP)在無線Ad hoc網(wǎng)絡(luò)中表現(xiàn)出了嚴(yán)重的性能下降現(xiàn)象,這是因為TCP協(xié)議本是為有線網(wǎng)絡(luò)設(shè)計的,在有線網(wǎng)絡(luò)里丟包被認(rèn)為是網(wǎng)絡(luò)擁塞發(fā)生的標(biāo)志.不過,在無線Ad hoc網(wǎng)絡(luò)中,丟包可能是由多種原因造成[5-6],如信道錯誤、競爭共享信道沖突、路由失敗等.文獻(xiàn)[2]中指出,由于信號干擾造成的無線鏈路丟包往往發(fā)生在隊列溢出之前,這種非擁塞丟包引起TCP擁塞控制機(jī)制做出錯誤的響應(yīng),過度降低源端的發(fā)送速率,使得TCP協(xié)議在無線Ad hoc網(wǎng)絡(luò)中的性能嚴(yán)重下降.
因此,準(zhǔn)確判斷節(jié)點的擁塞狀態(tài)成為無線Ad hoc網(wǎng)絡(luò)擁塞控制算法的關(guān)鍵.為此,研究者開始研究媒質(zhì)接入控制(MAC)層的擁塞控制算法[7-8],以MAC層的各種信息作為新的擁塞度量,從而更加準(zhǔn)確地判斷網(wǎng)絡(luò)的擁塞狀況.典型的算法有LRED[2]、TCPMDA[9]、ARCD[10]等.LRED 利用節(jié)點在 MAC 層的重傳次數(shù)作為網(wǎng)絡(luò)擁塞的指示,該擁塞度量獲取簡單,幾乎不增加節(jié)點額外的開銷,但它沒有考慮到?jīng)]有重傳并不意味著沒有擁塞,某些“餓死”節(jié)點的分組重傳次數(shù)幾乎為零,因此不能幫助此類節(jié)點從擁塞狀態(tài)中恢復(fù)過來.TCP-MDA用重傳分組數(shù)和總傳輸分組數(shù)的比值來度量測量節(jié)點的擁塞程度,比LRED簡單地將重傳次數(shù)作為擁塞度量的準(zhǔn)確性高,但在 IEEE 802.11 DCF[11]協(xié)議中,每個重傳分組都會經(jīng)歷一段相對長的嘗試獲取信道的時間,因此TCP-MDA不能及時對網(wǎng)絡(luò)擁塞做出判斷.文獻(xiàn)[12]中通過在MAC層實時檢測信道的接收和發(fā)送情況,結(jié)合MAC隊列的瞬態(tài)長度來估計節(jié)點的可用帶寬,依此判斷節(jié)點的擁塞狀態(tài).該算法雖能較好地判斷出當(dāng)前節(jié)點是否擁塞,但沒有考慮到節(jié)點的公平性問題.ARCD用MAC層隊列長度作為節(jié)點擁塞度量,并將整條鏈路上的擁塞信息反饋給源節(jié)點,以便源節(jié)點更合理地調(diào)整分組發(fā)送速率,但MAC層隊列長度已經(jīng)被證實增長緩慢,難以合理表征節(jié)點的擁塞程度[2].文獻(xiàn)[13]中利用 TCP擁塞窗口和MAC延時分別估算傳輸層和MAC層的傳輸速率,根據(jù)兩者的比值調(diào)整TCP擁塞窗口的大小,達(dá)到控制源端發(fā)送速率的目的,但擁塞窗口和MAC層延時的抖動都較大,影響了算法的準(zhǔn)確性.上述算法均沒有考慮節(jié)點間擁塞信息的交互,這就降低了節(jié)點判斷MAC層擁塞的準(zhǔn)確性,限制了算法的性能.
為此,本研究首先分析MAC層擁塞和節(jié)點沖突問題,探討引起擁塞和沖突的原因,以及由此導(dǎo)致的節(jié)點間不公平性問題.然后從MAC層擁塞控制角度出發(fā),為無線Ad hoc網(wǎng)絡(luò)提出一種基于媒質(zhì)共享的公平擁塞控制(MCFCC)算法.基于 IEEE 802.11 DCF的退避機(jī)制,提出一種新的MAC層擁塞度量——退避率(pb)來描述節(jié)點自身的擁塞程度,傳輸節(jié)點通過請求發(fā)送(RTS)、清除請求(CTS)捎帶的方式將自身的擁塞信息(簡稱CI)反饋給鄰居節(jié)點,收到擁塞信息之后節(jié)點還要結(jié)合自身擁塞程度計算分組丟棄概率,并依此控制源端的發(fā)送速率,從總體上緩解網(wǎng)絡(luò)的擁塞,改善節(jié)點間的公平性.
IEEE 802.11 DCF協(xié)議已經(jīng)被廣泛應(yīng)用在無線Ad hoc網(wǎng)絡(luò)中,因此,本部分主要討論MAC層采用IEEE 802.11 DCF協(xié)議時存在的共享媒質(zhì)沖突和擁塞問題,以及由此導(dǎo)致的TCP吞吐量下降和節(jié)點間的不公平性,最后介紹 IEEE 802.11 DCF的退避算法.
TCP協(xié)議本身傾向于最大化網(wǎng)絡(luò)吞吐量[14],這常常會導(dǎo)致節(jié)點的分組發(fā)送速率大于網(wǎng)絡(luò)容量.根據(jù)TCP協(xié)議,節(jié)點每次成功發(fā)送分組后都會加大擁塞窗口,直到判斷出丟包的發(fā)生.在此期間,源節(jié)點逐漸加大的擁塞窗口使得其發(fā)送速率超出了網(wǎng)絡(luò)的容量,源端發(fā)出的分組逐漸積累到傳輸路徑中的各個節(jié)點的隊列里.當(dāng)傳輸路徑上的節(jié)點都有分組需要被轉(zhuǎn)發(fā)時,流間競爭和流內(nèi)競爭問題就會凸顯出來,導(dǎo)致網(wǎng)絡(luò)性能嚴(yán)重下降[15-16].這是因為鄰居節(jié)點為了轉(zhuǎn)發(fā)分組需要持續(xù)競爭信道,導(dǎo)致傳輸發(fā)生沖突、延遲增大、擁塞加劇,直到TCP發(fā)現(xiàn)丟包而減小分組發(fā)送速率、消除擁塞.消除擁塞之后,TCP又會加大擁塞窗口,這樣的循環(huán)會一直繼續(xù)下去,造成網(wǎng)絡(luò)難以保持良好、穩(wěn)定的工作狀態(tài).
在無線網(wǎng)絡(luò)中,競爭信道導(dǎo)致的分組傳輸沖突和TCP擁塞控制機(jī)制是引起節(jié)點間不公平性[17-18]的主要原因之一.
首先,傳輸流經(jīng)過的區(qū)域不同,所面臨的競爭壓力就不一致,分到的網(wǎng)絡(luò)帶寬也就不同.節(jié)點在傳輸分組的過程中需要和相鄰節(jié)點競爭共享信道,傳輸業(yè)務(wù)流經(jīng)過區(qū)域內(nèi)的節(jié)點越多,與之競爭信道的節(jié)點就越多,那么其分到的帶寬就會越小,擁塞就會加劇、丟包延遲就會加大.
其次,傳輸業(yè)務(wù)流的長短對公平性也有影響.路徑長的業(yè)務(wù)流需要消耗更大的帶寬,遭遇的共享信道競爭也越大,會有更多的分組丟失,而路徑短的業(yè)務(wù)流正好相反,并且在TCP擁塞控制機(jī)制的作用下,丟包使得路徑長的流進(jìn)一步減小擁塞窗口,只能獲得更小的帶寬.
最后,TCP擁塞控制和無線媒質(zhì)沖突還會導(dǎo)致節(jié)點“餓死”現(xiàn)象,被“餓死”的節(jié)點吞吐量幾乎為零.如圖1所示,假設(shè)存在兩個不同的業(yè)務(wù)流A→B和D→E,圖中相鄰節(jié)點間的距離是200 m,每個節(jié)點的傳輸距離是250m,節(jié)點的載波偵聽范圍和干擾范圍是550m.
圖1 鏈?zhǔn)酵負(fù)浣Y(jié)構(gòu)Fig.1 Structure of chain topology
當(dāng)節(jié)點D正在向節(jié)點E發(fā)送分組時,如果此時節(jié)點A要發(fā)送分組到節(jié)點B,由于B在D的干擾范圍之內(nèi),故B不能正確接收到A發(fā)送的分組.根據(jù)IEEE 802.11 DCF協(xié)議,節(jié)點A的競爭窗口加倍,進(jìn)入退避過程后重傳RTS分組,直至超過重傳次數(shù)后丟棄相關(guān)數(shù)據(jù)分組.源端確認(rèn)數(shù)據(jù)分組丟棄后把TCP擁塞窗口減半,重傳該數(shù)據(jù)分組,使得吞吐量大幅下降.而節(jié)點D由于成功發(fā)送分組,競爭窗口被重置為最小值,TCP的擁塞窗口加倍,發(fā)送速率加大.如果節(jié)點D需要傳輸?shù)臄?shù)據(jù)量較大,那么它會一直占用媒質(zhì),而節(jié)點A由于不能接入信道,競爭窗口逐漸增大到最大值,TCP擁塞窗口減小,直至被“餓死”.
IEEE 802.11 DCF使用二進(jìn)制指數(shù)退避算法控制節(jié)點的信道訪問接入,根據(jù)當(dāng)前信道的活動狀態(tài),調(diào)整節(jié)點競爭窗口的大小,進(jìn)而控制節(jié)點的訪問權(quán)限.802.11 DCF使用載波監(jiān)聽(CS)機(jī)制判斷所共享的信道媒質(zhì)是否空閑.
當(dāng)節(jié)點首次發(fā)送數(shù)據(jù)時,必須先偵聽信道是否空閑,若信道持續(xù)空閑時間等于DCF分布式幀間隔時間(DIFS),則允許節(jié)點執(zhí)行二進(jìn)制指數(shù)退避過程后發(fā)送數(shù)據(jù).若節(jié)點偵聽到信道忙,則等到信道空閑后執(zhí)行二進(jìn)制指數(shù)退避過程發(fā)送數(shù)據(jù),即在[0,CW-1]間隨機(jī)選擇一個數(shù)作為當(dāng)前節(jié)點的退避時隙數(shù)(這里CW為節(jié)點競爭窗口的大小),當(dāng)偵聽到相應(yīng)數(shù)目的退避時隙空閑后發(fā)起發(fā)送.之后,節(jié)點每次發(fā)送數(shù)據(jù)前仍要偵聽信道,若信道空閑的時間間隔等于DIFS和當(dāng)前退避計時器時長之和,則節(jié)點開始發(fā)送RTS分組.若信道忙或者發(fā)送節(jié)點沒有成功接收到CTS分組,則發(fā)送節(jié)點需要進(jìn)入二進(jìn)制指數(shù)退避過程.若發(fā)送節(jié)點成功收到CTS分組,則開始發(fā)送數(shù)據(jù)分組.DCF使用確認(rèn)(ACK)分組通知發(fā)送節(jié)點該數(shù)據(jù)分組已經(jīng)被下一跳節(jié)點成功接收,如果發(fā)送節(jié)點在ACK超時發(fā)生之前未成功收到ACK分組,則認(rèn)為沖突發(fā)生,并再次進(jìn)入退避過程,直到達(dá)到最大重傳限制(802.11允許RTS消息最多重傳7次,允許數(shù)據(jù)分組最多重傳4次).此外,當(dāng)數(shù)據(jù)傳輸成功后,發(fā)送節(jié)點也要進(jìn)入二進(jìn)制指數(shù)退避過程.通過對退避算法的分析可知,節(jié)點每次發(fā)送分組失敗都要進(jìn)入退避過程.網(wǎng)絡(luò)擁塞越嚴(yán)重,節(jié)點發(fā)送失敗的次數(shù)越多,執(zhí)行退避過程的次數(shù)也越多.所以節(jié)點進(jìn)入退避過程的次數(shù)能夠反映網(wǎng)絡(luò)擁塞的程度.
如何準(zhǔn)確判斷網(wǎng)絡(luò)狀態(tài)是擁塞控制的難點.本研究提出的MCFCC算法以MAC層媒質(zhì)競爭失敗的次數(shù)作為網(wǎng)絡(luò)擁塞狀況的度量,同時利用RTS、CTS分組將此擁塞信息發(fā)送到鄰節(jié)點,各節(jié)點據(jù)此估計網(wǎng)絡(luò)的擁塞程度,選擇相應(yīng)的分組丟棄概率,從而降低源端的發(fā)送速率.如此便能有效判斷并緩解網(wǎng)絡(luò)的擁塞,同時,擁塞信息的共享又保證了各業(yè)務(wù)流間傳輸?shù)墓叫?
由于無線信道的廣播共享性,同一時間只能有一個節(jié)點使用信道,因此在無線Ad hoc網(wǎng)絡(luò)中,節(jié)點總是要與其相鄰節(jié)點競爭共享信道媒質(zhì),沖突和丟包的現(xiàn)象會頻繁發(fā)生.在802.11 DCF協(xié)議中,節(jié)點每次嘗試獲取信道失敗后都要進(jìn)入二進(jìn)制指數(shù)退避過程,所以網(wǎng)絡(luò)擁塞越嚴(yán)重,信道競爭就越激烈,數(shù)據(jù)傳輸失敗的次數(shù)就越多,由于傳輸失敗而執(zhí)行二進(jìn)制指數(shù)退避過程的次數(shù)也就越多.因此,本研究利用節(jié)點經(jīng)歷退避過程的多少反映網(wǎng)絡(luò)擁塞程度,提出了一個新的擁塞度量——退避率(pb)來描述節(jié)點自身的擁塞程度,退避率能夠準(zhǔn)確反映節(jié)點間的競爭沖突以及擁塞對網(wǎng)絡(luò)造成的影響.
在802.11 DCF協(xié)議中,節(jié)點在如下4種情況下進(jìn)行退避過程:
(1)節(jié)點首次發(fā)送數(shù)據(jù)時,在分組發(fā)送之前若節(jié)點偵聽到信道忙,則進(jìn)行退避;
(2)節(jié)點在發(fā)出RTS幀之后,沒有成功接收到CTS幀,則進(jìn)行退避;
(3)節(jié)點在發(fā)出DATA幀之后,沒有成功接收到ACK幀,則進(jìn)行退避;
(4)當(dāng)一個數(shù)據(jù)幀被成功發(fā)送之后,節(jié)點需要執(zhí)行退避過程.
顯然,前3種情況都是由于節(jié)點擁塞或競爭信道失敗造成的.定義Ns為節(jié)點成功發(fā)送分組后進(jìn)入退避算法的次數(shù),Nf為節(jié)點發(fā)送分組失敗后進(jìn)入退避算法的次數(shù).退避率的計算公式如下:
可以看出,在已有的MAC層擁塞度量中,無論是分組重傳次數(shù)[2,19]還是被重傳的分組數(shù)[8],都只是Nf的一個子集.分組重傳次數(shù)沒有考慮到情況(1),而被重傳的分組數(shù)沒有考慮到每次RTS、DATA重傳對網(wǎng)絡(luò)的影響.因此,退避率能夠更有效地監(jiān)測網(wǎng)絡(luò)的擁塞和沖突,從而快速準(zhǔn)確地判斷網(wǎng)絡(luò)的擁塞程度.
為了盡可能少地修改IEEE 802.11 DCF協(xié)議,本研究使用RTS、CTS消息捎帶的方式,在RTS、CTS握手過程中攜帶節(jié)點本身的擁塞信息CI(無特殊說明,文中的擁塞信息均指退避率),發(fā)送節(jié)點、接收節(jié)點或相鄰節(jié)點在收到反饋的擁塞信息后,相應(yīng)地計算各自的分組丟棄概率.本研究在RTS、CTS消息中擴(kuò)展了擁塞信息CI字段,簡稱為RTSC、CTSC,如圖2所示.
圖2 RTSC、CTSC幀格式Fig.2 Frame format of RTSC and CTSC
其中CI字段的內(nèi)容就是節(jié)點自身的擁塞信息,記為Cl,占用一個字節(jié).定義pb,av是數(shù)據(jù)分組的平均退避率是上次計算的平均退避率,pb是當(dāng)前分組的退避率,設(shè)a+b=1,a、b為計算系數(shù),節(jié)點初始退避率是 0,pb,av的計算公式如下:
本研究取a=1/8,b=7/8,上述取值表明當(dāng)前的網(wǎng)絡(luò)狀態(tài)在計算pb,av時起主要作用,能夠保證算法對網(wǎng)絡(luò)擁塞作出快速反應(yīng).Cl攜帶的就是pb,av的信息,為了滿足在RTSC、CTSC消息中僅用一個字節(jié)攜帶 Cl,需要對 pb,av的值進(jìn)行變換,即只保留 pb,av的2位有效數(shù)字填入 CI字段進(jìn)行傳輸(例如,12.3%只保留為12%,那么Cl=12%,CI字段僅發(fā)送12即可,而當(dāng)其它節(jié)點收到CI之后,仍要把12變回為12%后才能進(jìn)行其它方面的計算).
當(dāng)有分組需要傳輸時,發(fā)送節(jié)點首先計算退避率pb,更新Cl并添加到RTSC消息的CI字段中,接收節(jié)點在成功收到RTSC消息后,計算自身的Cl并添加到CTSC消息的CI字段中,發(fā)送給發(fā)送節(jié)點,發(fā)送節(jié)點提取CTSC消息的CI字段計算分組丟棄概率.其它的鄰居節(jié)點在收到RTSC、CTSC之后,提取CI字段的信息,這樣就使得一個區(qū)域內(nèi)的節(jié)點能夠知道周圍網(wǎng)絡(luò)的擁塞狀態(tài),結(jié)合本節(jié)點的擁塞信息更新自身的分組丟棄概率,能夠改善區(qū)域內(nèi)傳輸流的公平性.如果整個網(wǎng)絡(luò)的節(jié)點都支持MCFCC算法,那么RTSC、CTSC中的CI字段就能被正確地解析和使用.
為了描述MCFCC算法,用Cd表示計算分組丟棄概率時的輔助信息.定義 Cr為節(jié)點接收到的RTSC、CTSC消息中攜帶的擁塞信息,初值為0.MCFCC算法包括更新Cd和擁塞控制兩個過程.
(1)更新 Cd.在 MCFCC算法中,當(dāng)節(jié)點收到RTSC、CTSC消息時提取其中的CI字段對Cr賦值,然后按照算法1更新Cd;或者當(dāng)有新的分組到達(dá)MAC層時,也要更新Cd.為了避免一段時間內(nèi)由于節(jié)點沒有收到RTSC、CTSC消息使得Cr過于陳舊,也為了避免一段時間內(nèi)頻繁更新Cr,當(dāng)Cr>Cl時,設(shè)置抑制計時器t,t時間內(nèi)不再更新Cr.算法1具體描述如下.
2)擁塞控制.本研究參照 RED[20]將節(jié)點擁塞程度分成無擁塞、輕度擁塞和重度擁塞3個等級.設(shè)置兩個控制閾值ηmin和ηmax,對于每個節(jié)點,如果Cd小于ηmin,這意味著節(jié)點或其鄰居很少擁塞,不需要丟棄分組;當(dāng)Cd介于兩個控制閾值之間時,認(rèn)為節(jié)點或其鄰居發(fā)生輕度擁塞;當(dāng)Cd超過ηmax時,節(jié)點或其周圍網(wǎng)絡(luò)發(fā)生嚴(yán)重?fù)砣?利用Cd作為擁塞信息,節(jié)點按式(3)計算分組丟棄概率Pd.對于MAC層每一個新到來的分組,需要按照概率Pd判斷是否被丟棄.可以看出,擁塞程度越嚴(yán)重,被丟棄的分組就越多,TCP擁塞控制機(jī)制相應(yīng)地會減小擁塞窗口,這相當(dāng)于減小了分組發(fā)送速率,有利于緩解擁塞.
需要說明的是,在RTSC、CTSC消息中CI字段攜帶的是節(jié)點本身的擁塞信息Cl而不是Cd,這是因為節(jié)點只需要把自身的擁塞狀態(tài)反饋給相鄰節(jié)點就可以了.但是在計算節(jié)點分組丟棄概率時使用的是Cd,這是因為節(jié)點需要考慮其周圍網(wǎng)絡(luò)的擁塞狀況,按照最壞的擁塞信息計算分組丟棄概率,這樣可以快速消除網(wǎng)絡(luò)的擁塞狀態(tài),改善節(jié)點間的公平性.
MCFCC算法中,節(jié)點僅通過自身的MAC層信息就可以計算出退避率,利用收到的RTSC、CTSC消息獲知節(jié)點周圍網(wǎng)絡(luò)的擁塞狀態(tài),按照最壞擁塞信息計算分組丟棄概率,從而做出更恰當(dāng)?shù)牟僮?使用退避率作為節(jié)點的擁塞度量還能夠反映出流間競爭、流內(nèi)競爭和隱終端問題造成的傳輸沖突引起的擁塞現(xiàn)象,上述問題正是造成無線多跳網(wǎng)絡(luò)擁塞的主要問題之一.通過偵聽鄰居節(jié)點的RTSC、CTSC消息,能夠改善傳輸流之間的公平性.MCFCC算法僅需對802.11 DCF協(xié)議的RTS、CTS幀做少量修改即可,不再增加額外的網(wǎng)絡(luò)開銷,簡單且易于實現(xiàn),節(jié)約了網(wǎng)絡(luò)帶寬.這使得MCFCC算法具有很多優(yōu)勢:本地信息總是可用和可靠的,減少了節(jié)點間額外的信息交換,并減少了額外的網(wǎng)絡(luò)開銷,降低了節(jié)點能耗.
本研究使用網(wǎng)絡(luò)模擬器NS-2[21]作為仿真平臺.網(wǎng)絡(luò)層使用DSR協(xié)議,傳輸層采用TCP和UDP協(xié)議.按照IEEE 802.11標(biāo)準(zhǔn)設(shè)置實驗參數(shù):節(jié)點的傳輸距離250 m,偵聽范圍550 m,無線信道帶寬2Mb/s,使用1000B的有效載荷大小.MCFCC算法中丟包策略的控制閾值 ηmin為0.1,ηmax為0.5,t為2s.實驗測試了MCFCC算法對802.11 DCF協(xié)議的改進(jìn)效果,同時與LRED算法進(jìn)行橫向比較,分析了算法的優(yōu)缺點.
采用含有9個節(jié)點的鏈?zhǔn)酵負(fù)浣Y(jié)構(gòu)進(jìn)行仿真,每個相鄰節(jié)點間的距離為200m,以保證相鄰節(jié)點在彼此的傳輸范圍內(nèi).在實驗的過程中,使用1個TCP流和3個UDP流作為數(shù)據(jù)源,TCP流始終存在,3個UDP流分別在50、100、150 s時加入,以考察網(wǎng)絡(luò)負(fù)載加重時退避率的變化.顯然,每加入1個UDP流,就會加大節(jié)點在MAC層的競爭,加劇網(wǎng)絡(luò)擁塞.表1統(tǒng)計了節(jié)點E執(zhí)行退避過程的次數(shù)并計算得到了節(jié)點E的退避率.
表1 退避率與網(wǎng)絡(luò)擁塞的關(guān)系Table 1 Correlation between backoff ratio and congestion
由表1可以看到,節(jié)點E的退避率從10.4%上升到15.9%.這表明隨著網(wǎng)絡(luò)流量的加大,網(wǎng)絡(luò)擁塞和節(jié)點沖突逐漸加重,節(jié)點傳輸失敗后進(jìn)入退避過程的次數(shù)逐漸增多,退避率也隨著擁塞的加重而逐漸變大,即退避率與網(wǎng)絡(luò)擁塞具有一定的正相關(guān)性,故本研究用退避率度量節(jié)點的擁塞狀況,并設(shè)控制閾值 ηmin為 0.1、ηmax為 0.5.
在網(wǎng)絡(luò)吞吐量仿真實驗中,仍使用圖1的鏈?zhǔn)酵負(fù)浣Y(jié)構(gòu),為了考察不同網(wǎng)絡(luò)負(fù)載情況下MCFCC算法的性能,設(shè)置節(jié)點數(shù)的變化范圍是4~40,吞吐量對比情況如圖3所示,該曲線由100次仿真結(jié)果的平均值得出(文中所有圖中標(biāo)明的802.11 DCF均指未使用 MCFCC算法的標(biāo)準(zhǔn)802.11 DCF協(xié)議).由圖3可以看出,與 LRED和802.11 DCF相比,采用MCFCC算法后吞吐量有了明顯提升.但隨著網(wǎng)絡(luò)節(jié)點數(shù)的增加,網(wǎng)絡(luò)的負(fù)載加重,節(jié)點對共享信道的競爭進(jìn)一步加劇了網(wǎng)絡(luò)擁塞,使得吞吐量明顯下降.不過,在所有情況下,觀察到MCFCC算法均能夠提高M(jìn)AC協(xié)議的性能,并且提升TCP吞吐量高達(dá)20%,同時也比使用LRED算法高5%以上,這可以解釋為LRED算法缺乏對分組發(fā)送前信道狀態(tài)的感知,弱于MCFCC算法對網(wǎng)絡(luò)擁塞的控制.當(dāng)節(jié)點數(shù)大于15時,隨著節(jié)點數(shù)的增加,MCFCC算法能帶來更多的性能提升.這是因為節(jié)點越多,業(yè)務(wù)流途經(jīng)的鏈路越長,競爭沖突現(xiàn)象就越嚴(yán)重,退避率也就越大.故節(jié)點數(shù)越多,MCFCC算法的優(yōu)勢就越明顯,MCFCC算法能夠及早丟包,從而減小發(fā)送節(jié)點的分組發(fā)送速率,降低了傳輸業(yè)務(wù)流間的競爭沖突,有助于改善共享信道的利用率.
圖3 吞吐量比較Fig.3 Throughput comparison
在對比端到端延時的仿真試驗中,使用含有9個節(jié)點的鏈?zhǔn)酵負(fù)浣Y(jié)構(gòu),仿真結(jié)果如圖4所示.由圖4可以看出,與LRED算法和802.11 DCF相比,采用MCFCC算法后端到端延時顯著減少.這是因為MCFCC算法總是監(jiān)測節(jié)點對共享信道的競爭程度,及早發(fā)現(xiàn)網(wǎng)絡(luò)擁塞,提前做出反應(yīng),這大大緩解了MAC層的競爭沖突,減少MAC層分組重傳次數(shù),降低了MAC層延時.同時,MCFCC算法使得TCP不用等到MAC層達(dá)到重傳閾值(RTS7次,DATA4次)丟包后才能做出響應(yīng),這也減少了分組傳輸延時.MCFCC算法對網(wǎng)絡(luò)擁塞的判斷比LRED算法更加準(zhǔn)確,而且由于MCFCC算法能夠接收來自鄰居節(jié)點的擁塞狀態(tài),更能先于LRED算法發(fā)現(xiàn)擁塞,及早處理,降低了端到端延時.仿真開始時網(wǎng)絡(luò)負(fù)載不大,MCFCC、LRED算法對網(wǎng)絡(luò)延時影響不大,隨著網(wǎng)絡(luò)負(fù)載的增加,MCFCC算法能夠?qū)砣皶r地判斷和處理,使得網(wǎng)絡(luò)可以始終保持在低擁塞、低沖突的狀態(tài),減少了分組等待時間,因此,使用了MCFCC算法的IEEE 802.11 DCF協(xié)議具有更低的端到端延時.
圖4 端到端延時比較Fig.4 End-to-end delay comparison
本研究使用圖5的仿真場景驗證MCFCC算法的公平性.圖中的3條FTP/TCP流互相沒有公用的轉(zhuǎn)發(fā)節(jié)點,但圖中的節(jié)點都在互相的干擾范圍之內(nèi),考察MCFCC算法對節(jié)點公平性的改進(jìn),仿真結(jié)果見圖6.由圖6可以看到,在未使用MCFCC算法的802.11 DCF協(xié)議中,F(xiàn)TP2的吞吐量幾乎為0,在LRED場景中,F(xiàn)TP2的吞吐量也遠(yuǎn)低于 FTP1和FTP3.這是因為FTP2同時面對兩條業(yè)務(wù)流的競爭,其失敗的次數(shù)較多,每次失敗都會使TCP擁塞控制機(jī)制減少源節(jié)點A的擁塞窗口,執(zhí)行慢啟動階段,這更加削弱了FTP2的競爭力.業(yè)務(wù)流FTP1和FTP3則保持著良好的傳輸狀態(tài),使得它們誤認(rèn)為當(dāng)前網(wǎng)絡(luò)沒有擁塞.而且,由于參與競爭信道的傳輸流之間沒有合作機(jī)制,一旦某個流被“餓死”就很難恢復(fù)出來.在MCFCC算法中,RTSC、CTSC捎帶的擁塞信息能夠讓節(jié)點了解其周圍的網(wǎng)絡(luò)狀況,從而控制自身的發(fā)送速率,避免了“餓死”現(xiàn)象的發(fā)生.實驗中流FTP2由于連續(xù)的競爭失敗使得其CI值較大,當(dāng)其成功發(fā)出 RTSC、CTSC消息后,流 FTP1、FTP3旁聽到這些消息,知道某個相鄰節(jié)點擁塞嚴(yán)重,根據(jù)收到的CI重新計算自己的分組丟棄概率,從而降低了自身的發(fā)送速率,流FTP2就會重新競爭到信道,使得自己不會被“餓死”.
圖5 3條FTP傳輸流Fig.5 Three FTP flows
圖6 3條FTP傳輸流的平均吞吐量Fig.6 Average throughput of three FTP flows
在無線Ad hoc網(wǎng)絡(luò)中,節(jié)點每次發(fā)送分組都要競爭共享媒質(zhì),這往往導(dǎo)致分組傳輸沖突,引起網(wǎng)絡(luò)擁塞和不公平問題,造成網(wǎng)絡(luò)性能嚴(yán)重下降.為解決以上問題,本研究提出了一種基于媒質(zhì)共享的公平擁塞控制(MCFCC)算法.在該算法中,提出了一種新的MAC層擁塞度量——媒質(zhì)競爭失敗的退避次數(shù),并仿真驗證了該度量的有效性;設(shè)計了一種節(jié)點間交換擁塞信息的方法,有效改善了各業(yè)務(wù)流間的公平性,避免出現(xiàn)某些節(jié)點被“餓死”的現(xiàn)象.仿真結(jié)果表明,MCFCC算法能夠準(zhǔn)確判斷、緩解網(wǎng)絡(luò)擁塞,顯著提高網(wǎng)絡(luò)的性能,降低端到端延時,改善業(yè)務(wù)流間的公平性.下一步將針對大規(guī)模的復(fù)雜場景進(jìn)行仿真實驗,特別是通過實驗床實驗進(jìn)一步驗證算法的有效性.
[1]Chen K,Xue Y,Nahrstedt K.On setting TCP's congestion window limit in mobile Ad hoc networks[C]∥Proceedings of IEEE International Conference on Communications.Anchorage:IEEE,2003:1080-1084.
[2]Fu Z,Zerfos P,Luo H,et al.The impact of multihop wireless channel on TCP throughput and loss[C]∥Proceedings of the 22ndAnnual Joint Conference of the IEEE Computer and Communications Societies.San Francisco:IEEE,2003:1744-1753.
[3]Chen X,Zhai H,Wang J,et al.TCP performance over mobile Ad hoc networks[J].Canndian Journal of Electrical and Computer Engineering,2004,29(1):129-134.
[4]Xu W,Wu T.TCP issues in mobile Ad hoc networks:challenges and solutions[J].Journal of Computer Science and Technology,2006,21(1):72-81.
[5]Nahm K,Helmy A,Kuo C-CJ.TCP over multihop 802.11 networks:issues and performance enhancement[C]∥Proceedings of the 6thACM International Symposium on Mobile Ad hoc Networking and Computing.Chicago:ACM,2005:277-287.
[6]De Oliveira R,Braun T.A dynamic adaptive acknowledgment strategy for TCP over multihop wireless networks[C]∥Proceedings of the 24thAnnual Conference Sponsored by IEEE Communications Society.Miami:IEEE,2005:1863-1874.
[7]Razafindralambo T,Lassous I G.SBA:a simple backoff algorithm for wireless Ad hoc networks[J].Springer Lecture Notes in Computer Science,2009,5550:416-428.
[8]Shen M,Zhao D.Opportunistic link scheduling for multihop wireless networks[J].IEEE Transactions on Wireless Communications,2009,8(1):234-244.
[9]Armaghani F R,Jamuar S S,Khatun S,et al.An adaptive TCP delayed acknowledgment strategy in interaction with MAC layer over multi-hop ad-hoc networks[C]∥Proceedings of the 2008 International Symposium on Computer Science and Its Applications.Hobart:IEEE Computer Society,2008:137-142.
[10]Wu W,Zhang Z,Sha X et al.Auto rate MAC protocol based on congestion detection for wireless Ad hoc networks[J].Information Technology Journal,2009,8(8):1205-1212.
[11]IEEE Standard 802.11—1999,Wireless LAN medium access control and physical layer specifications[S].
[12]王慶輝,潘學(xué)松,王光興.基于帶寬估計的Ad hoc網(wǎng)絡(luò)擁塞控制機(jī)制[J].通信學(xué)報,2006,27(4):42-48.Wang Qing-hui,Pan Xue-song,Wang Guang-xing.Congestion control mechanism based on bandwidth estimation in Ad hoc networks[J].Journal on Communications,2006,27(4):42-48.
[13]Zhang X,Lü J,Han X,et al.Channel efficiency-based transmission rate control for congestion avoidance in wireless Ad hoc networks[J].IEEE Communications Letters,2009,13(9):706-708.
[14]Zhai H,Chen X,F(xiàn)ang Y.Improving transport layer performance in multihop Ad hoc networks by exploting MAC layer information [J].IEEE Transactions on Wireless Communications,2007,6(5):1692-1701.
[15]Zhai H,F(xiàn)ang Y.Distributed flow control and medium access in multihop Ad hoc networks[J].IEEE Transactions on Mobile Computing,2006,5(11):1503-1514.
[16]Zhai H,Wang J,F(xiàn)ang Y.Distributed packet scheduling for multihop flows in Ad hoc networks[C]∥Proceedings of IEEE Wireless Communications and Networking Conference.Atlanta:IEEE,2004:1081-1086.
[17]Xu K,Gerla M,Qi L,et al.TCP unfairness in Ad hoc wireless networks and a neighborhood RED solution[J].Wireless Networks,2005,11(4):383-399.
[18]Xu S,Saadawi T.Does the IEEE 802.11 MAC protocol work well in multihop wireless Ad hoc newtorks?[J].IEEE Communications Magazine,2001,39(6):130-137.
[19]Liu Z,Park C,Lee B,et al.A routing agent using crosslayer method for collision avoidance in Ad hoc networks[J].Springer Lecture Notes in Computer Science,2009,5559:325-334.
[20]Floyd S,Jacobson V.Random early detection gateways for congestion avoidance[J].IEEE/ACM Trans Actions on Networking,1993,1(4):397-413.
[21]The network simulator-ns-2 [EB/OL].[2009-03-10].http://www.isi.edu/nsnam/ns.