楊 松
(中國電子科技集團(tuán)公司第三十研究所,四川 成都 610041)
在我國,互聯(lián)網(wǎng)己經(jīng)取得巨大發(fā)展,從固定互聯(lián)網(wǎng)到移動(dòng)互聯(lián)網(wǎng),其爆炸式發(fā)展及其對(duì)社會(huì)的沖擊超過人們的想象,以互聯(lián)網(wǎng)為代表的信息網(wǎng)絡(luò)己滲透到我國人民生活的各個(gè)方面,給社會(huì)發(fā)展帶來了巨大而深遠(yuǎn)的變化,同時(shí),電信業(yè)也迅速發(fā)展,特別是多媒體通信的發(fā)展,對(duì)網(wǎng)絡(luò)帶寬提出了新的需求,也就導(dǎo)致了光纖網(wǎng)和光纖通信也在飛速發(fā)展。
網(wǎng)絡(luò)流量增大,為了保證可靠傳輸,就導(dǎo)致了糾錯(cuò)的需求增大。在數(shù)據(jù)傳輸時(shí),糾錯(cuò)一般采用前向糾錯(cuò)(FEC)[1],這里的前向,是指差錯(cuò)控制過程是單方向的,不存在差錯(cuò)信息的反饋。另外一種反饋重發(fā)(ARQ)[2]糾錯(cuò)方式由于不能適應(yīng)高速傳輸,在現(xiàn)代高速網(wǎng)絡(luò)中基本不采用了。
目前對(duì)于FEC糾錯(cuò)方式能夠自動(dòng)開關(guān)糾錯(cuò)模式的研究不多。因?yàn)閷?duì)于FEC目前普遍使用的帶外傳輸方式,糾錯(cuò)是會(huì)增加流量的,所以根據(jù)線路誤碼情況及時(shí)開關(guān)糾錯(cuò)功能是一個(gè)重要技術(shù)。同時(shí)網(wǎng)絡(luò)的流量信息也是網(wǎng)絡(luò)安全信息之一,因?yàn)榭梢酝ㄟ^監(jiān)測(cè)流量來分析目前的網(wǎng)絡(luò)動(dòng)態(tài),從而可能存在泄露重要信息的風(fēng)險(xiǎn),所以抗流量分析技術(shù)也是很有應(yīng)用前景。
本研究提供一個(gè)較簡(jiǎn)單的方法既解決了流量分析的問題,又能夠根據(jù)線路情況自動(dòng)開啟或關(guān)閉糾錯(cuò)模式,從而使帶寬能夠充分利用。而且本方案基本不增加額外的帶寬,而且本方案適用于所有傳輸分組數(shù)據(jù)的線路,如以太網(wǎng)或采用 EoS技術(shù)的SDH線路。
抗流量分析技術(shù)就是在線路上沒有流量或流量較少的時(shí)候發(fā)送空閑幀,空閑幀在幀格式上與正常幀沒有區(qū)別,截獲后也無法識(shí)別,空閑幀發(fā)送不影響業(yè)務(wù)數(shù)據(jù)的發(fā)送。
自動(dòng)糾錯(cuò)技術(shù)需要隨時(shí)監(jiān)測(cè)線路誤碼情況,根據(jù)誤碼門限來判別開啟或關(guān)閉糾錯(cuò)功能。本方案中結(jié)合空閑幀技術(shù)完成誤碼統(tǒng)計(jì),采用 RS糾錯(cuò)編碼來完成糾錯(cuò)功能的實(shí)現(xiàn)。
在產(chǎn)生空閑幀的方案上,為了充分利用軟硬件各自的特點(diǎn),采用軟硬結(jié)合的辦法。
軟件計(jì)算空閑幀發(fā)送的帶寬,定時(shí)改變,同時(shí)也改變長(zhǎng)度,硬件統(tǒng)計(jì)實(shí)際發(fā)送的業(yè)務(wù)數(shù)據(jù)流量,如果流量不夠,硬件根據(jù)配置長(zhǎng)度和帶寬發(fā)送空閑幀,讓流量達(dá)到配置的值,如果實(shí)際業(yè)務(wù)數(shù)據(jù)的流量已經(jīng)大于或等于配置的空閑幀帶寬,則不發(fā)送補(bǔ)充流量的空閑幀。
流量計(jì)算舉例:100 MHz的時(shí)鐘計(jì)數(shù),以字節(jié)為單位,其數(shù)據(jù)流量為8 bit*100 M/s=800 Mb/s,硬件計(jì)算空閑幀帶寬時(shí)采用類似令牌桶[3]的方式,當(dāng)計(jì)數(shù)值等于軟件給定帶寬(計(jì)數(shù)周期)時(shí)就給出一個(gè)令牌,有多少個(gè)令牌表示可以發(fā)送多少個(gè)字節(jié)數(shù)據(jù)。根據(jù)軟件給定的值,硬件獲取對(duì)應(yīng)的令牌,值越大,令牌發(fā)放越慢;值越小,令牌發(fā)放越快,空閑幀占的帶寬也與大。例如軟件配置計(jì)數(shù)周期為2,800 Mb/s/2=400 Mb/s,如配置成200,800Mb/s/200=4 Mb/s。當(dāng)然,這里的空閑幀主要目的是防止流量分析,所以發(fā)送的流量不用太準(zhǔn),對(duì)于小數(shù)的情況,就直接取大于它的整數(shù),令牌的計(jì)算可能比實(shí)際的要小。
如果可用令牌數(shù)大于軟件給定的長(zhǎng)度且沒有業(yè)務(wù)數(shù)據(jù),開始發(fā)送空閑幀,發(fā)送完成以后減去對(duì)應(yīng)的長(zhǎng)度的令牌。業(yè)務(wù)數(shù)據(jù)的發(fā)送也將減去對(duì)應(yīng)的令牌,這樣就能保證空閑幀不影響實(shí)際業(yè)務(wù)帶寬。
其具體流程如圖1所示。
圖1 空閑幀插入流程
空閑幀的具體格式如圖2所示。
圖2 空閑幀格式
空閑幀的格式與通常的以太網(wǎng)幀[4]沒有區(qū)別 ,具體定義如下:目的和源MAC地址:通用的以太網(wǎng)幀定義;Tpye字段:使用的一個(gè)特別的定義0x0a0a,標(biāo)識(shí)空閑幀;
數(shù)據(jù):采用從0開始的不斷遞增的計(jì)數(shù)值,這樣也便于接收方向校驗(yàn)數(shù)據(jù)。
數(shù)據(jù)值為固定值后在線路上容易識(shí)別,這樣就不能抗流量分析。為了在線路上的數(shù)據(jù)不被識(shí)別,本方案對(duì)線路數(shù)據(jù)都進(jìn)行了加密處理,而且采用的一包一 IV(初始向量)的 CBC的處理方式,這樣即使每一包的數(shù)據(jù)是相同的,經(jīng)過加密算法以后數(shù)據(jù)也完全不同,由于加密部分不是這里討論的重點(diǎn),就不具體論述了。
目前線路傳輸?shù)募m錯(cuò)普遍采用 FEC[5](前向糾錯(cuò)技術(shù))
FEC 是一種數(shù)據(jù)編碼技術(shù),發(fā)送方向通過糾錯(cuò)編碼技術(shù)在數(shù)據(jù)中加入冗余碼,然后發(fā)給接收方,由接收方進(jìn)行誤碼恢復(fù)和驗(yàn)證,在FEC 技術(shù)中,數(shù)據(jù)接收端不但能發(fā)現(xiàn)誤碼,而且能確定發(fā)生誤碼的位置,從而糾正過來。FEC 技術(shù)必須使用糾錯(cuò)編碼碼。接收方發(fā)現(xiàn)誤碼后不需要通知發(fā)送方重發(fā)。
實(shí)際應(yīng)用的時(shí)候,發(fā)現(xiàn)誤碼較容易,發(fā)現(xiàn)后加上糾錯(cuò)碼就可以解決,但是什么時(shí)候不需要糾錯(cuò)就難于發(fā)現(xiàn)。由于糾錯(cuò)后需要增加數(shù)據(jù)長(zhǎng)度,會(huì)消耗一部分帶寬,實(shí)際可用的帶寬就變窄了。所以在線路沒有誤碼或達(dá)到可容忍的范圍后,需要將糾錯(cuò)功能去掉,從而增加帶寬。
研究自動(dòng)糾錯(cuò)技術(shù)就是為了解決上述問題,自動(dòng)糾錯(cuò)技術(shù)是結(jié)合前面的空閑幀技術(shù)來完成的,如圖3所示,空閑幀在發(fā)送方永遠(yuǎn)不加糾錯(cuò)碼,接收方收到后也不會(huì)去糾錯(cuò),而是直接用來計(jì)算誤碼率,由于空閑幀的內(nèi)容是已知的,在一定時(shí)間范圍內(nèi)就可以得到平均誤碼碼率的統(tǒng)計(jì)。于是就可以根據(jù)統(tǒng)計(jì)值進(jìn)行糾錯(cuò)的開與關(guān)。當(dāng)然,還有一些極端情況需要考慮,如業(yè)務(wù)帶寬超過空閑幀帶寬,此時(shí)沒有空閑幀發(fā)送,沒有辦法計(jì)算誤碼率,這就需定時(shí)發(fā)送空閑幀,由此來統(tǒng)計(jì)誤碼率。另外對(duì)應(yīng)空閑幀包頭錯(cuò)時(shí)可能出現(xiàn)收不到包情況,此時(shí)如果接收方向在規(guī)定的時(shí)間內(nèi)不能收到空閑幀,就結(jié)合線路誤碼統(tǒng)計(jì)確定是否開啟誤碼功能,保證糾錯(cuò)功能開關(guān)的及時(shí)性。
圖3 自動(dòng)糾錯(cuò)示意
前向糾錯(cuò)有兩種糾錯(cuò)編碼,即 BCH和 RS編碼[6],BCH編碼也叫帶內(nèi)編碼,因?yàn)樗菍⒓m錯(cuò)冗余校驗(yàn)位的位置固定在幀結(jié)構(gòu)中某個(gè)位置,不需要額外帶寬。而 RS編碼則稱為帶外編碼,就編碼算法而言,它也是BCH的一個(gè)子類,但應(yīng)用時(shí)一般把它們看成兩類。因?yàn)?RS的糾錯(cuò)冗余校驗(yàn)位不是像帶內(nèi)編碼那樣插入到空閑位置,而是附加在數(shù)據(jù)幀之后,需要增加額外的帶寬,即用帶外FEC 后實(shí)際占用帶寬會(huì)提高。
由于BCH編碼的糾錯(cuò)能力非常有限,而RS編碼糾錯(cuò)能力更強(qiáng),也更靈活,所以本方案中的編碼采用RS編碼來實(shí)現(xiàn)。
RS碼是最大距離可分碼,其最小距離為=n-k+1,最多可糾正(n-k)/2個(gè)符號(hào)(基本單位)錯(cuò)誤。RS碼的糾錯(cuò)能力是以其所能糾正的符號(hào)(基本單位)數(shù)來表示的。對(duì) RS碼來說,一個(gè)符號(hào)內(nèi)錯(cuò)一個(gè)比特與錯(cuò)所有比特是相同的,這使得 RS碼特別適用于糾突發(fā)錯(cuò)誤。如果符號(hào)為8 bit,則RS(36,6)可糾可以糾正15 個(gè)(15 個(gè)8 bit 的字符)突發(fā)錯(cuò)誤,即使這些錯(cuò)誤連續(xù)出現(xiàn),長(zhǎng)度達(dá)120 bit 也能夠糾正。如果錯(cuò)誤比特零星分布在任意的 15 個(gè)字符之中也能夠糾正,而這種情況可以視為隨機(jī)錯(cuò)誤,因此RS碼也具有較強(qiáng)的糾隨機(jī)錯(cuò)誤的能力。綜上所述,RS碼是一類非常好的碼字,性能優(yōu)良。
具體在 FPGA上實(shí)現(xiàn)時(shí),為了節(jié)約開發(fā)時(shí)間,采用xilinx公司提供的RS糾錯(cuò)編碼的IPcore。分組數(shù)據(jù)是變長(zhǎng)包,輸入長(zhǎng)度就設(shè)置成可變的,而糾錯(cuò)冗余碼則根據(jù)實(shí)際需要選取。同時(shí)設(shè)置好其他相關(guān)參數(shù)就可以直接使用。
根據(jù)上面的方案構(gòu)想,研制了試驗(yàn)板卡,其對(duì)外接口是1000M以太網(wǎng),糾錯(cuò)是在以太網(wǎng)MAC層上疊加,所以對(duì)線路糾錯(cuò)不能達(dá)到100%。當(dāng)然,對(duì)于CRC錯(cuò)的數(shù)據(jù)不丟棄,只是在FPGA中對(duì)收到的數(shù)據(jù)進(jìn)行校驗(yàn),如果錯(cuò)誤,就丟棄,使用2個(gè)板卡對(duì)發(fā),線路上串接spirent公司的IP網(wǎng)絡(luò)損傷測(cè)試儀,利用它產(chǎn)生線路誤碼,測(cè)試誤碼為泊松分布,然后再利用spirent公司的smartbit600網(wǎng)絡(luò)分析儀發(fā)送數(shù)據(jù)包,測(cè)試速率為800 Mb/s,同時(shí)也利用smartbit600收包,對(duì)收發(fā)數(shù)據(jù)進(jìn)行統(tǒng)計(jì),測(cè)試結(jié)果如表1所示。
表1 糾錯(cuò)性能試驗(yàn)結(jié)果
接下來對(duì)自動(dòng)糾錯(cuò)的功能進(jìn)行了測(cè)試,誤碼統(tǒng)計(jì)時(shí)間設(shè)為10 s,定時(shí)發(fā)送空閑幀設(shè)為1 s時(shí),沒有發(fā)送業(yè)務(wù)數(shù)據(jù)或業(yè)務(wù)數(shù)據(jù)較少時(shí),糾錯(cuò)開關(guān)的切換在10~20 s內(nèi)完成,如果業(yè)務(wù)帶寬大于等于空閑幀設(shè)定的帶寬時(shí),糾錯(cuò)開關(guān)的切換大6多在10~20 s內(nèi)完成,有少數(shù)在30 s內(nèi)完成。
另外只要業(yè)務(wù)帶寬沒有超過空閑幀帶寬,線路上的流量就維持在空閑幀的帶寬上,也證明了抗流量分析功能是很好的。
通過以上的試驗(yàn)可以得出以下的結(jié)論,通過空閑幀的引入,可以在鏈路層(MAC)上實(shí)現(xiàn)糾錯(cuò)功能的自動(dòng)打開和關(guān)閉,而且糾錯(cuò)后對(duì)線路傳輸數(shù)據(jù)的質(zhì)量提高明顯。此方案另一個(gè)優(yōu)點(diǎn)是糾錯(cuò)功能可以與物理層獨(dú)立開來,因而可以應(yīng)用到不同的物理線路上。同時(shí)由于空閑幀的引入,在線路上可以把實(shí)際流量的信息屏蔽掉,從而達(dá)到抗流量分析的目的。
[1] 覃永新,陳文輝,蔡啟仲.前向糾錯(cuò)技術(shù)中卷積交織器的FPGA實(shí)現(xiàn)[J].通信技術(shù),2009,42(03):84-86.
[2] 秦晉平,王翔,李宇.一種高可靠的超短波數(shù)據(jù)通信技術(shù)方案設(shè)計(jì)[J].通信技術(shù),2008,41(11):40-41.
[3] 鄧長(zhǎng)春.基于VoIP 的校園網(wǎng)絡(luò)管理系統(tǒng)的設(shè)計(jì)[J].通信技術(shù),2008,41(08):154-156.
[4] IEEEStd802.3—2002[S].[s.l.]:IEEE,2008:49-50.
[5] 鐘競(jìng)東,梁釗.長(zhǎng)距離高速光纖通信中的FEC技術(shù)及其研究進(jìn)展[J].光子技術(shù),2006(02):92-96.
[6] 陳磊,段淋,王峰,等.一種參數(shù)可變實(shí)時(shí)RS編碼器的設(shè)計(jì)[J].通信技術(shù),2007,40(11):11-13.