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