CNS 15083-2007 Path MTU discovery for IP version 6《IPV6路径最大传输单位之探索》.pdf
《CNS 15083-2007 Path MTU discovery for IP version 6《IPV6路径最大传输单位之探索》.pdf》由会员分享,可在线阅读,更多相关《CNS 15083-2007 Path MTU discovery for IP version 6《IPV6路径最大传输单位之探索》.pdf(13页珍藏版)》请在麦多课文档分享上搜索。
1、 1 印月 96 5 月 本標準非經本局同意得翻印 中華民國國家標準 CNS 總號 號 ICS 35.100.30 X127115083經濟部標準檢驗局印 公布日期 修訂公布日期 96 5 月 14 日 月日 (共 13 頁 )IPv6 路徑最大傳輸單位之探索 Path MTU discovery for IP version 6 1. 適用範圍 本標準適用於網際網路社群 (internet community)的網際網路標準之進程協定,並徵詢討論和建議以供改進。針對標準化狀態和本協定的狀況,請參照 “網際網路正式協定標準 “ (internet official protocol stand
2、ards, STD 1)的目前版本。 本標準規定用於 IPv6 的路徑 (Path)最大傳輸單位 (maximum transmission unit, MTU)之探索 (discovery)。大部分是從 RFC1191-IPv4的路徑最大傳輸單位探索發展而來的。 當一個 IPv6 節點 發送大資給另一節點時,將以一系 IPv6 封包傳送資。通常最好的況是:這些封包具有著最大的長,並能夠成功地穿越從源節點到目的地節點之徑。此封包長稱為徑最大傳輸單位 MTU(PMTU),而它也等於在這個徑上所有鏈的最小鏈 MTU。 IPv6 定義這個標準機制,讓節點可以找出任一徑的 PMTU 值。 IPv6 節
3、點宜實作路徑 MTU 之探索,以探索並使用一條路徑,其所擁有 PMTU 值大於 IPv6 最小鏈路 MTU IPv6-SPEC。一個最小 IPv6 實作 (例如,在啟動唯讀記憶體中 )可以選擇省略路徑 MTU 探索的實作。 不實作路徑 MTU 探索的節點則使用 IPv6 最小鏈路 MTU 值 IPv6-SPEC來作為最大封包長度。在大部分的狀況下,這將導致使用 比所必須為 小的封包,因為大多數路徑的 PMTU 大於 IPv6 最小鏈路 MTU。當一個節點所發送的封包遠小於路徑 MTU值時,會造成網路資源的浪費,而且可能的得到次最佳化的訊務通輸送量。 2. 用語釋義 (1) 節點 (node):
4、實作 IPv6 之裝置。 (2) 路由器 (router):轉送非明確定址於自身之 IPv6 封包 之 節點。 (3) 主機 (host):非路由器 之 任何節點。 (4) 上一層 (upper layer):緊接在 IPv6 之上的協定層。 其範為 :傳輸協定如 TCP和 UDP、控制協定如 ICMP、 選協定 如 OSPF、及穿隧 (封裝 )在 IPv6 上的網際網 或下層協定如 IPX, AppleTalk,以及 IPv6 本身。 (5) 鏈路 (link):一種通訊設備或媒介,其上的節點能夠在鏈路層上做通訊,鏈路層是緊接於 IPv6 之下層。 其範為 :乙太網路、 PPP 鏈路、 X.
5、25、訊框中繼、 ATM網路、及網際 網 層 (或較高層 )的隧道 如在 IPv4 或 IPv6 之上的隧道 。 (6) 介面 (interface):節點附接點到某個鏈路。 (7) 位址 (address):一個介面或一組介面的 IPv6 層識別符。 (8) 封包 (packet): IPv6 標頭與加上酬載。 2 CNS 15083, X 1271 (9) 鏈路 MTU(link MTU):最大傳輸 單位 ,也就是,以八位元組 (octet)表示的最大封包長度,能在鏈路上一次傳輸的長度值。 (10) 路徑 (Path):封包從來源節點到目的地節點進行傳輸時,所通過的一組鏈路。 (11) 路
6、徑 MTU(Path MTU):從來源節點到目的地節點的路徑中,所有通過的鏈路中的最小鏈路 MTU。 (12) PMTU:路徑 MTU。 (13) 路徑 MTU 探索 (Path MTU discovery):節點找到路徑的 PMTU 的探索過程。 (14) 訊流 (flow):從特定來源節點到特定單播 (unicast)或多播 (multicast)目的地節點所發送的一序列封包,其中來源節點需要中介路由器作特別之處理。 (15) 訊流識別符 (flow Id):結合來源位址與非 0 值的訊流標識 (flow Label)而得。 3. 協定概觀 本標準描述動 態探索路徑的 PMTU 值之技術。
7、基本想法是來源節點先假定路徑的PMTU 為路徑中第一中繼段 (Hop)的 MTU。如果任何發送在此路徑的封包太大以致無法轉送,那麼節點將丟棄封包並傳回 ICMPv6 封包過大訊息 ICMPv6。收到此訊息後, 以瓶頸的中繼段所回報的封包過大訊息中的 MTU 值為基礎 來源節點須降低它原先所假定的 PMTU。 當節點估計 PMTU 小於或等於實際 PMTU 時,路徑 MTU 探索過程便會結束。注意可能在前方路徑上的鏈路會有更小 MTU 值,因此在路徑 MTU 探索過程結束前,會發生數次的封包發送 /封包過大訊息接收的循環現象。 或者,節點也可以 藉由 停止發送大於 IPv6 最小鏈路 MTU 封
8、包之方式,選擇終止探索過程。 因為 選樸 (routing topology)的變更,路徑 MTU 也可能隨時變更。當出現封包過大訊息時,就能偵查到應降低 PMTU 值。為了偵查出路徑上的 PMTU 值是否已經增加,節點可定期地增加其所假定的 PMTU 值。如此動作將會導致封包被丟棄,並產生封包過大訊息,因為大多數狀況下路徑上的 PMTU 並未變更。因此,查出路徑上的 PMTU 值是否已經增加之 嘗試 ,宜偶爾做之。 路徑 MTU 探索支援多播目的地及單播目的地。在多播目的地的狀況下,封包的複製可以經多條相異的路徑,傳送到多個不同節點上。每個路徑可以具有不同的 PMTU,並且單一多 播封包可能
9、導致多個封包過大訊息,每個訊息指出不同的下個中繼段之MTU 值。使用中整組路徑的最小 PMTU 決定了後續發送給多播目的地之封包長度值。 注意: 即使一個節點認為目的地附接於與自己相同的鏈路上,路徑 MTU 探索也必須被執行。在某些狀況下,當鄰路由器做為某些目的地之代理 ND,目的地可以視作直接 接 ,但事實上卻是在超過一個以上的中繼段之外。 4. 協定需求 正如第 1 節所討論的, IPv6 節點沒有要求一定要實作路徑 MTU 探索。在本節中所討論的需求僅應用於那些做到包含路徑 MTU 探索之實作中。 當節點收到封包過大訊息時,它必須 以瓶頸的中繼 段所回報的封包過大訊息中的MTU 值為基礎
10、 降低對有關聯路徑的 PMTU 估計值。因為不同的應用程式可能會有不 3 CNS 15083, X 1271 同需求,且不同的實作架構可能會 偏好 不同策略,所以節點如何降低 PMTU 值的明確動作未作規定。 在收到封包過大訊息之 後,節點必須避免在近期內引發更多此類訊息。節點必須縮減沿該路徑所發送封包之長度。使用大於 IPv6 最小鏈路 MTU 的 PMTU 值,可能持續引發後續的封包過大訊息。因為每個這類的訊息 (與 回應 丟棄的封包 )消耗了網路資源,所以節點必須強制結束路徑 MTU 探索過程。 使用路徑 MTU 探索的節點必須儘快地偵查到 PMTU 的降低。節點也可以偵查 PMTU的增
11、加,但由於如此需要發送大於目前估計 PMTU 值的封包,且 因為 PMTU 已增加的可能性不高,所以必須少做如此的偵查。偵查 PMTU 值是否增加 (透過發送超過目前估計 PMTU 值的封包 )動作,不得在收到封包過大訊息後的 5 分鐘內,進行偵查。建議設定 計時器 的時間是最小時間的兩倍 (10 分鐘 )。 一個節點不得降低所估計的路徑 MTU 值低於 IPv6 最小鏈路 MTU 值。 注意: 節點可能會收到封包過大訊息其回報下一個中繼段 MTU 小於 IPv6 最小鏈路MTU。在此狀況下,節點不要求一定要降低後續發送於此路徑上封包的長度值,小 於 IPv6最小鏈路 MTU值,但節點一定要包
12、含分段標頭 (fragment header)於這些封包中 IPv6-SPEC。 節點不得增加對路徑 MTU 值的估計值,以回應封包過大訊息。一個聲稱增加路徑 MTU的訊息,可能是一個在網路中四處流動過時的封包,或是拒絕服務攻擊所產生出的假封包,或是經多條路徑傳送至目的地的結果,其每條路徑有著不同的 PMTU 值。 5. 實作問題 本節討論有關路徑 MTU 探詢的實作議題。所討論內容並非規定,而是一組註解來輔助實作者。 實作議題包括: 在 何層或 哪些層實作路徑 MTU 探索? 如何快取儲存 PMTU 資訊? 如何移除過時的 PMTU 資訊? 在傳輸層及更高層應該做些什麼? 5.1 分層 (l
13、ayering) 在 IP 架構中,是由 IP 層以上的層協定來選擇所發送封包的長度。本標準稱如此的協定為 “ 分封協定 “(packetization protocol)。 分封協定 通常是傳輸協定(transport protocol) 如 TCP,但是也可以是更高層的協定 (例如,建立於 UDP之上的協定 )。 在 分封層 (packetization layer)實作路徑 MTU 探索,簡化了一些跨層的問題,但也帶來一些缺點:對於每一 分封協定 ,實作可能都必須重做一次。這讓不同 分封層 之間分享 PMTU 資訊變得很難,而且某些 分封層 所維持的連接導向狀態可能無法輕易擴充,來長期儲
14、存 PMTU 資訊。 因此建議當 ICMP 層處理接收封包過大訊息後,由 IP 層儲存 PMTU 資訊。 分封層 可以回應 PMTU 之變更,改變更所發出的訊息長度。為了支援這種層級形式, 4 CNS 15083, X 1271 分封層 需要確知 MMS_S 值的變化,也就是,最大發送傳輸訊息長度 (maximum send transport-message size)。 MMS_S 的計算導出,是來自路徑 MTU 值扣掉 IPv6標頭及 IP 層預留為附加標頭的長度。 很可能 分封層 無法 變 所發出訊息的長度 (如:核心之外的 UDP 應用程式 )。如此可能導致封包大小超過路徑 MTU
15、值。為解決這種狀況, IPv6 定義了一種機制,允許將大的酬載分成數個片段,每個片段分別由一個封包來發送 ( 見IPv6-SPEC“Fragment Header“節 )。然而,分封層仍是被期望要避免發送需要分段之訊息 (對不適合分段的狀況,見 FRAG)。 5.2 儲存 PMTU 訊息 理想上, PMTU 值應該與一條特定路徑相關聯 (此路徑上有著許多封包交換,在來源和目的地間穿梭 )。然而,在多數狀況下,節點未有足夠資訊來完全準確地識別 出 這樣的一條路徑。而節點必須將 PMTU 值與路徑上的 本地代表 (local representation)做好關聯。這要留待實作來選擇路徑上的 本地
16、代表 。 在多播目的地位址的狀況 下,封包的複製可以經多條 同的 路徑,到 達 多個不同節點上。多播目的地路徑的 本地代表 必須表示可能是一大組的路徑。 以最低限度來說,一個實作要能維持單一 PMTU 值,以被使用於所以發自該節點的封包。這個 PMTU 值將會是選自該節點使用 中 的所有路徑最小的 PMTU值。這種作法 有 可能導致 許 多路徑採用比實際需要還小的封包。 實作可以使用目的地位址作為路徑的本地代表。與目的地相關聯的 PMTU 值將會是到該目的地所有 使用中所有 路徑最小的 PMTU 值。 到一特別 目的地 所使用中的徑集預期是很少的 ,在許多狀況只包含單一個路徑。這種作法將導致
17、以逐 目的地 為基礎 來採用最佳的封包 長 。這種作法順利整合了在 ND中所描述的主機模型觀念: PMTU 值能儲存於目的地之 快取 (cache)的 對應 項目中。 如果訊流 IPv6-SPEC在使用中,實作應以訊流 ID 作為路徑的本地代表。發送到特別目的地的封包因分屬不同的訊流,可以會使用訊流 ID 來選擇不同路徑。這種作法將導致 以逐 訊流來採用最佳的封包 長 ,比較 以逐 目的地 為基礎所維持 的 PMTU 值,會提供得到更精密的 精細 。 對於來源的 已選封包 (routed packet),也就是包含 IPv6 選標頭 (routing header)之封包 IPv6-SPEC,
18、來源路由可的 進一步資格檢定 路徑本地代表。尤其是,當 具 有型式為 0 的 選標頭 (其中所有 Strict/Loose Bit Map 欄的位元設值為(1)之封包,會包含一條完整的路徑指示。實作能使用 於徑的本地代表中之 來源路由資訊。 備考: 某些路徑可以由不同的安全性分類來做 進一步 區分。這種分類細節已超出本標準之 範圍 。 初始設定時,一段路徑的 PMTU 值會先假定為第一中繼段鏈路的 (已知 )MTU。 當收到封包過大訊息時,該節點依 據封包過大訊息的內容,用來決定訊息所應用的路徑。例如,如果目的地位址 被用作路徑的本地代表,則從原始封包目的地位址便能用來決定訊息所應用的路徑。
19、5 CNS 15083, X 1271 備考: 如果原始封包包含著 選標頭 , 選標頭 宜用於決定原始 封包內 目的地位址的位置。如果 Segments Left 欄之值為 0,那麼目的地位址就是 IPv6標頭中 Destination Address 欄的值。如果 Segments Left 欄的值大於 0,那麼目的地位址就是 選標頭 中最後一欄位址 Addressn。 該節點便使用封包過大訊息中 MTU 欄的值,作為暫時的 PMTU 值,並將此值與既存的 PMTU 值比較。若暫時的 PMTU 值小於當前的 PMTU 估計值,那麼這個暫時的 PMTU 值將 取 代既存的 PMTU 值,作為路
20、徑的 PMTU 值。 分封層 必須被通知有關 PMTU 降低的狀況。正在使用該路徑的任一 分封層 實體(如 TCP 連結 )都必須被通知有關 PMTU 估計 降低的狀況。 備考: 即使是封 包過大訊息包含一個原始封包標頭 (original packet header)參照到 UDP 封包,若有任一個連結使用該路徑,則 TCP 層必須被通知。 另外,引發封包過大訊息的封包之 發送實體,也應該被通知其所發送的封包被丟棄,即使是 PMTU 估計 未曾 改變,它仍可以重送被丟棄的資料。 備考: 實作若要做到避免使用非同步通知機制來通知 PMTU 的降低,可透過延遲通知方式, 直到 下次嘗試發送大於
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CNS150832007PATHMTUDISCOVERYFORIPVERSION6IPV6 路径 最大 传输 单位 探索 PDF

链接地址:http://www.mydoc123.com/p-634978.html