⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1981.txt

📁 最近的中文RFC文档
💻 TXT
📖 第 1 页 / 共 2 页
字号:
组织:中国互动出版网(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 )
译文发布时间:2002-6-11
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须保留本文档的翻译及版权信息。

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)
本备忘录的状态
本文档讲述了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和建议以得到改进。请参考最新版的“Internet正式协议标准”(STD1)来获得本协议的标准化程度和状态。本备忘录的发布不受任何限制。
摘要
本文档描述了对于IPv6的路径MTU探索。它很大程度上是从RFC1191(描述了对于IPv4的路径MTU探索)发展而来的。
目  录
摘  要	1
1 引言	2
2 术语	2
3 协议概述	3
4 协议需求	4
5 执行问题	5
5.1 分层	5
5.2 存储PMTU信息	5
5.3 清除陈旧PMTU信息	7
5.4 TCP层动作	7
5.5 其他传输协议的运行问题	8
5.6 管理界面	9
6 安全考虑	9
致谢	10
附录A - 与RFC1191的对比	10
参考	10
作者地址	11

1 引言
当一个IPv6节点发送大量数据到另一节点时,数据通过一系列IPv6分组传送。当这些分组具有从源节点到信宿节点能够成功传送所允许的最大长度时,我们认为它达到理想状态。这个分组长度被称为路径MTU(PMTU),并且它等于在这个路径里所有链接的最小链接MTU。IPv6定义了一个标准机制,使节点可以发现任一路径的PMTU。IPv6节点应当实现路径MTU的发现,从而发现并利用那些具有比IPv6最小链接MTU大的PMTU的路径。一个最小的IPv6执行可以选择忽略路径MTU发现的执行。那些不执行路径MTU发现的节点使用IPv6最小链接MTU(定义于[IPv6-SPEC])作为分组的最大长度。在大多情况下,这样会导致使用了小于必需长度的分组,因为大部分路径的PMTU大于IPv6最小链接MTU。一个节点所发送的分组远小于路径MTU的允许,这是对网络资源的一种浪费并可能产生不理想的处理能力。
2 术语
节点			-指一种执行IPv6的设备
路由器			-指一种节点转发IPv6分组,本身没有明确的地址
主机			-不是路由器的任何节点
上层			-紧接在IPv6的上层协议。如传输协议TCP和UDP,控制协议ICMP,路由协议OSPF,和在IPv6上“挖隧道”的网络或下层协议IPX,AppleTalk,以及IPv6本身。
链接			-一种使节点可以在链路层(紧接着低于IPv6的层)上通信的通信设备或媒介。如以太网(简单的或桥路的),PPP链接,X.25,帧中继,ATM网,和网络层或更高的“隧道”,例如在IPv4或IPv6本身上的隧道。
接口			-指一种连接节点的附加装置。
地址			-指一个接口或一系列接口的IPv6层的标识符。
分组			-IPv6头加上有效载荷。
链接MTU			-最大传输单元,分组所具有的8位字节最大长度,可以在某一链接上被一次性传输。
路径			-传输一分组时从源节点到信宿节点所经过的一系列链接。
路径MTU			-在源节点到信宿节点的路径里所有链接中的最小链接MTU。
PMTU			-路径MTU。
路径MTU发现	-一个节点了解某一路径的PMTU的过程。
流				-从某个源点向(单播或组播的)信宿发送的分组群中,源点要求中间路由器作出特殊处理的那些分组。
流标记			-指由源地址和非零流标识的组合体。
3 协议概述
该协议描述了一种动态发现任一路径的PMTU的方法。其基本原理是由某一源节点最初假设路径的PMTU为路径中第一段距离的MTU(已知)。如果分组对于沿路径中的某节点来说长度超限,那么该节点将丢弃分组并返回ICMPv6指示分组长度超限[ICMPv6]。收到该信息后,源节点就会减少假设的PMTU。当节点估计的PMTU小于或等于实际的PMTU时,路径MTU发现过程结束。请注意由于可能会在路径的远处存在具有更小MTU的链接,因而在路径MTU发现过程结束前可能会出现分组发送/分组长度超限信息接收这样的反复数次过程。
节点也可以在停止发送大于IPv6最小链接MTU分组时选择中止探索过程。
随着时间的过去原先的路径MTU可能改变,主要因为路由布局的改变。PMTU的减小可以被分组长度超限信息发现。为了检测到某路径的PMTU的增长,节点定期的增加它假设的PMTU。这样很可能会导致分组被丢弃并且产生分组长度超限信息,因为大多数情况下某路径的PMTU不会改变。因此,很少进行某路径的PMTU是否增加的测试。
路径MTU发现支持组播和单播传送的信宿。在组播传送时,相同的分组经过不同的路径传送到不同的节点上。每个路径具有不同的PMTU,并且一个组播传送分组可能产生很多分组长度超限信息,每个信息指示了不同的下一路程段的MTU。这一系列路径中的最小PMTU被用来决定后面的将要进行组播传送的分组长度。
注意:路径MTU发现必须被执行,即使当一个节点认为目的地和它自己是相同的链接。在特殊情况下如邻居路由器对一些目的地作为代理[ND],目的地可以被认为直接链接的,但实际上多于一个路程段。
4 协议需求
就像在一开始所说的,IPv6节点没有必需要实现路径MTU发现。在本节中所叙述的需求只是应用于那些包含路径MTU发现的执行过程中。
当某一节点收到分组长度超限信息,它必须减少它对相应路径所估计的PMTU,基于信息中的MTU域中的值。由于不同的应用程序会有不同的需求,并且不同的执行体系又会支持不同的策略,所以一个节点在这种情况下的准确动作没有被详细说明。
当收到分组长度超限信息后,节点必须尽量避免在以后引起更多的此类信息。该节点必须减小发送的分组长度。当使用大于IPv6最小MTU的PMTU时,可能还会导致产生分组长度超限信息。由于这些信息中的任何信息(包括丢弃分组时它们的回答)都会消耗网络资源,该节点必须强迫路径MTU发现过程结束。
使用路径MTU发现的节点必须尽快探测到PMTU的减小。节点也可以探测到PMTU的增长,但这样做需要发送比当前估计的PMTU大的分组,并且由于PMTU增长的可能性很低,要求节点必须少做这种探测。一个对增长的探测尝试(发送大于当前估计的分组),不能在收到该路径的分组长度超限信息后5分钟之内进行。建议设置该计时器两倍于最小时间值(也就是10分钟)。
一个节点不能减少它所估计的路径MTU低于IPv6最小链接MTU。
注意:节点可能收到分组长度超限信息指示下一路程段MTU小于IPv6最小链接MTU。在这种情况下,该节点不需要使后来在此路径中发送的分组长度低于IPv6最小链接MTU,但必须包含一个分段头标在这些分组中。(定义于[IPv6-SPEC])
节点不允许增加估计的路径MTU值作为对分组长度超限信息的回应。一个信息声称增加路径MTU,它可能是一个陈旧的分组,在网络里到处游荡,或一个虚假的分组作为对拒绝服务攻击的一部分,或者可能是组播传送的结果,因为每个路径都有不同的PMTU。
5 执行问题
这一部分讨论了许多关于路径MTU的执行问题。这不是一个规范,但是它是一系列的注解来帮助执行者。这些问题包括:
-什么层执行路径MTU发现?
-PMTU信息是如何储存的?
-陈旧的PMTU信息是如何删除的?
-传输层和高层必须做什么?
5.1 分层
在IP体系中,对发送分组长度的选择是由IP层以上层的协议所作出的。本文指的是被称为“分组协议”(packetization protocol)的协议。分组协议通常为传输协议(如TCP)但是还可以是高层协议(如,紧接着建立在UDP上层的协议)。在分组层(packetization layer)上执行路径MTU发现简化为几个层内的执行问题,但是还有一些缺陷:执行可能被每个分组协议重新执行,这样很难在不同分组层之间分享PMTU信息,而且在维持面相连接的情况下,一些分组层可能不会容易的去长时间存储PMTU信息。
所以建议由IP层存储PMTU信息,ICMP层处理收到的分组长度超限信息。分组层可以对PMTU的改变作出响应,改变它们所发出的信息大小。为了支持这种分层,分组层需要能够知道MMS_S(最大发送传输信息大小maximum send transport-message size)值的改变。MMS_S是源自路径MTU,值为PMTU减去IPv6头标的大小加上IP层为扩展头标(如果有)预留的空间的值。
对于分组层它可能是一个UDP核心程序之外的应用程序,它有可能无法改变它所发出信息的大小。这样会使分组长度超过路径MTU。为了解决这个问题,IPv6定义了一种机制它允许很大的有效载荷被分段,每段被一单独分组发送(见[IPv6-SPEC]section "Fragment Header")。然而,我们还是希望分组层避免发送信息分段(对分段的不利情况,见[FRAG])。
5.2 存储PMTU信息
理想来说,PMTU值应当由在指定路径上的源点和信宿之间反复交换分组而来。但是,大多数情况下,节点没有足够的信息能够充分而准确的识别那样一个路径。不过节点应当有一些本地的有代表性的路径的PMTU。这样就只能选择路径的本地代表。
在组播传送的时候,分组可能经由不同的路径到达不同的节点。路径的本地代表对于组播传送来说实际上代表潜在的大量的路径。
一个执行过程最少应当维持一个PMTU值,并应用于所以从该节点出发的分组。这个PMTU值从所有该节点上使用该路径中的PMTU中选择最小的一个而来。这种方法对于大多数路径可能导致使用了比最大长度小的分组。
执行可以把信宿地址作为路径的本地代表。在该信宿上使用过的所有路径的PMTU中最小的一个作为该信宿自带的PMTU值。到达一特殊信宿所使用的路径数量是不多的,很多时候只有一个。这种方法就使那些按信宿为准的分组长度理想化。这种方法很好的符合了在[ND]中描述的主机的概念模型:PMTU值应当存储在信宿地存储区内。
如果使用了流,执行应当使用流标志作为路径的本地代表。发送到相同信宿的分组由于分别属于不同的流可能使用不同的路径,应当通过流标志来选择路径。这种方法使按流为准的分组长度最佳,比按信宿为准所产生的PMTU值更准确。
对于源定义路径的分组(也就是说分组包含IPv6寻路头标[IPv6-SPEC]),源路径可能更能作为路径的本地代表。特别是当分组包含类型为0的寻路头标,包含了一个完整的路径说明。执行可以使用源路径信息到路径的本地代表中。
最初某一路径的PMTU值假设为第一路程段的MTU(已知)。当收到分组长度超限信息,该节点根据分组长度超限信息内容确定信息适用的路径。例如,如果信宿地址被用作路径的本地代表,原始分组的地址信息就能用来决定信息适用的路径。
注意:如果原始分组包含寻路头标,那么寻路投标应当被用于确定原始信息内的信宿地址的位置。如果剩余中继点数为0,那么信宿地址是IPv6头标中的目的地址。而当剩余中继点数大于0时,则是是寻路头标中的最后的地址(地址[n])。
然后该节点使用分组长度超限信息中MTU域中的值,作为尝试的PMTU值,并与当前的PMTU进行比较。如果尝试的PMTU小于当前PMTU估计,那么尝试PMTU将代替当前PMTU作为该路径的PMTU值。
必须将PMTU的降低对分组层进行通报。任何正在使用该路径的分组层(如TCP链接)必须在PMTU估计降低时被通知到。注意:即使分组长度超限信息包含的源分组头标指示使用UDP分组,只要TCP层上有链接使用该路径,那么它就必须被通知到。
同样当发送分组引起分组长度超限信息时,应当通知这个分组被丢弃,即使是PMTU估计不变,它还是要重发丢弃的数据。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -