IPv6分组的基本首部格式、扩展首部格式和扩展首部的出现顺序在这篇文章里面有:TCP/IP协议
TLV可选项格式
-
选项类型,指明选项的类型。
TLV可选项利用类型字段中的最高2位,定义了在结点不能识别特定的选项时应采取的动作。
选项类型 内容 00 结点根据”选项数据长度“指示的长度,忽略并跳过这个不能识别的TLV可选项,继续处理扩展首部的其余部分。 01 丢弃包含这个不能识别的TLV可选项的分组。 10 丢弃包含这个不能识别的TLV可选项的分组,并且不论该分组的目的地址是否是多播地址,都向该分组的源节点发送一个代码为2的ICMP差错报告报文,以便向源节点说明发生了不能识别TLV可选项的错误。 11 丢弃包含这个不能识别的TLV可选项的分组,如果该分组的目的地址不是多播地址,则向该分组的源节点发送一个代码为2的ICMP差错报告报文,以便向源节点说明发生了不能识别TLV可选项的错误。 选项类型字段的第3位为1说明在分组从源结点到目的结点的传送过程中选项数据在传送过程中可以变化。
-
选项数据长度,以字节为单位表 示选项数据字段的长度。
-
选项数据,该字段包含选项的特定数据,其长度不定,最大长度位255B,该字段又可以划分为多个子字段。
跳到跳选项扩展首部
-
下一首部:与IPv6基本首部中的下一首部字段相同
-
扩展首部长度:用于表示跳到跳选项扩展首部的长度,以8B为单位,所以整个扩展首部的长度值必须是8B的整数倍,不计算扩展首部的前8B。
-
TLV可选项:前文已介绍。
跳到跳选项扩展首部还定义了选项类型为194的巨型载荷TLV可选项,打破了IPv6基本首部对载荷长度的限制,如果使用巨型载荷选项要求IPv6首部的16位有效载荷长度字段值必须为0,并且扩展首部中的巨型载荷长度字段值不小于65535。有效载荷长度最多可以为232 -1个字节。
★★★源路由选择扩展首部★★★
IPv4中的源路由选择选项允许用户指定分组的传输路由,即到达目的地沿途必须经过的路由器,但带选项的IPv4只能有40个附加字节,所以只能填入10个32位的地址,且路由上的每个路由器无论是否在列表中都必须处理整个地址列表,所以会导致处理很慢。
IPv6使用源路由选择扩展首部代替了IPv4中所实现的源路由选择选项。路由类型为 0 的路由选择扩展首部可以有最大为23个IPv6地址组成的地址向量表。它并不要求IPv6分组严格按照IPv6目的地址字段和地址向量表中的地址指定的路径传输,并不是每个中间结点都必须处理源路由选择扩展首部,仅当路过的中间结点为源路由选择扩展首部指定的必须经过的路由器时,这个中间结点才对源路由选择扩展首部进行相应的处理。
举例说明包含0类型源路由扩展首部的IPv6分组传输过程中,IPv6基本首部的目的地址字段和源路由扩展首部中的主要字段的变化过程,如表所示。
扩展首部长度可以填写小于8B的任意值。
分片扩展首部
IPv6分片机制有什么优点?与IPv4分片机制有什么不同?若需要对一个IPv6分组进行分片时,哪些部分是可以分片的?
IPv6只允许源节点对分组进行分片,简化了中间结点对分组的处理程序。但是为了保证分片与路由的最大传输单元(max transfer unit,MTU)相匹配,IPv6源节点必须知道路径MTU,通过MTU发现技术来实现。
而在IPv4中,中间结点可以对其长度大于本地链路的最大传输单元(max transfer unit,MTU)的IPv4分组进行分片。这种处理方式要求路由器必须完成分片这个额外工作,并且在传输过程中IPv4分组可能被多次分片。
不可分片部分包括IPv6基本首部,以及在传送分组的途中,路由器必须处理的扩展首部。例如,源路由选择扩展首部和跳到跳选项扩展首部,以及目的选项扩展首部(其TLV可选项需要中间结点处理)。即包括源路由选择扩展首部前面的所有字段。
可分片部分,也就是只需要由分组的最终目的结点处理的扩展首部和数据部分。分片后的分组独立传输。
如何进行分片?
关于IPv6分片,举一个例子进行说明。假设一个有效载荷为2902B的原IPv6分组需要通过以太网传送。由于以太网的MTU为1500B,所以必须对该IPv6分组进行分片,应当注意,虽然2902B小于3000B(2倍的1500B),但仍需分成3个分片。基本首部和分片扩展首部之和共有48B,将其乘以2等于96B,加上2902B也不够1500B的两倍。乍看起来,第3个分片只传送IPv6基本首部和扩展首部,这是毫无必要的。之所以分为3个分片,是因为IPv6对分片大小进行了限制。这个限制就是第1个分片的长度必须是8的整数倍字节。这样,第一个分片的大小不能是1500B,只能是1496B,其中有效载荷仅占1456(1496-40)B。这个限制同样适用于第2个分片,第2个分片的有效载荷大小也是1456B。第3个分片中只包含剩余的6B。应当注意,因最后一个分片之后没有后续的分片,故8的整数倍字节的长度限制对最后一个分片不起作用。
假设一个有效载荷为4349B的原IPv6分组,需要从结点A传送到结点B。已经探测到从A到B的路由MTU,即PMTU为1500B。所以源节点A必须对这个IPv6分组进行分片处理。请问需要分几个分片?并且根据各分片情况填写下表的空白单元。
分片 分组有效载荷长度 M标志位 分片偏移量 1 8+1448=1456B 1 0 2 8+1448=1456B 1 0+1448/8=181 3 8+1448=1456B 1 181+1488/8=362 4 8+5=13B 0 362+1488/8=543 M标志字段,1位,表示是否还有后续分片。若值为1,表示后面还有其他分片;若值为0,则表示这是最后一片分片。
分片偏移字段,13位,其功能与IPv4分组首部的“偏移量”字段类似。分片偏移在IPv4和IPv6中均以64位(8B)为单位,它指出分片的起始字节在原分组中的位置,即表示分片后分组中的数据部分,与原分组中可分片部分的第1个字节之间的位置关系。例如,若该值为175,表示分片中的数据部分的第1个字节,应该是原分组中可分片部分的第1400个字节(175*8=1400)。
IPsec支持组件
作用:IPsec在IP层提供安全性服务,以供其他TCP/IP协议和应用程序使用。
IPsec由两个核心协议构成:IPsec认证首部AH协议和封装安全载荷首部ESP协议。
重要支持组件:
-
加密/散列算法
-
AH和ESP通用,没有规定用于加密详细机制,可以从许多算法中选择,具有灵活性。
-
-
安全策略(security policy,SP)、安全关联(security association,SA)和管理方法
-
安全策略:它向结点提供对接收到不同分组的处理方法。
-
安全关联:是通信双方协商建立起来的一种协议。SA对发送发和接收方一些算法、加密进行规定,只有达到安全关联时,才能对IP分组进行认证和解密。其存储在安全关联数据库(SAD)中。三元组:
-
安全参数索引:每台计算可能保存很多个安全关联,每个安全关联可以通过一个安全参数索引来查找。
-
IP目的地址:SA所应用到的一个单向连接的目的IP地址。
-
安全性协议标识符:规定这个SA用于AH和ESP。
-
-
-
密钥交换框架和机制
-
对于两个交换信息的结点而言,互联网密钥交换协议提供了共享编码认证信息和执行载荷加密的密钥以及交换安全关联信息。
-