[转帖]IPv6报文头深度解析

ipv6,报文,深度,解析 · 浏览次数 : 0

小编点评

**IPv6报文结构** IPv6报文包含以下部分: - **基本报文头 (IPv6 Header)** - **扩展报文头 (Optional Headers)** - **上层协议数据单元** **基本报文头** 基本报文头包含以下8个字段: - **Version**:表示报文版本号 (IPv6 = 6) - **Header checksum**:校验和字段 - **Options**:选项字段 - **Flow control**:流控制字段 - **Time to live**:生存时间字段 - **Header checksum**:校验和字段 - **Next header**:下一个报文头的协议号 - **Payload length**:数据单元长度 **扩展报文头** 扩展报文头可以包含以下部分: - **Hop-by-hop options header**:用于处理多个跳点选项 - **Destination options header**:用于处理目的选项 - **Routing header**:用于处理路由选项 - **Fragment header**:用于分片处理 - **Authentication header**:用于认证过程 - **Encapsulating security payload header**:用于封装安全载荷 - **Destination options header**:用于指向目的地址的选项 **上层协议数据单元** 上层协议数据单元可以是ICMPv6报文、TCP报文或UDP报文。

正文

https://blog.51cto.com/key3feng/5725797

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的扩展报文头之后还有数据,那么这些数据在转发过程中应该被透传,不能被改变。

与[转帖]IPv6报文头深度解析相似的内容:

[转帖]IPv6报文头深度解析

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

[转帖]IPv6地址解析库,窥探IPv6地址中包含的信息

https://zhuanlan.zhihu.com/p/479028720 大家好,我是明说网络的小明同学。 今天和大家介绍一个IPv6 地址解析库IPv6 address Parser :https://github.com/dianwoshishi/ipv6_address_parser.gi

[转帖](译文)Path MTU discovery in practice | 链路MTU探测实践

https://www.jianshu.com/p/765476290f29 Last week, a very small number of our users who are using IP tunnels (primarily tunneling IPv6 over IPv4) were

[转帖][译]tcpdump 示例教程

https://colobu.com/2019/07/16/a-tcpdump-tutorial-with-examples/ 目录 [−] 基于IP查找流量 根据来源和目标进行筛选 根据网段进行查找 使用十六进制输出 显示特定端口的流量 显示特定协议的流量 只显示 ipv6 的流量 查看一个端口段

[转帖]Linux之pure-ftpd安装和使用

一、pure-ftpd简介 PureFTPd是一款专注于程序健壮和软件安全的免费FTP服务器软件(基于BSD License),以安全和配置简单为设计目标,支持虚拟主机,IPV6,PAM等功能。。其可以在多种类Unix操作系统中编译运行,包括Linux、OpenBSD、NetBSD、FreeBSD、

[转帖]DNS解析常见问题:如何添加AAAA记录?

很多人在添加解析记录时都会看到有AAAA记录,那什么是AAAA记录呢?它和A记录的区别是什么,我们又该如何添加AAAA记录呢?接下里中科三方将针对这些问题做下简单介绍。 什么是AAAA记录? AAAA记录(AAAA record)是用来将域名解析到IPv6地址的DNS记录。与之相对的A记录只能将域名

[转帖]

Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

[转帖]

https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻

[转帖]ISV 、OSV、 SIG 概念

ISV 、OSV、 SIG 概念 2022-10-14 12:29530原创大杂烩 本文链接:https://www.cndba.cn/dave/article/108699 1. ISV: Independent Software Vendors “独立软件开发商”,特指专门从事软件的开发、生产、

[转帖]Redis 7 参数 修改 说明

2022-06-16 14:491800原创Redis 本文链接:https://www.cndba.cn/dave/article/108066 在之前的博客我们介绍了Redis 7 的安装和配置,如下: Linux 7.8 平台 Redis 7 安装并配置开机自启动 操作手册https://ww