华为HCIE课堂笔记第十二章 ICMPv6和NDP协议
第十二章 ICMPv6和NDP
12.1 背景
ICMPv6协议用于IPV6协议的消息传递:地址解析、重复地址检测、无状态地址配置、NDP协议、路径MTU发现。
12.2 ICMPv6介绍
ICMPv6的头部字段包含Type字段、Code字段、校验和字段。
消息分为两种:
- 查错消息:Type字段(8bit),最高bit位为0的消息,即Type字段取值为0-127。主要的消息种类如下:
- 目的不可达,Type为1
- 数据包过长,Type为2,用于路径MTU发现
- 超时,Type为3
- 参数错误,Type 类型为4
- 信息消息:Type字段的最高bit位为1的消息,即Type字段取值范围是128-255。常见的消息类型如下:
- ICMPv6的请求消息,消息类型为128
- ICMPv6的应答消息,消息类型为129
邻居发现(RFC2461和RFC4861)如下:
-
- Type=133,路由器请求(Router Solicitation)
- Type=134,路由器公告(Router Advertisement)
- Type=135,邻居请求(Neighbor Solicitation)
- Type=136,邻居公告(Neighbor Advertisement)
- Type=137,重定向 (Redirect)
组播侦听者发现协议(RFC2710和RFC3810),组播发现协议有两个版本MLDv1和MLDv2,对应IGMPv2和IGMPv3,原理相同,使用报文如下:
-
- Type=130,查询消息
- Type=131,报告消息
- Type=132,离开消息
- Type=143,MLDv2报告消息
12.3 ICMPv6报文的应用
12.3.1 Path-MTU发现(路径MTU发现)
IPV6的通信仅在源端进行报文的分片操作,路径中的设备不进行报文分片仅依据基本IPV6头部转发数据,提高转发效率。因此源端需要探测出源端到达目的端的最小MTU值。
原理:源端按照自己的MTU值发送数据给到目的端,沿途经过的设备如果出现报文的大小大于自己的MTU值时,则向源端发送Type类型为2的ICMPv6报文,表示数据包过大,并提供本地的MTU值,直到报文到达目的端,因此源端获取了整个路径上的最小MTU值,按照最小MTU值转发数据。
12.4 NDP协议邻居发现协议
12.4.1 路由器发现(RA和RS报文)
- 路由器发现:主机选择链路上的哪个路由器作为缺省网关,通过RA报文通告参数。
- 前缀发现:路由器通过RA报文通告自己的前缀,主机根据获取前缀配置IPv6地址。(无状态自动配置)
- 参数发现:路由器通过RA报文通告相应的参数:缺省跳数限制,地址配置方式。
- RA报文的发送方式:
- 周期发送,发送间隔默认200s-600s之间
- 触发发送,主机发送RS报文之后,路由器通过RA响应。
- 主机通过接收到RA报文之后,产生缺省路由,缺省路由下一跳指向路由器的该链路的链路本地地址。
12.4.2 地址解析
1、PC1访问PC2,首先进行MAC地址解析,发送NS报文(邻居请求报文),目的IP地址为PC2的接口的IPV6的地址对应的被请求节点组播组地址。
2、PC2收到后,确认目的IPv6组播地址是自己加入的组播组,因此相应ICMPv6的NA报文,单播将自己的MAC地址返回给PC1
12.4.3 邻居发现
存在5个状态:
- Incomplete(未完成):已经发送了NS报文,但是没有收到NA报文,本地的邻居表中不存在邻居的MAC地址,表项不完整
- Reachable状态(可达):收到邻居的NA报文,本地表项完整(包含MAC地址),在可达时间内(默认30s)
- Stale状态(陈旧):邻居表项闲置30s没有进行通信,则邻居状态从Reachable状态切换为Stale状态
- Delay状态(延迟):在Stale状态本地发送IPV6报文和NS报文给到邻居,进入到Delay状态等待回复。如果收到了NA回复,则再次进入到Reachable可达状态。如果规定时间没有收到NA回复,则进入到Probe状态。
- Probe状态(探测):在该状态连续3秒,每秒一次,发送三个NS报文进行邻居探测,如果规定时间有响应,则邻居状态切换为可达状态,如果没有响应,则删除表项。
12.4.5 重复地址检测
任何一个单播地址在使用前都需要进行重复地址检测,此时单播地址的状态是实验地址:
- PC1与PC2地址重复,PC1新配置,PC2早配置(PC2的地址已经经过了重复地址检测)
- PC1通过NS报文进行探测,NS报文中的源IPV6地址为::,目的IPv6地址为待检测的IPV6地址的被请求节点组播组地址。
- 如果存在地址冲突,PC2则会响应该NS报文,通过NA报文告知PC1,报文中源IPV6地址是重复地址(已通过检测的),目的地址所有节点组播地址。PC1收到后,确定接口的地址存在地址冲突
- 特殊情况:双方同时使用一个相同地址,两边的地址状态都是实验地址,一边先发发送NS报文,则另一边收到后不会发送NS报文,也不会发送NA,直接放弃使用该地址。(先后问题)
12.4.6 重定向功能
和IPV4情况相同
相关文章:
华为HCIE课堂笔记第十二章 ICMPv6和NDP协议
第十二章 ICMPv6和NDP 12.1 背景 ICMPv6协议用于IPV6协议的消息传递:地址解析、重复地址检测、无状态地址配置、NDP协议、路径MTU发现。 12.2 ICMPv6介绍 ICMPv6的头部字段包含Type字段、Code字段、校验和字段。 消息分为两种: 查错消息ÿ…...
GNSS科研常用相关网站及资源
代码类: Github GitHub: Let’s build from here GitHub 导航相关开源项目 GNSS:RTKLIB、GAMP II-GOOD、GPSTest、GNSSLogger 组合导航:ignav、VINS、Multi_Sensor_Fusion Gitee(从Github导入后快速下载库) Gi…...

进程的创建与回收学习笔记
目录 一、进程内容: 二、进程常用命令 三、创建子进程 四、子进程进阶 五、进程的退出 六、进程的回收 一、进程内容: 程序: 存放在磁盘上的指令和数据的有序集合(文件) 静态的 进程: 执行一个程序所…...

【CCNet】《CCNet:Criss-Cross Attention for Semantic Segmentation》
ICCV-2019 文章目录 1 Background and Motivation2 Related Work3 Advantages / Contributions4 Method5 Experiments5.1 Datasets and Metrics5.2 Experiments on Cityscapess5.3 Experiments on ADE20K5.4 Experiments on COCO 6 Conclusion(own) 1 Ba…...

Qt QSQlite数据库插入字符串中存在单个双引号或单个单引号解决方案
1. 前言 当进行数据库写入或更新时,有时会遇到存在字符串中包含单个双引号或者单引号。 2. 单引号和双引号""作用 在数据库中,字符串常量时需要用一对英文单引号或英文双引号""将字符串常量括起来。 比如: select * …...

Linux系统中的IP地址、主机名、和域名解析
1.IP地址 每一台联网的电脑都会有一个地址,用于和其它计算机进行通讯 IP地址主要有2个版本,V4版本和V6版本(V6很少用,暂不涉及) IPv4版本的地址格式是:a.b.c.d,其中abcd表示0~255的数字&…...

soc算法【周末总结】
1 实验一(SOC误差30%放电实验) 1.1 实验过程 1、对电池包进行充电,将昨天放空的电池包进行充电,充电至SOC40%左右; 2、电池包SOC为38%时,手动修改SOC值为70%,开始放电 3、SOC由70%缓慢降至4…...

SpringBoot之优化高并发场景下的HttpClient并提升QPS
HttpClient优化思路 使用连接池(简单粗暴) 长连接优化(特殊业务场景) httpclient和httpget复用 合理的配置参数(最大并发请求数,各种超时时间,重试次数) 异步请求优化࿰…...
go-zero 如何在任意地方获取yaml中的值
1、config配置文件中新增全局变量 package configimport "github.com/zeromicro/go-zero/rest"type Config struct {rest.RestConfDB struct {DataSource string}Redis struct {Addr stringPassWord stringUserName string}Auth struct {AccessSecret stringAcc…...

C++20结构化绑定应用实例(二百五十六)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...

改进YOLOv8注意力系列四:结合中心化特征金字塔EVCBlock、大核卷积注意力LKA_Attention、全局注意力MobileViTAttention
改进YOLOv8注意力系列三:结合CrissCrossAttention、ECAAttention、EMAU期望最大化注意力 代码大核卷积注意力LKA_Attention中心化特征金字塔EVCBlock全局注意力MobileViTAttention加入方法各种yaml加入结构本文提供了改进 YOLOv8注意力系列包含不同的注意力机制以及多种加入方…...

idea中使用Lombok 失效,@Slf4j 找不到符号的解决办法
文章目录 一、前言二、问题排查和解决方案三、 其他解决方案3.1 另一种解决方案3.2 参考文章 一、前言 今天在一个多module工程中,新增了一个 springboot(版本 2.2.4.RELEASE) module,像往常一样,我引入了lombok依赖&…...
MySQL修炼手册8:约束与完整性:保证数据的一致性
目录 写在开头1 主键与唯一键约束1.1 PRIMARY KEY约束的作用1.2 主键的复合使用1.3 主键的修改与删除1.4 UNIQUE约束的应用场景1.5 主键与唯一键约束的性能影响1.6 主键的自动增长1.7 主键的最佳实践1.8 独特性与业务需求1.9 避免过度使用唯一约束1.10 主键与唯一键的关系 2 外…...
React入门 - 03(初识 React 组件和 JSX)
本章内容 目录 1.初识 React 组件2.关于 JSX 继上一节的工程案例,我们这一节主要了解一下 React组件和 “JSX 语法”。 前置知识点:ES6模块化&继承 1.初识 React 组件 1、打开 src/index.js文件(项目的入口文件)内容&…...

华为OD机试 - 反射计数(Java JS Python C)
题目描述 给定一个包含 0 和 1 的二维矩阵。 给定一个初始位置和速度,一个物体从给定的初始位置出发,在给定的速度下进行移动,遇到矩阵的边缘则发生镜面发射。 无论物体经过 0 还是 1,都不影响其速度。 请计算并给出经过 t 时间单位后,物体经过 1 点的次数。 矩阵以左…...

Linux系统中使用systemctl命令控制软件的启动和关闭
Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启 能够被systemctl管理的软件,一般也称之为:服务 1.功能和语法 功能:控制系统服务的启动关闭等 语法:syst…...

2024年01月微软更新Bug 已解决 !Explorer.EXE 提示:Windows无法访问指定设备、路径或文件。你可能没有适当的权限访问该项目。
前倾概要 近期大量出现如上图问题,杀毒,系统急救箱都没反应,罪魁祸首就是微软更新! 点击什么都是:Windows无法访问指定设备、路径或文件。你可能没有适当的权限访问该项目。 但软件使用正常,还能通过建立…...

Qt/QML编程学习之心得:slider(34)
滑条slider,有时也成为进度条progressbar,在GUI界面中也是经常用到的。 import QtQuick 2.9 import QtQuick.Controls 2.0 import QtQuick.Layouts 1.2ApplicationWindow {id:rootvisible: truewidth: 1920height: 720//title: qsTr("Hello World&q…...

使用metricbeat 监控多ES集群
背景 ES 本身自带 监控,属于xpack 中的内容,为商业版,需要收费; 并且 monitor 功能必须要在security开启后才能使用,还有就是集群监控自己,将采集到的性能数据保存到本集群,这是一个比较差的设…...

阿里云服务器+宝塔 (尝试部署一个最简单的静态页面)
1. 免费白嫖一个阿里服务器 进入网址:服务器购买地址 选择预装宝塔面板 购买完成后前往控制台 查看当前实例 设置或修改密码 设置用户名和密码 2. 远程连接到服务器 2.1. 使用Workbench连接 输入用户名和密码连接成功页面如下: 2.2. 使…...

YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...

VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...

vxe-table vue 表格复选框多选数据,实现快捷键 Shift 批量选择功能
vxe-table vue 表格复选框多选数据,实现快捷键 Shift 批量选择功能 查看官网:https://vxetable.cn 效果 代码 通过 checkbox-config.isShift 启用批量选中,启用后按住快捷键和鼠标批量选取 <template><div><vxe-grid v-bind"gri…...
MeanFlow:何凯明新作,单步去噪图像生成新SOTA
1.简介 这篇文章介绍了一种名为MeanFlow的新型生成模型框架,旨在通过单步生成过程高效地将先验分布转换为数据分布。文章的核心创新在于引入了平均速度的概念,这一概念的引入使得模型能够通过单次函数评估完成从先验分布到数据分布的转换,显…...

Web APIS Day01
1.声明变量const优先 那为什么一开始前面就不能用const呢,接下来看几个例子: 下面这张为什么可以用const呢?因为复杂数据的引用地址没变,数组还是数组,只是添加了个元素,本质没变,所以可以用con…...

Qt 按钮类控件(Push Button 与 Radio Button)(1)
文章目录 Push Button前提概要API接口给按钮添加图标给按钮添加快捷键 Radio ButtonAPI接口性别选择 Push Button(鼠标点击不放连续移动快捷键) Radio Button Push Button 前提概要 1. 之前文章中所提到的各种跟QWidget有关的各种属性/函数/方法&#…...