一種基于快速否定應(yīng)答的空間文件傳輸方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于衛(wèi)星通信技術(shù)領(lǐng)域,特別涉及一種基于快速否定應(yīng)答的空間文件傳輸方法。
【背景技術(shù)】
[0002]隨著航天技術(shù)的快速發(fā)展,航天器(衛(wèi)星)的處理能力不斷增強(qiáng),采用星上處理技術(shù)支持的各種空間應(yīng)用越來越豐富,文件傳輸協(xié)議是支持各種空間業(yè)務(wù)的基礎(chǔ)協(xié)議之一。由于空間網(wǎng)絡(luò)存在長(zhǎng)延時(shí)、高誤碼率、鏈路非對(duì)稱等特點(diǎn),地面互聯(lián)網(wǎng)中廣泛應(yīng)用的TCP/FTP協(xié)議應(yīng)用于空間網(wǎng)絡(luò)中會(huì)出現(xiàn)發(fā)送窗口增長(zhǎng)緩慢、誤將丟包認(rèn)為擁塞而減小發(fā)送窗口、大量確認(rèn)回傳包使反向鏈路擁塞等問題,難以直接應(yīng)用于空間網(wǎng)絡(luò)進(jìn)行文件傳輸;CCSDS (Consultative Committee for Space Data Systems,空間數(shù)據(jù)系統(tǒng)咨詢委員會(huì))提出了 CFDP(CCSDS File Delivery Protocol,CCSDS文件傳輸協(xié)議),通過四種否定確認(rèn)機(jī)制實(shí)現(xiàn)可靠傳輸。但在鏈路誤碼率較高,鏈路速率非對(duì)稱情況下,CFDP協(xié)議存在信令誤包率較高(未對(duì)信令進(jìn)行保護(hù))、反向鏈路開銷較大等問題,性能仍有提升空間。因此,本發(fā)明提出一種基于快速否定應(yīng)答的空間文件傳輸方法,具有低文件傳輸時(shí)間,高吞吐量的優(yōu)點(diǎn)。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的在于提出一種基于快速否定應(yīng)答的空間文件傳輸方法,其特征在于,包括如下步驟:
[0004]I)文件發(fā)送端與文件接收端通過請(qǐng)求/應(yīng)答交互建立連接;
[0005]2)文件發(fā)送端與文件接收端連接就續(xù)后,文件發(fā)送端開始向文件接收端傳輸數(shù)據(jù)包,所傳輸?shù)臄?shù)據(jù)以EOF命令幀結(jié)尾;成功完成所有數(shù)據(jù)包傳輸后,文件接收端反饋FIN命令幀,標(biāo)志文件傳輸成功;
[0006]3)文件發(fā)送端完成數(shù)據(jù)包傳輸后,若文件接收端校驗(yàn)有數(shù)據(jù)包未被正確接收,則文件接收端反饋補(bǔ)包請(qǐng)求NAK,并開啟NAK計(jì)時(shí)器;若計(jì)時(shí)器到期仍未收到文件發(fā)送端重傳的補(bǔ)包,則快速重傳NAK以降低文件傳輸時(shí)間;
[0007]4)文件發(fā)送端收到FIN命令幀后反饋文件傳輸結(jié)束應(yīng)答,標(biāo)志一次文件傳輸過程結(jié)束。
[0008]所述EOF命令幀和FIN命令幀定長(zhǎng),EOF命令幀和FIN命令幀的傳輸利用鏈路適配的填充字節(jié)對(duì)信令進(jìn)行糾錯(cuò)處理;具體為對(duì)EOF命令幀和FIN命令幀尾部填充來進(jìn)行冗余編碼。
[0009]所述補(bǔ)包請(qǐng)求NAK為定長(zhǎng)包,采用了幀結(jié)構(gòu)壓縮技術(shù)減少開銷;補(bǔ)包請(qǐng)求NAK用包編號(hào)而非偏移量指針來表示丟包,每個(gè)丟包占2字節(jié);這種幀結(jié)構(gòu)壓縮方法將NAK的平均包長(zhǎng)由8NJVNnak s變?yōu)?N L/N臟s,其中,隊(duì)/Nnak 5為NAK的平均重傳次數(shù);P為重傳包中平均連續(xù)錯(cuò)誤段數(shù)與錯(cuò)誤包數(shù)的比值,在鏈路誤碼率小于10 4時(shí),P>0.9。
[0010]所述NAK計(jì)時(shí)器包括NAK計(jì)時(shí)器timerjP NAK計(jì)時(shí)器timer 2;NAK計(jì)時(shí)器timer j用于快速重傳NAK,NAK計(jì)時(shí)器timer#于觸發(fā)下一次NAK的發(fā)送;具體為:
[0011]timer!= 2XT PR0P+TPDlJ+TNAK
[0012]timer2= (Nl-1)Tpdu
[0013]其中,Tprqp表示傳播延時(shí);T pDU表示數(shù)據(jù)包的發(fā)送延時(shí);T ΝΑΚ表示補(bǔ)包請(qǐng)求NAK的發(fā)送延時(shí);隊(duì)為請(qǐng)求重傳補(bǔ)包數(shù)。
[0014]本發(fā)明的有益效果是針對(duì)現(xiàn)有空間文件傳輸方法存在文件傳輸時(shí)間長(zhǎng)、吞吐量低的問題,提出了一種基于快速否定應(yīng)答的空間文件傳輸方法,文件傳輸過程中采用了命令糾錯(cuò)機(jī)制、NAK快速重傳機(jī)制、NAK幀結(jié)構(gòu)壓縮機(jī)制,能夠有效適應(yīng)空間鏈路環(huán)境,提升文件傳輸?shù)耐掏铝?,提高文件傳輸效率,具有低文件傳輸時(shí)間,高吞吐量的優(yōu)點(diǎn)。
【附圖說明】
[0015]圖1為基于快速否定應(yīng)答的空間文件傳輸方法流程圖。
[0016]圖2為文件傳輸過程中的幀結(jié)構(gòu)示意圖。
[0017]圖3為節(jié)點(diǎn)A從節(jié)點(diǎn)B下載文件的流程圖。
[0018]圖4為節(jié)點(diǎn)A從節(jié)點(diǎn)B上傳文件的流程圖。
【具體實(shí)施方式】
[0019]本發(fā)明提出一種基于快速否定應(yīng)答的空間文件傳輸方法,下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作詳細(xì)說明。
[0020]圖1所示為基于快速否定應(yīng)答的空間文件傳輸方法流程圖,包括如下步驟:
[0021]I)文件發(fā)送端與文件接收端通過請(qǐng)求/應(yīng)答交互建立連接;
[0022]2)文件發(fā)送端與文件接收端連接就續(xù)后,文件發(fā)送端開始向文件接收端傳輸數(shù)據(jù)包,所傳輸?shù)臄?shù)據(jù)以EOF (End Of File)命令幀結(jié)尾;成功完成所有數(shù)據(jù)包傳輸后,文件接收端反饋FIN(Finished)命令幀,標(biāo)志文件傳輸成功;
[0023]3)文件發(fā)送端完成數(shù)據(jù)包傳輸后,若文件接收端校驗(yàn)有數(shù)據(jù)包未被正確接收,則文件接收端反饋補(bǔ)包請(qǐng)求NAK,并開啟NAK計(jì)時(shí)器;若計(jì)時(shí)器到期仍未收到文件發(fā)送端重傳的補(bǔ)包,則快速重傳NAK以降低文件傳輸時(shí)間;
[0024]4)文件發(fā)送端收到FIN命令幀后反饋文件傳輸結(jié)束應(yīng)答,標(biāo)志一次文件傳輸過程結(jié)束。
[0025]其中,EOF命令幀和FIN命令幀定長(zhǎng),EOF命令幀和FIN命令幀的傳輸利用鏈路適配的填充字節(jié)對(duì)信令進(jìn)行糾錯(cuò)處理,在不增加額外開銷的前提下,降低了信令誤包率,提升了傳輸效率;具體為對(duì)EOF命令幀和FIN命令幀尾部填充來進(jìn)行冗余編碼,將EOF命令幀和FIN命令幀一半的內(nèi)容進(jìn)行重復(fù)編碼,可有效降低命令幀錯(cuò)誤概率,使命令幀錯(cuò)誤概率由1-(1-Pb)^為(1-(1-Pb產(chǎn))2,上式中,Pb為鏈路誤碼率;L為信令包長(zhǎng),進(jìn)而降低文件傳輸時(shí)間。對(duì)信令進(jìn)行冗余編碼利用了鏈路適配的填充字節(jié),一般不會(huì)增加額外開銷。
[0026]其中,補(bǔ)包請(qǐng)求NAK為定長(zhǎng)包,采用了幀結(jié)構(gòu)壓縮技術(shù)減少開銷以提升文件傳輸效率;補(bǔ)包請(qǐng)求NAK用包編號(hào)而非偏移量指針來表示丟包,每個(gè)丟包占2字節(jié);這種幀結(jié)構(gòu)壓縮方法將NAK的平均包長(zhǎng)由8NJVNnak s變?yōu)?N l/Nnak s,其中,VNnak 5為NAK的平均重傳次數(shù);P為重傳包中平均連續(xù)錯(cuò)誤段數(shù)與錯(cuò)誤包數(shù)的比值,在鏈路誤碼率小于10 4時(shí),P>0.9。相比于CFDP,本發(fā)明提出的基于快速否定應(yīng)答的空間文件傳輸方法的NAK包平均包長(zhǎng)更小,特別是在空間鏈路非對(duì)稱的環(huán)境中,反向鏈路速率較低,NAK幀結(jié)構(gòu)壓縮能夠大大提高文件傳輸效率。
[0027]其中,NAK計(jì)時(shí)器包括NAK計(jì)時(shí)器timerjP NAK計(jì)時(shí)器timer 2;NAK計(jì)時(shí)器timer l用于快速重傳NAK,NAK計(jì)時(shí)器timer#于觸發(fā)下一次NAK的發(fā)送;具體為:
[0028]timer!= 2XT pR(ff+TpDU+TNAK
[0029]timer2= (Nl-1)Tpdu
[0030]其中,Tprw表示傳播延時(shí);T PDU表示數(shù)據(jù)包的發(fā)送延時(shí);T ΝΑΚ表示補(bǔ)包請(qǐng)求NAK的發(fā)送延時(shí);隊(duì)為請(qǐng)求重傳補(bǔ)包數(shù)。本發(fā)明提出的基于快速否定應(yīng)答的空間文件傳輸方法在重傳NAK時(shí)少等待了一個(gè)timer2,從而降低了文件傳輸時(shí)間。
[0031]圖2為文件傳輸過程中的幀結(jié)構(gòu)示意圖,文件傳輸過程中的幀結(jié)構(gòu)分為命令幀與數(shù)據(jù)幀兩種,采用數(shù)據(jù)幀傳輸一個(gè)文件片段,其數(shù)據(jù)幀的流序號(hào)是連續(xù)的(流序號(hào)從O開始);對(duì)于非結(jié)尾的數(shù)據(jù)幀,其有效凈荷均為118字節(jié);最后一個(gè)結(jié)尾的數(shù)據(jù)幀,其有效凈荷為變長(zhǎng),尾部用0x55填充。在這種表達(dá)方式下,從表達(dá)能力角度看,一個(gè)文件片段允許的最大長(zhǎng)度為3776KB,實(shí)際星載控制器(OBC)的存儲(chǔ)能力要求文件片段長(zhǎng)度小于1MB。本發(fā)明提出的基于快速否定應(yīng)答的空間文件傳輸方法支持文件傳輸?shù)臄帱c(diǎn)續(xù)傳功能,不為傳輸文件維護(hù)專門的任務(wù)配置文件,斷點(diǎn)續(xù)傳功能依賴于所傳輸文件大小的比對(duì)和追加。
[0032]本發(fā)明以節(jié)點(diǎn)A從節(jié)點(diǎn)B下載文件、節(jié)點(diǎn)A從節(jié)點(diǎn)B上傳文件為具體實(shí)施例。
[0033]圖3為節(jié)點(diǎn)A從節(jié)點(diǎn)B下載文件的流程圖,具體步驟如下:
[0034]步驟301)節(jié)點(diǎn)A動(dòng)作:發(fā)送會(huì)話初始化請(qǐng)求;節(jié)點(diǎn)B動(dòng)作:應(yīng)答會(huì)話初始化成功;
[0035]步驟302)節(jié)點(diǎn)A動(dòng)作:發(fā)送登錄請(qǐng)求;節(jié)點(diǎn)B動(dòng)作:應(yīng)