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