本發(fā)明涉及無源光網(wǎng)絡(luò)領(lǐng)域,具體涉及一種無源光網(wǎng)絡(luò)中傳輸匯聚層組幀的實(shí)現(xiàn)方法及系統(tǒng)。
背景技術(shù):
隨著通信技術(shù)的發(fā)展,pon(passiveopticalnetwork,無源光網(wǎng)絡(luò))已經(jīng)成為了一種應(yīng)用廣泛的高速帶寬接入技術(shù)。pon系統(tǒng)一般包括olt(opticallineterminal,光線路終端)、odn(opticaldistributionnetwork,光分配網(wǎng)絡(luò))和onu(opticalnetworkunit,光網(wǎng)絡(luò)單元)。在下行方向,olt將數(shù)據(jù)通過odn廣播到所有的onu;在上行方向,為了避免光沖突,則采用時(shí)分復(fù)用的方式,每個(gè)onu只在被olt授權(quán)的時(shí)隙進(jìn)行數(shù)據(jù)傳輸。在pon系統(tǒng)中,無論上行還是下行,數(shù)據(jù)業(yè)務(wù)(例如以太網(wǎng)幀)和其他業(yè)務(wù)(例如omci管理幀)最終都是通過封裝成tc(傳輸匯聚層)組幀來進(jìn)行傳輸,tc組幀包括三部分:gem(g-ponencapsulationmode,gpon封裝方式)數(shù)據(jù)幀、gem空閑幀和tc開銷(tcoverhead)。
在pon系統(tǒng)的相關(guān)標(biāo)準(zhǔn)中(gpon標(biāo)準(zhǔn)itu-tg.984.3,xgpon標(biāo)準(zhǔn)itu-tg.987.3,ngpon2標(biāo)準(zhǔn)和xgs-pon標(biāo)準(zhǔn)itu-tg.989.3,以下簡稱pon協(xié)議),對(duì)tc組幀的結(jié)構(gòu)進(jìn)行了詳細(xì)描述。目前,實(shí)現(xiàn)pon協(xié)議封裝的tc組幀的電路設(shè)計(jì)存在的問題為:
(1)由于tc組幀是連續(xù)、且速率恒定的(例如gpon中g(shù)tc長度(不含開銷),最小可以為5字節(jié),最大超過38000字節(jié),xg-pon中最小可以為8字節(jié),最大超過155520字節(jié)));而實(shí)際業(yè)務(wù)數(shù)據(jù)(如以太網(wǎng)業(yè)務(wù))是突發(fā)可變的,因此為了進(jìn)行速率適配,需要一個(gè)很大的數(shù)據(jù)緩存(至少能存儲(chǔ)1/2幀最大長度tc組幀)來存儲(chǔ)突發(fā)的業(yè)務(wù)數(shù)據(jù),但這會(huì)占用較大的電路面積。
(2)tc組幀的開銷是固定的,因此,在保證恒定線速率的前提下,空閑幀數(shù)目越少,傳送的數(shù)據(jù)業(yè)務(wù)幀越多,封裝效率越高。但是目前為隨機(jī)插入空閑幀,其升組幀效率較低,進(jìn)而降低了整個(gè)pon系統(tǒng)的吞吐量和qos(qualityofservice,服務(wù)質(zhì)量)。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明解決的技術(shù)問題為:實(shí)現(xiàn)無源光網(wǎng)絡(luò)中傳輸匯聚層組幀時(shí),如何動(dòng)態(tài)控制數(shù)據(jù)幀組幀和空閑幀的插入,在保證tc組幀恒定線速率的同時(shí),盡可能增加數(shù)據(jù)幀的組幀幾率,最大限度的減少空閑幀插入,從而提高整個(gè)pon系統(tǒng)的吞吐量和qos。
為達(dá)到以上目的,本發(fā)明提供的無源光網(wǎng)絡(luò)中傳輸匯聚層組幀的實(shí)現(xiàn)方法,包括以下步驟:
步驟a:當(dāng)gem空閑幀長度+gem數(shù)據(jù)幀長度<所有g(shù)em幀長度+數(shù)據(jù)幀組幀門限值、并且參與tc組幀的數(shù)據(jù)幀長度>0時(shí),若gem幀總長度-gem空閑幀長度-gem數(shù)據(jù)幀長度<gem幀幀頭長度+參與tc組幀的數(shù)據(jù)幀長度;將參與tc組幀的數(shù)據(jù)幀進(jìn)行分片,得到參與分片的數(shù)據(jù)幀,將參與分片的數(shù)據(jù)幀增加gem幀頭后,封裝至gem幀,封裝至gem幀的數(shù)據(jù)幀的長度=gem幀總長度-gem空閑幀長度-gem數(shù)據(jù)幀長度-gem幀幀頭長度,轉(zhuǎn)到步驟b;
步驟b:當(dāng)需要插入空閑幀時(shí),若gem空閑幀長度+gem數(shù)據(jù)幀長度+從數(shù)據(jù)幀組幀電路到fec處理電路之間的路徑長度<所有g(shù)em幀長度、并且參加組幀的數(shù)據(jù)幀長度=0時(shí),若gem幀總長度-gem空閑幀長度-gem數(shù)據(jù)幀長度是否≤最小長度的空閑幀,則插入以下長度空閑幀,形成tc組幀,插入空閑幀的長度=gem幀總長度-gem空閑幀長度-gem數(shù)據(jù)幀長度。
本發(fā)明提供的實(shí)現(xiàn)上述方法的無源光網(wǎng)絡(luò)中傳輸匯聚層組幀的實(shí)現(xiàn)系統(tǒng),包括數(shù)據(jù)幀分片單元和空閑幀插入單元;
數(shù)據(jù)幀分片單元用于:當(dāng)gem空閑幀長度+gem數(shù)據(jù)幀長度<所有g(shù)em幀長度+數(shù)據(jù)幀組幀門限值、并且參與tc組幀的數(shù)據(jù)幀長度>0時(shí),若gem幀總長度-gem空閑幀長度-gem數(shù)據(jù)幀長度<gem幀幀頭長度+參與tc組幀的數(shù)據(jù)幀長度;將參與tc組幀的數(shù)據(jù)幀進(jìn)行分片,得到參與分片的數(shù)據(jù)幀,將參與分片的數(shù)據(jù)幀增加gem幀頭后,封裝至gem幀,封裝至gem幀的數(shù)據(jù)幀的長度=gem幀總長度-gem空閑幀長度-gem數(shù)據(jù)幀長度-gem幀幀頭長度;
空閑幀插入單元用于:當(dāng)需要插入空閑幀時(shí),若gem空閑幀長度+gem數(shù)據(jù)幀長度+從數(shù)據(jù)幀組幀電路到fec處理電路之間的路徑長度<所有g(shù)em幀長度、并且參加組幀的數(shù)據(jù)幀長度=0時(shí),若gem幀總長度-gem空閑幀長度-gem數(shù)據(jù)幀長度是否≤最小長度的空閑幀,則插入以下長度空閑幀,形成tc組幀,插入空閑幀的長度=gem幀總長度-gem空閑幀長度-gem數(shù)據(jù)幀長度。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
(1)本發(fā)明根據(jù)自主研發(fā)的計(jì)算方式,減少了大容量的數(shù)據(jù)幀緩存,進(jìn)而顯著減少了設(shè)計(jì)電路的面積。
(2)本發(fā)明根據(jù)自主研發(fā)的空閑幀插入算法,在保證恒定線路速率的同時(shí),盡可能插入最少長度的空閑幀,以提升組幀效率,進(jìn)而顯著提升了整個(gè)pon系統(tǒng)的吞吐量和qos。
(3)本發(fā)明自主研發(fā)的算法比較簡單,能夠城在于fpga(field-programmablegatearray)或者asic(applicationspecificintegratedcircuit,專門目的而設(shè)計(jì)的集成電路),適用于任意的pon系統(tǒng),特別適用于在單個(gè)電路中支持多模olt或多模pon系統(tǒng)(例如同時(shí)支持gpon和xgpon),非常適于推廣。
附圖說明
圖1為本發(fā)明實(shí)施例中無源光網(wǎng)絡(luò)中傳輸匯聚層組幀的實(shí)現(xiàn)方法的流程圖;
圖2本發(fā)明實(shí)施例中無源光網(wǎng)絡(luò)中傳輸匯聚層組幀的實(shí)現(xiàn)系統(tǒng)的連接框圖。
具體實(shí)施方式
以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
本發(fā)明實(shí)施例中的無源光網(wǎng)絡(luò)包括:
gpon(gigabit-capablepassiveopticalnetworks),gpon中的傳輸匯聚層為gtc;
xg-pon(10-gigabit-capablepassiveopticalnetworks),xg-pon中的傳輸匯聚層為xgtc;
ng-pon2(40-gigabit-capablepassiveopticalnetworks),ng-pon2中的傳輸匯聚層為ng-pon2tc;
xgs-pon,其傳輸匯聚層為xgs-pontc。
參見圖1所示,本發(fā)明實(shí)施例中無源光網(wǎng)絡(luò)中傳輸匯聚層組幀的實(shí)現(xiàn)方法,包括以下步驟:
s1:將tc組幀所有g(shù)em幀長度全部置0,所有g(shù)em幀長度包括已讀取和未讀取的gem數(shù)據(jù)幀長度和gem空閑幀長度,轉(zhuǎn)到s2。
s2:根據(jù)tc協(xié)議或者是帶寬分配,得到tc組幀的總長度;根據(jù)tc組幀的總長度和數(shù)據(jù)開銷長度,得到需要組幀的gem幀總長度,計(jì)算公式為:gem幀總長度=tc組幀的總長度-數(shù)據(jù)開銷。數(shù)據(jù)開銷長度包括tc層開銷和fec開銷,轉(zhuǎn)到s3。
s3:當(dāng)gem空閑幀長度+gem數(shù)據(jù)幀長度<所有g(shù)em幀長度+數(shù)據(jù)幀組幀門限值(該值可以預(yù)先配置)、并且參與tc組幀的數(shù)據(jù)幀長度(該長度在新的突發(fā)到來時(shí)或者分片時(shí)更新)>0時(shí),判斷gem幀總長度-gem空閑幀長度-gem數(shù)據(jù)幀長度是否≥gem幀幀頭長度+參與tc組幀的數(shù)據(jù)幀長度;
若是,增加gem幀頭(對(duì)于gpon協(xié)議,gem幀幀頭長度=5)、并將整個(gè)數(shù)據(jù)幀封裝至gem幀后,更新gem數(shù)據(jù)幀長度和參與tc組幀的數(shù)據(jù)幀長度,重新執(zhí)行s3;
更新后的gem數(shù)據(jù)幀長度=更新前的gem數(shù)據(jù)幀長度+gem幀幀頭長度+參與tc組幀的數(shù)據(jù)幀長度,參與tc組幀的數(shù)據(jù)幀長度=0;
否則將參與tc組幀的數(shù)據(jù)幀分為2片:參與分片的數(shù)據(jù)幀和未參與分片的數(shù)據(jù)幀,將參與分片的數(shù)據(jù)幀增加gem幀頭后,封裝至gem幀,轉(zhuǎn)到s4。
封裝至gem幀的數(shù)據(jù)幀的長度=gem幀總長度-gem空閑幀長度-gem數(shù)據(jù)幀長度-gem幀幀頭長度;
未參與分片的數(shù)據(jù)幀長度=參加組幀的數(shù)據(jù)幀長度-(gem幀總長度-gem空閑幀長度-gem數(shù)據(jù)幀長度-gem幀幀頭長度)。
s4:按照pon協(xié)議規(guī)定的加密算法(例如aes128),對(duì)s3中封裝至gem幀的數(shù)據(jù)幀進(jìn)行加密,轉(zhuǎn)到s5。
s5:當(dāng)需要插入空閑幀時(shí),若gem空閑幀長度+gem數(shù)據(jù)幀長度+從數(shù)據(jù)幀組幀電路到fec處理電路之間的路徑長度(對(duì)于gpon協(xié)議,路徑長度=11)<所有g(shù)em幀長度,且參加組幀的數(shù)據(jù)幀長度=0,此時(shí)判斷gem幀總長度-gem空閑幀長度-gem數(shù)據(jù)幀長度是否>最小長度的空閑幀(對(duì)于gpon協(xié)議,最小長度的空閑幀=5):
若是,插入以下長度的空閑幀后更新gem空閑幀長度,重新執(zhí)行s5;插入空閑幀的長度=所有g(shù)em幀長度-gem空閑幀長度+gem數(shù)據(jù)幀長度-路徑長度;更新后的gem空閑幀長度=更新前gem空閑幀長度+插入空閑幀的長度。
否則插入以下長度空閑幀,形成tc組幀,插入空閑幀的長度=gem幀總長度-gem空閑幀長度-gem數(shù)據(jù)幀長度,轉(zhuǎn)到s6。
s5中插入空閑幀的長度小于最小長度的空閑幀最小長度的空閑幀,只取最小長度的空閑幀中前插入空閑幀的長度個(gè)字節(jié)即可。
s6:按照pon協(xié)議規(guī)定的fec(forwarderrorcorrection,前向糾錯(cuò))算法,在tc組幀中增加fec校驗(yàn)字節(jié)、并更新所有g(shù)em幀長度;若電路配置不支持fec時(shí),s6僅更新所有g(shù)em幀長度,轉(zhuǎn)到s7。
s7:按照pon協(xié)議規(guī)定的擾碼算法,對(duì)線路數(shù)據(jù)進(jìn)行擾碼,加擾線路數(shù)據(jù),轉(zhuǎn)到s8。
s8:輸出最終的tc組幀。
參見圖2所示,本發(fā)明實(shí)施例中的實(shí)現(xiàn)上述方法的無源光網(wǎng)絡(luò)中傳輸匯聚層組幀的實(shí)現(xiàn)系統(tǒng),包括數(shù)據(jù)幀分片單元、數(shù)據(jù)幀加密單元、空閑幀插入單元、fec處理單元和數(shù)據(jù)加擾單元。
數(shù)據(jù)幀分片單元用于:當(dāng)gem空閑幀長度+gem數(shù)據(jù)幀長度<所有g(shù)em幀長度+數(shù)據(jù)幀組幀門限值、并且參與tc組幀的數(shù)據(jù)幀長度>0時(shí):
若gem幀總長度-gem空閑幀長度-gem數(shù)據(jù)幀長度<gem幀幀頭長度+參與tc組幀的數(shù)據(jù)幀長度;將參與tc組幀的數(shù)據(jù)幀進(jìn)行分片,得到參與分片的數(shù)據(jù)幀,將參與分片的數(shù)據(jù)幀增加gem幀頭后,封裝至gem幀,封裝至gem幀的數(shù)據(jù)幀的長度=gem幀總長度-gem空閑幀長度-gem數(shù)據(jù)幀長度-gem幀幀頭長度。
若gem幀總長度-gem空閑幀長度-gem數(shù)據(jù)幀長度≥gem幀幀頭長度+參與tc組幀的數(shù)據(jù)幀長度,則增加gem幀頭、并將增加gem幀頭的數(shù)據(jù)幀封裝至gem幀,更新gem數(shù)據(jù)幀長度和參與tc組幀的數(shù)據(jù)幀長度后,重新執(zhí)行數(shù)據(jù)幀分片單元的工作流程;更新后的gem數(shù)據(jù)幀長度=更新前的gem數(shù)據(jù)幀長度+gem幀幀頭長度+參與tc組幀的數(shù)據(jù)幀長度。
數(shù)據(jù)幀加密單元用于:按照pon協(xié)議規(guī)定的加密算法(例如aes128),對(duì)數(shù)據(jù)幀分片單元封裝至gem幀的數(shù)據(jù)幀進(jìn)行加密。
空閑幀插入單元用于:當(dāng)需要插入空閑幀時(shí),若gem空閑幀長度+gem數(shù)據(jù)幀長度+從數(shù)據(jù)幀組幀電路到fec處理電路之間的路徑長度<所有g(shù)em幀長度、并且參加組幀的數(shù)據(jù)幀長度=0時(shí):
若gem幀總長度-gem空閑幀長度-gem數(shù)據(jù)幀長度是否≤最小長度的空閑幀,則插入以下長度空閑幀,形成tc組幀,插入空閑幀的長度=gem幀總長度-gem空閑幀長度-gem數(shù)據(jù)幀長度。
若gem幀總長度-gem空閑幀長度-gem數(shù)據(jù)幀長度是否>最小長度的空閑幀,則插入以下長度的空閑幀后更新gem空閑幀長度,重新執(zhí)行空閑幀插入單元的工作流程;插入空閑幀的長度=所有g(shù)em幀長度-gem空閑幀長度+gem數(shù)據(jù)幀長度-路徑長度;更新后的gem空閑幀長度=更新前gem空閑幀長度+插入空閑幀的長度。
fec處理單元用于:按照pon協(xié)議規(guī)定fec算法,增加fec校驗(yàn)字節(jié);fec功能是一個(gè)可選的功能,當(dāng)電路配置不需要支持fec時(shí),fec處理單元處理單元僅僅完成所有g(shù)em幀長度的更新。
數(shù)據(jù)加擾單元用于:按照pon協(xié)議規(guī)定的擾碼算法,對(duì)線路數(shù)據(jù)進(jìn)行擾碼;加擾線路數(shù)據(jù)。
本發(fā)明不局限于上述實(shí)施方式,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也視為本發(fā)明的保護(hù)范圍之內(nèi)。本說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。