当前位置:首页 > 技术 > 正文内容

IPv6报文头深度解析

Lotus2022-10-06 19:04技术

IPv6报文由IPv6基本报文头、IPv6扩展报文头以及上层协议数据单元3部分组成。上层协议数据单元一般由上层协议报文头和它的有效载荷构成,上层协议数据单元可以是一个ICMPv6报文、一个TCP报文或一个UDP报文。

1、IPv6基本报文头

IPv6基本报文头有8个字段,固定大小为40 Byte,每一个IPv6数据报都必须包含基本报文头。基本报文头提供报文转发的基本信息,由转发路径上的所有设备解析。

IPv6报文头深度解析_IPv6

IPv6基本报文头主要字段的说明:

IPv6报文头深度解析_IPv6_02

IPv4和IPv6的报文头对比:

IPv6报文头深度解析_IPv6_03

和IPv4相比, IPv6去除了分片、校验和、选项等相关字段,只增加了流标签字段,简化了 IPv6报文头的处理,提高了处理效率。另外,IPv6为了更好支持各种选项处理,提出了扩展报文头的概念,新增选项时不必修改现有结构就能做到,理论上可以无限扩展,在保持报文头简化的前提下,还具备了优异的灵活性。

2、IPv6扩展报文头

在IPv4中,IPv4报文头包含可选字段Options,内容涉及Security、Timestamp和Record Route等,这些Options可以将IPv4报文头长度从20 Byte扩充到60Byte。在转发过程中,处理携带这些Options的IPv4报文会占用设备很多的资源,因此实际中也很少使用。

与IPv4不同, IPv6扩展报文头长度不受40 Byte 的限制,这样便于日后新增选项,这一特征加上选项的处理方式,使得 IPv6选项能被真正地使用。但是为了提高处理选项头和传输层协议的性能,扩展报文头总是8Byte 长度的整数倍。

IPv6扩展报文头主要字段的说明:

IPv6报文头深度解析_IPv6_04

3、IPv6扩展报文头的排列顺序

当超过一种扩展报文头被用在同一个IPv6报文里时,报文头推荐按照下列顺序出现:

  • IPv6基本报文头(IPv6 Header);
  • 逐跳选项扩展报文头(Hop-by-Hop Options Header);
  • 目的选项扩展报文头(Destination Options Header);
  • 路由扩展报文头(Routing Header);
  • 分片扩展报文头(Fragment Header);
  • 认证扩展报文头(Authentication Header);
  • 封装安全有效载荷扩展报文头(Encapsulating Security Payload Header);
  • 目的选项扩展报文头(Destination Options Header,指那些将由IPv6报文的最终目的地处理的选项);
  • 上层协议报文(Upper-Layer Header)

路由设备根据基本报文头中Next Header值来决定是否要处理扩展报文头,并不是所有的扩展报文头都需要被查看和处理。除了目的选项扩展报文头可能出现两次(一次在路由扩展报文头之前,另一次在上层协议报文之前),其余扩展报文头只能出现一次。

  1. 逐跳选项扩展报文头

逐跳选项扩展报文头用来携带需要由转发路径上的每一跳路由器处理的信息。它的Next Header协议号为0。一个逐跳选项扩展报文头的Value区域是由一系列的Options区块构成的,这让它可以承载多份不同种类的信息。

  1. 目的选项扩展报文头

目的选项扩展报文头用于携带需要由当前目的地址对应的节点处理的信息。该节点可以是报文的最终目的地,也可以是源路由方案中的Endpoint节点。目的选项扩展报文头的Next Header协议号为60,报文头的格式及要求与逐跳选项扩展报文头一致。

  1. 路由扩展报文头

路由扩展报文头用来指明一个报文在网络内需要依次经过的路径点,用于源路由方案。报文发送者或网络节点将路由扩展报文头放入报文中,后续的网络节点读取路由扩展报文头中的节点信息,将报文依次转发到指定的下一跳节点(Endpoint节点),并最终转发到目的地。路由扩展报文头可以使报文按照指定的转发路线行进,而不使用默认的最短路径。

  1. 分片扩展报文头

当一个应用层报文的长度超过了路径MTU时,就需要在网络层对该报文进行分片传输和接收重组。分片扩展报文头携带了各个分片的识别信息,其功能与IPv4报文头中与分片相关的字段相同。IPv6只允许报文发送者对报文进行分片,不允许路由器在中途将报文分片。

  1. 认证扩展报文头

认证扩展报文头通常用于IPsec,能提供3种安全功能:无连接的完整性验证、IP报文来源认证。在RFC 4302中定义了报文头处理过程 。认证扩展报文头的Next Header协议号为51。

  1. 封装安全载荷扩展报文头

封装安全载荷扩展报文头通常用于IPsec,能提供无连接的完整性验证、数据来源认证以及数据加密等安全功能 。封装安全载荷扩展报文头的Next Header协议号为50。此外,当IPv6报文头或扩展报文头之后没有任何数据了,Next Header字段值需要设为59。如果IPv6报文头的Payload Length表明在Next Header为59的扩展报文头之后还有数据,那么这些数据在转发过程中应该被透传,不能被改变。

扫描二维码推送至手机访问。

版权声明:本文来源于网络,仅供学习,如侵权请联系站长删除。

本文链接:https://news.layui.org.cn/post/126.html

分享给朋友:

“IPv6报文头深度解析” 的相关文章

HBase1.4.6安装搭建及shell命令使用

HBase1.4.6安装搭建 目录 HBase1.4.6安装搭建 一、前期准备(Hadoop,zookeeper,jdk) 搭建Hbase 1、上传解压 2、配置环境变量 3、修改hbase-env.sh文件 4、修改hbase-site.xml文件 5、修改regionservers文件 6、同步到所有节点(如果是伪分布式不需要同步) 7、启动hbase集群 , 在master上执行...

第三章 知己知彼

知彼知己,百战不殆;不知彼而知己,一胜一负;不知彼,不知己,每战必殆。《谋攻篇》 前面两章其实重点是在掰扯数智化,IT研发本身的数字化其实除了DevOps这一种手段之外还有很多,比如Low Code、RPA等等,AI都可以自动写代码了,还有啥是不可能的呢!不过本人能力有限,这点斤两也就敢玩玩DevOps,其他的碰都就不敢碰,接下来聚焦到DevOps的一些见解上。 3.1 剑锋所指      ...

一篇文章带你掌握主流服务层框架——SpringMVC

一篇文章带你掌握主流服务层框架——SpringMVC 在之前的文章中我们已经学习了Spring的基本内容,SpringMVC隶属于Spring的一部分内容 但由于SpringMVC完全针对于服务层使用,所以我们在介绍时常常把SpringMVC单独当作一个大章节来学习 温馨提醒:在学习SpringMVC前请确保已学习Spring内容 SpringMVC简介 首先我们先来简单了解一下SpringM...

深入理解AQS--jdk层面管程实现【管程详解的补充】

什么是AQS   1.java.util.concurrent包中的大多数同步器实现都是围绕着共同的基础行为,比如等待队列、条件队列、独占获取、共享获取等,而这些行为的抽象就是基于AbstractQueuedSynchronizer(简称AQS)实现的,AQS是一个抽象同步框架,可以用来实现一个依赖状态的同步器。   2.JDK中提供的大多数的同步器如Lock, Latch, Barrier等,都...

国庆节,零代码帮你搞定假期美食菜单

当国庆假期遇上美食 每一口都唇齿留香 特色美食太多,不知道吃什么? AppCube带你一分钟搞定假期美食 来一场舌尖上的旅行 零代码,让假期生活有滋有味 国庆小长假,三五好友结伴出游,最纠结的莫过于中午吃什么,晚上吃什么?翻翻攻略,当地特色美食令人眼花缭乱……体验通过AppCube设计一款“国庆假期美食菜单收集”应用,解决大家的选择困难症。 基于AppCube零代码能力,小白也能DIY应用开发...

十分钟速成DevOps实践

摘要:以华为云软件开发平台DevCloud为例,十分钟简单体验下DevOps应用上云实践——H5经典小游戏上云。 本文分享自华为云社区《​​《DevOps实践秘籍》十分钟速成DevOps实践​​》,作者:AppCloud小助手 。 DevOps是什么? DevOps是Development和Operations的组合词,简单点理解就是研发运维一体化的方法论,目的是通过自动化“软件交付”和“架构变...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。