中國(guó)電信股份有限公司南京分公司網(wǎng)絡(luò)操作維護(hù)中心 唐維東
以太網(wǎng)無(wú)源光網(wǎng)絡(luò)協(xié)議和常見故障簡(jiǎn)析
中國(guó)電信股份有限公司南京分公司網(wǎng)絡(luò)操作維護(hù)中心 唐維東
闡述了MPCP(多點(diǎn)控制協(xié)議)中ONU(光網(wǎng)絡(luò)單元)注冊(cè)的詳細(xì)過(guò)程及在此過(guò)程中常見的故障,運(yùn)用總結(jié)了在實(shí)現(xiàn)EPON(以太網(wǎng)無(wú)源光網(wǎng)絡(luò))協(xié)議分析能力的設(shè)計(jì)與研發(fā)中的經(jīng)驗(yàn),提出以EPON協(xié)議的解碼分析為基礎(chǔ)的分析處理方法,為EPON中層出不窮的疑難故障提供一種定位和解決方案。
以太網(wǎng)無(wú)源光網(wǎng)絡(luò);注冊(cè);故障;多點(diǎn)控制協(xié)議;測(cè)距
EPON(以太網(wǎng)無(wú)源光網(wǎng)絡(luò))在下行方向〔OLT(光線路終端)到ONU(光網(wǎng)絡(luò)單元)的方向〕,從傳輸上來(lái)說(shuō)采用了廣播方式,OLT發(fā)給所有ONU的數(shù)據(jù)都會(huì)出現(xiàn)在下行數(shù)據(jù)中,ONU通過(guò)注冊(cè)時(shí)OLT為其分配的LLID(邏輯鏈路識(shí)別)來(lái)區(qū)分哪些數(shù)據(jù)包是屬于自己的。在上行方向(即ONU到OLT的方向),采用了時(shí)分復(fù)用方式,每個(gè)ONU在OLT通過(guò)gate幀指定的時(shí)隙向上發(fā)送數(shù)據(jù)。由于在這整個(gè)過(guò)程中,多個(gè)ONU處于一個(gè)OLT的控制之下,所以EPON規(guī)范中把這套傳輸控制協(xié)議叫做MPCP(多點(diǎn)控制協(xié)議),它是整個(gè)EPON通信機(jī)制的基礎(chǔ)。
盡管大家都清楚MPCP的功能和重要性,但在EPON的日常維護(hù)中,它通常對(duì)于很多的技術(shù)人員尤其是網(wǎng)絡(luò)維護(hù)人員來(lái)說(shuō),處于一種看不到、摸不著的地位。這是因?yàn)镸PCP僅僅出現(xiàn)于OLT和ONU數(shù)據(jù)傳輸控制過(guò)程中,在OLT的上行口和ONU的LAN(局域網(wǎng))等業(yè)務(wù)功能接口中已經(jīng)再也看不到它的影子。這種情況有時(shí)候?qū)τ诮鉀Q一些EPON運(yùn)維中的疑難雜癥是很不利的,所以筆者嘗試揭開MPCP的神秘面紗,讓這個(gè)協(xié)議分析的盲區(qū)展露出來(lái),希望能對(duì)EPON維護(hù)有所幫助。
MPCP是對(duì)以太網(wǎng)控制幀的一種擴(kuò)展,它只是增加了控制幀中的操作碼,具體見表 1。
從表 1 可以看出,MPCP只包含了gate、report、register_req、register和register_ack共5種操作,在這5種操作的共同控制下,完成MPCP的整個(gè)協(xié)議流程。而在MPCP的所有流程中,重要的內(nèi)容大致包含3類:注冊(cè)與注銷、測(cè)距、動(dòng)態(tài)帶寬分配。下面就分別闡述5種操作是如何配合完成這3類流程的,同時(shí)也會(huì)在中間穿插加入常見故障與這些流程間的關(guān)系。
使用EPON協(xié)議分析,從光路上可以抓取到MPCP的完整協(xié)議數(shù)據(jù),圖 1 就是典型的ONU注冊(cè)流程。
圖 1 ONU注冊(cè)流程
圖 1 中用紅色框圈起來(lái)的部分就是個(gè)正常的ONU注冊(cè)流程,步驟如下。
步驟1:OLT下行廣播discovery類型的gate幀。這個(gè)幀的主要功能是通知所有待注冊(cè)的ONU用于注冊(cè)請(qǐng)求的一個(gè)上行時(shí)隙(我們也常常把這個(gè)時(shí)隙的范圍稱為注冊(cè)窗口),它沒有特定的接收對(duì)象,所以LLID為廣播LLID 65535,它的目的MAC(媒體訪問(wèn)控制)地址是固定的組播地址01-80-C2-00-00-01,所有的ONU都可以在這個(gè)指定的時(shí)隙里發(fā)送register_req幀給OLT。這個(gè)幀的發(fā)送頻率可以在OLT里調(diào)整,常見的設(shè)置為每秒鐘發(fā)送一次。這個(gè)幀的處理對(duì)OLT很重要,它還跟OLT里設(shè)置的ONU最大距離有關(guān)(關(guān)于這一點(diǎn)會(huì)在后文里進(jìn)一步闡述)。
步驟2:ONU發(fā)送register_req幀給OLT。ONU接收到OLT廣播的discovery之后,就可以根據(jù)注冊(cè)窗口的情況,在允許的時(shí)間范圍內(nèi)擇機(jī)發(fā)送register_req幀。如果同時(shí)有幾個(gè)ONU發(fā)送register_req幀,那么是有可能存在沖突的,因?yàn)檫@是EPON系統(tǒng)中唯一一個(gè)未獲得OLT特定授權(quán)時(shí)隙的ONU發(fā)光行為,discovery規(guī)定的時(shí)隙是所有待注冊(cè)O(shè)NU共享的。必須了解的是,即使這個(gè)幀發(fā)生沖突,也只會(huì)導(dǎo)致相關(guān)ONU本次注冊(cè)失敗,并不會(huì)影響到已經(jīng)注冊(cè)成功的ONU,當(dāng)然是在OLT中ONU最大距離設(shè)置跟實(shí)際情況一致的前提下。這個(gè)幀的LLID很特殊,是32767,也就是0x7FFF。
步驟3:OLT廣播給特定ONU MAC地址register幀。在OLT接收到ONU的register_req幀之后,在時(shí)間系統(tǒng)上就完成了同步,測(cè)距也已經(jīng)完成,此后ONU的所有發(fā)光行為就必須按照OLT的授權(quán)進(jìn)行,否則就是亂發(fā)光。OLT在收到ONU的register_req之后,OLT可以根據(jù)授權(quán)情況給ONU回復(fù)register幀,幀內(nèi)容可能是接受注冊(cè),也可能是拒絕注冊(cè)。register的LLID仍然是65535廣播LLID,如果是接受注冊(cè),在register里會(huì)有為ONU分配的LLID字段。
步驟4:OLT給特定ONU發(fā)送gate幀。在ONU接收到OLT發(fā)來(lái)的register幀后,如果幀內(nèi)容是拒絕注冊(cè),那ONU就應(yīng)該什么都不做,結(jié)束注冊(cè)過(guò)程,等待一段時(shí)間再次嘗試;如果幀內(nèi)容是接受注冊(cè),那就記錄下幀里面分配給自己的LLID,等待OLT下一個(gè)gate幀分配給自己發(fā)光時(shí)隙。這個(gè)GATE幀就是用于OLT給ONU發(fā)光分配時(shí)隙的,其LLID就是剛才在register中分配的LLID值。
步驟5:ONU向OLT發(fā)送register_ack幀。ONU接收到OLT發(fā)送的gate幀之后,得到了發(fā)光許可,在這個(gè)OLT許可的時(shí)刻,向OLT發(fā)送register_ack幀,這個(gè)幀的LLID就是OLT已經(jīng)分配給ONU的LLID。OLT接收到本幀后,MPCP注冊(cè)過(guò)程成功完成。今后的所有過(guò)程都交給ONU的report和OLT的gate幀接管。
我們?cè)趯?shí)際的網(wǎng)絡(luò)維護(hù)當(dāng)中,經(jīng)常會(huì)遇到ONU不上線的疑難故障,這個(gè)時(shí)候就可以用EPON協(xié)議分析診斷是哪個(gè)環(huán)節(jié)出現(xiàn)了問(wèn)題。首先要搞清楚是ONU沒有接收到discovery gate還是OLT沒有接收到ONU發(fā)送的register_req,再或者是ONU沒發(fā)送過(guò)register_req,這就能區(qū)分出是上行還是下行方向的問(wèn)題;如果這幾種情況都不是,那就要看后續(xù)環(huán)節(jié)中的register是拒絕還是接受,以及其他流程是否規(guī)范,是否存在不按分配時(shí)隙發(fā)送上行數(shù)據(jù)等情況。
由于EPON系統(tǒng)上行方向是多點(diǎn)到點(diǎn)的拓?fù)浣Y(jié)構(gòu),所以每個(gè)ONU的發(fā)送時(shí)隙必須與OLT分配的時(shí)隙保持一致,否則各個(gè)ONU的上行數(shù)據(jù)就會(huì)發(fā)生碰撞,因此ONU側(cè)的時(shí)鐘要與OLT側(cè)的時(shí)鐘同步。EPON系統(tǒng)采用時(shí)間戳方式進(jìn)行系統(tǒng)同步。OLT、ONU兩端具有同頻時(shí)鐘,OLT在每一個(gè)MPCP包中都會(huì)發(fā)送當(dāng)前OLT的時(shí)鐘計(jì)數(shù)器值(即時(shí)間戳),ONU收到OLT發(fā)來(lái)的時(shí)間戳后,用該值來(lái)替代本地的時(shí)鐘計(jì)數(shù)器值,這樣保證ONU以落后于OLT一定的時(shí)間與OLT在時(shí)間上同步。這個(gè)落后的時(shí)間是個(gè)定值,就等于光信號(hào)從OLT到達(dá)ONU所經(jīng)歷的時(shí)鐘計(jì)數(shù)器增量,可以由測(cè)距過(guò)程來(lái)確定。這種同步是一種一定頻度的計(jì)數(shù)器值的修正,保證兩端的計(jì)數(shù)器偏差在系統(tǒng)允許的范圍之內(nèi)。
不同的ONU與OLT間的距離不同,也就導(dǎo)致光信號(hào)到達(dá)OLT的時(shí)延不同。OLT只有清楚每個(gè)ONU的實(shí)際距離才能對(duì)各ONU發(fā)光時(shí)隙進(jìn)行精確計(jì)算、補(bǔ)償和分配,從而避免在上行時(shí)間片中發(fā)生碰撞。測(cè)距的方法有很多種,比如擴(kuò)頻法測(cè)距、帶外法測(cè)距等,而目前市場(chǎng)上的所有設(shè)備采用的都是帶內(nèi)開窗測(cè)距法。帶內(nèi)開窗測(cè)距法技術(shù)簡(jiǎn)單,而且不需要占用額外的資源,它跟系統(tǒng)時(shí)鐘同步形成了一套整體的方案。
從圖 2 可以看出,每個(gè)OLT發(fā)送的MPCP包都會(huì)攜帶時(shí)間戳信息tx,而ONU接收到之后就把本地時(shí)間戳更新為tx,這就是系統(tǒng)時(shí)間戳同步。OLT在t3時(shí)刻把下行MPCP包發(fā)送給ONU,ONU在收到該數(shù)據(jù)包后,立即更新本地時(shí)間戳為t3,在OLT授權(quán)ONU發(fā)送消息的時(shí)刻t4,ONU發(fā)送一個(gè)上行MPCP包給OLT,此時(shí)ONU的本地時(shí)間戳為t4;OLT在t5(OLT的本地時(shí)間戳)時(shí)刻接收到ONU發(fā)來(lái)的MPCP包。由圖 3 可知,OLT與ONU之間的信道環(huán)回時(shí)延tRTT=(t5-t3)-(t4-t3)=t5-t4,即OLT接收時(shí)刻的本地時(shí)間戳減去來(lái)自O(shè)NU的MPCP包內(nèi)的時(shí)間戳,就等于OLT和ONU間的往返時(shí)延。因此,OLT與ONU間的距離就可以計(jì)算出來(lái),等于c(t5-t4)/2n,其中c為光速,n為光纖的折射率。綜上所述,ONU接收到任意OLT的MPCP包都可以進(jìn)行系統(tǒng)同步,而OLT則接收到每個(gè)ONU的MPCP包都可以進(jìn)行測(cè)距。如果同一個(gè)ONU幾次測(cè)距結(jié)果之間的差異特別大的話,OLT可以給出告警,從而提醒維護(hù)人員有不正常的情況發(fā)生。
前面曾經(jīng)提到過(guò)OLT在處理discovery類型的gate幀時(shí)跟設(shè)置的最大ONU距離有關(guān)。我們假定discovery幀給出的注冊(cè)窗口大小為W1,最大ONU距離為L(zhǎng)1,最小ONU距離為0(OLT里一般都認(rèn)為最小ONU距離為0,不允許設(shè)置這一參數(shù)),那么當(dāng)OLT每次發(fā)送完discovery幀之后,它需要預(yù)留給ONU注冊(cè)請(qǐng)求幀的總時(shí)間就是W1加上光信號(hào)傳送2L1距離的時(shí)間(從這里可發(fā)現(xiàn)discovery的開銷還是比較大的),這樣才不至于和其他上行數(shù)據(jù)發(fā)生信號(hào)碰撞。那么如果ONU的實(shí)際最大距離大于OLT里的參數(shù)設(shè)置時(shí),OLT在發(fā)送完discovery幀之后,就會(huì)發(fā)生預(yù)留注冊(cè)時(shí)間片不足,從而導(dǎo)致注冊(cè)失敗以及正常ONU斷線。由于最大ONU距離設(shè)置錯(cuò)誤而導(dǎo)致的ONU斷線的問(wèn)題在實(shí)際中比較常見,一般發(fā)生在有新的ONU加入或者有ONU開關(guān)機(jī)時(shí),其他已注冊(cè)O(shè)NU會(huì)因?yàn)閿?shù)據(jù)碰撞而掉線。但是一味加大最大ONU距離設(shè)置也不是好方法,因?yàn)檫@會(huì)導(dǎo)致上行方向帶寬的額外浪費(fèi)。另外,discovery的發(fā)送頻度也應(yīng)適當(dāng),否則也會(huì)對(duì)上行帶寬造成浪費(fèi),合理的OLT參數(shù)設(shè)置是十分必要的。
當(dāng)ONU的MPCP層注冊(cè)完成后,所有的上行帶寬分配就掌控在ONU的report和OLT的gate配合之下,這就是常說(shuō)的上行方向的動(dòng)態(tài)帶寬分配?;旧鲜怯蒓NU發(fā)送report報(bào)告通知待發(fā)送數(shù)據(jù)隊(duì)列的情況,OLT根據(jù)整體的帶寬分配狀況在gate幀里分配相應(yīng)的時(shí)間片。
在實(shí)際EPON維護(hù)當(dāng)中,有一種特殊的網(wǎng)絡(luò)故障,就是當(dāng)入戶ONU的任意兩個(gè)LAN口被硬環(huán)回之后,只要用戶計(jì)算機(jī)發(fā)送一個(gè)廣播包即可觸發(fā)大規(guī)模的廣播風(fēng)暴,此時(shí)ONU會(huì)不斷申請(qǐng)上行帶寬,而OLT又不斷為其分配帶寬,直到上行帶寬被占用殆盡,最終使得同一OLT PON口下的所有ONU無(wú)法正常通信。在這種故障發(fā)生的時(shí)候,我們可以用EPON協(xié)議分析的統(tǒng)計(jì)功能定位到發(fā)生硬環(huán)回的用戶ONU,其特征是可以明顯看到該ONU的下行MPCP包數(shù)量大大多于其他ONU的下行MPCP包數(shù)量,大大提高排障效率。
EPON是個(gè)綜合的網(wǎng)絡(luò),其承載的業(yè)務(wù)種類繁多,數(shù)據(jù)流量大,所以面對(duì)各類故障的時(shí)候,我們必須保持清醒的頭腦,從各個(gè)層次來(lái)綜合考慮,才不至于以偏概全,或者錯(cuò)漏故障的根源。比如對(duì)于ONU斷線故障,首先要判別出來(lái)是PPPoE(以太網(wǎng)上點(diǎn)到點(diǎn)協(xié)議)斷線還是MPCP斷線,因?yàn)楦@二者相關(guān)的主要設(shè)備是不一樣的。如果是MPCP斷線,就可以用EPON協(xié)議分析來(lái)分析是OLT主動(dòng)發(fā)起了注銷類型的register,還是ONU長(zhǎng)時(shí)間不發(fā)送report導(dǎo)致的,這樣才能一步步縮小排查的范圍,并最終找出故障的根源。
MPCP是EPON中最基礎(chǔ)的傳輸控制協(xié)議,我們以往對(duì)它看不到、摸不著,實(shí)際上使得維護(hù)人員對(duì)很多基于該協(xié)議的故障及其成因一知半解,往往停留在經(jīng)驗(yàn)的層面,而無(wú)法從理論的本質(zhì)上解讀和把握它?,F(xiàn)在只要我們熟練掌握了MPCP的原理和流程,就可以借助EPON協(xié)議分析以不變應(yīng)萬(wàn)變,從而實(shí)現(xiàn)準(zhǔn)確、快速的故障定位,給用戶帶來(lái)優(yōu)質(zhì)服務(wù)的同時(shí),也大大提升了我們的工作效率?!?/p>