网络学习:IPV6报文详解

news2024/11/18 22:57:12

目录

前言:

IPV6报文格式

IPV6基本报头

IPV6扩展报头


前言:

        首先IPV6是属于网络层的一种协议,作为下一代IP协议,而想要学习一种协议就必不可少的需要去具体的研究协议报文中的各个参数以及其对应的功能作用。

IPV6报文格式

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

IPV6基本报头

每一个IPV6数据报文都必须包含基本报头,其长度固定为40字节基本报头提供报文转发的基本信息,会被转发路径上所有的路由器进行解析。

基本报头格式如下:

报头中主要字段含义:

1、Version:协议版本号,长度为4bit。对于IPv6,该值为6—二进制数值为0110;

2、Traffic Class:流类别,长度为8bit。等同于IPv4中的TOS字段,表示IPv6数据报的类或优先级,主要应用于QoS;

  • QoS(Quality of Service)即服务质量。在有限的带宽资源下,QoS为各种业务分配带宽,为业务提供端到端的服务质量保证。想要了解QOS的可以参考——什么是QOS?

3、Flow Label:流标签,长度为20bit。IPv6中的新增字段,用于区分实时流量,不同的流标签+源地址可以唯一确定一条数据流,中间网络设备根据这些信息能更加高效率的区分数据流;

  • 该字段是IPv6包头中最具革命性的改动,原先路由器识别某一IPv4数据流需要(源地址、目的地址、协议号、源端口、目的端口)5元组来标识一条数据流,这种方法要求路由器读取高层如TCP/UDP头部的某些字段,会增加路由器的处理开销,而且对于非TCP、UDP的流,如OSPF、RSVP、ICMP等流量就无法使用5元组来标识了。在IPv6中,Flow Label内置在IPv6包头中,标识流可以只采用最简单的(源地址、目的地址、Flow Label)3元组就可以标识一条流,不仅提高了效率,而且能够识别OSPF、RSVP、ICMPv6等不基于TCP/UDP的流量。

4、Payload Length:有效载荷长度,长度为16bit。有效载荷是指紧跟IPv6报头的数据报的其它部分(即扩展报头和上层协议数据单元)。该字段只能表示最大长度为65535字节的有效载荷。如果有效载荷的长度超过这个值,该字段会置0,而有效载荷的长度用逐跳选项扩展报头中的超大有效载荷选项来表示。——指除去包头的IP包长度,也就是data的长度,但如果有扩展包头,那么拓展包头也算在payload length里面;

5、Next Header:下一个报头,长度为8bit。该字段定义紧跟在IPv6报头后面的第一个扩展报头(如果存在)的类型,或者上层协议数据单元中的协议类型;

6、Hop Limit:跳数限制,长度为8bit。该字段类似于IPv4中的Time to Live(TTL)字段,它定义了IP数据报所能经过的最大跳数。每经过一个设备,该数值减去1,当该字段的值为0时,数据报将被丢弃;

7、Source Address:源地址,长度为128bit。表示发送方的地址;

8、Destination Address:目的地址,长度为128bit。表示接收方的地址—用来网络层逻辑寻址。

  • IPv6和IPv4相比,去除了IHL、identifiers、Flags、Fragment Offset、Header Checksum、 Options、Padding域,只增了流标签域,因此IPv6报文头的处理较IPv4大大简化,提高了处理效率。另外,IPv6为了更好支持各种选项处理,提出了扩展头的概念,新增选项时不必修改现有结构就能做到,理论上可以无限扩展,体现了优异的灵活性。

IPV6扩展报头

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

        IPv6将这些Options从IPv6基本报头中剥离,放到了扩展报头中,扩展报头被置于IPv6报头和上层协议数据单元之间。一个IPv6报文可以包含0个、1个或多个扩展报头,仅当需要设备或目的节点做某些特殊处理时,才由发送方添加一个或多个扩展头。与IPv4不同,IPv6扩展头长度任意,不受40字节限制,这样便于日后扩充新增选项,这一特征加上选项的处理方式使得IPv6选项能得以真正的利用。但是为了提高处理选项头和传输层协议的性能,扩展报头总是8字节长度的整数倍。

        当使用多个扩展报头时,前面报头的Next Header字段指明下一个扩展报头的类型,这样就形成了链状的报头列表。如图2所示,IPv6基本报头中的Next Header字段指明了第一个扩展报头的类型,而第一个扩展报头中的Next Header字段指明了下一个扩展报头的类型(如果不存在,则指明上层协议的类型)。

扩展报头格式如图2所示:

IPv6扩展报头中主要字段解释如下:

  1. Next Header:下一个报头,长度为8bit。与基本报头的Next Header的作用相同。指明下一个扩展报头(如果存在)或上层协议的类型。
  2. Extension Header Len:报头扩展长度,长度为8bit。表示扩展报头的长度(不包含Next Header字段)。
  3. Extension Head Data:扩展报头数据,长度可变。扩展报头的内容,为一系列选项字段和填充字段的组合。

目前,RFC 2460中定义了6个IPv6扩展头:逐跳选项报头、目的选项报头、路由报头、分段报头、认证报头、封装安全净载报头。

代表该
类报头
的Next
Header
字段值
描述





0该选项主要用于为在传送路径上的每跳转发指定发送参数,传送路径上的每台中间
节点都要读取并处理该字段。逐跳选项报头目前的主要应用有以下三种:用于巨型
载荷(载荷长度超过65535字节)。用于设备提示,使设备检查该选项的信息,而
不是简单的转发出去。用于资源预留(RSVP)。





60目的选项报头携带了一些只有目的节点才会处理的信息。目前,目的选项报文头主
要应用于移动IPv6。

43路由报头和IPv4的Loose Source and Record Route选项类似,该报头能够被IPv6
源节点用来强制数据包经过特定的设备。



44同IPv4一样,IPv6报文发送也受到MTU的限制。当报文长度超过MTU时就需要将报
文分段发送,而在IPv6中,分段发送使用的是分段报头。

51该报头由IPsec使用,提供认证、数据完整性以及重放保护。它还对IPv6基本报头中
的一些字段进行保护。

50该报头由IPsec使用,提供认证、数据完整性以及重放保护和IPv6数据报的保密,类
似于认证报头。

IPv6扩展报头规约说明当超过一种扩展报头被用在同一个分组里时,报头必须按照下列顺序出现:

  • IPv6基本报头
  • 逐跳选项扩展报头
  • 目的选项扩展报头
  • 路由扩展报头
  • 分段扩展报头
  • 认证扩展报头
  • 封装安全有效载荷扩展报头
  • 目的选项扩展报头
  • 上层协议数据报文

路由设备转发时根据基本报头中Next Header值来决定是否要处理扩展头,并不是所有的扩展报头都需要被转发路由设备查看和处理的。

除了目的选项扩展报头可能出现一次或两次(一次在路由扩展报头之前,另一次在上层协议数据报文之前),其余扩展报头只能出现一次。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1521487.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在命令行中输入py有效,输入python无效,输入python会跳转到microsoft store

这里写自定义目录标题 如果你已经尝试过将python添加到系统变量如果你还未将python添加到系统变量没有python安装包且没有配置系统变量 如果你已经尝试过将python添加到系统变量 打开 运行,输入cmd,在命令行中输入 where python。 如果看到了这个 win…

Java基础-集合_上

文章目录 1.基本介绍2.集合的框架体系(单列、双列)单列集合双列集合比较 3.Collection接口和常用方法1.Collection接口实现类的特点2.常用方法(使用ArrayList演示)代码结果 3.迭代器遍历基本介绍代码结果 4.增强for循环遍历代码结…

滑动窗口和螺旋矩阵

209. 长度最小的子数组 题目 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续 子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度**。**如果不存在符合条件的子数组,返回…

十八、多线程JUC

目录 一、什么是多线程二、多线程的两个概念(并发和并行)三、多线程的实现方式3.1 继承Thread类的方式进行实现3.2 实现Runnable接口的方式进行实现3.3 利用Callable接口和Future接口方式实现 四、常见的成员方法五、线程的生命周期六、线程安全的问题七…

Nacos安装与集群搭建

Nacos安装与集群搭建 Nacos安装指南1.Windows安装1.1.下载安装包1.2.解压1.3.端口配置1.4.启动1.5.访问 2.Linux安装2.1.安装JDK2.2.上传安装包2.3.解压2.4.端口配置2.5.启动 3.Nacos的依赖Nacos集群搭建1.集群结构图2.搭建集群2.1.初始化数据库2.2.配置Nacos2.3.启动2.4.nginx…

JavaScript进阶:js的一些学习笔记-this指向,call,apply,bind,防抖,节流

文章目录 1. this指向1. 箭头函数 this的指向 2. 改变this的指向1. call()2. apply()3. bind() 3. 防抖和节流1. 防抖2. 节流 1. this指向 1. 箭头函数 this的指向 箭头函数默认帮我们绑定外层this的值,所以在箭头函数中this的值和外层的this是一样的箭头函数中的…

Linux——线程池

线程池的概念 线程池也是一种池化技术,可以预先申请一批线程,当我们后续有任务的时候就可以直接用,这本质上是一种空间换时间的策略。 如果有任务来的时候再创建线程,那成本又要提高,又要初始化,又要创建数…

揭示数据在内存中存储的秘密!

** ** 悟已往之不谏,知来者犹可追 ** ** 创作不易,宝子们!如果这篇文章对你们有帮助的话,别忘了给个免费的赞哟~ 整数在内存中的存储 整数的表达方式有三种:原码、反码、补码。 三种表示方法均有符号位和数值位两部分…

【Java】List, Set, Queue, Map 区别?

目录 List, Set, Queue, Map 区别? Collection和Collections List ArrayList 和 Array区别? ArrayList与LinkedList区别? ArrayList 能添加null吗? ArrayList 插入和删除时间复杂度? LinkedList 插入和删除时间复杂度&…

51单片机基础篇系列-定时/计数器的控制工作方式

🌈个人主页:会编程的果子君 💫个人格言:“成为自己未来的主人~” 定时/计数器的控制 80C51单片机定时/计数器的工作由两个特殊功能寄存器控制,TMOD用于设置其工作方式: 1.工作方式寄存器TMOD 工作方式寄存器TMO…

IO流(主要是记住四大类InputStream,OutputStream、Reader和Writer,其他都是他们的子类)

IO流 1、文件 (1)文件概念 文件就是保存数据的地方。例如word文档,txt文件,execl文件等等。 (2)文件流 文件在程序中是以流的形式来操作的。 流:数据在数据源(文件)…

【MySQL基础】MySQL基础操作三

文章目录 🍉1.联合查询🥝笛卡尔积 🍉2.内连接🥝查询单个数据🥝查询多个数据 🍉3.外连接🍉4.自连接🍉5.合并查询 🍉1.联合查询 🥝笛卡尔积 实际开发中往往数…

docker 、postgres 数据库常用命令大全,持续更新

使用postgres 数据库,经常会忘记命令。今天抽时间整理一份常用命令列表,附带实践 使用docker 执行命令,导出数据库 docker exec -i postgres-container pd_dump -U postgres -d zxapp > /opt/zxapp.sql或者进入交互式界面: docker exec -i…

算力,承载AI无限可能

年后不久,美国人工智能研究公司OpenAI推出的Sora模型引起了广泛关注,对于人工智能发展之快的感慨还未过去,3月初,Anthropic丢出一颗“王炸”Claude3,其中Claude 3 Opus宣称在基准测试中优于OpenAI的GPT-4和Google的Gem…

vue3模块化引用组件和引用ts,调用ts中的接口

以简单的登录功能为例子 1.在util中创建loginValidators.ts import { ref, reactive } from vueinterface User{email: string;password: string; }export const loginUserreactive<User>({email: ,password: })interface Rules{email: {required: boolean;message: …

【MySQL】3. 库的操作

库的操作 1. 创建数据库 语法&#xff1a; CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification] ...]create_specification:[DEFAULT] CHARACTER SET charset_name[DEFAULT] COLLATE collation_name说明&#xff1a; 大写的表示关键字 …

时间日期格式化

在创建的项目中&#xff0c;往往涉及到时间日期的参数&#xff0c;都不是显示正常&#xff08;中国&#xff09;时区&#xff0c;至于是那儿的时区小编也不知道&#xff01;但是&#xff0c;我们可以自定义返回的时间日期格式&#xff01; public class DataUtils {/*** 2021-0…

强化学习------DDPG算法(附pytorch代码)

目录 一、前言二、基本原理2.1、经验回放2.2、更新过程2.2.1、Critic网络更新过程2.2.2、Actor网络更新过程2.2.3、 目标网络的更新 2.3、噪音探索 三、算法代码实现四、训练示例4.1、实现效果 一、前言 Deep Deterministic Policy Gradient (DDPG)算法是DeepMind团队提出的一…

Guitar Pro2024中文免费版吉他爱好者必备工具,学习演奏、绘谱创作全覆盖

Guitar Pro8是一款功能强大的吉他工具&#xff0c;它支持多种乐器&#xff0c;包括但不限于吉他、贝斯、钢琴和鼓。这意味着&#xff0c;无论是吉他手、贝斯手、钢琴家还是鼓手&#xff0c;都可以利用这款软件进行音乐创作和演奏。 在Guitar Pro8中&#xff0c;用户可以轻松选…

【论文阅读】Improved Denoising Diffusion Probabilistic Models

Improved Denoising Diffusion Probabilistic Models 文章目录 Improved Denoising Diffusion Probabilistic Models概述Improving the Log-likelihoodLearning ∑ θ ( x t , t ) \sum_{\theta}(x_{t}, t) ∑θ​(xt​,t)Improving the Noise ScheduleReducing Gradient Nois…