当前位置: 代码迷 >> 综合 >> 网络层(6.IPv6)
  详细解决方案

网络层(6.IPv6)

热度:6   发布时间:2023-12-06 09:03:24.0

        IP是互联网核心协议。

        IPv4的32位地址已经耗尽,解决措施便是采用更大的地址空间的新版本IP,也就是IPv6。

一、IPv6的基本首部

        IPv6 仍支持无连接的传送,但将协议数据单元 PDU 称为分组。为方便起见,仍采用数据报这一名词。

所引进的主要变化如下:

        更大的地址空间。IPv6 将地址从 IPv4 的 32 位 增大到了 128 位。

        扩展的地址层次结构。可以划分更多层次。

        灵活的首部格式。 IPv6 定义了许多可选的扩展首部。

        改进的选项。 IPv6 允许数据报包含有选项的控制信息,其选项放在有效载荷中。

        允许协议继续扩充

        支持即插即用(即自动配置)。因此 IPv6 不需要使用 DHCP。

        支持资源的预分配。  IPv6 支持实时视像等要求,保证一定的带宽和时延的应用。

        IPv6 首部改为 8 字节对齐。首部长度必须是 8 字节的整数倍。原来的 IPv4 首部是 4 字节对齐。 

IPv6数据报由两部分组成:

        基本首部和后面的有效载荷

        有效载荷也称为净负荷,其允许有零个或多个扩展首部(扩展首部不属于IPv6首部),再后面就是数据部分。   

        

基本首部:

        IPv6把首部中不必要的功能取消了,使得IPv6首部中的字段减少到8个。

与IPv4的区别:

        取消了首部长度字段,因为首部长度是固定的 40 字节;

        取消了服务类型字段;

        取消了总长度字段,改用有效载荷长度字段;

        把 TTL 字段改称为跳数限制字段;

        取消了协议字段,改用下一个首部字段;

        取消了检验和字段,加快了路由器处理数据报的速度。

        取消了选项字段,而用扩展首部来实现选项功能。

(1)版本

        占4位。表明协议的版本,IPv6该字段为6.

(2)通信量类

        占8位。为了区分不同的IPv6数据报的类别或优先级。

(3)流标号

        占20位。

        IPv6的一个新机制就是支持资源预分配,并且允许路由器把每一个数据报与一个给定的资源分配相联系。

        流就是互联网上从特定源点到特定终点(单播或轮播)的一系列数据报(如实时音频或视频传输),而在这个“流”所经过的路径上的路由器都保证指明的服务质量

        所有属于一个流的数据报都具有相同的流标号。

(4)有效载荷长度

        占16位。它指明 IPv6 数据报除基本首部以外的字节数(所有扩展首部都算在有效载荷之内),其最大值是 64 KB。

(5)下一个首部地址

        占8位。相当于IPv4协议的协议字段或可选字段。

                当没有扩展首部时,作用等同于IPv4的协议字段。

                当有扩展首部时,其值就标识后面第一个扩展首部的类型。

(6)跳数限制

        占8位。源站在数据报发出时即设定跳数限制。路由器在转发数据报时将跳数限制字段中的值减 1。

        当跳数限制的值为零时,就要将此数据报丢弃。

(7)源地址

        占128位。发送端IP地址。

(8)目的地址

        占128位。接收端IP地址。

扩展首部介绍:

        IPv6 把原来 IPv4 首部中选项的功能都放在扩展首部中,并将扩展首部留给路径两端的源站和目的站的主机来处理。

        数据报途中经过的路由器都不处理这些扩展首部(只有一个首部例外,即逐跳选项扩展首部)

        这样就大大提高了路由器的处理效率

六种扩展首部:

 (1) 逐跳选项          (2) 路由选择                          (3) 分片  

(4) 鉴别                  (5) 封装安全有效载荷            (6) 目的站选项

        每一个扩展首部都由若干个字段组成,它们的长度也各不相同。但所有扩展首部的第一个字段都是8位的“下一个首部”字段。此字段的值指出了在该扩展首部后面的字段是什么。

二、IPv6的地址

一般来说分为三类:

(1)单播

        单播就是传统的点对点通信。

(2)多播

        多播就是一点对多点的通信,数据包发送到一组计算机中的每一个,IPv6没有广播的术语,它把广播看作一种特殊的多播。

(3)任播

        IPv6新增的一种类型。任播的终点是一组计算机,但数据报只交付其中之一,一般是最近的一个。

结点与接口:

        IPv6 将实现 IPv6 的主机和路由器均称为结点

        一个结点就可能有多个与链路相连的接口。

        IPv6 地址是分配给结点上面的接口的

                一个接口可以有多个单播地址。

                其中的任何一个地址都可以当作到达该结点的目的地址。

IPv6地址记法:

        在IPv6中,每个地址占 128 位,地址空间大于 3.4×10^38 。 为了使地址再稍简洁些,IPv6 使用冒号十六进制记法。

冒号十六进制记法:

        每个 16 位的值用十六进制值表示,各值之间用冒号分隔。例如:

                         68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF

        在十六进制记法中,允许把数字前面的0省略。例如把0000中的前三个0省略,写成1个0。上述的例子便把0000省略写成了0.

零压缩:

        冒号十六进制记法可以允许零压缩,即一连串连续的零可以为一对冒号所取代。

        例如:

                                FF05:0:0:0:0:0:0:B3  可压缩为:    FF05::B3

        为了防止歧义,在任一地址中只能使用一次零压缩。

点十进制记法的后缀:

        冒号十六进制记法可结合使用点分十进制记法的后缀,这种结合在 IPv4 向 IPv6 的转换阶段特别有用。

        例如:

                        0:0:0:0:0:0:128.10.2.1  

                        再使用零压缩即可得出:  ::128.10.2.1

CIDR斜线记法:

        CIDR 的斜线表示法仍然可用。

        例如:

                60 位的前缀 12AB00000000CD3

                可记12AB:0000:0000:CD30:0000:0000:0000:0000/60

                或 12AB::CD30:0:0:0:0/60 (零压缩)

                或 12AB:0:0:CD30::/60 (零压缩)

地址分类:

        ???????

未指明地址

        这是 16 字节的全 0 地址,可缩写为两个冒号“::”。

        这个地址只能为还没有配置到一个标准的 IP 地址的主机当作源地址使用。

        这类地址仅此一个。

环回地址

        即 0:0:0:0:0:0:0:1(记为 ::1)。

        作用和IPv4的环回地址一样。

        这类地址也是仅此一个。

多播地址

        功能和 IPv4 的一样。

        这类地址占 IPv6 地址总数的 1/256。

本地链路单播地址

        有些单位的网络使用 TCP/IP 协议,但并没有连接到互联网上。连接在这样的网络上的主机都可以使用这种本地地址进行通信,但不能和互联网上的其他主机通信。

        这类地址占 IPv6 地址总数的 1/1024。

全球单播地址

        IPv6 的这一类单播地址是使用得最多的一类。

        曾提出过多种方案来进一步划分这128位的单播地址。

        根据2006年发布的草案标准RFC 4291的建议, IPv6 单播地址的划分方法非常灵活。

 三、从IPv4向IPv6过渡

        因为互联网太大,无法立刻从IPv4立刻变为IPv6,因此向 IPv6 过渡只能采用逐步演进的办法,同时,还必须使新安装的 IPv6 系统能够向后兼容:

        IPv6 系统必须能够接收和转发 IPv4 分组,并且能够为 IPv4 分组选择路由。

1. 双协议栈

        双协议栈是指在完全过渡到 IPv6 之前,使一部分主机(或路由器)装有两个协议栈,一个 IPv4 和一个 IPv6

        双协议栈的主机(或路由器)记为 IPv6/IPv4,表明它同时具有两种 IP 地址:一个 IPv6 地址和一个 IPv4 地址

        双协议栈主机在和 IPv6 主机通信时是采用 IPv6 地址,而和 IPv4 主机通信时就采用 IPv4 地址。

        根据 DNS 返回的地址类型可以确定使用 IPv4 地址还是 IPv6 地址。

        A和F都是使用IPv6,传播需要经过C和D(使用IPv4),这样就需要B和E转换,但是这是有代价的。转换后,恢复成IPv6时,IPv6的某些字段无法恢复,例如流标号。

2.  隧道技术

        在 IPv6 数据报要进入IPv4网络时,把 IPv6 数据报封装成为 IPv4 数据报,整个的 IPv6 数据报变成了 IPv4 数据报的数据部分

        当 IPv4 数据报离开 IPv4 网络中的隧道时,再把数据部分(即原来的 IPv6 数据报)交给主机的 IPv6 协议栈。

四、ICMPv6

        IPv6 也不保证数据报的可靠交付,因为互联网中的路由器可能会丢弃数据报。

        因此 IPv6 也需要使用 ICMP 来反馈一些差错信息。新的版本称为 ICMPv6。

        地址解析协议 ARP 和网际组管理协议 IGMP 协议的功能都已被合并到 ICMPv6 中。 

         ICMPv6 是面向报文的协议,它利用报文来报告差错,获取信息,探测邻站或管理多播通信。

        ICMPv6 还增加了几个定义报文的功能及含义的其他协议。

???????