【路径MTU发现】1.简介
当一台IP主机有大量的数据要发送给另一台主机的时候,数据是作为一系列的IP数据报传输 。数据报最好具有在从源点到目的点的路径上不需要分片的最大尺寸 。(避免分片的情况,见[5] 。)这种数据报的尺寸称作为路径MTU(PMTU),它等于路径上每一跳的MTU之中的最小值 。当前因特网协议族的缺点就是对一台主机来说缺乏发现任意一条路径的PMTU的标准机制 。
注重:路径MTU在[1]中被称作为“用于发送的有效MTU"(EMTU_S).
PMTU与一条路径相关,路径是IP的源地址、目的地址,也许还有
服务类型(TOS)的特定组合 。
当前实际[1]采用的是576和第一跳MTU中的较小者作为任何不与源地址网络或者子网直接相连的目的地址的PMTU 。在许多情况下,这导致了使用比必须要求小的数据报,因为许多路径的PMTU比576大 。一台主机发送比路径MTU小的多的数据报是浪费因特网的资源,达不到最优的吞吐量 。而且,当前的实现在所有的情况下不防止分片,因为一些路径的MTU比576小 。
期望未来的路由协议将能够在一个路径区域中提供准确的PMTU信息,尽管也许不能越过多级路由层次 。还要多久这种未来的路由协议才能广泛应用现在还不清楚 。所以在以后的几年中,因特网在所有主机和路由器被修改前为了不浪费资源需要一种简单的发现PMTU的机制 。
2.协议概览
在此备忘录中,我们描述了一种技术,在IP首部使用不分片(DF)比特位动态发现一条路径的PMTU 。基本思想就是源主机开始假定一条路径的PMTU是它的(已知的)第一跳的MTU,在这条路径上发送的数据报都设置DF比特位 。假如有的数据报太大,不被路径中的某些路由器分片就不能转发,那么路由器将丢弃这些数据报,然后返回一个意思为“需要分片,设置了DF位[7]”的ICMP目的不可达报文 。在收到这样一条报文后(以后称它为“数据报太大”报文),源主机减小它假定的这条路径的PMTU 。
当主机对PMTU的估计值小到它的数据报不需要分片也能转发的时候,PMTU发现过程结束 。或者,主机可以选择停止在数据报首部中设置DF比特位来结束发现过程;它可能会这样做,例如主机想在某些情况下让数据报分片 。通常,主机继续在所有的数据报中设置DF,这是为了假如路由改变并且新的PMTU减小的时候,将会被发现 。
不幸的是,当前指定的数据报太大报文不报告拒绝太大数据报的那一跳的MTU 。所以源主机不能准确地判定把它假设的PMTU减小多少 。为了弥补这个缺点,我们建议使用当前在数据报太大报文中没有使用的一个报头字段来报告减小的那一跳的MTU 。这是支持PMTU发现的路由器唯一被指定的改变 。
路径的PMTU可能随着时间而改变,因为路由的拓扑结构可能改变 。PMTU的减小通过数据报太大报文被检测到,除非主机停止设置沿此路径的数据报的DF比特位 。为了检测路径的PMTU值的增加,主机周期地增加它假定的PMTU(假如它已经停止,再重新设置DF比特位) 。这几乎总是导致数据报被丢弃,数据报太大报文产生,因为在大多数情况下,路径的PMTU不会改变,所以不应该频繁地做这种工作 。
因为这种机制本质上保证了主机接收不到来自另一台进行PMTU发现的对等者的分片,它可能对与某个不能重新装配分片的数据报的主机进行互操作有帮助 。
3,主机规范
当主机收到一个数据报太大报文时,它必须基于此报文中的下一跳MTU字段中的值(见第四节),减少对相关路径的PMTU估计值 。因为不同的应用程序有不同的需要,不同的实现体系倾向于不同的策略,所以我们不能在这种情况下指定确定的行为 。
推荐阅读
- 最大分段 小议TCP的MSS以及MTU
- Z710c的r1jc002版本软件的新发现
- vivox23幻彩版怎么去掉照片水印
- P768暂时发现的不足和我的感觉
- 关注P768真机以来,发现的几个缺点!
- 联想z6怎么修改照片存储路径
- TCP的路径MTU发现问题
- 美颜相机中打马赛克具体操作流程
- 关于p768的功能和待机时间
- 世界上最长的蚯蚓是在哪里发现的