?? rfc1981.txt
字號:
組織:中國互動出版網(wǎng)(http://www.china-pub.com/)
RFC文檔中文翻譯計劃(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
譯者:李海鵬(leehp327 leehp327@sina.com )
譯文發(fā)布時間:2002-6-11
版權(quán):本中文翻譯文檔版權(quán)歸中國互動出版網(wǎng)所有。可以用于非商業(yè)用途自由轉(zhuǎn)載,但必須保留本文檔的翻譯及版權(quán)信息。
Network Working Group J. McCann
Request for Comments: 1981 Digital Equipment Corporation
Category: Standards Track S. Deering
Xerox PARC
J. Mogul
Digital Equipment Corporation
August 1996
IP 版本 6的路徑MTU探索
(RFC 1981,Path MTU Discovery for IP version 6)
本備忘錄的狀態(tài)
本文檔講述了一種Internet社區(qū)的Internet標(biāo)準(zhǔn)跟蹤協(xié)議,它需要進(jìn)一步進(jìn)行討論和建議以得到改進(jìn)。請參考最新版的“Internet正式協(xié)議標(biāo)準(zhǔn)”(STD1)來獲得本協(xié)議的標(biāo)準(zhǔn)化程度和狀態(tài)。本備忘錄的發(fā)布不受任何限制。
摘要
本文檔描述了對于IPv6的路徑MTU探索。它很大程度上是從RFC1191(描述了對于IPv4的路徑MTU探索)發(fā)展而來的。
目 錄
摘 要 1
1 引言 2
2 術(shù)語 2
3 協(xié)議概述 3
4 協(xié)議需求 4
5 執(zhí)行問題 5
5.1 分層 5
5.2 存儲PMTU信息 5
5.3 清除陳舊PMTU信息 7
5.4 TCP層動作 7
5.5 其他傳輸協(xié)議的運行問題 8
5.6 管理界面 9
6 安全考慮 9
致謝 10
附錄A - 與RFC1191的對比 10
參考 10
作者地址 11
1 引言
當(dāng)一個IPv6節(jié)點發(fā)送大量數(shù)據(jù)到另一節(jié)點時,數(shù)據(jù)通過一系列IPv6分組傳送。當(dāng)這些分組具有從源節(jié)點到信宿節(jié)點能夠成功傳送所允許的最大長度時,我們認(rèn)為它達(dá)到理想狀態(tài)。這個分組長度被稱為路徑MTU(PMTU),并且它等于在這個路徑里所有鏈接的最小鏈接MTU。IPv6定義了一個標(biāo)準(zhǔn)機制,使節(jié)點可以發(fā)現(xiàn)任一路徑的PMTU。IPv6節(jié)點應(yīng)當(dāng)實現(xiàn)路徑MTU的發(fā)現(xiàn),從而發(fā)現(xiàn)并利用那些具有比IPv6最小鏈接MTU大的PMTU的路徑。一個最小的IPv6執(zhí)行可以選擇忽略路徑MTU發(fā)現(xiàn)的執(zhí)行。那些不執(zhí)行路徑MTU發(fā)現(xiàn)的節(jié)點使用IPv6最小鏈接MTU(定義于[IPv6-SPEC])作為分組的最大長度。在大多情況下,這樣會導(dǎo)致使用了小于必需長度的分組,因為大部分路徑的PMTU大于IPv6最小鏈接MTU。一個節(jié)點所發(fā)送的分組遠(yuǎn)小于路徑MTU的允許,這是對網(wǎng)絡(luò)資源的一種浪費并可能產(chǎn)生不理想的處理能力。
2 術(shù)語
節(jié)點 -指一種執(zhí)行IPv6的設(shè)備
路由器 -指一種節(jié)點轉(zhuǎn)發(fā)IPv6分組,本身沒有明確的地址
主機 -不是路由器的任何節(jié)點
上層 -緊接在IPv6的上層協(xié)議。如傳輸協(xié)議TCP和UDP,控制協(xié)議ICMP,路由協(xié)議OSPF,和在IPv6上“挖隧道”的網(wǎng)絡(luò)或下層協(xié)議IPX,AppleTalk,以及IPv6本身。
鏈接 -一種使節(jié)點可以在鏈路層(緊接著低于IPv6的層)上通信的通信設(shè)備或媒介。如以太網(wǎng)(簡單的或橋路的),PPP鏈接,X.25,幀中繼,ATM網(wǎng),和網(wǎng)絡(luò)層或更高的“隧道”,例如在IPv4或IPv6本身上的隧道。
接口 -指一種連接節(jié)點的附加裝置。
地址 -指一個接口或一系列接口的IPv6層的標(biāo)識符。
分組 -IPv6頭加上有效載荷。
鏈接MTU -最大傳輸單元,分組所具有的8位字節(jié)最大長度,可以在某一鏈接上被一次性傳輸。
路徑 -傳輸一分組時從源節(jié)點到信宿節(jié)點所經(jīng)過的一系列鏈接。
路徑MTU -在源節(jié)點到信宿節(jié)點的路徑里所有鏈接中的最小鏈接MTU。
PMTU -路徑MTU。
路徑MTU發(fā)現(xiàn) -一個節(jié)點了解某一路徑的PMTU的過程。
流 -從某個源點向(單播或組播的)信宿發(fā)送的分組群中,源點要求中間路由器作出特殊處理的那些分組。
流標(biāo)記 -指由源地址和非零流標(biāo)識的組合體。
3 協(xié)議概述
該協(xié)議描述了一種動態(tài)發(fā)現(xiàn)任一路徑的PMTU的方法。其基本原理是由某一源節(jié)點最初假設(shè)路徑的PMTU為路徑中第一段距離的MTU(已知)。如果分組對于沿路徑中的某節(jié)點來說長度超限,那么該節(jié)點將丟棄分組并返回ICMPv6指示分組長度超限[ICMPv6]。收到該信息后,源節(jié)點就會減少假設(shè)的PMTU。當(dāng)節(jié)點估計的PMTU小于或等于實際的PMTU時,路徑MTU發(fā)現(xiàn)過程結(jié)束。請注意由于可能會在路徑的遠(yuǎn)處存在具有更小MTU的鏈接,因而在路徑MTU發(fā)現(xiàn)過程結(jié)束前可能會出現(xiàn)分組發(fā)送/分組長度超限信息接收這樣的反復(fù)數(shù)次過程。
節(jié)點也可以在停止發(fā)送大于IPv6最小鏈接MTU分組時選擇中止探索過程。
隨著時間的過去原先的路徑MTU可能改變,主要因為路由布局的改變。PMTU的減小可以被分組長度超限信息發(fā)現(xiàn)。為了檢測到某路徑的PMTU的增長,節(jié)點定期的增加它假設(shè)的PMTU。這樣很可能會導(dǎo)致分組被丟棄并且產(chǎn)生分組長度超限信息,因為大多數(shù)情況下某路徑的PMTU不會改變。因此,很少進(jìn)行某路徑的PMTU是否增加的測試。
路徑MTU發(fā)現(xiàn)支持組播和單播傳送的信宿。在組播傳送時,相同的分組經(jīng)過不同的路徑傳送到不同的節(jié)點上。每個路徑具有不同的PMTU,并且一個組播傳送分組可能產(chǎn)生很多分組長度超限信息,每個信息指示了不同的下一路程段的MTU。這一系列路徑中的最小PMTU被用來決定后面的將要進(jìn)行組播傳送的分組長度。
注意:路徑MTU發(fā)現(xiàn)必須被執(zhí)行,即使當(dāng)一個節(jié)點認(rèn)為目的地和它自己是相同的鏈接。在特殊情況下如鄰居路由器對一些目的地作為代理[ND],目的地可以被認(rèn)為直接鏈接的,但實際上多于一個路程段。
4 協(xié)議需求
就像在一開始所說的,IPv6節(jié)點沒有必需要實現(xiàn)路徑MTU發(fā)現(xiàn)。在本節(jié)中所敘述的需求只是應(yīng)用于那些包含路徑MTU發(fā)現(xiàn)的執(zhí)行過程中。
當(dāng)某一節(jié)點收到分組長度超限信息,它必須減少它對相應(yīng)路徑所估計的PMTU,基于信息中的MTU域中的值。由于不同的應(yīng)用程序會有不同的需求,并且不同的執(zhí)行體系又會支持不同的策略,所以一個節(jié)點在這種情況下的準(zhǔn)確動作沒有被詳細(xì)說明。
當(dāng)收到分組長度超限信息后,節(jié)點必須盡量避免在以后引起更多的此類信息。該節(jié)點必須減小發(fā)送的分組長度。當(dāng)使用大于IPv6最小MTU的PMTU時,可能還會導(dǎo)致產(chǎn)生分組長度超限信息。由于這些信息中的任何信息(包括丟棄分組時它們的回答)都會消耗網(wǎng)絡(luò)資源,該節(jié)點必須強迫路徑MTU發(fā)現(xiàn)過程結(jié)束。
使用路徑MTU發(fā)現(xiàn)的節(jié)點必須盡快探測到PMTU的減小。節(jié)點也可以探測到PMTU的增長,但這樣做需要發(fā)送比當(dāng)前估計的PMTU大的分組,并且由于PMTU增長的可能性很低,要求節(jié)點必須少做這種探測。一個對增長的探測嘗試(發(fā)送大于當(dāng)前估計的分組),不能在收到該路徑的分組長度超限信息后5分鐘之內(nèi)進(jìn)行。建議設(shè)置該計時器兩倍于最小時間值(也就是10分鐘)。
一個節(jié)點不能減少它所估計的路徑MTU低于IPv6最小鏈接MTU。
注意:節(jié)點可能收到分組長度超限信息指示下一路程段MTU小于IPv6最小鏈接MTU。在這種情況下,該節(jié)點不需要使后來在此路徑中發(fā)送的分組長度低于IPv6最小鏈接MTU,但必須包含一個分段頭標(biāo)在這些分組中。(定義于[IPv6-SPEC])
節(jié)點不允許增加估計的路徑MTU值作為對分組長度超限信息的回應(yīng)。一個信息聲稱增加路徑MTU,它可能是一個陳舊的分組,在網(wǎng)絡(luò)里到處游蕩,或一個虛假的分組作為對拒絕服務(wù)攻擊的一部分,或者可能是組播傳送的結(jié)果,因為每個路徑都有不同的PMTU。
5 執(zhí)行問題
這一部分討論了許多關(guān)于路徑MTU的執(zhí)行問題。這不是一個規(guī)范,但是它是一系列的注解來幫助執(zhí)行者。這些問題包括:
-什么層執(zhí)行路徑MTU發(fā)現(xiàn)?
-PMTU信息是如何儲存的?
-陳舊的PMTU信息是如何刪除的?
-傳輸層和高層必須做什么?
5.1 分層
在IP體系中,對發(fā)送分組長度的選擇是由IP層以上層的協(xié)議所作出的。本文指的是被稱為“分組協(xié)議”(packetization protocol)的協(xié)議。分組協(xié)議通常為傳輸協(xié)議(如TCP)但是還可以是高層協(xié)議(如,緊接著建立在UDP上層的協(xié)議)。在分組層(packetization layer)上執(zhí)行路徑MTU發(fā)現(xiàn)簡化為幾個層內(nèi)的執(zhí)行問題,但是還有一些缺陷:執(zhí)行可能被每個分組協(xié)議重新執(zhí)行,這樣很難在不同分組層之間分享PMTU信息,而且在維持面相連接的情況下,一些分組層可能不會容易的去長時間存儲PMTU信息。
所以建議由IP層存儲PMTU信息,ICMP層處理收到的分組長度超限信息。分組層可以對PMTU的改變作出響應(yīng),改變它們所發(fā)出的信息大小。為了支持這種分層,分組層需要能夠知道MMS_S(最大發(fā)送傳輸信息大小maximum send transport-message size)值的改變。MMS_S是源自路徑MTU,值為PMTU減去IPv6頭標(biāo)的大小加上IP層為擴展頭標(biāo)(如果有)預(yù)留的空間的值。
對于分組層它可能是一個UDP核心程序之外的應(yīng)用程序,它有可能無法改變它所發(fā)出信息的大小。這樣會使分組長度超過路徑MTU。為了解決這個問題,IPv6定義了一種機制它允許很大的有效載荷被分段,每段被一單獨分組發(fā)送(見[IPv6-SPEC]section "Fragment Header")。然而,我們還是希望分組層避免發(fā)送信息分段(對分段的不利情況,見[FRAG])。
5.2 存儲PMTU信息
理想來說,PMTU值應(yīng)當(dāng)由在指定路徑上的源點和信宿之間反復(fù)交換分組而來。但是,大多數(shù)情況下,節(jié)點沒有足夠的信息能夠充分而準(zhǔn)確的識別那樣一個路徑。不過節(jié)點應(yīng)當(dāng)有一些本地的有代表性的路徑的PMTU。這樣就只能選擇路徑的本地代表。
在組播傳送的時候,分組可能經(jīng)由不同的路徑到達(dá)不同的節(jié)點。路徑的本地代表對于組播傳送來說實際上代表潛在的大量的路徑。
一個執(zhí)行過程最少應(yīng)當(dāng)維持一個PMTU值,并應(yīng)用于所以從該節(jié)點出發(fā)的分組。這個PMTU值從所有該節(jié)點上使用該路徑中的PMTU中選擇最小的一個而來。這種方法對于大多數(shù)路徑可能導(dǎo)致使用了比最大長度小的分組。
執(zhí)行可以把信宿地址作為路徑的本地代表。在該信宿上使用過的所有路徑的PMTU中最小的一個作為該信宿自帶的PMTU值。到達(dá)一特殊信宿所使用的路徑數(shù)量是不多的,很多時候只有一個。這種方法就使那些按信宿為準(zhǔn)的分組長度理想化。這種方法很好的符合了在[ND]中描述的主機的概念模型:PMTU值應(yīng)當(dāng)存儲在信宿地存儲區(qū)內(nèi)。
如果使用了流,執(zhí)行應(yīng)當(dāng)使用流標(biāo)志作為路徑的本地代表。發(fā)送到相同信宿的分組由于分別屬于不同的流可能使用不同的路徑,應(yīng)當(dāng)通過流標(biāo)志來選擇路徑。這種方法使按流為準(zhǔn)的分組長度最佳,比按信宿為準(zhǔn)所產(chǎn)生的PMTU值更準(zhǔn)確。
對于源定義路徑的分組(也就是說分組包含IPv6尋路頭標(biāo)[IPv6-SPEC]),源路徑可能更能作為路徑的本地代表。特別是當(dāng)分組包含類型為0的尋路頭標(biāo),包含了一個完整的路徑說明。執(zhí)行可以使用源路徑信息到路徑的本地代表中。
最初某一路徑的PMTU值假設(shè)為第一路程段的MTU(已知)。當(dāng)收到分組長度超限信息,該節(jié)點根據(jù)分組長度超限信息內(nèi)容確定信息適用的路徑。例如,如果信宿地址被用作路徑的本地代表,原始分組的地址信息就能用來決定信息適用的路徑。
注意:如果原始分組包含尋路頭標(biāo),那么尋路投標(biāo)應(yīng)當(dāng)被用于確定原始信息內(nèi)的信宿地址的位置。如果剩余中繼點數(shù)為0,那么信宿地址是IPv6頭標(biāo)中的目的地址。而當(dāng)剩余中繼點數(shù)大于0時,則是是尋路頭標(biāo)中的最后的地址(地址[n])。
然后該節(jié)點使用分組長度超限信息中MTU域中的值,作為嘗試的PMTU值,并與當(dāng)前的PMTU進(jìn)行比較。如果嘗試的PMTU小于當(dāng)前PMTU估計,那么嘗試PMTU將代替當(dāng)前PMTU作為該路徑的PMTU值。
必須將PMTU的降低對分組層進(jìn)行通報。任何正在使用該路徑的分組層(如TCP鏈接)必須在PMTU估計降低時被通知到。注意:即使分組長度超限信息包含的源分組頭標(biāo)指示使用UDP分組,只要TCP層上有鏈接使用該路徑,那么它就必須被通知到。
同樣當(dāng)發(fā)送分組引起分組長度超限信息時,應(yīng)當(dāng)通知這個分組被丟棄,即使是PMTU估計不變,它還是要重發(fā)丟棄的數(shù)據(jù)。
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -