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