文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2018.S1.035
電力數(shù)據(jù)通信網(wǎng)是以保障電網(wǎng)安全生產(chǎn)為目的,采用路由器、光端機等設(shè)備搭建而成,用于傳輸電網(wǎng)生產(chǎn)控制信號、電網(wǎng)公司辦公內(nèi)網(wǎng)、視頻會議等綜合業(yè)務(wù)的通信網(wǎng)絡(luò)。
電力數(shù)據(jù)通信網(wǎng)網(wǎng)絡(luò)結(jié)構(gòu)與公司運維范圍內(nèi)變電站的地理位置息息相關(guān),基本采用三級組網(wǎng)結(jié)構(gòu),核心層位于公司總部,由多臺高性能路由器組成,匯聚層由距離公司較近的幾個高電壓等級變電站組成,站內(nèi)路由器既擔(dān)當(dāng)匯聚路由器的功能,同時滿足本站內(nèi)的通信業(yè)務(wù)接入。接入層主要由低電壓等級變電站內(nèi)路由器構(gòu)成,由于站內(nèi)路由器僅需要完成業(yè)務(wù)接入功能,所以對路由器性能要求不高。由于各個變電站之間距離較遠,為保證業(yè)務(wù)質(zhì)量,路由器之間的互聯(lián)一般通過光端機承載。如圖1所示。
2 電力數(shù)據(jù)通信網(wǎng)業(yè)務(wù)傳遞模型
根據(jù)電力數(shù)據(jù)通信網(wǎng)業(yè)務(wù)特性,電網(wǎng)公司多采用BGP MPLS VPN跨域技術(shù)進行業(yè)務(wù)之間的互通,網(wǎng)絡(luò)中公司總部核心層和各個地市公司接入層分別為BGP的不同自治域(AS)。為保證業(yè)務(wù)的安全性以及數(shù)據(jù)包的快速轉(zhuǎn)發(fā),全網(wǎng)采用MPLS VPN技術(shù)。
由于電力數(shù)據(jù)通信網(wǎng)中業(yè)務(wù)流量一般是總分結(jié)構(gòu),核心位于公司總部區(qū)域,接入位于各個地市區(qū)域,故業(yè)務(wù)訪問一般會跨越不同的BGP自治域,且業(yè)務(wù)數(shù)據(jù)包在傳遞過程中會被各種協(xié)議的報頭進行封裝。
以電力數(shù)據(jù)通信網(wǎng)調(diào)度提票業(yè)務(wù)為例,結(jié)構(gòu)示意圖如圖2 所示。末端站點提票終端發(fā)送提票請求,業(yè)務(wù)數(shù)據(jù)包通過VPN隧道發(fā)送至BGP AS-2內(nèi)的數(shù)據(jù)通信網(wǎng)路由器上,數(shù)據(jù)通信網(wǎng)業(yè)務(wù)在光端機的承載下,通過BGP自治域邊界ASBR路由器,最終傳輸至BGP核心區(qū)域AS-1的總部路由器上,路由器通過與提票服務(wù)器建立的VPN隧道,將信息傳遞到提票服務(wù)器,完成業(yè)務(wù)的傳遞。
3 數(shù)據(jù)封裝與MTU值
3.1 數(shù)據(jù)封裝過程概述
根據(jù)TCP/IP四層協(xié)議模型,由下至上分為數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層。以提票業(yè)務(wù)為例,由于數(shù)據(jù)是從應(yīng)用程序發(fā)出,應(yīng)用層的應(yīng)用程序數(shù)據(jù)首先進行TCP封裝,封裝完畢后,變成可在傳輸層傳遞的數(shù)據(jù)段(segment),傳輸層的數(shù)據(jù)段再進行IP封裝,增加IP頭部信息,稱為網(wǎng)絡(luò)層的IP數(shù)據(jù)包,最后將數(shù)據(jù)包增加幀頭等信息,變?yōu)榭梢酝ㄟ^數(shù)據(jù)鏈路層傳輸?shù)囊蕴W(wǎng)幀。當(dāng)信息傳輸?shù)侥康牡貢r,在進行以上封裝的解封裝工作,將應(yīng)用程序信息傳遞至目標(biāo)應(yīng)用程序。
3.2 MTU值簡介
MTU為最大傳輸單元(Maximum Transmission Unit)的簡稱,一般是指以太網(wǎng)幀結(jié)構(gòu)中數(shù)據(jù)Data字段最大的長度(單位為byte)。
以太網(wǎng)幀(Ethernet II)由幀頭、數(shù)據(jù)部分及校驗位構(gòu)成。其中以太網(wǎng)幀的幀頭大小為14 bytes(DMAC目的MAC地址6 bytes,SMAC源MAC地址6 bytes,Type域2 bytes),CRC校驗部分4 bytes,剩下承載上層協(xié)議(IP數(shù)據(jù)包)的字段叫做數(shù)據(jù)載荷,數(shù)據(jù)載荷部分大小為46-1 500 bytes,數(shù)據(jù)載荷的最大長度稱之為MTU,即MTU值最大為1 500 bytes,以太網(wǎng)幀最大為1 518 bytes。[1]
MTU值為數(shù)據(jù)鏈路層中對最大數(shù)據(jù)載荷的定義,不考慮幀頭以及校驗位,即為網(wǎng)絡(luò)層中的IP數(shù)據(jù)包長度。如果網(wǎng)絡(luò)層IP數(shù)據(jù)包長度超過MTU值,就會被分片處理,保證每一片IP包不超過MTU值。但如果業(yè)務(wù)通信是基于TCP連接的,那么一般情況下IP數(shù)據(jù)包不允許分片,如果數(shù)據(jù)包大小超過MTU那么數(shù)據(jù)包將會被丟棄,本文中的提票業(yè)務(wù)就是基于TCP連接的業(yè)務(wù)。
此外,在電力數(shù)據(jù)通信網(wǎng)中,為保證業(yè)務(wù)遠距離傳輸?shù)目煽啃?,一般情況下路由器間的遠距離互聯(lián)需要借助光端機,由光端機來承載數(shù)據(jù)通信網(wǎng)業(yè)務(wù),例如圖1 所示。光端機可以設(shè)置鏈路上允許通過的最大幀長度,從而影響網(wǎng)絡(luò)層MTU值及傳輸層的數(shù)據(jù)分片。
3.3 MSS簡介
數(shù)據(jù)鏈路層有MTU的概念,傳輸層也有類似MTU的概念,這就是MSS,全稱為Maximum Segment Size,可以直譯為最大分段長度。MSS就是TCP段每次能夠傳輸?shù)淖畲髷?shù)據(jù)載荷。即TCP數(shù)據(jù)段中除去TCP包頭后的數(shù)據(jù)載荷部分最大長度。在建立TCP連接過程中,首先要協(xié)商雙方的MSS值,這個值TCP協(xié)議在實現(xiàn)的時候往往用MTU值減去IP數(shù)據(jù)包包頭的大?。?0 bytes)和TCP數(shù)據(jù)段的包頭(20 bytes),由于MTU值一般為1 500,所以往往MSS為1 460,默認情況下,二者的長度相差40 bytes。通信雙方會根據(jù)雙方提供的MSS值得最小值確定為這次連接的最大MSS值。如果雙方的MSS值設(shè)定不一致,則協(xié)商結(jié)果以小的為準(zhǔn)。在實際業(yè)務(wù)傳輸過程中,部分型號的路由器可以調(diào)整MSS值,從而影響網(wǎng)絡(luò)層IP數(shù)據(jù)包大小及數(shù)據(jù)鏈路層MTU。而光端機可以設(shè)置鏈路上允許通過的最大幀長度,從而影響網(wǎng)絡(luò)層MTU值及傳輸層的MSS值。[2]
4 業(yè)務(wù)網(wǎng)絡(luò)仿真
針對電力數(shù)據(jù)通信網(wǎng)中的數(shù)據(jù)包大小進行仿真分析,仿真研究業(yè)務(wù)數(shù)據(jù)報文在路由器間傳遞過程中的大小,由此得出數(shù)據(jù)在傳遞過程中的封裝過程,了解MTU值對數(shù)據(jù)傳輸大小的限制作用,下一步利用研究結(jié)果解決電力數(shù)據(jù)通信網(wǎng)中業(yè)務(wù)數(shù)據(jù)大包不通的問題。
4.1 ICMP數(shù)據(jù)包仿真研究
通過eNSP搭建仿真環(huán)境,如圖3所示,PC4和PC5分別模擬為兩個站點的PC客戶端,通過ping命令來研究icmp協(xié)議在數(shù)據(jù)網(wǎng)路由器中的傳遞過程中的數(shù)據(jù)包大小變化。
第一步,在PC4上運行ping命令,目的地址是PC5的IP地址,其中-l命令是規(guī)定數(shù)據(jù)包大小為1 472 bytes,如圖4所示:
第二步,使用Wireshark抓包工具,在PC4的Ethernet0/0/1端口進行抓包,得到結(jié)果如圖5所示。
可以看到,數(shù)據(jù)包原始數(shù)據(jù)大小為1 472 bytes,通過icmp協(xié)議封裝后,數(shù)據(jù)包大小變?yōu)? 480 bytes,通過IP協(xié)議封裝后,數(shù)據(jù)包大小變?yōu)? 500 bytes,通過幀封裝后,數(shù)據(jù)包大小最終變?yōu)? 514 bytes(Wireshark工具不計算幀尾的4 btyes的FCS校驗位,加上幀尾的校驗位,數(shù)據(jù)總長度為1 518)。由此可以得出本案例數(shù)據(jù)包在傳輸過程中不同協(xié)議或幀封裝所需要增加的報文長度如表1 所示:
我們知道,在以太網(wǎng)幀最大長度為1 518 bytes,由此可以推斷,當(dāng)我們在PC上可以ping的最大數(shù)據(jù)長度為1 518-18-20-8=1 472 bytes,仿真軟件驗證的結(jié)果如下,與預(yù)先的推斷一致,如圖6所示:
4.2 電力數(shù)據(jù)網(wǎng)中ICMP數(shù)據(jù)包仿真研究
由于電力數(shù)據(jù)網(wǎng)的網(wǎng)絡(luò)結(jié)構(gòu)特點,全網(wǎng)采用BGP MPLS VPN技術(shù)進行組網(wǎng),該組網(wǎng)方式在使用ICMP協(xié)議進行ping測試時,需要考慮在網(wǎng)絡(luò)層與數(shù)據(jù)鏈路層之間再封裝兩層mpls標(biāo)簽(一層為用于查找公網(wǎng)路由的公網(wǎng)標(biāo)簽,一層是用來查找VPN路由的私網(wǎng)標(biāo)簽),每層標(biāo)簽大小為4 bytes。所以仿真結(jié)果如圖7、圖8所示:
此時,使用Wireshark工具抓到的以太網(wǎng)幀長度為1 472+8+20+4+4+14=1 522,加上校驗位,實際幀長度為1 526 bytes,其中網(wǎng)絡(luò)層封裝后的數(shù)據(jù)包大小為1 472+8+20=1 500 bytes,正好為MTU值,故1 472為ping命令可以攜帶的最大數(shù)據(jù)載荷長度。由此可以得出本案例數(shù)據(jù)包在電力數(shù)據(jù)通信網(wǎng)實際傳輸過程中不同協(xié)議或幀封裝所需要增加的報文長度表2所示:
上述仿真結(jié)果表明,當(dāng)業(yè)務(wù)在電力數(shù)據(jù)通信網(wǎng)傳輸過程中,數(shù)據(jù)先后會經(jīng)過傳輸層封裝、網(wǎng)絡(luò)層封裝以及數(shù)據(jù)鏈路層封裝,最終通過光端機進行遠距離傳輸。由于本文中的提票業(yè)務(wù)是基于TCP連接的,在網(wǎng)絡(luò)層不允許分片,所以網(wǎng)絡(luò)層封裝后的IP數(shù)據(jù)包長度必須小于等于1500 bytes,才能保證數(shù)據(jù)包的有效傳遞,否則數(shù)據(jù)包將會被丟棄,導(dǎo)致業(yè)務(wù)無法聯(lián)通。
5 利用MTU值解決業(yè)務(wù)大包不通問題
5.1 問題描述
在電力數(shù)據(jù)通信網(wǎng)實際運行過程中,在某次大型網(wǎng)絡(luò)結(jié)構(gòu)調(diào)整后,出現(xiàn)了提票業(yè)務(wù)不通問題,如圖2所示,末端站點1的工作人員反饋提票客戶端可以ping通總部服務(wù)器,但是客戶端瀏覽器無法打開提票頁面,提票工作無法完成。
5.2 問題分析
通過測試發(fā)現(xiàn),提票終端可以ping通總部服務(wù)器,但當(dāng)限定數(shù)據(jù)包長度時,大包無法ping通,經(jīng)測試,最大可以ping通的數(shù)據(jù)包大小為1 468 bytes,根據(jù)本文中的結(jié)論,可以得出此時在網(wǎng)絡(luò)層的IP數(shù)據(jù)包大小為1 496 bytes,在數(shù)據(jù)鏈路層的以太網(wǎng)幀大小為1 496+4+4+18=1 522 bytes。
通過檢查路由器的配置,發(fā)現(xiàn)路由器MTU值設(shè)置為1 500 bytes,1 496小于1 500,所以網(wǎng)絡(luò)層MTU值滿足條件。
此時,我們考慮傳輸層以及數(shù)據(jù)鏈路層的兩個參數(shù),一個是傳輸層MSS,另一個是數(shù)據(jù)鏈路層最大幀長度。通過查看路由器配置,發(fā)現(xiàn)MSS為默認值1 460 bytes,根據(jù)3.3章節(jié),得出業(yè)務(wù)數(shù)據(jù)的實際TCP數(shù)據(jù)載荷大小為1 496-20=1 476 bytes,小于MSS值,故傳輸層參數(shù)滿足條件。通過查看光端機配置,我們發(fā)現(xiàn),光端機最大幀長度設(shè)置為1 518 bytes,而本案例中實際傳輸?shù)囊蕴W(wǎng)幀大小為1 522 bytes,所以導(dǎo)致以太網(wǎng)幀被光端機丟棄,造成業(yè)務(wù)不通。
5.3 問題處理
通過前面章節(jié)的分析,問題可以從兩個方面解決,一方面可以調(diào)整MSS值(默認為1 460),通過在路由器上配置ip tcp adjust-mss 1 456,可以使數(shù)據(jù)的MSS值調(diào)整為1 456,這樣數(shù)據(jù)封裝成以太網(wǎng)幀后的大小為1 518,滿足最大幀長度要求,可以通過光端機進行傳輸。另一方面可以通過修改光端機最大幀長度,如圖9所示,以馬可尼光端機為例,將最大幀長度上調(diào)為1 600,同樣可以使數(shù)據(jù)通過光端機進行傳輸。實際測試顯示,通過兩種方法均能解決提票業(yè)務(wù)大包不通問題。
本文通過分析數(shù)據(jù)包的幀結(jié)構(gòu)以及封裝過程,了解了MSS值、MTU值及最大幀長度在數(shù)據(jù)傳輸過程中的功能及作用,學(xué)會了通過調(diào)整MSS值及最大幀長度參數(shù)解決業(yè)務(wù)大包不通問題,為今后電力數(shù)據(jù)通信網(wǎng)業(yè)務(wù)大包不通故障的分析處理提供了新的思路,積累了寶貴經(jīng)驗。
參考文獻
[1] FALL K R,STEVENS W R,TCP/IP 詳解 卷1:協(xié)議[M].北京:機械工業(yè)出版社,2016.
[2] Jeff Doyle,Jennifer Carroll,TCP/IP 路由技術(shù)(第一卷)(第二版)[M].北京:人民郵電出版社,2007.
作者信息:
段寒碩1,葉 青1,金 燊1,楊廣濤2
(1.國網(wǎng)冀北電力有限公司信息通信分公司,北京100053;
2.國網(wǎng)冀北電力有限公司承德供電公司信息通信分公司,河北 承德067000)