国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

IPv6網(wǎng)絡中一種基于路由協(xié)議的PMTU 發(fā)現(xiàn)機制*

2013-06-07 08:17程友清余少華
計算機工程與科學 2013年2期
關鍵詞:路由表路由器報文

程友清,余少華

(1.華中科技大學計算機學院,湖北 武漢 430074);2.武漢郵電科學研究院,湖北 武漢 430074)

1 引言

2011年2月3日,全球互聯(lián)網(wǎng)地址分配機構(gòu)(IANA)宣布,全球IPv4 地址池已經(jīng)耗盡,在2012年中國IPv4地址也將分配完畢,而隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,對IP 地址的需求增長更為迅速,因此IPv6技術(shù)實用化的進程會逐步加快。在中國,各大運營商已經(jīng)陸續(xù)進行IPv6運營試點,從2010年開始,運營商選型測試開始要求設備廠商支持IPv6相關功能。

MTU(Maximum Transfer Unit)指的是網(wǎng)絡某鏈路中的最大傳輸單元,是網(wǎng)絡應用程序中封裝分組的重要參數(shù),也是網(wǎng)絡優(yōu)化的重要指標。不同網(wǎng)絡傳輸介質(zhì)限定的MTU 是不一樣的。PMTU(Path MTU)是指網(wǎng)絡端點之間的傳輸路徑容許通過的最大傳輸單元值,一條網(wǎng)絡路徑的PMTU是組成該傳輸路徑的所有鏈路MTU 的最小值。由于IPv6地址長度為16字節(jié),造成IPv6的包頭長度最少為40字節(jié),占用有效載荷帶寬,而且分片重組占用路由器的處理時間使轉(zhuǎn)發(fā)性能下降。因此,IPv6網(wǎng)絡系統(tǒng)一般不支持對IP 分組進行分片和重組功能,在IPv6 網(wǎng)絡中,PMTU 探測顯得尤其重要,它是優(yōu)化網(wǎng)絡傳輸性能的最重要方法。

2 IPv6網(wǎng)絡現(xiàn)有PMTU 發(fā)現(xiàn)和路由機制

互聯(lián)網(wǎng)工程任務組IETF 制定了一系列有關PMTU 探測的標準和建議,其中RFC1981[1]規(guī)定了IPv6 網(wǎng)絡各個協(xié)議層間測量PMTU 的工作職能和范疇,但對具體探測算法沒有做規(guī)定;RFC2923[2]對IPv6 網(wǎng)絡實施PMTU 測量過程中TCP 層可能出現(xiàn)的問題制定了相應解決方案,這些問題包括路由黑洞效應、應答延遲效應以及最大傳輸單元確定等;另外,國內(nèi)外很多學者也對PMTU 的探測算法進行了研究[3~5]。以上PMTU 發(fā)現(xiàn)機制實質(zhì)都是從源主機到目的設備或主機逐步探測,沒有本質(zhì)上的改變。現(xiàn)在各設備廠商在實際的IPv6網(wǎng)絡產(chǎn)品中仍然采用RFC1981中制定的PMTU 發(fā)現(xiàn)機制。

根據(jù)RFC1981標準,IPv6網(wǎng)絡中在某一主機或設備向未知的目的端發(fā)送數(shù)據(jù)之前需要先進行PMTU 的探測過程。如圖1 所示,源和目的之間的鏈路MTU 都不相同,源首先以本地鏈路的MTU 值嘗試發(fā)送數(shù)據(jù)包,當?shù)谝惶酚善魇盏絀Pv6數(shù)據(jù)包時發(fā)現(xiàn)出接口鏈路MTU 比收到的數(shù)據(jù)包小的時候就發(fā)送ICMPv6類型2的包給源(包中攜帶允許的MTU 值),源端收到該ICMPv6包時則以新的MTU 的長度發(fā)送數(shù)據(jù)包到目的地;第一跳路由器將數(shù)據(jù)轉(zhuǎn)發(fā)到下一個路由器,該路由器發(fā)現(xiàn)數(shù)據(jù)超長回應ICMPv6數(shù)據(jù)包,以此類推;最終源端探測出到目的地的PMTU 值,后面的數(shù)據(jù)就以PMTU 為最大長度進行發(fā)送。在實際的實現(xiàn)中源會保存本機到每個目的地的PMTU,該PMTU 條目會定期老化(例如2小時),在老化后如果源端需要向目的發(fā)送數(shù)據(jù),則再發(fā)起PMTU 發(fā)現(xiàn)過程。

在IPv6網(wǎng)絡中,IPv6 數(shù)據(jù)依據(jù)IPv6 路由表進行轉(zhuǎn)發(fā),路由轉(zhuǎn)發(fā)表可以靜態(tài)配置,也可由支持IPv6的動態(tài)路由協(xié)議RIPng[6]、OSPFv3[7]、BGP4+[8]、IS-ISv6[9]等學習生成。如圖1所示,路由器R1和R2之間可以運行路由協(xié)議,R1學習到目的主機網(wǎng)段的路由,R2學習到源主機網(wǎng)段的路由。在目前的網(wǎng)絡設備中,路由表都由路由前綴、前綴長度、下一跳IPv6地址、下一跳出接口組成。路由器接收到IPv6數(shù)據(jù)包后根據(jù)路由前綴、前綴長度查找路由表,根據(jù)查找到的出接口得到出接口鏈路的MTU 值,從而判斷所接收的IPv6數(shù)據(jù)包是否超長,如果超長則丟棄數(shù)據(jù)并向源發(fā)送ICMPv6包超長包。

Figure 1 Typical PMTU discovery mechanism圖1 現(xiàn)有PMTU 發(fā)現(xiàn)機制

3 一種基于路由協(xié)議的PMTU 發(fā)現(xiàn)機制

分析現(xiàn)有IPv6網(wǎng)絡路由和PMTU 機制,我們發(fā)現(xiàn)可以擴展路由協(xié)議提出一種新的路徑MTU發(fā)現(xiàn)機制。

該機制的原理如下:

(1)路由協(xié)議在路由信息報文中攜帶路由MTU,路由協(xié)議從某一接口收到報文后比較路由信息的MTU 和該接口的MTU 值,取其中比較小的MTU 作為該路由的MTU 值,該MTU 值保存在路由信息表中,并將MTU 值向鄰居通告,使路由MTU 在網(wǎng)絡中傳遞;

(2)第一跳路由器在收到數(shù)據(jù)包后查找路由表得到到目的端的路由條目,用該路由條目的MTU值與包長度相比較,小則發(fā)送ICMPv6包超長信息(MTU 值為路由MTU 值)給源端,源端之后再用學到的MTU 值作為PMTU 進行數(shù)據(jù)發(fā)送。

3.1 路由協(xié)議的擴展

以下通過對RIPng路由協(xié)議和路由轉(zhuǎn)發(fā)表的擴展來描述本文提出的基于路由協(xié)議的IPv6路徑MTU 發(fā)現(xiàn)機制。

RFC2080中定義了如圖2所示的RIPng報文格式,RIPng的請求(request)報文和響應(report)報文傳輸都采用該報文格式,通過命令字的值來區(qū)分報文類型。RIPng報文中攜帶的路由條目格式如圖3所示,由IPv6路由前綴、路由標簽、前綴長度(掩碼長度)、路由度量值(跳數(shù))組成,RFC2080中規(guī)定路由標簽可以用來標識路由條目是RIPng外部路由還是內(nèi)部路由,也可以將該域用作其他用途,但同一網(wǎng)絡中各RIPng設備需要保持一致。

Figure 2 RIPng packet format圖2 RIPng報文格式

Figure 3 RIPng route information packet format圖3 RIPng路由信息報文格式

由以上描述可見,RIPng支持路由MTU 的擴展可以有兩種方式:(1)重用路由條目報文中路由標簽域,2字節(jié)長度可以表示最長65 535字節(jié)長度的MTU;(2)將路由條目報文進行擴展,增加4字節(jié)MTU 域,如圖4所示。在路由標簽域已被使用的時候建議使用方式(2),在路由條目表示的是下一跳(路由度量為0xff)時該域可以不添加。

Figure 4 Extension of RIPng route information packet format圖4 RIPng路由條目報文擴展

路由協(xié)議進行擴展之后,路由表轉(zhuǎn)發(fā)表也需進行擴展,擴展后的路由轉(zhuǎn)發(fā)表結(jié)構(gòu)中增加了路由MTU 字段。擴展后的路由條目所包含的主要信息如下:

RIPng處理響應(report)報文時需要對代表路由MTU 值的域進行解析,并比較該MTU 值與下一跳出接口的MTU 值,較小者記錄到路由轉(zhuǎn)發(fā)表中作為該路由的MTU 值;當一臺路由器從不同的鄰居學習到同一網(wǎng)段的路由時,通過比較這些路由的路由度量值和MTU 值,得到最佳路由。

如上所述,最佳路由選擇算法如下:

當RIPng路由器將自己的直連路由通告出去時,則將該直連接口的IPv6 MTU 值封裝到報文的MTU 域中發(fā)送;當RIPng 路由器將學習到的最佳路由傳遞出去時,則將該路由條目中的MTU值封裝到報文的MTU 域中發(fā)送。

以上以RIPng協(xié)議為例描述了對IPv6 路由協(xié)議的擴展,以支持MTU 的學習,OSPFv3、BGP4+、IS-ISv6路由協(xié)議的擴展方法類似。

3.2 新的路徑MTU 發(fā)現(xiàn)機制

如3.1節(jié)所描述,通過路由協(xié)議的擴展,路由器可以學習到各個網(wǎng)段的路由MTU 值?;诼酚蓞f(xié)議擴展的PMTU 發(fā)現(xiàn)機制過程如下:

(1)主機通過接收第一跳路由器的路由器通告消息,記錄到第一跳路由器鏈路的MTU 值;

(2)源主機向某一無PMTU 記錄的目的地址發(fā)送IPv6數(shù)據(jù)時,以到第一跳路由器的MTU 值為最大包長發(fā)送數(shù)據(jù)包;

(3)第一跳路由器接收到數(shù)據(jù)包,根據(jù)目的IPv6地址查找路由轉(zhuǎn)發(fā)表得到路由的MTU 值,該MTU 值與包長度比較,包長大于路由MTU時,第一跳路由器返回包超長ICMPv6包(包中攜帶路由MTU 信息);

(4)源主機接收包超長ICMPv6消息,記錄到目的地址的PMTU 值,之后主機到該目的地址的數(shù)據(jù)最大長度都以該PMTU 值發(fā)送。

以上步驟中,(1)、(2)、(4)與現(xiàn)有PMTU 發(fā)現(xiàn)機制一致,對主機的PMTU 實現(xiàn)機制可以不用做改變。

3.3 新的PMTU 發(fā)現(xiàn)機制的兼容性

網(wǎng)絡中路由器等設備通常由不同的廠商提供,并且現(xiàn)網(wǎng)已經(jīng)有IPv6的實驗網(wǎng)絡在運行,因此本文提出的基于路由協(xié)議的PMTU 機制需要解決兼容問題。本文主要考慮以下兩種情況:(1)同一路由協(xié)議支持MTU 擴展設備與不支持MTU 擴展設備間的兼容;(2)不同路由協(xié)議域之間的互通,例如RIPng支持擴展、BGP不支持擴展。

Figure 5 Routing protocol compatibility schematic diagram in new PMTU mechanism圖5 新PTMU 機制各協(xié)議兼容性示意圖

對于第一種情況,擴展后的路由協(xié)議提供網(wǎng)絡管理機制,網(wǎng)絡管理員通過配置命令控制協(xié)議是否使能路由MTU 擴展功能。如果對端設備不支持路由MTU 擴展,則本端設備也關閉擴展功能(協(xié)議包中不會攜帶MTU 域),此時網(wǎng)絡中仍然采用RFC1981的機制進行PMTU 發(fā)現(xiàn),不影響網(wǎng)絡的正常運行。

對于第二種情況,因為網(wǎng)絡規(guī)劃的原因,一個網(wǎng)絡可能劃分成多個路由域,各個域運行不同的路由協(xié)議,可能有的域路由協(xié)議支持路由MTU 的擴展,其他的域則不支持。如圖5所示,RIPng域和OSPFv3域支持路由MTU 擴展,BGP4+域則不支持(因R3不支持)。在網(wǎng)絡中為了實現(xiàn)全網(wǎng)連通,各路由域需要互相導入路由(即路由的重分配)。例如,R2左側(cè)接口運行RIPng、右側(cè)接口運行BGP4+,在RIPng協(xié)議配置重分配BGP 路由功能,則RIPng域可以導入BGP4+域的路由。同樣地,BG4+也可以導入RIPng 的路由。通過路由重分配各路由協(xié)議域的路由互相導入,R1可以學習到主機2的路由。R2上使能某一路由協(xié)議的路由MTU 功能后,路由表中會記錄路由MTU值,而其他未使能路由MTU 擴展的協(xié)議學習到的路由的MTU 值記為0。R2上BGP4+未支持路由MTU 功能,從R3學習到路由的MTU 值都記為0,RIPng 重分配BGP4+路由時若發(fā)現(xiàn)路由MTU 為0,則取路由出接口的鏈路MTU 值記為該路由的路由MTU 值(即R2和R3間鏈路的MTU),之后R1就會學習到該條路由的MTU。

通過上述兼容方式,圖5中主機1向主機2發(fā)起PTMU 探測時,主機1第一個探測包以與R1間的鏈路MTU 1 500為包長發(fā)送;R1查找路由表得到路由MTU 1 300并通過ICMPv6包回應給主機1;R3查找路由表發(fā)現(xiàn)路由出接口的MTU 值比包小,則將1 200回應給主機1;因R4在OSPFv3域已經(jīng)學習到了主機2的路由MTU 1 000,R4將路由MTU 值通過ICMPv6包直接返回給主機1;主機1完成PTMU 的探測過程??偣仓贿M行三次PMTU 探測,而RFC1981的方式則需五次探測。

3.4 新的IPv6PMTU 發(fā)現(xiàn)機制性能分析

3.4.1 理論分析

路由協(xié)議的擴展需要在協(xié)議包中增加MTU域,在協(xié)議包中每條路由會增加四字節(jié)的網(wǎng)絡帶寬,但在網(wǎng)絡拓撲穩(wěn)定的情況下,路由協(xié)議并不需要頻繁地進行路由通告(BGP 協(xié)議在拓撲穩(wěn)定的情況下進行一次路由交互就完成路由的學習,ISIS和OSPF則由域中指定路由器定時發(fā)出協(xié)議包刷新路由);而RFC1981中的PMTU 探測機制每一臺端點主機或設備都需要在網(wǎng)絡中進行PMTU 探測(即使到同一目的地,在PTMU 老化后還需再次進行PMTU 探測),探測包會占用較多的網(wǎng)絡帶寬,網(wǎng)絡兩端端點越多,則網(wǎng)絡中PMTU 探測的探測包所占用的帶寬就越多。因路由協(xié)議MTU 擴展帶來的額外帶寬占用與路由規(guī)模有關,RFC1981中PMTU 探測帶寬占用與網(wǎng)絡中端點數(shù)目有關,而路由規(guī)模與端點數(shù)目沒有必然的關系,實驗部分將不做帶寬占用比較。

在網(wǎng)絡直徑為L 且每節(jié)點平均傳輸延時為T ms的情況下,采用RFC1981的方法最大會有L 次探測、(L+1)*L/2*Tms的連接建立時延;而采用本文提出的新的PMTU 探測機制,最多有一次探測,2*T ms的時延,即網(wǎng)絡規(guī)模增大不會帶來探測次數(shù)和時延的增大。實驗部分將主要對同一網(wǎng)絡環(huán)境中兩種方式的探測次數(shù)和連接時延進行比較。

3.4.2 仿真實驗

本文采用ns2 仿真工具[10]進行拓撲模擬實驗。實驗網(wǎng)絡為線性網(wǎng)絡,網(wǎng)絡節(jié)點之間的鏈路MTU 在500~2 000 隨機產(chǎn)生、傳輸時延在1~5 ms隨機產(chǎn)生,網(wǎng)絡中間節(jié)點模擬距離向量動態(tài)路由協(xié)議,在仿真網(wǎng)絡的兩端節(jié)點模擬IPv6主機的行為(兩端主機模擬TCP連接)。實驗過程中改變模擬網(wǎng)絡中節(jié)點數(shù)目,記錄PMTU 探測次數(shù)和TCP連接建立時延。實驗數(shù)據(jù)如表1所示。

Table 1 Simulation test result used by ns2simulator表1 ns2網(wǎng)絡仿真數(shù)據(jù)

仿真實驗結(jié)果表明,本文提出的基于路由協(xié)議的算法在探測次數(shù)和連接時延上都大大優(yōu)于傳統(tǒng)的PMTU 探測機制。

3.4.3 實際應用

以上提出的新的PMTU 發(fā)現(xiàn)機制已經(jīng)在本文作者參與開發(fā)的路由器上實現(xiàn),并搭建拓撲進行了實驗(如圖6所示),在網(wǎng)絡中用SmartBits6000加背景流量和導入路由、使用N2X 儀表N5541A仿真IPTV 業(yè)務。

Figure 6 Actual equipment test topology圖6 實際設備測試拓撲

實驗過程中統(tǒng)計了R4路由器中RIPng路由協(xié)議在運行過程中CPU 時間占用和內(nèi)存資源占用情況,發(fā)現(xiàn)路由協(xié)議的擴展對路由器設備的CPU 資源占用沒有增加、對內(nèi)存資源的占用稍有增加(每條路由增加路由MTU 值存儲的4字節(jié)內(nèi)存占用),路由協(xié)議的擴展對同等規(guī)模的路由表的學習計算速度沒有任何影響。即對于路由協(xié)議的擴展沒有增加路由協(xié)議的時間和空間復雜度,擴展是可行的。實驗數(shù)據(jù)如表2所示。

拓撲實驗結(jié)果表明,采用新的機制時,連接到網(wǎng)絡中的主機最多只需要進行一次PMTU 探測過程,在圖6 所示的拓撲情況下,現(xiàn)在通用的RFC1981PMTU 路徑發(fā)現(xiàn)機制需要五次才能完成探測,多帶來10ms的IPTV 點播延時。在實際網(wǎng)絡中網(wǎng)絡節(jié)點會更多,帶來的時延會更大。

Table 2 Complexity comparation result of routing protocol表2 路由協(xié)議擴展前后復雜度比較

4 結(jié)束語

本文通過分析現(xiàn)有IPv6 網(wǎng)絡中現(xiàn)有的PMTU 發(fā)現(xiàn)機制和路由算法,提出了一種IPv6 網(wǎng)絡中基于路由協(xié)議的PMTU 發(fā)現(xiàn)機制。通過對路由協(xié)議進行擴展,在原有的路由信息中攜帶路由的MTU 值,使路由的MTU 在網(wǎng)絡中傳遞,執(zhí)行PMTU 探測的主機最多只需要向其第一跳路由器發(fā)送一次探測包。本文提出的PMTU 探測機制只需要對網(wǎng)絡設備端的路由協(xié)議做一定的擴展,主機端機制不用改變。在實際設備上進行拓撲及業(yè)務仿真測試的實驗結(jié)果表明,該機制可行,與現(xiàn)在最常用的PMTU 機制相比,該機制對探測次數(shù)及探測帶來的連接時延有非常大的改善(探測次數(shù)與網(wǎng)絡規(guī)模無關且最多探測一次、連接時延也只是第1跳路由器轉(zhuǎn)發(fā)時延的兩倍),因此具有創(chuàng)新性和實用價值。

[1]McCann J,Deering S,Mogul J.RFC1981-Path MTU discovery for IP version 6[EB/OL].[1996-08-15].http://www.ietf.org.

[2]Lahey K.RFC2923-TCP problems with path MTU discovery[EB/OL].[2000-09-17].http://www.ietf.org.

[3]Christenson N.Different MTUs in the network,sendmail performance tuning[EB/OL].[2004-03-05].http://www.sendmail.org.

[4]Huang Yong-feng,Zhang Ke.A hierarchical path MTU discovery method based on empiristic data[J].ACTA Electronica Sinica,2007,35(10):1865-1869.(in Chinese)

[5]Meng Xuan-jun,Tang Xiao-chun.Analyzing and researching on path MTU discovery algorithm[J].Science Technology and Engineering,2009,9(24):7395-7398.(in Chinese)

[6]Malkin G,Minnear R.RFC2080-RIPng for IPv6[EB/OL].[1997-03-05].http://www.ietf.org.

[7]Coltun R,F(xiàn)erguson D,Moy J,et al.RFC5340-OSPF for IPv6[EB/OL].[2008-10-10].http://www.ietf.org.

[8]Rekhter Y,Li T,Hares S,et al.RFC4271-A border gateway protocol 4 (BGP-4)[EB/OL].[2006-05-16].http://www.ietf.org.

[9]Hopps C.RFC5308-Routing IPv6 with IS-IS[EB/OL].[2008-10-10].www.ietf.org.

[10]Fall K.The ns manual[EB/OL].[2011-04-20].http://www.isi.edu/nsnam/ns/doc.

附中文參考文獻:

[4]黃永峰,張珂.基于經(jīng)驗值的分層PMTU 探測算法[J].電子學報,2007,35(10):1865-1869.

[5]孟選軍,湯小春.PMTU 探測算法分析與研究[J].科學技術(shù)與工程,2009,9(24):7395-7398.

猜你喜歡
路由表路由器報文
基于J1939 協(xié)議多包報文的時序研究及應用
買千兆路由器看接口參數(shù)
維持生命
路由器每天都要關
CTCS-2級報文數(shù)據(jù)管理需求分析和實現(xiàn)
基于OSPF特殊區(qū)域和LSA的教學設計與實踐
淺析反駁類報文要點
無線路由器的保養(yǎng)方法
ATS與列車通信報文分析
基于新路由表的雙向搜索chord路由算法