梁利君 張振榮
(廣西大學(xué)計算機(jī)與電子信息學(xué)院,廣西 南寧 530004)
以太網(wǎng)中PPPoE連線下MTU值對網(wǎng)絡(luò)性能的影響
梁利君 張振榮
(廣西大學(xué)計算機(jī)與電子信息學(xué)院,廣西 南寧 530004)
電信運營商在BRAS最常用的是PPPoE協(xié)議。在網(wǎng)絡(luò)設(shè)備測試中,MTU的值會影響網(wǎng)絡(luò)性能的測試,在運用PPPoE的Ethernet網(wǎng)絡(luò)里,MTU是影響性能測試的重要參數(shù),文章通過對Ethernet及PPPoE幀的判斷、分析,探討了以太網(wǎng)中PPPoE情況下MTU值對網(wǎng)絡(luò)性能的影響。
Ethernet幀;PPPoE;MTU;RFC2544
MTU是網(wǎng)絡(luò)接口上其中一個參數(shù),但是設(shè)置不當(dāng),將會造成很多網(wǎng)絡(luò)問題,造成網(wǎng)絡(luò)卡,嚴(yán)重影響性能,影響客戶感知。而運營商常用的是PPPoE方式上網(wǎng),PPPoE擁有極好的網(wǎng)絡(luò)管理模式和效率,MTU值的設(shè)置導(dǎo)致在PPPoE模式下網(wǎng)絡(luò)性能降低的矛盾很突出,所以在網(wǎng)絡(luò)測試中對于家庭網(wǎng)關(guān)待測物,需要正確設(shè)定MTU對用戶感知網(wǎng)絡(luò)性能是十分重要的。
圖1 Ethernet_II的幀結(jié)構(gòu)
圖1是Ethernet_II的幀結(jié)構(gòu),以下是對Ethernet_II的幀中各字段的說明:
DMAC:
DMAC(Destination MAC)是目的物理地址。DMAC確切幀的目的地址。
SMAC:
SMAC(Source MAC)是源物理地址。SMAC字段識別發(fā)送幀的工作點。
Type:
占用2 byte,該類型字段用于識別數(shù)據(jù)字段中上層協(xié)議,確切說接受者根據(jù)該字段解釋數(shù)據(jù)字段。
在以太網(wǎng)中共存多種網(wǎng)絡(luò)協(xié)議,并且在Ethernet II的Type中設(shè)置對應(yīng)的十六進(jìn)制值,在局域網(wǎng)負(fù)責(zé)支持多種協(xié)議傳輸。
- Type取值為0x0800的幀表示IP protocol幀。
- Type取值為0x0806的幀表示ARP protocol幀。
- Type取值為0x0835的幀表示RARP protocol幀。
- Type字段取值為0x8137的幀表示IPX和SPX傳輸協(xié)議幀。
如圖2,在wireshark中Type字段
圖2 wireshark中Type字段
Data:
數(shù)據(jù)段的最小長度必為46 byte,因而幀長至少為64 byte,即使是傳1 byte信息也至需要使用46 byte的數(shù)據(jù)段。
這也要求了 RFC2544 throughput 測試的最小幀長未 64 byte。
若該字段的信息少于46 byte,該字段的空余部分也要求進(jìn)行填充。
數(shù)據(jù)字段的最大長度為1500 byte。
CRC:
CRC(Cyclic Redundancy Check)循環(huán)冗余校驗字段,主要為錯誤檢測。
一個發(fā)送包都包含Address字段、Type字段和Data字段的CRC碼,最后將演算出的CRC碼填入CRC字段。
Ethernet II類型以太網(wǎng)幀的最小長度為64字節(jié)(6+6+2+46+4),最大長度為1518字節(jié)(6+6+2+1500+4)。
另外,最大傳輸單元(Maximum Transmission Unit,MTU)是指一種通信協(xié)議承載上層數(shù)據(jù)報文的最大數(shù)據(jù)報大小(以byte為單位)。即是網(wǎng)絡(luò)上傳送的最大數(shù)據(jù)包。MTU的單位是byte。 極大多數(shù)網(wǎng)絡(luò)設(shè)備的MTU都是1500。若本級設(shè)備的MTU比上聯(lián)設(shè)備的MTU大,比較大的數(shù)據(jù)包會被拆開,因而很多數(shù)據(jù)包進(jìn)行分片處理,形成較多碎片,丟包率提升,由于CPU處理更多冗余碎片,從而降低了網(wǎng)絡(luò)速度。所以得到以下結(jié)論,把本級設(shè)備的MTU設(shè)成比上聯(lián)網(wǎng)絡(luò)的MTU小或相同,就可以減少丟包。
圖3 PPPoE Payload報文中含義
如圖3 PPPoE Payload報文中含義如下:
VER:長 4 byte。PPPoE版本必須設(shè)置為0x01。
Type:長4 byte。PPPoE版本必須設(shè)置為0x01。
Code:長8 byte。定義了PPPoE Discovery(0x8863)和PPPoE Session (0x8864)階段。
Session_ID:長16 byte。是一個網(wǎng)絡(luò)字節(jié)序的無符號值。其值位于 Discovery數(shù)據(jù)包中定義。對 PPPoE Session(0x8864)階段來說該值是一個固定值,并與以太網(wǎng)Source_address和Destination_address一起定義了一個PPPoE Session。另外值0xFFFF為將來的使用保留,不允許使用。
Length:長 16byte。該值是PPPoE的Payload長度。不包括以太網(wǎng)頭部和PPPoE頭部的長度。
Payload:PPPoE的Payload,包含0個或多個Tag。
以太網(wǎng)最大載荷為1500 byte,PPPOE頭為6 byte,PPP 協(xié)議ID為2 byte ,所以PPP的MTU最大不能超過1492 byte。因而PPPOE的最大接收單元為1492,
PPPOE協(xié)議報頭為6 byte,和14 byte Ethernet幀頭里的4 byte對應(yīng)。
在PPP Session階段,PPP包封裝在PPPOE以太幀中,以太包里的目的地址一樣的,以太協(xié)議為0x8864,PPPOE頭的 CODE必須為 0,SESSION_ID為發(fā)現(xiàn)階段協(xié)商出的SEESION_ID值,PPPOE的負(fù)載是整個PPP包,PPP包前是兩字節(jié)的PPP協(xié)議ID值。
數(shù)據(jù)凈荷、TCP頭部和IP頭部構(gòu)成PPP凈荷,因而加起來不能超過PPPoE的最大尺寸1492字節(jié),PPP、PPPoE和以太網(wǎng)頭部不在1 492字節(jié)之內(nèi),屬于額外開銷:
1 492 + 2 + 6 + 18 = 1518字節(jié)
一個PPPOE會話包如圖4:
圖4 PPPOE會話報文
注意:由于PPPOE頭是6byte,PPP協(xié)議ID號兩byte,共占8個byte,而以太網(wǎng)的MTU值為1500,所以上層PPP負(fù)載數(shù)據(jù)不超過1492字節(jié),所以PPP協(xié)商時協(xié)商的最大接收單元值不能超過1492byte,也就是相當(dāng)于在PPPOE環(huán)境下的MTU是1492 byte。
Request For Comments(RFC)是負(fù)責(zé)收集Internet有關(guān)咨詢的軟件文件組織,大多的Internet標(biāo)準(zhǔn)協(xié)議都收錄在RFC文件中。RFC英文譯文為請求評議,在互聯(lián)網(wǎng)行業(yè)標(biāo)準(zhǔn)中具有舉足輕重的地位。
根據(jù)RFC2544是RFC組織對于網(wǎng)絡(luò)連接設(shè)備性能評測的國際標(biāo)準(zhǔn)。
RFC2544中主要包含了吞吐量、時延、丟包率、背對背、系統(tǒng)時間、系統(tǒng)復(fù)位等不同網(wǎng)絡(luò)設(shè)備的測試參數(shù)。其中的吞吐量是衡量網(wǎng)絡(luò)設(shè)備處理數(shù)據(jù)包性能的最重要的參數(shù)。吞吐量的定義是在不丟包的情況下,待測物每秒所能轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)(最大流量)。
理論上,UDP的報文頭最小8byte,TCP包的頭開銷需要20byte,因而UDP的開銷比TCP小。UDP是盡最大努力交付,是面向報文的,不受擁擠控制,因而一般情況下RFC2544的吞吐量用UDP報文進(jìn)行測試。
RFC2544標(biāo)準(zhǔn)要求在以太網(wǎng)中對一系列64、128、256、768、1024、1280、1518不同幀長的數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)的性能。如圖5要求。
圖5 不同網(wǎng)絡(luò)速率幀的轉(zhuǎn)發(fā)量pps
圖6 千兆網(wǎng)絡(luò)的不同幀長的吞吐量
如圖5和圖6所知,不同網(wǎng)絡(luò)幀的轉(zhuǎn)發(fā)量pps,得知幀長對吞吐量的影響;由于幀的前導(dǎo)符preamble 8byte和間隔IFG 12byte,至少有 20byte固定開銷的原因,64byte的幀每秒最大傳輸1488095幀,千兆以太網(wǎng)最大吞吐量為761.9Mbit/s,待測物處理花費的時間相對較大,反而幀長越大,待測物處理花費的時間相對較小,1518最大傳輸81274幀,千兆以太網(wǎng)中的吞吐量為986.999Mbit/s,則吞吐量相對64 byte較大。
Ixia公司是一家領(lǐng)先的基于IP基礎(chǔ)設(shè)施和服務(wù)的性能測試系統(tǒng)提供商,可幫助網(wǎng)絡(luò)設(shè)備精準(zhǔn)地確定網(wǎng)絡(luò)容量,驗證網(wǎng)絡(luò)設(shè)備性能和客戶體驗質(zhì)量(QoE)。Ixia數(shù)據(jù)流量和網(wǎng)絡(luò)可視化解決方案幫助實現(xiàn)對運營中網(wǎng)絡(luò)的智能監(jiān)測。Ixia公司在國內(nèi)外具有極高的威望與知名度。
IxNetwork實現(xiàn)IP路由和交換設(shè)備及寬帶 接入設(shè)備的測試。支持業(yè)務(wù)流量生成及全面的協(xié)議 模擬:路由、MPLS、2/3層VPN、承載以太網(wǎng)、寬帶接入和數(shù)據(jù)中心橋接等。
本文測試主要使用了IxNetwork進(jìn)行RFC2544的測試。
而在本文在RFC2544 throughput 測試中,由于MTU分片以及測試時間的原因,本文只是選擇了64,512,1492,1518 四種幀長測試,而待測物及其上聯(lián)設(shè)備的MTU值為以太網(wǎng)的默認(rèn)值1500。
RFC2544參考里的測試時長建議為120s,測試次數(shù)至少為20次。按照此參數(shù)設(shè)置測試會相對準(zhǔn)確。Frame Loss 的值設(shè)置為0。
本文測試主要是針對家庭用戶網(wǎng)關(guān),在城域網(wǎng)中家庭網(wǎng)關(guān)主要采用PPPoE模式上網(wǎng)。在測試之前需要架設(shè)好測試環(huán)境,保證網(wǎng)絡(luò)可以ping通,然后進(jìn)行相關(guān)參數(shù)的設(shè)置。
本文主要研究的PPPoE模式下WAN toLAN的吞吐量測試。在IxNetwork設(shè)置初始速率,在每次循環(huán)測試中利用二分法,不停上調(diào)或下調(diào)初始速率,尋找不丟包的情況下的最大吞吐量。
下圖是用 IXIA 測試在 PPPoE模式下的 RFC 2544 throughput 吞吐量的測試結(jié)果,下圖是上行和下行不同封包大小的吞吐量測試。
圖7 PPPoE模式不同幀長的下行吞吐量
圖8 PPPoE模式不同幀長的上行吞吐量
根據(jù)圖7和圖8的測試結(jié)果,顯然得出在以太網(wǎng)中,下行速率隨著幀長逐步增加,然而在 1492byte可以達(dá)到 976 Mbit/s,在 1518byte急劇下降為 83Mbit/s,同樣上行速率也是隨著幀長逐步遞增,在1492byte達(dá)到978 Mbit/s ,而在1518 byte只有118 Mbit/s,都是由于MTU分片原理造成的。
PPPOE環(huán)境下的最佳MTU是1492 byte,由于PPP模式下PPP包頭報文造成,如果設(shè)置1518byte過大的封包,網(wǎng)絡(luò)會自動進(jìn)行造成分片,造成設(shè)備CPU 額外的負(fù)擔(dān),從而影響真實的網(wǎng)絡(luò)性能測試,影響客戶對網(wǎng)絡(luò)的感知程度。
總之,PPPoE是當(dāng)前城域網(wǎng)中應(yīng)用最廣泛的連線模式,在對城域網(wǎng)絡(luò)對于家庭網(wǎng)關(guān)產(chǎn)品的測試中,要注意上聯(lián)網(wǎng)絡(luò)設(shè)備支持的 MTU值設(shè)置,否則嚴(yán)重影響網(wǎng)絡(luò)設(shè)備的性能測試,無法對網(wǎng)絡(luò)設(shè)備真實原因進(jìn)行debug。
[1] David C,Plummer, etc. IETF RFC826: Ethernet Address Resolution Protocol:Orconverting network protocol addresses to 48 bit Ethernet address for transmission on Ethernet hardware. [EB/OL].http://www.ietf.org/rfc/rfc826. txt.1982-11.
[2] L.Mamakos, K. Lidl,etc.A Method for Transmitting PPP Over Ethernet (PPPoE)RFC2516-Informational.[EB/OL]. https://datatracker.ietf.org/doc/rfc2516/ .1999-02.
[3] W.Rechard Stevens,范建華.TCP/IP 詳解(卷1):協(xié)議[M].北京:機(jī)械工業(yè)出版社, 2003.
[4] S. Bradner, J. McQuaid, etc. IETF RFC826 Benchmarking Methodology for Network Interconnect Devices Status of this Memo.[EB/OL].https://www.ietf.org/rfc/rfc2544.txt.1999-03.
The influence of MTU under the PPPoE mode
Internet Service Provider is most commonly used in BRAS PPPoE protocol. In the network equipment testing, the value of MTU affects the performance of the network, the use of PPPoE Ethernet in the network, MTU is the important parameters that affect performance testing Based on Ethernet and PPPoE frames judgment, analysis, discusses the Ethernet impact on network performance under PPPoE MTU value case.
Ethernet frame; PPPoE; MTU; RFC2544
TP393.03
A
1008-1151(2016)07-0001-03
2016-06-10
梁利君,女,廣西大學(xué)計算機(jī)與電子信息學(xué)院碩士研究生,工程師,研究方向為城域網(wǎng)、PON網(wǎng)絡(luò)、網(wǎng)絡(luò)性能測試;張振榮,男,廣西大學(xué)計算機(jī)與電子信息學(xué)院教授,博士,研究方向為光通信系統(tǒng)。