IPv6为什么只允许源分片,不允许中间转发节点进行分片? 您所在的位置:网站首页 使用ipv6有什么好处 IPv6为什么只允许源分片,不允许中间转发节点进行分片?

IPv6为什么只允许源分片,不允许中间转发节点进行分片?

2024-01-28 12:06| 来源: 网络整理| 查看: 265

随着网络技术的发展,针对下一代IP的问题提出了IPv6,它设计的目的就是为了解决IP地址不够用,IP的安全性、移动性以及服务质量(QoS)等问题。本文就IPv6分片的部分进行讨论。

在IPv4网络当中,一个数据包在发送到网络当中时,是无法知道网络的全部情况的,这个设计主要是为了减轻主机的负担。因为一台主机存储网络的所有IP地址、网络带宽以及各个部分的传输速度等是会耗费大量的主机资源的,是不现实的,也是没必要的。所以,数据包在源可以分片,同时在中间转发节点也会分片,最终由目的主机进行重组,这个机制可以保证数据最终的完整性。

但是在IPv6网络中,只允许源分片,不允许中间转发节点进行分片。为什么会这么设计呢?本文将从三个方面进行讨论,同时结合其他参考文章进行解释。

IPv6只允许源分片 IPv6路径MTU发现机制分组和重组的过程分组的代价

IPv6路径MTU发现机制

参考杨宁老师的《IPv6和MIPv6参考文档》,路径MTU(Path MTU,PMTU)是从分组源到目的节点的路径上所有链路MTU中的最小值。由于IPv6不允许在转发路由器上进行分片,因此IPv6源节点需要使用路径MTU发现机制来确定PMTU,以确保分组或分片不超过PMTU,从而能被路径上的所有路由器成功转发。 IPv6路径MTU发现机制1 IPv6路径MTU发现机制2

分组和重组的过程

在IPv4当中,中间路由器的分组以及目的主机的重组是很耗费时间的。这对网络当中的效率产生了一定程度的影响。所以,IPv6只允许源分片可以减少重组的时间,从而提高数据转发的效率。

分组的代价

我们经常可以听到递归是一个程序员永远的梦魇,为什么呢?分治和递归作为算法的入门,是通过重复将问题分解为同类的子问题而解决问题的方法。有两个重要的的问题,就是合并的时候,如何合并以及合并的次数(子问题的规模)是多少?递归的深度越深,合并的次数越多,那么效率也会收到影响,如下图所示: 分治 同样的,在IPv4的分组,分组可以使得满足接收方的有效负载大小的同时,它也有一定的代价。分组太小那么路径的传输不能有效利用,分组太大会导致丢包,它在转发过程中每进行一次分片,它就会给转发带来更多的代价——降低了数据包转发的效率。

当然参考其他的两篇文章,可以或者其他的理解。

参考文章IP 基础知识全家桶,45 张图一套带走 取消了分片/重新组装相关字段。 分片与重组是耗时的过程,IPv6 不允许在中间路由器进行分片与重组,这种操作只能在源与目标主机,这将大大提高了路由器转发的速度。

参考文章网络层——IPv6 概述 对比 IPv4 IPv6 数据报相对于 IPv4 数据报有很多删减的地方,这里关注 3 个方面。

首先是分片与重组的问题,IPv6 数据报不允许在路由器上分片,这个操作只能在源和目的执行。如果中间遇到链路的 MTU 较小怎么办?这个时候路由器就直接丢包,然后向发送发发一个“分组太大”的 ICMP 报文,然后源就根据这个报文,把数据报分成更小的几个再重传。这种设计时合理的,因为路由器的分片是耗时的操作,这样可以是 IP 数据报转发的速度提高。第二个我们关注首部校验和的问题,这个字段在 IPv6 中已经没了。因为在传输层、数据链路层协议中,有很多协议都有具备错误检测的功能,而首部校验和因为有 TTL 等参数变化,计算的开销很大。因此把这个字段去除之后,也可以提升 IP 数据报转发的速度。第三个我们关注选项,这个字段在 IPv6 中已经没了,不过它的功能被归并到下一个首部字段中了。这种改动可以使得 IP 数据报的首部长度为定长,也就是 40 字节。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有