- 什么是路径MTU?IPV4如何处理MTU问题?
- 路径 MTU是源节点和目的节点之间在不分段时可以沿着该路由穿越任何网络的最大包长。
- IPV4网络中发送报文时并不考虑从源地址到目的地址之间路径上链路的最小MTU(路径MTU),他只管自己所在的链路的MTU,至于发出的数据包转发到了别的MTU较小的网络中的处理是他是不考虑的,由别的路由器进行包的分割(包括正确的设置分段标识和分段偏移值)
- 好处:在使用了分段之后, 不论中间的网络是什么类型,不同类型网络上的节点都可以互操作,源节点无需了解任何有关目的节点网络的信息,同时也无需了解它们之间的网络信息。由于不需要节点或路由器存储信息或记录整个Internet的结构,从而 Internet 可以获得很好的扩展性。
- 坏处:目的节点收到这种分割后的数据包之后,系统需要根据每个分段包的IPV4头进行分段数据重组;他为路由器带来了性能方面的问题,对IP包进行分段消耗了沿途路由器和目的地的处理能力和时间。同时,了解IP数据报标识、计算分段偏移值、真正把数据分段以及在目的地进行重装都会带来额外的开销。
- IPV4如何实现path mtu功能?
- IPV4通过一种叫做“路径MTU发现”的方法来实现路径MTU功能
- 通过这种方法,路由器可以向目的地发送一个包来报告该路由器上链路的 MTU 值。如果包到达了一条必须对其进行分段的链路,负责分段的路由器将使用 ICMP 回送一个报文来指出分段路由器上链路的 MTU 值。这种过程可以重复进行直到路由器确定路径 MTU为止。
- IPV6如何处理路径MTU问题?
- IPv6 的分段只能在源节点和目的节点进行, 这样就简化了包头并减少了用于选路的开销。
- 逐跳分段被认为是一种有害的方法。首先,它在端到端的分段中将产生更多的分段。此外在传输中,一个分段的丢失将导致所有分段重传。
- 通过标准要求所有支持 IP 的链路必须能够处理一些合理的最小长度的包。IPV6的RFC标准规定从最初的536字节变成了目前的1280字节。在标准制作的过程中有人倡导较短的MTU,有人倡导较长的MTU,且很明显:倡导较短 MTU的人希望那些不能支持较长MTU的网络不会被完全丢弃,而倡导较长 MTU的人不希望为照顾小部分接近于废弃的网络而使得整个 Internet 的性能下降。
- 为了对较短的 MTU进行一些弥补, IPv6 标准中强烈推荐所有 IPv6 节点都支持路径 MTU发现。路径MTU发现最早出现在 RFC1191中,其中使用了分段标志中的“不能分段”来要求中间路由器在发现包太长时返回一个 ICMP出错报文。路径 MTU 发现的 IPv6 版本在 RFC1981(IPv6 的路径 MTU 发现)中描述。这是对原有的RFC1191的升级,但其中加入了一些改变使之可以工作在 IPv6 中。其中最重要的是,由于IPv6 头中不支持分段,因此也就没有“不能分段”位。正在执行路径 MTU 发现的节点只是简单地在自己的网络链路上向目的地发送允许的最长包。 如果一条中间链路无法处理该长度的包,尝试转发路径 MTU 发现包的路由器将向源节点回送一个 ICMPv6 出错报文。然后源节点将发送另一个较小的包。这个过程将一直重复,直到不再收到 ICMPv6 出错报文为止,然后源节点就可以使用最新的 MTU作为路径 MTU。
- 这里需要注意,有一些实例并没有实现路径 MTU发现。例如,使用最小 IPv6 实现来进行远程网络启动的终端只是简单地使用 576 字节的路径 MTU。从源节点到目的节点的 IPv6分段,作为一个扩展头来实现。
- IPV6如何处理那些大于l路径MTU的包,也就是IPV6如何处理分片?
- IPV6源节点使用分段包头来发送大于去往目的节点的路径MTU的包。
- 前面的包头中 “下一个包头”字段中的值为 44,表示下一个包头为分片包头。要发送大于去往目的节点的路径 MTU 的包,源节点可以将包分成若干分片,每个分片单独发送,并且在接收者处进行重组。
- 最初的,未分片的大数据包称为“原包” 。不可分片部分包括 IPV6 包头以及那些必须由路由中的节点处理的扩展包头。
- 重组应遵循如下原则:原包只能由具有相同源地址、目的地址和分片标识的分片包重组。重组后的包中的不可分片部分由第一个分片包,也就是分片偏移量为 0 的那个包中分段包头前面所有的包头(不含分段包头)组成。
- 路径 MTU是源节点和目的节点之间在不分段时可以沿着该路由穿越任何网络的最大包长。
- IPV4网络中发送报文时并不考虑从源地址到目的地址之间路径上链路的最小MTU(路径MTU),他只管自己所在的链路的MTU,至于发出的数据包转发到了别的MTU较小的网络中的处理是他是不考虑的,由别的路由器进行包的分割(包括正确的设置分段标识和分段偏移值)
- 好处:在使用了分段之后, 不论中间的网络是什么类型,不同类型网络上的节点都可以互操作,源节点无需了解任何有关目的节点网络的信息,同时也无需了解它们之间的网络信息。由于不需要节点或路由器存储信息或记录整个Internet的结构,从而 Internet 可以获得很好的扩展性。
- 坏处:目的节点收到这种分割后的数据包之后,系统需要根据每个分段包的IPV4头进行分段数据重组;他为路由器带来了性能方面的问题,对IP包进行分段消耗了沿途路由器和目的地的处理能力和时间。同时,了解IP数据报标识、计算分段偏移值、真正把数据分段以及在目的地进行重装都会带来额外的开销。
- IPV4通过一种叫做“路径MTU发现”的方法来实现路径MTU功能
- 通过这种方法,路由器可以向目的地发送一个包来报告该路由器上链路的 MTU 值。如果包到达了一条必须对其进行分段的链路,负责分段的路由器将使用 ICMP 回送一个报文来指出分段路由器上链路的 MTU 值。这种过程可以重复进行直到路由器确定路径 MTU为止。
- IPv6 的分段只能在源节点和目的节点进行, 这样就简化了包头并减少了用于选路的开销。
- 逐跳分段被认为是一种有害的方法。首先,它在端到端的分段中将产生更多的分段。此外在传输中,一个分段的丢失将导致所有分段重传。
- 通过标准要求所有支持 IP 的链路必须能够处理一些合理的最小长度的包。IPV6的RFC标准规定从最初的536字节变成了目前的1280字节。在标准制作的过程中有人倡导较短的MTU,有人倡导较长的MTU,且很明显:倡导较短 MTU的人希望那些不能支持较长MTU的网络不会被完全丢弃,而倡导较长 MTU的人不希望为照顾小部分接近于废弃的网络而使得整个 Internet 的性能下降。
- 为了对较短的 MTU进行一些弥补, IPv6 标准中强烈推荐所有 IPv6 节点都支持路径 MTU发现。路径MTU发现最早出现在 RFC1191中,其中使用了分段标志中的“不能分段”来要求中间路由器在发现包太长时返回一个 ICMP出错报文。路径 MTU 发现的 IPv6 版本在 RFC1981(IPv6 的路径 MTU 发现)中描述。这是对原有的RFC1191的升级,但其中加入了一些改变使之可以工作在 IPv6 中。其中最重要的是,由于IPv6 头中不支持分段,因此也就没有“不能分段”位。正在执行路径 MTU 发现的节点只是简单地在自己的网络链路上向目的地发送允许的最长包。 如果一条中间链路无法处理该长度的包,尝试转发路径 MTU 发现包的路由器将向源节点回送一个 ICMPv6 出错报文。然后源节点将发送另一个较小的包。这个过程将一直重复,直到不再收到 ICMPv6 出错报文为止,然后源节点就可以使用最新的 MTU作为路径 MTU。
- 这里需要注意,有一些实例并没有实现路径 MTU发现。例如,使用最小 IPv6 实现来进行远程网络启动的终端只是简单地使用 576 字节的路径 MTU。从源节点到目的节点的 IPv6分段,作为一个扩展头来实现。
- IPV6源节点使用分段包头来发送大于去往目的节点的路径MTU的包。
- 前面的包头中 “下一个包头”字段中的值为 44,表示下一个包头为分片包头。要发送大于去往目的节点的路径 MTU 的包,源节点可以将包分成若干分片,每个分片单独发送,并且在接收者处进行重组。
- 最初的,未分片的大数据包称为“原包” 。不可分片部分包括 IPV6 包头以及那些必须由路由中的节点处理的扩展包头。
- 重组应遵循如下原则:原包只能由具有相同源地址、目的地址和分片标识的分片包重组。重组后的包中的不可分片部分由第一个分片包,也就是分片偏移量为 0 的那个包中分段包头前面所有的包头(不含分段包头)组成。