張 平
(中國電子科技集團(tuán)公司第五十四研究所,河北 石家莊 050081)
DTN網(wǎng)絡(luò)是空間通信中的一種未來全局網(wǎng)絡(luò)通信架構(gòu)[1-5],其利用存儲轉(zhuǎn)發(fā)機(jī)制進(jìn)行數(shù)據(jù)傳輸。針對DTN網(wǎng)絡(luò)的研究依然是一個熱點(diǎn),比如對于網(wǎng)絡(luò)體系[6]和網(wǎng)絡(luò)時(shí)間同步[7]、DTN網(wǎng)絡(luò)數(shù)據(jù)編碼[8]、路由算法[9-11]以及DTN應(yīng)用等方面[12-13]。DTN網(wǎng)絡(luò)架構(gòu)提供了一個覆蓋層網(wǎng)絡(luò),并提出了束協(xié)議[14-15],將底層的不同協(xié)議進(jìn)行統(tǒng)一。此外,工作組還提出了一種適用于空間DTN網(wǎng)絡(luò)的傳輸協(xié)議LTP[16],空間網(wǎng)絡(luò)傳輸層可靠傳輸可采用LTP協(xié)議紅段,不可靠傳輸可采用LTP協(xié)議綠段或UDP協(xié)議,以及針對文件的CFDP協(xié)議[17]。但在空間環(huán)境中,鏈路質(zhì)量是變化的,比如隨著天體運(yùn)行遮蓋等,當(dāng)信道鏈路較好時(shí),采用不可靠傳輸也可以傳輸成功。因此,如何靈活地運(yùn)用可靠傳輸與盡力而為的傳輸是一個研究熱點(diǎn)。這方面,標(biāo)準(zhǔn)DTN協(xié)議棧提供可供上層應(yīng)用選擇的使用方式。本文提出了一種基于歷史重傳率的轉(zhuǎn)發(fā)決策方法(Forwarding Decision Method,F(xiàn)DM),在鏈路質(zhì)量較好時(shí),采用不可靠方式進(jìn)行數(shù)據(jù)傳輸;當(dāng)鏈路質(zhì)量變差時(shí),采用可靠傳輸,并搭建了場景進(jìn)行了試驗(yàn),試驗(yàn)結(jié)果表明該方法能夠提高轉(zhuǎn)發(fā)效率。
基于歷史重傳率的FDM在與轉(zhuǎn)發(fā)器銜接的傳輸層引入了一對傳輸服務(wù),分別提供可靠傳輸和不可靠傳輸。首次,轉(zhuǎn)發(fā)節(jié)點(diǎn)采用盡力而為的傳輸服務(wù)對束進(jìn)行轉(zhuǎn)發(fā)并對轉(zhuǎn)發(fā)結(jié)果進(jìn)行檢測;根據(jù)轉(zhuǎn)發(fā)節(jié)點(diǎn)的每個下一跳節(jié)點(diǎn)的當(dāng)前已轉(zhuǎn)發(fā)束個數(shù)以及當(dāng)前重傳束總數(shù),計(jì)算得到轉(zhuǎn)發(fā)節(jié)點(diǎn)的每個下一跳節(jié)點(diǎn)的重傳束的重傳率P;查找當(dāng)前待轉(zhuǎn)發(fā)束對應(yīng)的下一跳節(jié)點(diǎn)的重傳率P,以重傳率P為概率將待轉(zhuǎn)發(fā)束提交給匯聚層可靠傳輸進(jìn)行轉(zhuǎn)發(fā);以(1-P)為概率對當(dāng)前待轉(zhuǎn)發(fā)束執(zhí)行下面步驟:判斷束的時(shí)間戳,若當(dāng)前待轉(zhuǎn)發(fā)束的創(chuàng)建時(shí)間戳大于上一個被轉(zhuǎn)發(fā)束的創(chuàng)建時(shí)間戳,則將當(dāng)前束提交給匯聚層盡力而為的傳輸服務(wù)進(jìn)行傳輸,否則提交給匯聚層可靠傳輸服務(wù)進(jìn)行傳輸。
DTN協(xié)議棧組成如圖1所示,DTN協(xié)議棧中包含應(yīng)用層、Bundle束層、傳輸層、網(wǎng)絡(luò)層、鏈路層以及物理層等。上層應(yīng)用通過調(diào)用BP協(xié)議發(fā)送方法進(jìn)行數(shù)據(jù)發(fā)送,BP層將待轉(zhuǎn)發(fā)束傳入轉(zhuǎn)發(fā)器,如節(jié)點(diǎn)x的轉(zhuǎn)發(fā)器所示,采用一個可靠傳輸方法以及一個盡力而為的傳輸方法共同進(jìn)行轉(zhuǎn)發(fā)決策,同時(shí)基于統(tǒng)計(jì)的方法來統(tǒng)計(jì)束重傳率,并進(jìn)一步指導(dǎo)數(shù)據(jù)轉(zhuǎn)發(fā)。
在DTN轉(zhuǎn)發(fā)節(jié)點(diǎn)的匯聚層中引入一對傳輸服務(wù)——盡力而為的傳輸服務(wù)和可靠的傳輸服務(wù);盡力而為的傳輸服務(wù)為不可靠傳輸,包括LTP協(xié)議的綠段服務(wù)和UDP協(xié)議;可靠傳輸服務(wù)包括LTP協(xié)議的紅段服務(wù)和TCP協(xié)議。束層采用保管傳輸機(jī)制,以提供當(dāng)匯聚層盡力而為傳輸服務(wù)失效的情況下,數(shù)據(jù)的可靠傳輸保證;保管傳輸超時(shí)定時(shí)器采用單次超時(shí),以避免由于鏈路延遲等因素引起的不必要重傳。
首次,轉(zhuǎn)發(fā)節(jié)點(diǎn)采用盡力而為的傳輸服務(wù)對束進(jìn)行轉(zhuǎn)發(fā)并對轉(zhuǎn)發(fā)結(jié)果進(jìn)行檢測。
根據(jù)轉(zhuǎn)發(fā)節(jié)點(diǎn)的每個下一跳節(jié)點(diǎn)的當(dāng)前已轉(zhuǎn)發(fā)束個數(shù)以及當(dāng)前重傳束總數(shù),計(jì)算得到轉(zhuǎn)發(fā)節(jié)點(diǎn)的每個下一跳節(jié)點(diǎn)的重傳束的重傳率P。
圖1 DTN協(xié)議棧組成
首先,基于信道環(huán)境計(jì)算理論的束丟失率/重傳率,例如當(dāng)?shù)讓硬捎肐P網(wǎng)絡(luò)時(shí),采用不可靠方法時(shí),其Bundle丟失率。
P(theory)=丟包率(IP層)*Bundle尺寸/Packet尺寸(IP層)。
束重傳率與丟失率等價(jià),丟失即會重傳。對計(jì)算出的理論重傳率進(jìn)行判斷:
①P(theory)≥1時(shí),即為信道環(huán)境差或Bundle尺寸過大,導(dǎo)致采用不可靠方法傳輸理論上100%的丟失概率時(shí),則設(shè)定系統(tǒng)直接采用可靠傳輸方式進(jìn)行轉(zhuǎn)發(fā)。
② 當(dāng)0
設(shè)定2個變量:totalForwardBundleCnt為對于同一目的地統(tǒng)計(jì)的當(dāng)前轉(zhuǎn)發(fā)束個數(shù)(不含重傳束);totalResendBundleCnt為當(dāng)前重傳束總數(shù)。則當(dāng)前重傳率P為:
1-轉(zhuǎn)發(fā)成功率=1-(totalResendBundleCnt)/
(totalForwardBundleCnt)。
查找當(dāng)前待轉(zhuǎn)發(fā)束對應(yīng)的下一跳節(jié)點(diǎn)的重傳率P,以重傳率P為概率將待轉(zhuǎn)發(fā)束提交給匯聚層可靠傳輸進(jìn)行轉(zhuǎn)發(fā);以(1-P)為概率對當(dāng)前待轉(zhuǎn)發(fā)束執(zhí)行下面步驟:判斷束的時(shí)間戳,若當(dāng)前待轉(zhuǎn)發(fā)束的創(chuàng)建時(shí)間戳大于上一個被轉(zhuǎn)發(fā)束的創(chuàng)建時(shí)間戳,則將當(dāng)前束提交給匯聚層盡力而為的傳輸服務(wù)進(jìn)行傳輸,否則提交給匯聚層可靠傳輸服務(wù)進(jìn)行傳輸。
評價(jià)方法采用傳輸延遲時(shí)間(Transform Delay Time,TDT)以及單位時(shí)間接收端接收的不重復(fù)束個數(shù)(Unrepeated Bundle Delivery Count,UBDC)來進(jìn)行。ATDT定義為數(shù)據(jù)流接收完成時(shí)間與數(shù)據(jù)流發(fā)送時(shí)間的差值。UBDC定義為最終接收束的節(jié)點(diǎn)在一段時(shí)間內(nèi)接收到的不重復(fù)束個數(shù)。
試驗(yàn)軟件以美國宇航局NASA噴氣推進(jìn)實(shí)驗(yàn)室JPL的開放源代碼的ION[18-19]軟件包為基礎(chǔ)進(jìn)行代碼開發(fā),在BP轉(zhuǎn)發(fā)器層增加FDM算法代碼進(jìn)行試驗(yàn)。
試驗(yàn)采用2個DTN節(jié)點(diǎn),之間采用IP鏈路進(jìn)行連接,每個DTN節(jié)點(diǎn)部署具有FDM方法的協(xié)議棧,LTP段最大凈荷單元尺寸Size_packet為1 472 Byte,重傳定時(shí)器Timeout采用15 s。采用3 Mbps的速率模擬數(shù)據(jù)流進(jìn)行數(shù)據(jù)發(fā)送。試驗(yàn)中用到的誤碼率BER是從空間通信領(lǐng)域中的通信鏈路屬性變化的表述中提取的[20],當(dāng)前環(huán)境下束理想丟失率為:
LossRate_packet*(Size_bundle/Size_packet)。
式中,Size_bundle為束尺寸大??;LossRate_packet為不同信道環(huán)境下的丟包率。共設(shè)計(jì)了3種信道環(huán)境,即250 ms時(shí)延,10-6的誤碼率;1.3 s時(shí)延,10-6的誤碼率以及2 s時(shí)延,10-5的誤碼率。丟包率(Packet Error Rate,PER)與誤碼率(Bit Error Rate,BER)的換算關(guān)系如下:
PER=1-(1-BER)S,
式中,S=8*Packet尺寸(以Byte為單位)。
并采用Bundle級別聚合,即束凈荷采用20 866 Byte。接收端進(jìn)行重復(fù)過濾,基于bundle創(chuàng)建時(shí)間戳,統(tǒng)計(jì)接收到的重復(fù)束個數(shù),不重復(fù)束個數(shù)等。試驗(yàn)對比方法采用的是基于LTP紅段的可靠傳輸方法,這里稱為“傳統(tǒng)IPN方法”。
試驗(yàn)結(jié)果如圖2和圖3所示。圖2為FDM方法與傳統(tǒng)IPN轉(zhuǎn)發(fā)方法,在不同誤碼率的信道環(huán)境下的傳輸延遲時(shí)間比較結(jié)果。從圖2中可以看出,在信道環(huán)境較好的情況下,F(xiàn)DM方法的傳輸延遲時(shí)間均小于傳統(tǒng)IPN方法,但當(dāng)信道質(zhì)量變差時(shí),F(xiàn)DM方法效果不及傳統(tǒng)方法。究其原因,算法本身是基于歷史重傳率來進(jìn)行轉(zhuǎn)發(fā)決策的,信道較好時(shí),如近地空間通信,鏈路誤碼率通常為10-7~10-6,F(xiàn)DM算法可以在下一次傳輸時(shí),直接根據(jù)歷史重傳率來決定當(dāng)前束是否直投遞給可靠傳輸方法或者非可靠傳輸方法,所以傳輸延遲時(shí)間較短,而當(dāng)信道環(huán)境惡化導(dǎo)致采用不可靠傳輸投遞的束,有更多比例會丟失重傳,且FDM算法從惡劣信道傳輸中恢復(fù)到正常信道傳輸所花費(fèi)的時(shí)間會更長,所以傳輸延時(shí)時(shí)間較長。
圖2 傳輸延遲時(shí)間TDT對比結(jié)果
圖3展示了傳輸開始50 s后,接收端接收到的不重復(fù)束的個數(shù),圖3中可以看到,當(dāng)接收端接收50 s后,在信道環(huán)境較好時(shí),F(xiàn)DM方法其接收到的不重復(fù)束個數(shù)均高于傳統(tǒng)IPN方法,僅在信道環(huán)境差時(shí),其接收到的不重復(fù)數(shù)個數(shù)低于傳統(tǒng)方法,原因同上。因此,F(xiàn)DM方法更加適應(yīng)于信道質(zhì)量較好的情況,可以采用初次采用不可靠方式傳輸時(shí),其丟失概率的大小來評估信道質(zhì)量優(yōu)劣。
圖3 50 s后接收的不重復(fù)束個數(shù)UBDC對比
DTN網(wǎng)絡(luò)下的轉(zhuǎn)發(fā)決策方法FDM提供了信道質(zhì)量較好情況下的DTN數(shù)據(jù)可靠傳輸方法,相較傳統(tǒng)DTN方法而言,基于LTP紅段來提供可靠傳輸,基于UDP或LTP綠段提供不可靠傳輸,并基于歷史轉(zhuǎn)發(fā)重傳率來動態(tài)決定轉(zhuǎn)發(fā)方式,來提高傳輸成功率。并搭建了典型的試驗(yàn)場景進(jìn)行試驗(yàn),試驗(yàn)結(jié)果表明,在信道質(zhì)量較好時(shí),該方法可以提高傳輸成功率,在近地空間通信場景中,一般的誤碼率均在10-7~10-6之間,所以該方法可以為近地空間通信提供一種技術(shù)路線。以后的研究中,可以考慮增加更加復(fù)雜的轉(zhuǎn)發(fā)決策因子,并基于多點(diǎn)網(wǎng)絡(luò)的模擬情況來綜合考量更貼合實(shí)際情況的轉(zhuǎn)發(fā)決策算法。