禁止码迷,布布扣,豌豆代理,码农教程,爱码网等第三方爬虫网站爬取!

字段

在 2011 年 2 月,IANA 向一个区域注册机构分配完了未分配的 IPv4 地址的最后剩余地址池。这些注册机构可用的 IPv4 地址一旦用完,IPv4 地址就会耗尽,因此IPv6 技术就被开始进行研发部署。(原计划让 ST-2 作为 IPv5,但是 ST-2 后来就被舍弃了。)下面就让我们看看 IPv6 数据报有什么内容:
网络层——IPv6 概述

字段 作用
版本(version) 占 4 位,表示协议版本
流量类型(traffic class) 占 8 位,与 IPv4 的服务类型类似,区分不同的数据报
流标签(flow label) 占 20 位,用来标识一段数据报的流,能够对一个流中的某些数据报给出优先权
有效载荷长度(payload length) 占 16 位,给出了 IPv6 数据报出基本首部以外的字节数
下一个首部(next header) 占 8 位,当 IPv6 数据报没有拓展首部时,指明数据应当交付给哪一个上层协议;当出现拓展首部时,标识后面第一个拓展首部的类型
跳数限制(hop limit) 占 8 位,该字段类似于 IPv4 中的 TTL,每次转发跳数减 1,该字段达到0 时包将会被丢弃
源地址、目的地址(Address) 各占 128 位,标识该报文的来源和目的地
观察以上字段,我们需要重重关注 3 个方面。首先是 IP 地址长度从 IPv4 的 32 bit 增加到了 128 bit,也就是说可以表示 2128 个 IP 地址。这个数量级可以为地球上的每一个砂砾都赋予一个 IP 地址,这就保证了全世界不会用尽 IP 地址。第二我们关注 40 字节的首部,这也就说明了 IPv4 的很多首部统统被舍弃了,这样路由器就能更快地处理 IP 数据报。
第三我们关注流标签,所谓“流”就是互联网络上从特定源点到特定终点的一系列数据报。因此“流标签”的一种解释是“给属于特殊流的分组加上标签,这些特殊流是发送方要求进行特殊处理的流,入一种分默认服务质量或需要实时服务的流。”其实这么说还是很含糊,就比如说音频流,这个流被标识出来之后就可以进行一些定制的操作。这个字段很耐人寻味,这为 IPv6 提供更强大的服务提供了健壮性的选择。

对比 IPv4

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

扩展首部

IPv6 把 IPv4 中的选项字段的功能用扩展首部取代,而且扩展首部的处理由源和目的端系统来处理。这种设计不仅使得数据报首部的长度可以固定,而且沿途的路由器都不用对除了逐跳选项以外的信息进行处理,这也提高了路由器转发的效率。

向 IPv6 过渡

IPv4 要如何实现向 IPv6 的过渡呢?即使 IPv6 可以做到向后兼容,发送、路由和接收 IPv4 数据报,但是 IPv4 并不能够兼容 IPv6。第一种想法是约定一个日期,全球因特网的所有服务器全部改用 IPv6,这个明显很不现实。比较好的思路是逐步演进,慢慢地向 IPv6 进行过度。

双协议栈

所谓双协议栈技术,就是在完全过渡之前,先使一部分主机或路由器能够同时使用 IPv4 和 IPv6 进行通信,这样无论是接收到哪种数据报,都可以进行处理。但是由于二者不能兼容,主机要如何区分 IPv4 和 IPv6 地址呢?使用 DNS 进行解析,根据解析的结构判断使用什么样的处理方式。
这么做看似可行,但是会滋生很多问题。首先是主机或路由器需要有 2 套信息,分别是 IPv4 地址和 IPv6 地址,这增大了存储的开销。第二是每一跳都是用 DNS 进行解析,这也增大了时间上的开销,为 IP 协议实现快速传输造成了限制。第三也就是 IPv4 数据报被转换为 IPv6 数据报时,由于字段的不同将会造成数据的缺失,这是最要命的。
网络层——IPv6 概述

隧道技术

隧道技术是实践证明性能不错,得到广泛应用的技术。思路是将 2 台 IPv6 路由器之间的 IPv4 路由器在逻辑上合并,当做是一个隧道。借助隧道,在发送端的 IPv6 节点可以将整个 IPv6 数据报放到 IPv4 数据报的有效载荷字段中。则在隧道中的 IPv4 路由器就正常地完成转发操作就行,和正常的数据报传输无异。当隧道接收端的 IPv6 节点收到数据报之后再提取并形成 IPv6 数据报即可。
概括一下,就是IPv6 数据报作为 IPv4 数据报被封装,穿越 IPv4 网络。整个过程就好像 IPv6 服务器之间直接相连接收数据报一样,兼容性和效率都很不错。
网络层——IPv6 概述

参考资料

《计算机网络(第七版)》 谢希仁 著,电子工业出版社
《计算机网络 自顶向下方法》 [美] James F.Kurose,Keith W.Ross 著,陈鸣 译,机械工业出版社

相关文章:

  • 2021-07-21
  • 2021-06-13
  • 2021-10-24
  • 2022-02-08
  • 2022-01-11
  • 2022-01-18
  • 2021-05-31
  • 2021-09-17
猜你喜欢
  • 2021-06-03
  • 2022-01-12
  • 2021-09-04
  • 2021-09-12
  • 2021-06-14
  • 2021-05-31
相关资源
相似解决方案