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