高速短波自適應(yīng)數(shù)據(jù)通信協(xié)議的設(shè)計(jì)
http://m.butianyuan.cn/article/201612/332842.htm 短波通信是中、遠(yuǎn)程無(wú)線電通信的傳統(tǒng)手段,它具有通信距離遠(yuǎn)、架設(shè)方便、抗摧毀能力強(qiáng)、運(yùn)行費(fèi)用低等優(yōu)點(diǎn),在軍隊(duì)、外交等部門(mén)有著廣泛的應(yīng)用。在20世紀(jì)80年代手期,美國(guó)制訂了軍標(biāo)MIL-STD-188-110A,此后國(guó)外一些公司紛紛提出了符合該標(biāo)準(zhǔn)的新一代高速串行調(diào)制解調(diào)器,如哈里斯公司的RF 5710,使得短波數(shù)據(jù)通信效率明顯改善[1]。 我國(guó)許多用戶引進(jìn)了符合110A軍標(biāo)的調(diào)制解調(diào)器,如外交部全球短波數(shù)據(jù)通信系統(tǒng)采用了哈里斯公司的RF 5710,但是沒(méi)有合適的通信軟件。為此筆者在多年實(shí)踐經(jīng)驗(yàn)基礎(chǔ)上,于1999年初步設(shè)計(jì)和實(shí)現(xiàn)了基于選擇式ARQ的鏈路層協(xié)議,并對(duì)影響傳輸效率的因素和改進(jìn)措施作了定性分析[2]。文獻(xiàn)[3]對(duì)該協(xié)議的時(shí)間參數(shù)和性能初步作了定量分析。 本文首先分析了文獻(xiàn)[2]協(xié)議的不足之處,然后給出了改進(jìn)型半雙工選擇式ARQ協(xié)議的設(shè)計(jì)方案,定時(shí)分析了新協(xié)議的時(shí)間參數(shù)、信道利用率,在定量分析的基礎(chǔ)上給出了自適應(yīng)閾值;在新的鏈路層協(xié)議上,制定了文件傳輸層協(xié)議。 1.1 短波半雙工選擇ARQ協(xié)議概況 在文獻(xiàn)[2]中,協(xié)議一次最多發(fā)送16幀,然后等待對(duì)方的應(yīng)答;幀的編號(hào)從1~240,當(dāng)傳輸?shù)降?40幀數(shù)據(jù)后,強(qiáng)行將序號(hào)1~240中沒(méi)有正確傳送的幀送到對(duì)方,然后才能進(jìn)入下一個(gè)240幀的傳輸,這與通常的滑動(dòng)窗口機(jī)制有差異。對(duì)于選擇式協(xié)議來(lái)說(shuō),極端情況下240幀的第一幀沒(méi)有成功收到,那么所有的數(shù)據(jù)都不能交給應(yīng)用層,這樣對(duì)于優(yōu)先級(jí)非常高的文件,無(wú)法及時(shí)傳輸。為了解決這類(lèi)問(wèn)題,在每個(gè)文件傳輸時(shí),首先強(qiáng)制性地把文件名稱(chēng)、長(zhǎng)度送到對(duì)方,然后將文件中的數(shù)據(jù)送走。這種方案保證先發(fā)送的文件先到達(dá),但是文件頭和文件體需要至少發(fā)送兩次,對(duì)于長(zhǎng)交織模式來(lái)說(shuō)傳遞一批小文件(需要確保優(yōu)先級(jí)高的文件先送到,不能把它們合成一個(gè)文件一來(lái)傳輸)時(shí)效率非常低。 導(dǎo)致效率低下的原因有以下幾個(gè)方面:首先,沒(méi)有將全雙工選擇式ARQ中滑動(dòng)窗口技術(shù)[4]正確地推廣到短波半雙工條件下;其次,一次發(fā)送的數(shù)據(jù)幀固定為16幀;第三,缺少對(duì)滑動(dòng)窗口頂部數(shù)據(jù)幀的保護(hù),使得滑動(dòng)窗口機(jī)制無(wú)法快速下滑;第四,通信雙方采用一樣的交織模式,并且沒(méi)有制定信道條件變化時(shí)自適應(yīng)改變交織模式的定量準(zhǔn)則。 1.2 改進(jìn)型半雙工選擇式ARQ協(xié)議 數(shù)據(jù)幀結(jié)構(gòu) 說(shuō)明:數(shù)據(jù)幀的長(zhǎng)度接收方自動(dòng)匹配,由幀的結(jié)束符號(hào)來(lái)自動(dòng)區(qū)分。兩個(gè)幀之間的分隔符號(hào)用一個(gè)。 應(yīng)答幀結(jié)構(gòu) 說(shuō)明:確認(rèn)幀號(hào)是最后一次正確接收的所有數(shù)據(jù)幀號(hào)。如果最近一次傳輸?shù)膸?hào)全部正確,那么該域包含了所有的數(shù)據(jù)幀號(hào),如果全部錯(cuò)誤,那么該域就沒(méi)有數(shù)據(jù)。 應(yīng)答幀的保護(hù):根據(jù)應(yīng)答幀的定義最長(zhǎng)不超過(guò)60字節(jié),在信道傳輸質(zhì)量變差的條件下一次發(fā)送的幀數(shù)會(huì)減少,即應(yīng)答幀的長(zhǎng)度很短,因此同一個(gè)應(yīng)答幀發(fā)送三遍既保證了應(yīng)答幀的可靠性又不會(huì)增加傳輸?shù)呢?fù)擔(dān)。發(fā)送方只要收到一次正確的應(yīng)答幀就可以了,不管其余兩幀是否正確。應(yīng)答幀可靠的重要性在于一旦它出錯(cuò)會(huì)造成最近發(fā)送的一批數(shù)據(jù)幀重新傳輸。 交織模式的選擇:為了適應(yīng)信道傳輸質(zhì)量的變化,應(yīng)該及時(shí)調(diào)整交織模式。對(duì)于交織模式的配置原則如下:數(shù)據(jù)的接收方固定設(shè)置為無(wú)交織模式(應(yīng)答幀已經(jīng)有錯(cuò)誤保護(hù)機(jī)制),數(shù)據(jù)主發(fā)送方初始6設(shè)置為無(wú)交織,在發(fā)送過(guò)程中重傳的幀數(shù)達(dá)到一定閾值,則再次發(fā)送前交織模式設(shè)置為短交織,依此類(lèi)推。反過(guò)來(lái),長(zhǎng)交織模式誤幀率很低則可以設(shè)置成短交織,依此類(lèi)推。 滑動(dòng)窗口和一次發(fā)送幀數(shù):協(xié)議啟動(dòng)時(shí)初次發(fā)送的數(shù)據(jù)幀個(gè)數(shù)最多為20幀,在傳輸過(guò)程中如果誤幀率很小,則可以逐步加大到60幀。收發(fā)雙方滑動(dòng)窗口的長(zhǎng)度都定為120帖,實(shí)際一次發(fā)送的幀數(shù)受滑動(dòng)窗口大小和緩沖區(qū)中待傳送數(shù)據(jù)幀數(shù)可以多一些。這樣修改后,當(dāng)信道十分良好時(shí),只要很少幾次應(yīng)答確認(rèn)就可以完成非常大的數(shù)據(jù)量傳輸,可以大大提高數(shù)據(jù)通信的效率。 對(duì)滑動(dòng)窗口頂部數(shù)據(jù)幀的保護(hù):由于本協(xié)議的滑動(dòng)窗口長(zhǎng)度限定為120,當(dāng)較小序號(hào)的數(shù)據(jù)幀沒(méi)有正確送走時(shí)會(huì)限制一次發(fā)送的數(shù)據(jù)幀個(gè)數(shù)(極端情況下,第1幀沒(méi)有成功地送走,而第2~120幀全部送走,此時(shí)一次只能送一個(gè)幀);另外接收方會(huì)積壓許多數(shù)據(jù)幀而未能交給上一層協(xié)議,影響上一層通信的實(shí)時(shí)性。 為了解決這一問(wèn)題,對(duì)于沒(méi)有正確傳送的數(shù)據(jù)幀在一次發(fā)送中允許最多一遍,這樣可以加速滑動(dòng)窗口迅速下滑。具體做法:當(dāng)實(shí)際能夠發(fā)送的數(shù)據(jù)幀不足20幀,或者最小沒(méi)有成功送走的序號(hào)與最大成功送走的序號(hào)之間間隔超過(guò)30幀時(shí),對(duì)傳輸失敗的幀重復(fù)發(fā)送兩遍。如仍然出現(xiàn)差錯(cuò),則發(fā)達(dá)三遍。 采取保護(hù)措施后可以解決由于個(gè)別幀遲遲沒(méi)有正確傳輸而導(dǎo)致滑動(dòng)窗口不能下移而影響傳輸?shù)膶?shí)時(shí)性和效率問(wèn)題。 1.3 文件傳輸層協(xié)議 協(xié)議修改后,鏈路層能夠比較迅速地將數(shù)據(jù)遞交給文件層,因此文件傳輸層可以與鏈路層切分出來(lái)。由于鏈路層能夠保證無(wú)差錯(cuò),因此文件之間只要能夠區(qū)分格式就可以了。一個(gè)文件的數(shù)據(jù)格式定義如下: 分隔符+文件名稱(chēng)+分隔符+文件長(zhǎng)度+分隔符+文件數(shù)據(jù)內(nèi)容 多個(gè)文件可以按照上面的格式一個(gè)接一個(gè)傳輸。 2 改進(jìn)型協(xié)議下的時(shí)間參數(shù)和通信利用率 2.1 時(shí)間參數(shù)的確定 文獻(xiàn)[3]中已經(jīng)指出協(xié)議關(guān)聯(lián)的時(shí)間參數(shù)有六個(gè)。對(duì)比本文與文獻(xiàn)[2]中的協(xié)議可以發(fā)現(xiàn),文獻(xiàn)[3]中的四個(gè)參數(shù)計(jì)算公式?jīng)]有變化。但包同步延時(shí)和ACK同步延時(shí)有些變化,主要是本協(xié)議采用非對(duì)稱(chēng)的交織模式,即應(yīng)答一方總是采用無(wú)交織模式,因此可以減少包同步延時(shí)和ACK同步延時(shí)。參照文獻(xiàn)[3]的計(jì)算方法,用Tsyn表示包同步延時(shí),TAck表示ACK同步延時(shí),TFrame表示幀同步延時(shí),TInterDelay表示交織延時(shí),則改進(jìn)型的時(shí)間參數(shù)計(jì)算公式如下: TAck=2×TInterDelay+1.2×2+TFrame(取整) (1) TSyn=2×TInterDelay+1.2×2 (2) 也就是說(shuō)TInterDelay的系數(shù)從4變?yōu)?,這對(duì)長(zhǎng)交織來(lái)說(shuō)TAck和TSyn將減汪9.6秒,可以較大幅度地提高信道的利用率。 假設(shè)一次發(fā)送數(shù)據(jù)幀個(gè)數(shù)為N、數(shù)據(jù)幀長(zhǎng)為L(zhǎng)字節(jié)、信道速率為H(bps),那么信道利用率計(jì)算公式為: (N×L×8/H)/(TAck+N(L+10)8/H+TRtsDelay1+TRtsDelay2) (3) 其是分子為實(shí)際數(shù)據(jù)傳輸所用的時(shí)間,分母為數(shù)據(jù)開(kāi)始發(fā)送到接收確認(rèn)的時(shí)間,常數(shù)10為數(shù)據(jù)幀中額外的字節(jié),8為一個(gè)字節(jié)的比特?cái)?shù)目,TRtsDelay1和TRtsDelay2分別代表鍵控前延時(shí)和鍵控中延時(shí)。 2.2 不同幀長(zhǎng)和交織模式下的信道利用率 從信道利用率角度,當(dāng)傳輸速率較高時(shí)要求具有較長(zhǎng)的數(shù)據(jù)包和一次發(fā)送較多的數(shù)據(jù)幀數(shù),尤其是長(zhǎng)交織模式下: 吞吐率是標(biāo)識(shí)通信協(xié)議性能的重要標(biāo)準(zhǔn),對(duì)于半雙工通信協(xié)議來(lái)說(shuō)它被定義為一定的時(shí)間單位里,從發(fā)送方到達(dá)接收方數(shù)據(jù)正確傳輸?shù)臄?shù)據(jù)總量如果用S表示正確發(fā)送的數(shù)據(jù)量,I表示相繼發(fā)送的兩次時(shí)間間隔,吞吐率用Rbyte來(lái)表示,那么相應(yīng)的數(shù)據(jù)率計(jì)算公式為: Rbyte=S/I (4) 在半雙工ARQ協(xié)議中: S=N×L (5) I=IInterDelay×2+(TRstDelay1+TRtsDelay2)×2+[N×(L+10)×8]/Rate+(70×8)/(Rate) (6) 其中N表示一次發(fā)送幀數(shù),L表示一幀的有效數(shù)據(jù)長(zhǎng)度,最后一項(xiàng)表示接收應(yīng)答時(shí)間,為簡(jiǎn)經(jīng)起見(jiàn)把幀長(zhǎng)定為70字節(jié)。 按照上述公式可繪出在不同幀長(zhǎng)、幀數(shù)和交織模式下的吞吐量圖,參數(shù)圖1、圖2。 從圖1和圖2比較可以看出: (1)在相同的交織方式下,幀長(zhǎng)越長(zhǎng),發(fā)送有效數(shù)據(jù)的時(shí)間占總時(shí)間的比例越高,有效吞吐率就越大,協(xié)議的效率越高; (2)在相同的交織方式和相同的幀長(zhǎng)前提下,信道速率越高,總的發(fā)送時(shí)間縮短,有效吞吐率就越大,協(xié)議的效率越高; (3)在相同的信道速率和幀長(zhǎng)條件下,交織越短有效吞吐率越高。 文獻(xiàn)[2]中的協(xié)議在多個(gè)小文件傳輸中的效率,在長(zhǎng)交織模式下,由于一個(gè)文件的傳輸分為文件頭和文件體兩次傳輸,因此在無(wú)干擾條件下單個(gè)文件的最短傳輸時(shí)間應(yīng)該不小于2Tack時(shí)間,即46秒。無(wú)論采取什么樣的速率和多小的文件,對(duì)于多個(gè)小文件來(lái)說(shuō)傳輸效率非常低。 新低輸協(xié)議主要取決多個(gè)文件的總長(zhǎng)度、傳輸速率和幀長(zhǎng)。如果10個(gè)文件的總長(zhǎng)度為9.6K字節(jié)、速率為2400bps、幀長(zhǎng)為120字節(jié),那么在無(wú)干擾條件下的傳輸時(shí)間,第一次20幀為2400字節(jié),時(shí)間為22秒;第二次40幀為4800字節(jié),時(shí)間32秒;第三次20幀為2400字節(jié),時(shí)間為22秒;因此總時(shí)間為75秒,并且與文件個(gè)數(shù)無(wú)關(guān)。同樣,從前面計(jì)算中可以看出,一次發(fā)送的幀數(shù)的加大,尤其是對(duì)長(zhǎng)織來(lái)說(shuō)可以較大幅度地提高吞吐量。 從短波鏈路層協(xié)議判斷短波信道傳輸質(zhì)量的依據(jù)是錯(cuò)誤幀數(shù)(110A標(biāo)準(zhǔn)可以從遙控中取到信噪比,但實(shí)現(xiàn)起來(lái)有一定困難,本文以誤幀來(lái)判斷信道質(zhì)量),因此模式的改變和一次發(fā)送幀數(shù)的調(diào)整由誤幀來(lái)決定。 3.1 交織模式的確定 以無(wú)交織模式為例,先假設(shè)在無(wú)交織模式下誤幀率為E,而這些誤幀可以經(jīng)過(guò)短交織模式得到糾正,在這樣情況下短交織的有效吞吐量民無(wú)交織的有效吞吐量相等的條件是: (N-E)/IN=N/Is (7) 其中IN、Is分別為無(wú)交織和短交織傳輸N幀所需要的總時(shí)間。 依據(jù)該公式確定出誤幀率,可以認(rèn)為是從無(wú)交織過(guò)渡到短交織域值。由于該計(jì)算公式有一個(gè)前提,而該前提在實(shí)際通信中未必能夠成立,作為決定從交織變?yōu)槎探豢楅撝祽?yīng)該更大一些, 通常加2或更大的設(shè)置。該原則同樣適用于從短交織到長(zhǎng)交織的閾值。 反過(guò)來(lái),當(dāng)信道持續(xù)處于較好的條件下,應(yīng)該從長(zhǎng)交織降到短交織甚至無(wú)交織。由于長(zhǎng)交織沒(méi)有誤幀或很少誤幀的情況下,短交織可能存在比較多的誤幀,因此要求沒(méi)有誤幀的情況下,才從長(zhǎng)交織下降到短交織。同樣該原則適用于短交織到無(wú)交織。 3.2 一次發(fā)送幀數(shù)的確定準(zhǔn)則 從信道利用率的角度最好一次發(fā)送比較多的數(shù)據(jù)幀,尤其是長(zhǎng)交織的情況下。但是一次發(fā)送的幀數(shù)太多,當(dāng)信道遇到干擾時(shí)不能及時(shí)地調(diào)整參數(shù),比如數(shù)據(jù)交織模式、數(shù)據(jù)幀長(zhǎng)、信道速率等,這樣會(huì)導(dǎo)致產(chǎn)生較多的錯(cuò)幀。 比較謹(jǐn)慎的做法是:無(wú)交織初始幀數(shù)為20,如果沒(méi)有誤幀則逐步加長(zhǎng)到40、60和80幀;而短交織初始設(shè)置為40幀,沒(méi)有誤幀條件下逐步加大60、80幀,而長(zhǎng)交織初始為60帖。謹(jǐn)慎的原因主要考慮信道不穩(wěn)定情況下,相對(duì)較少的數(shù)據(jù)幀可以加快參數(shù)的調(diào)整。由于定量分析相對(duì)較難,在本文中不作進(jìn)一步分析。 協(xié)議經(jīng)過(guò)修改后,在信道很好地實(shí)際傳輸效率非常高,在信道傳輸質(zhì)量發(fā)生變化的情況下能夠較好選擇合適的交織模式。通過(guò)采取非對(duì)稱(chēng)交織模式可以將長(zhǎng)交織壓縮近一半的RTT時(shí)間。通過(guò)滑動(dòng)窗口的控制和窗口頂部數(shù)據(jù)幀的保護(hù),提高了鏈路層數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,大大改善了多個(gè)小文件的傳輸效率。協(xié)議的設(shè)計(jì)思想也可以應(yīng)用于其它半雙工信道。
1 改進(jìn)型半雙工選擇式ARQ協(xié)議和支持傳送協(xié)議
標(biāo)志 發(fā)地址 收地址 幀號(hào) 幀數(shù) 數(shù)據(jù) CRC 標(biāo)志 1 2 2 1 1 30,60,12,240 2 1 標(biāo)志 發(fā)地址 收地址 確認(rèn)幀號(hào) CRC 標(biāo)志 1 2 2 多個(gè)字節(jié) 2 1
3 自適應(yīng)準(zhǔn)則閾值的確定
評(píng)論