IPV6基础

IPv6报文结构:

1568618758289

  • IPv6的报文相较于IPv4报文,砍了如下字段,头部长度,标识,flags分段偏移,头部校验,option,padding
  • 由于IPv6采用头部长度定长为40字节,所以不需要头部长度的的字段
  • 由于IPv6的报文分片是由扩展报文来完成的,所以移除了报文中分片所需要的字段
  • 由于在二层存在对数据帧的校验,四层中存在对数据段的校验,所以不需要在三层进行包的校验,而且因为在树的传递过程中,TTL值是不停的在改变的,所以需要频繁的校验,影响了数据包的转发效率。
  • 由于IPv6的扩展报头将IPv4的Option字段给取代了,这样让IPv6的报文有了固定长度,还大大提高了中间节点对IPv6报文的的转发效率,由于Option字段给移除了,所以填充字段也就不存在了。
  • IPv6静载荷:在一段IPv6数据中,除去IPv6基本报头之外,其他的都是静载荷,其中可能包含多个扩展报头

IPv6扩展头:

  • IPv6定义了6个扩展报头:逐跳选项报头,目的选项报头,路由报头,分段报头,认证报头,封装安全净载报头,每种扩展报头的大小应当为8的倍数。
  • 逐跳选项报头和目的选项报头采用TLV的设计,
  • 逐跳选项报头:用于携带报文在沿途转发的路径上必须被路由器检查和处理的信息(目前指定了一种逐跳选型:巨型净喝选项,使得允许IPv6的有效载荷超过65535字节)
  • 目的选项报头:取代了IPv4中的Option字段,用于携带只能由目的地址才能进行处理的信息。
  • 路由选择报头:包含IPv6数据包到达目的地所需要经过的节点,强制数据按照该节点进行转发。
  • 分段报头:如果数据包的大于了Path MTU,则要进行分段,IPv6中,数据的分段由源端完成,重组由目的端完成,中间是透明的。
  • 认证报头:提供对数据包的完整性的校验和加密,
  • 封装安全净载报头:

IPv6地址分类:

  • 由网络前缀+接口ID组成,网络前缀可以手工配置,或者无状态地址自动配置生成,接口ID可以由手工,EUI-64

  • 单播地址:

    1. 未指定地址:(::/128)
    2. 环回地址:(::1/128)
    3. 全球单播地址:是带有全局单播路由前缀的地址,可以针对于路由前缀进行聚合,高三位固定为001,第四位可0可1,因此,全球单播路由前缀为2000::/3 3000::/3,其中全球单播地址由路由前缀(48bit)+子网ID(18bit)+接口ID(64bit)组成
    4. 唯一本地地址:类似于IPv4中的私网地址,只能在本地网络中被路由转发,在全球网络中不会被路由转发。具有全球唯一的前缀为FC00::/7(该前缀方便边缘设备进行过滤),但由于有一个特殊字段global id,该值由设备随机生成,所以就算两个私网之间进行连接,该地址而不会冲突
    5. 链路本地地址:只在连接同一链路的节点之间进行使用,也只在该节点之间有效,由固定的前缀FE80::/10+接口ID组成,可以作为路由的下一跳,以本地链路地址作为源或目的数据不会转发到其他链路
  • 组播地址:

    • IPv6组播跟IPv4组播地址相同,用来标识一组接口,通常这组接口属于不同节点,IPv6地址由前缀+标记+范围+组播组ID
    • 前缀:FF00::/8
    • 标记:4bit,只是用了最后1bit,其中置位代表临时组地址,未置位代表永久组地址。
    • 范围:4bit,组播数据流在网络中可传递的范围
    • 组播组ID:112bit,用以标识组播组
    • 被请求节点 组播地址:由前缀FF02::1:FF00:0/104和单播地址的最后24位组成。
  • 任播地址:

    • 也属于单播地址的一类,没有特定的地址前缀,通过单播地址用作的行为,来区分是否为任播地址
    • 主要是为了向DNS和HTTP提供服务的。
posted @ 2020-08-14 16:57  皓先生  阅读(603)  评论(0编辑  收藏  举报