网络学习:ICMPV6报文

目录

前言:

一、ICMPV6的报文内容

二、ICMPv6差错报文分类

1、目的不可达错误报文(type=1)

2、数据包过大错误报文(type=2)

3、超时报文(type=3)

4、参数错误报文

三、ICMPv6信息报文的分类

1、回送请求报文:

2、回送应答报文:


前言:

        ICMPv6(Internet Control Message Protocol for the IPv6)是IPv6的基础协议之一。 在IPv4中,Internet控制报文协议ICMP(Internet Control Message Protocol)向源节点报告关于向目的地 传输IP数据包过程中的错误和信息。它为诊断、信息和管理目的定义了一些消息,如:目的不可达、数据包 超长、超时、回应请求和回应应答等。在IPv6中,ICMPv6除了提供ICMPv4常用的功能之外,还是其它一些功能的基础,如邻接点发现、无状态地址配置(包括重复地址检测)、PMTU发现等。

一、ICMPV6的报文内容

ICMPv6的协议类型号(即IPv6报文中的Next Header字段的值)为58。

Type:表明消息类型,0至127表示差错报文类型,128至255表示消息报文类型。

Code:该字段依赖Type字段,在Type字段基础上,它被用来表示在基本类型上此消息细分的类型。

Checksum:表示ICMPV6报文的校验和,校验数据部分(ICMP的数据)和部分IPV6首部完整性。

(Message Body—可变):ICMPv6报文体用于返回出错的参数和记录出错报文的片段,帮助源结点判断错 误的原因。大体上说,ICMPv6报文可以被分为2大类:差错报文与消息报文。这2类报文是依靠报文中的 TYPE字段来标识的,当TYPE字段的最高位置0,即在0~127范围时(TYPE字段长度为1字节),被标识为差错报文,TYPE字段值为128~255范围时,则标识为消息报文。

二、ICMPv6差错报文分类

ICMPv6错误报文用于报告在转发IPv6数据包过程中出现的错误。ICMPv6错误报文可以分为以下4种:

1、目的不可达错误报文(type=1)

在IPv6节点转发IPv6报文过程中,当设备发现目的地址不可达时,就会向发送报文的源节点发送ICMPv6目的 不可达错误报文,同时报文中会携带引起该错误报文的具体原因,这里只列举部分常见的情况。

目的不可达错误报文的Type字段值为1。根据错误具体原因又可以细分为:

Code=0:

没有到达目标主机的路由,路由器无法转发。

Code=1:

和目标主机的通讯被管理策略禁止,在路由器、防火墙上设置策略禁止和某些节点通讯。

Code=2:

未指定。这里指的是超过了源地址的范围。

Code=3:

因链路或无法解析到目的结点链路层地址,导致目的地址不可到达,IPV6不支持广播,因为广播被认为是低效的传输机制,所以主机之间相互寻找的ARP协议无法使用,IPv6通过邻居请求(neighbor solicitation)的新特性,利用ICMPV6完成工作,是邻居发现协议(NDP)的一项功能。

Code=4:

目的端口不可达。 IPv6分组己经传送到目的IP结点,但是不能递交给目的TCP或UDP端口的端口, 不可到达,比如说目标端口被占用的情况。

2、数据包过大错误报文(type=2)

在IPv6节点转发IPv6报文过程中,发现报文超过出接口的链路MTU时,该节点只能丢弃该分组数据包,并向 发送报文的源节点发送ICMPv6数据包过大错误报文,报告出现差错,其中携带出接口的链路MTU值。数据包过大错误报文是Path MTU发现机制的基础。

数据包过大错误报文的Type字段值为2,Code字段值为0。

3、超时报文(type=3)

在IPv6报文收发过程中,当设备收到Hop Limit字段值等于0的数据包,或者当设备将Hop Limit字段值减为0 时,会向发送报文的源节点发送ICMPv6超时错误报文。对于分段重组报文的操作,如果超过定时时间,也会 产生一个ICMPv6超时报文。

时间超时错误报文的Type字段值为3,根据错误具体原因又可以细分为:

Code=0:在传输中超越了跳数限制

Code=1:分片重组超时

4、参数错误报文

当目的节点收到一个IPv6报文时,会对报文进行有效性检查,如果发现问题会向报文的源节点回应一个 ICMPv6参数错误差错报文。

参数错误报文的Type字段值为4,根据错误具体原因又可以细分为:

Code=0:IPv6基本头或扩展头的某个字段有错误。

Code=1:IPv6基本头或扩展头的NextHeader值不可识别。

Code=2:扩展头中出现未知的选项。

三、ICMPv6信息报文的分类

ICMPv6信息报文提供诊断功能和附加的主机功能,比如多播侦听发现和邻居发现。常见的ICMPv6信息报文 主要包括回送请求报文(Echo Request)和回送应答报文(Echo Reply),这两种报文也就是通常使用的 Ping报文。

ICMP信息报文主要可以分为:

1、回送请求报文:

回送请求报文用于发送到目标节点,以使目标节点立即发回一个回送应答报文。回送请求报 文的Type字段值为128,Code字段的值为0。

2、回送应答报文:

当收到一个回送请求报文时,ICMPv6会用回送应答报文响应。回送应答报文的Type字段的 值为129,Code字段的值为0。

  • type=128—代表请求报文
  • Code=0—正常ping包该字段均为0
  • checksum=表示ICMPV6报文的校验和,校验数据部分(ICMP的数据)和部分IPV6首部完整性
  • checksum status=校验和状态,good表示校验和正确,bad表示数据报被修改或者发生错误
  • Identifier—标识符,请求与应答报文能够彼此匹配的一个标识
  • Sequence Number—序列号,对于每一个发送的数据包进行编号,比如说第一个发送的序列号是1,下一个 序列号就是2。

注释 :

多个ping包之间也需要对数据包的身份进行区分,第一个请求包中携带的Identifier=0xe608,Sequence Number=1 。

目标回复包中携带的Identifier字段为=0xe608,相同代表回复的是第一个请求包,Sequence Number字段同 样也为1,代表回复数据包的顺序,主要是为了请求和应答报文能够相互匹配。

后续数据包中这两个字段会依次+1,代表不同的请求包和不同的应答包:

第二个数据包:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDEA系列软件设置自动换行

以pycharm软件为例,我们在编程的时候常常会遇到这种情况,内容过长导致超出pycharm的界面,导致我们阅读浏览起来非常的不方便,对于这种情况,我们可以通过给IDEA软件设置自动换行来解决 首先打开setting,找到…

ElasticSearch:数据的魔法世界

​ 欢迎来到ElasticSearch的奇妙之旅!在这个充满魔法的搜索引擎世界中,数据不再是沉闷的数字和字母,而是变得充满活力和灵动。无论你是刚刚踏入数据探索的小白,还是已经对搜索引擎有所了解的行者,本篇博客都将为你揭示…

ThingsBoard Edge 设备控制

文章目录 一、RPC 功能1.服务端 RPC2.客户端 RPC3.MQTT RPC API3.1.服务端RPC3.2.客户端RPC 二、设备控制1.环境准备2.创建设备3.服务端PRC3.1.RPC消息主题3.2.程序源码3.3.创建仪表板3.4.边缘分配仪表板3.5.测试 4.客户端RPC4.1.RPC消息主题4.2.程序源码4.3.规则链4.4.测试 Th…

十四、GPT

在GPT-1之前,传统的 NLP 模型往往使用大量的数据对有监督的模型进行任务相关的模型训练,但是这种有监督学习的任务存在两个缺点:预训练语言模型之GPT 需要大量的标注数据,高质量的标注数据往往很难获得,因为在很多任务…

Qt for Mac阻止MacOS系统休眠

Qt开发的应用程序如果电脑休眠了会影响软件的使用,因此在软件的使用过程中需要防止电脑休眠,在Win上有专门的API进行处理,在Mac上也必需使用Mac平台自身的API,本篇介绍在Mac平台下使用Qt阻止Mac系统休眠。 要调用Mac系统的API&am…

vulhub中GitLab 任意文件读取漏洞复现(CVE-2016-9086)

GitLab是一款Ruby开发的Git项目管理平台。在8.9版本后添加的“导出、导入项目”功能,因为没有处理好压缩包中的软连接,已登录用户可以利用这个功能读取服务器上的任意文件。 环境运行后,访问http://your-ip:8080即可查看GitLab主页&#xff0…

PC电脑如何使用HDMI连接小米电视当显示屏

使用HDMI连接好当时和电脑,HDMI2.0会更清晰;小米电视会自动弹窗提示你有HDMI 接口连接,或者你进入信号源进行选择即可;需要平时我们电脑的显示器正常连接,然后按 win p ,选择 扩展 屏幕; 进入设…

27-2 文件上传漏洞 - 前端绕过

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 前端绕过思路 - 禁用 JavaScript: 背景: 当前开发行业大多采用前后端分离模式,后端使用多种开发语言如 PHP、Java 等,而前端主要使用 JavaScript(JS)。因此,禁用 JavaScrip…

开设新量子计算中心!IonQ 全力加速量子商业化

内容来源:量子前哨(ID:Qforepost) 编辑丨慕一 编译/排版丨浪味仙 沛贤 深度好文:1000字丨8分钟阅读 近日,量子计算公司IonQ对外宣布,将在华盛顿开设一家新量子中心。公告里还提出&#xff0c…

html5黑色大气的个人博客全屏滚动个人主页源码HTML+JS+CSS

html5黑色大气的个人博客全屏滚动个人主页源码HTMLJSCSS

软件测试 自动化测试selenium 基础篇

文章目录 1. 什么是自动化测试?1.1 自动化分类 2. 什么是 Selenium ?3. 为什么使用 Selenium ?4. Selenium 工作原理5. Selenium 环境搭建 1. 什么是自动化测试? 将人工要做的测试工作进行转换,让代码去执行测试工作 …

【Frida】04_Frida中使用TypeScript脚本(采坑)

▒ 目录 ▒ 🛫 导读需求开发环境演示目标 1️⃣ 操作步骤安装node 20.10.0在 VSCode 中打开项目目录初始化一个 NodeJS 项目安装 TypeScript初始化 TypeScript 项目安装依赖配置 TypeScript编写代码编译设置编译脚本运行,查看结果 2️⃣ 采坑frida-compi…

旧华硕电脑开机非常慢 电脑开机黑屏很久才显示品牌logo导致整体开机速度非常的慢怎么办

前提条件 电池需要20%(就是电池没有报废)且电脑接好电源,千万别断电,电脑会变成砖头的 解决办法 更新bios即可解决,去对应品牌官网下载最新的bios版本就行了 网上都是一些更新驱动啊

深度学习 精选笔记(12)卷积神经网络-理论基础1

学习参考: 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增),以达到集多方教程的精华于一文的目的。 ③非常推荐上面(学习参考&#x…

JS原型和原型链的理解

原型链图,图中Parent是构造函数,p1是通过Parent实例化出来的一个对象 前置知识 js中对象和函数的关系,函数其实是对象的一种 函数、构造函数的区别,任何函数都可以作为构造函数,但是并不能将任意函数叫做构造函数&…

【Godot4.2】颜色完全使用手册

概述 本篇简单汇总Godot中的颜色的构造和使用,内容包括了: RGB、RGBA,HSV以及HTML16进制颜色值、颜色常量等形式构造颜色颜色的运算以及取反、插值用类型化数组、紧缩数组或PNG图片形式存储多个颜色 构造颜色 因为颜色是一种视觉元素&…

Vue中使用Lodash

Vue中使用Lodash 前言安装Lodash引用方法vue中使用1、cloneDeep 深拷贝2、uniq 数组去重3、uniqWith 数组对象去重 isEqual 深度比对4、intersection 提取数组相同元素5、chunk 数组切分6、compact去除假值7、reject:根据条件删除指定的值8、find:查找结果的第一个值9、filter:…

VsCode 配置go开发环境之下载go tools

ctrl shift P 选择 go install/update tools,下载go tools 报错, 提升dial err。 将GOPROXY 和 GOSUMDB 按照如下配置,重启IDE即可成功下载 set GOPROXYhttps://goproxy.cn set GOSUMDBoff

(18)C#采集微信群群成员列表信息-微信UI自动化(.Net)

往期知识回顾 (1)C#开启探索微信自动化之路-微信UI自动化 (2)C#创建微信窗体自动化实例-微信UI自动化 (3)C#针对系统热键管理-微信UI自动化 (4)C#采集微信通讯录和联系人-微信UI自动化 (5)C#实现针对微信窗体鼠标静默点击-微信UI自动化 (6)C#搜索微信通讯录联系人-微信UI…

什么是API安全性以及为什么它很重要?

API指的是应用程序接口(Application Programming Interface),是一组定义和描述不同软件组件如何通信以及相互操作的规范。它允许不同的软件系统之间共享数据和功能,使它们能够相互连接和交互。 API可以是不同软件之间的通信桥梁&…