ICMPv6与NDP

news2024/11/19 3:39:36

1. ICMPv6简介

ICMP概述

Internet控制消息协议ICMP (Internet Control Message Protocol)是IP协议的辅助协议。
ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。
在这里插入图片描述

ICMP差错检查

ICMP Echo消息常用于诊断源和目的地之间的网络连通性,同时还可以提供其他信息,如报文往返时间等。
功能:Ping
Ping是网络设备、Windows、Unix和Linux平台上的一个命令,其实是一个小巧而实用的应用程序,该应用基于ICMP协议。
Ping常用于探测到达目的节点的网络可达性。

ICMP错误报告

ICMP定义了各种错误消息,用于诊断网络连接性问题;根据这些错误消息,源设备可以判断出数据传输失败的原因。
功能:Tracert
Tracert基于报文头中的TTL值来逐跳跟踪报文的转发路径。Tracert是检测网络丢包和时延的有效手段,同时可以帮助管理员发现网络中的路由环路。

ICMPv6概述

ICMPv6是IPv6的基础协议之一。
在IPv6报文头部中,Next Header字段值为58则对应为ICMPv6报文。
ICMPv6报文用于通告相关信息或错误。
ICMPv6报文被广泛应用于其它协议中,包括NDP、Path MTU发现机制等。
ICMPv6控制着IPv6中的地址自动配置、地址解析、地址冲突检测、路由选择、以及差错控制等关键环节。

ICMP报文格式

在这里插入图片描述
在这里插入图片描述

ICMPv6报文类型

ICMPv6报文分为两类:差错报文和信息报文。
①差错报文:
差错报文(Error Messages),也称为差错消息,Type字段最高bit为0,也就是ICMPv6 Type=[0,127]
差错消息用于报告在转发IPv6数据包过程中出现的错误,如常见的目的不可达、超时等等。
差错报文应用
1)Path-MTU发现
①在IPv6中,中间转发设备不对IPv6报文进行分片,报文的分片将在源节点进行。
②MTU(Path MTU)就是路径上的最小接口MTU。
③PMTUD(Path MTU发现机制)的主要目的是发现路径上的MTU,当数据包被从源转发到目的地的过程中避免分段。
④依赖PMTUD,数据的发送方可以使用所发现到的最优PMTU与目的地节点进行通信,这样可以避免数据包在从源传输到目的的过程之中,被中途的路由器分片而导致性能的下降。
在这里插入图片描述
2)ping
Ping基于ICMPv6信息报文实现
Echo Request:用于发送到目标节点,以使目标节点立即发回一个Echo Reply应答报文。Echo Request报文的Type字段值为128,Code字段的值为0。
Echo Reply:当收到一个Echo Request报文时,ICMPv6会用Echo Reply报文响应。Echo Reply报文的Type字段的值为129,Code字段的值为0。在这里插入图片描述
②信息报文
信息报文(Information Messages) ,也称为信息消息,Type字段最高bit为1,也就是ICMPv6 Type=[128,255]
信息报文可以用来实现同一链路上节点间的通信和子网内的组播成员管理等。
ICMPv6其他常用报文
①邻居发现(RFC2461和RFC4861)
Type=133 路由器请求(Router Solicitation)
Type=134 路由器公告(Router Advertisement)
Type=135 邻居请求(Neighbor Solicitation)
Type=136 邻居公告(Neighbor Advertisement)
Type=137 重定向 (Redirect)
②组播侦听者发现协议(RFC2710和RFC3810)
Type=130 查询消息
Type=131 报告消息
Type=132 离开消息
Type=143 MLDv2报告消息

2.NDP介绍

NDP概述

RFC2461定义了IPv6邻居发现协议NDP。NDP是IPv6中非常核心的组件。
主要功能为:
在这里插入图片描述

NDP报文类型及功能

NDP使用以下几种ICMPv6报文:
RS(Router Solicitation):路由器请求报文
RA(Router Advertisement):路由器通告报文
NS(Neighbor Solicitation):邻居请求报文
NA(Neighbor Advertisement):邻居通告报文

路由器发现

路由器发现是指主机发现本地链路上路由器和确定其配置信息的过程。
路由器发现可以同时实现以下三个功能:
①路由器发现 (Router Discovery):主机定位邻居路由器以及选择哪一个路由器作为缺省网关的过程。
②前缀发现 (Prefix Discovery):主机发现本地链路上的一组IPv6前缀的过程,用于主机的地址自动配置。
③参数发现 (Parameter Discovery):主机发现相关操作参数的过程,如输出报文的缺省跳数限制、地址配置方式等信息。
使用报文:
①RS 路由器请求
②RA 路由器通告
协议交互主要有两种情况:
①主机发送RS触发路由器回应RA
②路由器周期发送RA

路由器发现流程

1)主机请求触发
当主机启动时,主机会向本地链路范围内所有的路由器发送RS报文,触发路由器响应RA报文。主机发现本地链路上的路由器后,自动配置缺省路由器,建立缺省路由表、前缀列表和设置其它的配置参数。
在这里插入图片描述
①主机启动,向本地链路范围内所有的路由器发送RS报文。
②路由器响应RA报文。
经过以上步骤,主机生成缺省路由,下一跳指向缺省路由器的链路本地地址。
2)路由器周期性发送
路由器周期性的发送RA报文,RA发送间隔是一个有范围的随机值,缺省的最大时间间隔是600秒,最小时间间隔是200秒。
对于定期发送的RA报文,其地址有如下要求:
Source Address:必须是发送接口的链路本地地址。
Destination Address :FF02::1。
在这里插入图片描述

地址解析

IPv6地址解析通过ICMPv6(NS和NA报文)来实现。
在三层完成地址解析,主要带来以下几个好处:
①地址解析在三层完成,不同的二层介质可以采用相同的地址解析协议。
②可以使用三层的安全机制避免地址解析攻击。
③使用组播方式发送请求报文,减少了二层网络的性能压力。
在这里插入图片描述

邻居状态跟踪

IPv6邻居状态

IPv6节点需要维护一张邻居表,每个邻居都有相应的状态,状态之间可以迁移。5种邻居状态分别是:未完成(Incomplete)、可达(Reachable)、陈旧(Stale)、延迟(Delay)、探查(Probe)。
在这里插入图片描述

邻居状态迁移

在这里插入图片描述

重复地址检测

1)
重复地址检测(Duplicate Address Detect,DAD)是指接口在使用某个IPv6地址之前,需要先探测是否有其它的节点使用了该地址,从而确保网络中没有两个相同的单播地址。
接口在启用任何一个单播IPv6地址前都需要先进行DAD,包括Link-Local地址。

2)
一个地址在通过重复地址检测之前称为“tentative地址”,即“试验地址”。此时该接口不能使用这个试验地址进行单播通讯。
若2个节点配置相同地址,同时作重复地址检测时,当一方收到对方发出的DAD NS报文,则接收方将不启用该地址。

重定向

重定向是指网关设备发现报文从其它网关设备转发更优,它就会发送重定向报文告知报文的发送者,让报文发送者选择另一个网关设备。
在这里插入图片描述
①PC1希望发送报文到服务器,于是根据配置的默认网关地址向网关R2发送报文。
②网关R2收到报文后,检查报文信息,发现报文应该转发到与PC1在同一网段的另一个网关设备R1,此转发路径是更优的路径,于是R2会向PC1发送一个重定向消息,通知PC1去往服务器的报文应直接发给R1。
③PC1收到重定向消息后,会向R1发送报文,R1再将该报文转发至服务器。

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

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

相关文章

Mingw快捷安装教程 并完美解决出现的下载错误:The file has been downloaded incorrectly

安装c语言编译器的时候,老是出现The file has been downloaded incorrectly,真的让人 直接去官网拿压缩包:https://sourceforge.net/projects/mingw-w64/files/ (往下拉找到那个x86_64-win32-seh的链接,点击后会自动…

【算法|动态规划No.27】leetcode516. 最长回文子序列

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

项目知识点总结-过滤器-MD5注册-邮箱登录

(1)过滤器 使用过滤器验证用户是否登录 /** * Title: NoLoginFilter.java * Package com.qfedu.web.filter * Description: TODO(用一句话描述该文件做什么) * author Feri * date 2018年5月28日 * version V1.0 */ package com.gdsdx…

12 Masked Self-Attention(掩码自注意力机制)

博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https://github.com/nickchen121/Pre-training-language-model 配套博客链接:https://www.cnblogs.com/nickchen121/p/15105048.html 上节课回顾 《Attenti…

Pandas数据处理分析系列2-数据如何导入

Pandas Excel 数据导入 Pandas库提供了一组强大的输入/输出(I/O)函数(简称为:I/O API),用于读取和写入各种数据格式,目前已支持常见的多种外数据格式。 Pandas 常见读取方法如下表: 可以看出,在使用Pandas 读取数据格式文件时,只需一个方法则可,不同的方法参数, 可…

P3 查询

文章目录 Task1 访问方法执行程序seq_scan_executorinsert_executorupdate_executordelete_executorindex_scan_executor Task2 聚合和连接执行器AggregationNestedLoopJoinHashJoin优化NestedLoopJoin到HashJoin Task3 排序限制执行器和Top-N优化SortLimitTop-N优化规则 BusTu…

反射、注解、元注解、动态代理

反射 反射就是:加载类,并允许以编程的方式解剖类中的各种成分(成员变量、方法、构造器等 学习反射就是学习如何获取类的信息并操作它们 加载类,获取类的字节码:Class对象获取类的构造器:Constructor对象获…

滚珠螺杆应如何存放避免受损

滚珠螺杆是一种高精度的机械零件,保存或使用不当,会直接损坏,影响生产效率,因此我们在使用时需要注意以下事项: 1、避免垂直放置:没有施加预压的螺杆垂直放置时,螺母会因自重而从螺杆轴上脱荐下…

【斗破年番】谣言不攻自破,萧潇造型曝光,制作进度已达中州,风尊者帅翻

Hello,小伙伴们,我是小郑继续为大家深度解析重要国漫资讯。 斗破苍穹动画中,萧炎与小医仙重聚,也即将与美杜莎女王回蛇人族见家长,剧情一度变得愈加的炸裂,颇有逐鹿鹅厂国漫第一把交椅的架势。正因此,斗破动…

强化学习 | Python强化学习

强化学习在近年来取得了巨大的突破,使机器能够在不断的试错中自动学习并做出决策。 本文将介绍强化学习的基本概念、原理和应用,同时提供详细的公式解释和Python代码示例。 强化学习是什么? 强化学习是一种机器学习方法,用于让智能体(例如机器人、自动驾驶汽车或游戏玩家…

Keil 5 安装教程(最新最全最详细)附网盘资源

一.简介 文章转自其他平台 链接: keil5下载连接. 官方下载地址:https://www.keil.com/download/product/ Keil5(32/64)位下载地址: 链接: https://pan.baidu.com/s/1Jn15jeb0Aa1cSietvXfcwg 密码:8ji…

基于springboot实现财务管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现财务管理系统演示 摘要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生&#x…

记录阿里云服务器(Centos7.9)部署Thingsboard(3.4.2)遇到的一些问题

记录编译Thingsboard遇到的一些问题 部署了一个thingsboard项目到阿里云服务器上,历时十一天,遇到了很多困难,国内关于Thingsboard的资料确实很少,所以想着写一篇博客记录一下,或许能够给以后编译遇到类似问题的人一些…

Pandas数据处理分析系列3-数据如何预览

Pandas-数据预览 Pandas 导入数据后,我们通常需要对数据进行预览,以便更好的进行数据分析。常见数据预览的方法如下: ①head() 方法 功能:读取数据的前几行,默认显示前5行 语法结构:df.head(行数) df1=pd.read_excel("销售表.xlsx",sheet_name="手机销…

AUTOSAR EcuM休眠阶段的具体实现详解

在AUTOSAR EcuM SWS里对于Sleep阶段做出了一个宏观的流程设计,如下: 从BswM过渡到EcuM的规则仲裁这里暂时不讲,有兴趣可以看之前我遇到的工程问题分析,特别是BswM状态迁移图: BswM状态分析 今天主要聊AUTOSAR规定的sleep两种模式:Halt和Poll,以及这两种模式下,…

【趣味随笔】农业机器人的种类与发展前景

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

在Mac上使用安卓桌面模式

在安装Homeblew的基础上 替换国内源 export HOMEBREW_API_DOMAIN"https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api" export HOMEBREW_BREW_GIT_REMOTE"https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git" brew update 安装Scrcpy …

【2023_10_21_计算机热点知识分享】:机器学习中的神经网络

今天的分享主题是机器学习中的神经网络。神经网络是一种模拟人类神经系统的计算模型,它由一系列的神经元组成,每个神经元接收一组输入,经过计算后产生一个输出。神经网络的学习过程是通过调整神经元之间的连接权重来实现的,这个过…

Unity--用户界面

目录 “使用工具栏”: “层次结构”窗口: 层次结构窗口 制作子GameObject “游戏”视图: “场景视图“: ”项目窗口“: 项目窗口工具栏: "Inspector" 窗口: Inspector 游戏…

UG\NX二次开发 实时查看 NX 日志文件

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 感谢粉丝订阅 感谢 a18037198459 订阅本专栏,非常感谢。 简介 实时查看 NX 日志文件,有助于分析保存时间等。打开WindowsPowerShell并实时获取日志文件内容的小功能。 效果 代…