尉軍輝
摘要:由于衛(wèi)星網(wǎng)絡(luò)信道的帶寬不對(duì)稱性,使得下行鏈路帶寬遠(yuǎn)遠(yuǎn)大于上行鏈路帶寬,當(dāng)正向鏈路的數(shù)據(jù)包還遠(yuǎn)沒到達(dá)擁塞時(shí),反向鏈路的確認(rèn)包有可能擁塞。本文對(duì)衛(wèi)星網(wǎng)絡(luò)的tcp的反向鏈路進(jìn)行擁塞控制,在提高網(wǎng)絡(luò)帶寬利用率、通信效率提升等方面做了改進(jìn),并對(duì)其確認(rèn)機(jī)制SNACK機(jī)制進(jìn)行擴(kuò)展,最后在opnet上進(jìn)行了仿真測(cè)試,證明了添加反向擁塞控制可以改進(jìn)網(wǎng)絡(luò)帶寬利用率。
關(guān)鍵詞:opnet仿真 反向擁塞控制 衛(wèi)星網(wǎng)絡(luò)
中圖分類號(hào):TP393.04 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2016)12-0028-01
1 引言
由于衛(wèi)星通信鏈路具有正反向鏈路帶寬不對(duì)稱的特征,因此在正向鏈路高速傳遞數(shù)據(jù)分組時(shí)極易發(fā)生反向鏈路的擁塞現(xiàn)象,目前不管是tcp Reno還是TCP vegas對(duì)衛(wèi)星反向鏈路擁塞控制的很少,而當(dāng)鏈路發(fā)生擁塞時(shí),大多都是降低發(fā)送端分組的發(fā)送頻率,這雖然能緩解擁塞,但是以降低吞吐量為代價(jià)。此外,由于空間通信鏈路具有傳輸時(shí)延大的特征,用傳統(tǒng)的ACK確認(rèn)機(jī)制已不能滿足要求。本文深入研究SNACK即否定性確認(rèn)機(jī)制,使用SNACK代替ACK,提高衛(wèi)星網(wǎng)絡(luò)帶寬利用率。
2 擁塞控制原理概述及改進(jìn)
2.1 擁塞控制算法
TCP Reno擁塞控制主要是采用了控制發(fā)送端的發(fā)送速率,從而控制網(wǎng)絡(luò)的負(fù)載。TCP 協(xié)議采用一種加法增加乘法減少(AIMD)的擁塞控制算法。發(fā)送方維持著一個(gè)擁塞窗口,當(dāng)發(fā)送方發(fā)現(xiàn)窗口內(nèi)的一個(gè)報(bào)文發(fā)生丟失,則認(rèn)為這個(gè)丟失是由網(wǎng)絡(luò)擁塞造成的,于是將窗口大小減半,以減小發(fā)送速率,從而避免擁塞的加重。如果窗口中的報(bào)文沒有發(fā)生丟失,則表明目前網(wǎng)絡(luò)狀況良好,發(fā)送者將窗口大小加大,進(jìn)而增大了報(bào)文的發(fā)送速率。在衛(wèi)星網(wǎng)絡(luò)中,由接收端控制確認(rèn)包的的數(shù)量,當(dāng)確認(rèn)包由于數(shù)量過于多,造成衛(wèi)星網(wǎng)絡(luò)反向擁塞,將接收端的窗口大小減半,從而避免擁塞。
2.2 基于SNACK的改進(jìn)的擁塞控制
選擇性否定確認(rèn)(SNACK)是由選擇性確認(rèn)(SACK)與否定性確認(rèn)(NAK)組成的。tcp reno采用ACK確認(rèn),由于衛(wèi)星網(wǎng)絡(luò)誤碼率較高,延時(shí)較大,使得網(wǎng)絡(luò)易出現(xiàn)誤碼丟包,于是對(duì)有的數(shù)據(jù)要經(jīng)過多次重傳才能到達(dá),導(dǎo)致帶寬的極大浪費(fèi)。而SNACK當(dāng)接收端的接收數(shù)據(jù)緩存中可能存在多個(gè)數(shù)據(jù)錯(cuò)誤空洞,SNACK向發(fā)送端導(dǎo)致這些數(shù)據(jù)的否定信息,發(fā)送端會(huì)根據(jù)定時(shí)器來發(fā)送指定的報(bào)文段。相對(duì)于SACK,NAK,更能節(jié)省網(wǎng)絡(luò)帶寬,是一種適合衛(wèi)星網(wǎng)絡(luò)傳輸?shù)拇_認(rèn)機(jī)制。
偽代碼如下:
If(receive-SNACK)//接收到SNACK
{op_pk_send(lost-packet);根據(jù)接收到的SNACK指示,重傳丟失的數(shù)據(jù)段
Reset retransport timer;//重置重傳定時(shí)器
}
If(receive_ACK)//接收到正常ACK
{
op-pk_send(next-packet)//根據(jù)確認(rèn)發(fā)送下一個(gè)數(shù)據(jù)段
Reset retransport timer;//重置重傳定時(shí)器
}
本文采用Reno,即傳統(tǒng)的擁塞控制,在發(fā)送端不變,在接收端通過添加擁塞控制,同時(shí)改用SNACK,而不用ACK,對(duì)提升衛(wèi)星網(wǎng)絡(luò)帶寬利用率有重大的意義。
3 仿真實(shí)驗(yàn)分析
本文采用了在opnet仿真平臺(tái)下,在兩臺(tái)機(jī)器上安裝了TCP協(xié)議,并對(duì)TCP協(xié)議進(jìn)行修改,并導(dǎo)入STK,通過對(duì)其吞吐量等監(jiān)測(cè),仿真結(jié)果如圖1。
由圖1可知添加了反向擁塞控制后,使其正向鏈路寬帶利用率提高,最終使得整個(gè)鏈路帶寬利用率提高。
參考文獻(xiàn)
[1]張潤彤.LEO衛(wèi)星環(huán)境下SNACKTCP性能分析[J].計(jì)算機(jī)學(xué)報(bào),2007(02).
[2]陳明玉.SCPS_TP協(xié)議在衛(wèi)星通信系統(tǒng)中的應(yīng)用研究[J].電子設(shè)計(jì)工程,2010(08).
[3]劉益洪.TCP_IP協(xié)議的擁塞控制策略[J].通信技術(shù),2008(07).