閆樂樂,劉小勇
(1.中國電子科技集團公司第五十四研究所,河北 石家莊 050081;2.火箭軍裝備部駐廊坊地區(qū)軍事代表室,河北 廊坊 065000)
以太網(wǎng)業(yè)務(wù)作為無線通信系統(tǒng)中的主要業(yè)務(wù)類型,其傳輸質(zhì)量是評價通信設(shè)備性能好壞的重要指標。通常以太網(wǎng)業(yè)務(wù)傳輸是采用透明傳輸方式,上層業(yè)務(wù)處理在通信設(shè)備層面是不可見的,業(yè)務(wù)層也不必清楚具體信道層面的實現(xiàn)細節(jié)。并且無線信道底層協(xié)議可承載最大幀長往往小于以太網(wǎng)標準最大幀長,依靠傳輸設(shè)備協(xié)議拆組包勢必帶來很大的信道和資源開銷[1]。另一方面,由于復(fù)雜不穩(wěn)定的無線信道環(huán)境會導(dǎo)致業(yè)務(wù)數(shù)據(jù)在傳輸過程產(chǎn)生誤碼現(xiàn)象,丟包率隨著誤碼率升高而上升,進而極大影響上層的業(yè)務(wù)通信質(zhì)量[2]。即使在以太網(wǎng)協(xié)議傳輸層增加重傳機制(如TCP協(xié)議),信道頻繁的分片數(shù)據(jù)丟失會導(dǎo)致整個分組數(shù)據(jù)的頻繁重傳,信道利用率會大大下降[3,4]。綜合考慮以上因素,為了提高通信可靠性,本文從信道幀長適配以及在低層增加輕量級重傳機制角度設(shè)計實現(xiàn)了一種無線通信透傳以太網(wǎng)數(shù)據(jù)分片重傳協(xié)議和裝置。
無線通信透傳以太網(wǎng)數(shù)據(jù)分片重傳協(xié)議,包括業(yè)務(wù)接口模塊、拆幀模塊、組幀模塊、數(shù)據(jù)緩存管理模塊和信道接口模塊,信號流程如圖1所示。
業(yè)務(wù)接口模塊包含數(shù)據(jù)接口和控制接口,數(shù)據(jù)接口負責接收所有上層以太網(wǎng)數(shù)據(jù)幀,對無用的雜包進行過濾以節(jié)省信道帶寬資源,將有用的數(shù)據(jù)幀輸出至拆幀模塊,以及將經(jīng)過組幀模塊正確組幀后的完整以太網(wǎng)幀發(fā)送至上層業(yè)務(wù)端??刂平涌谪撠熃邮丈蠈颖O(jiān)控端的控制數(shù)據(jù)以調(diào)整工作參數(shù)。
拆幀模塊負責將業(yè)務(wù)接口模塊來的標準以太網(wǎng)幀按長度拆分成適合信道接入設(shè)備的分片數(shù)據(jù),添加利于收端組幀模塊處理的幀頭和校驗字段后封裝成小幀輸出至原始數(shù)據(jù)緩存和重傳數(shù)據(jù)緩存[5]。
原始數(shù)據(jù)緩存、重傳數(shù)據(jù)緩存和ACK應(yīng)答緩存中存放有將要發(fā)送至信道接入設(shè)備的小幀數(shù)據(jù)和重傳次數(shù)以及加入隊列時間等控制信息,在緩存控制器的作用下按照ACK應(yīng)答緩存>重傳數(shù)據(jù)緩存>發(fā)送數(shù)據(jù)緩存的優(yōu)先級排隊發(fā)送至信道接口模塊。
信道接口模塊包含數(shù)據(jù)接口和控制接口,數(shù)據(jù)接口負責將不同緩存送來的小幀發(fā)送給信道接入設(shè)備,同時接收信道接入設(shè)備發(fā)來的數(shù)據(jù)并送至組幀模塊處理??刂平涌谪撠熃邮招诺澜尤朐O(shè)備發(fā)來的信道狀態(tài)參數(shù),并適應(yīng)性地調(diào)整工作參數(shù)。
組幀模塊負責將收到的信道小幀組合成為完整以太網(wǎng)幀并發(fā)送至業(yè)務(wù)接口模塊,并提取收到的數(shù)據(jù)幀序號信息送至ACK應(yīng)答緩存,以及提取接收到的ACK幀信息給緩存控制器處理重傳數(shù)據(jù)緩存。
1.2.1 數(shù)據(jù)幀結(jié)構(gòu)
以太網(wǎng)標準數(shù)據(jù)幀長度為64~1518 Bytes,除去4 Bytes幀校驗序列(Frame Check Sequence,F(xiàn)CS),網(wǎng)卡裸抓下來長度為60~1514 Bytes[6]。本文以太網(wǎng)數(shù)據(jù)分片長度為190 Bytes,分片數(shù)據(jù)幀結(jié)構(gòu)如圖2所示。
其中Type、Seq、Subseq、Len字段組成了小幀頭部,Type表示小幀類型,用來區(qū)分數(shù)據(jù)幀和ACK應(yīng)答幀;Seq表示大幀序號,范圍0~65 535;Subseq表示小幀序號,范圍0~7,用來標記該小幀處于大幀的什么位置;Len用來表示Data數(shù)據(jù)長度;Last標記位用來表示該小幀是否為大幀的最后一片;Data為有效的分片數(shù)據(jù);Chksum為CRC-16校驗字段。數(shù)據(jù)幀有效長度為7~196 Bytes,相當于減小了以太網(wǎng)幀最大長度,分片數(shù)據(jù)幀格式能夠更好地適應(yīng)無線信道特點,在信道存在誤碼的情況下減小丟包概率。
1.2.2 ACK幀結(jié)構(gòu)
ACK應(yīng)答幀結(jié)構(gòu)如圖3所示。
圖3中,Type表示小幀類型;Num_int為已經(jīng)組幀成功的大幀序號個數(shù),Int_seqs表示具體Num_int個大幀序號;Num_part表示未組幀成功的大幀序號個數(shù);Part_seqs表示這些大幀的具體接收狀態(tài)信息,這其中包含3部分內(nèi)容,第1部分是未收全小幀即組幀未成功的大幀序號Seq,第2部分是該大幀序號下已經(jīng)接收到的小幀個數(shù)Num_in,第3部分是具體的小幀序號Subseq;Chksum為幀校驗。
整個ACK應(yīng)答幀的最大長度需與數(shù)據(jù)幀保持一致以適應(yīng)信道特征。組幀模塊判斷接收到的數(shù)據(jù)是ACK應(yīng)答幀,則解析出對端已成功接收的幀序號信息,輸入到本端的重傳緩沖,執(zhí)行重傳緩沖刪除相應(yīng)序號幀的操作。這種將組幀成功與否的大幀序號進行分類填充的方法(ACK信息聚合)相比ACK回復(fù)所有接收包序號的方式,可以減少ACK應(yīng)答數(shù)據(jù)量降低信道開銷。幀中包含整個接收端收包狀態(tài)信息,能夠在小幀丟包情況下達到選擇重傳效果,極大減少重傳數(shù)據(jù)量,并且降低以太網(wǎng)包丟包率。
重傳緩存數(shù)據(jù)發(fā)送的前提是超時時間內(nèi)未接收到ACK回復(fù),超時時間由信道狀態(tài)信息決定。ACK應(yīng)答緩存數(shù)據(jù)發(fā)送的前提為ACK緩存數(shù)據(jù)已滿或超時未傳送,設(shè)置ACK緩存超時時間目的是能夠在業(yè)務(wù)量極少情況下及時獲取ACK應(yīng)答以節(jié)約系統(tǒng)內(nèi)部資源,提高性能。當收到的小數(shù)據(jù)幀循環(huán)冗余驗碼(Cyclic Redundancy Check,CRC)校驗正確后需放入組包緩存,由于系統(tǒng)資源受限,組包緩存需循環(huán)利用,每個大幀應(yīng)該在組包緩存超時時間內(nèi)完成組幀操作。
無線信道下誤包率PER和誤碼率BER和幀長L的關(guān)系為
可以看出在一定誤碼率下,誤包率會隨著幀長的增加而增加[7]。在誤碼率為10-5、最大重傳次數(shù)為1次的情況下,計算不同幀長下引入分片重傳機制前后的誤包率,如圖4所示。由圖4可見,本文分片重傳協(xié)議能夠明顯降低誤包率。
根據(jù)數(shù)據(jù)幀和ACK(信息聚合前后)幀格式計算不同以太網(wǎng)幀長情況下的協(xié)議開銷,如圖5所示。
由圖5可知,在ACK使用信息聚合后,協(xié)議開銷在不同以太網(wǎng)幀長下均下降,并且?guī)L越大效果越顯著。
本文主要解決了無線信道以太網(wǎng)數(shù)據(jù)透明傳輸?shù)目煽啃詥栴},提出一種無線通信透傳以太網(wǎng)數(shù)據(jù)分片重傳方法,協(xié)議分析與仿真結(jié)果表明,該方法在增加有限的帶寬開銷的情況下可極大降低以太網(wǎng)誤幀率,提高業(yè)務(wù)傳輸質(zhì)量。特別適用于誤碼率較高的無線信道下對以太網(wǎng)數(shù)據(jù)傳輸有高可靠性要求的場合。