ICMPv6基本理论讲解(ICMPv6报文、RS报文、IPv6地址分配)

本文详细介绍了IPv6中的ICMPv6报文格式及其功能,包括差错报文和信息报文类型,并深入探讨了邻居发现协议(NDP)的工作原理,如地址解析、地址冲突检测、邻居状态跟踪及路由器发现等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

ICMPv6报文格式

差错报文

信息报文

邻居发现协议NDP

RS报文

Flags字段

地址前缀信息

生存周期

IPv6地址获取方式

链路本地地址的生成方式

非链路本地地址的生成方式


IPv6中取消了ARP(由于ARP会导致一些安全问题),ARP的功能都通过ICMPv6来实现

ICMPv6报文格式

差错报文

Type1——目的不可达

       Code0:没有到达目标设备的路由

       Code1:与目标设备的通信被管理策略禁止

       Code3:目的IP地址不可达

       Code4:目的端口不可达

Type2——数据包过长(报文超过出接口的链路MTU)

       Code字段一直为0,此数据包时Path MTU发现机制的基础

       Path Mtu报文,协商最小MTU

Type3——时间超时(设备收到IPv6字段Hop Limit字段为0或自身将Hop Limit字段减为0)

       Code0:在传输中超越了跳数限制

       Code1:分片重组超时

Type4——参数错误(报文有效性检查出错会发送)

Code0:IPv6基本头或扩展头的某个字段有错误

       Code1:IPv6基本头或扩展头的NextHeader值不可识别

       Code2:扩展头中出现未知的选项

信息报文

Type128——Echo Request (Ping请求报文)

Code字段为0

Type129——Echo Reply(Ping回应报文)

Code字段为0

邻居发现协议NDP

NDP协议是IPv6协议的基础,IPv4中的ARP、DHCP协议都可以通过NDP来实现。

NDP协议依靠ICMPv6协议发送报文,其中定义的5种ICMPv6报文如下

Type133——RS报文(路由器请求)

Type134——RA报文(路由器公告)

Type135——NS报文(邻居请求)

Type136——NA报文(邻居公告)

Type137——重定向报文

NDP协议功能

地址解析(类似ARP功能,获取MAC地址)

通过发送NS和NA报文来获取对端的MAC地址

地址冲突检测DAD(类似免费ARP,检查地址是否冲突)

发送NS和NA报文

一个单播地址在分配给一个接口之后,如果此地址未通过DAD,则此地址就被称为实验地址(Tentative Address),试验地址无法进行通信

Tentative地址无法使用的两种情况

1、此设备会发送NS报文(类似免费ARP),如果收到回应的NA报文,则本端不再使用该Tentative地址,地址被标识未Duplicated状态

2、当此地址还是Tentatice地址,如果收到对方发来的DAD NS报文时,接收方(本端)不再启用该地址

邻居状态跟踪(类似ARP表项)

IPv4的ARP表项老化时间1200s到了之后不会立马撤销,会发送一个ARP请求,在等待一个延迟后如果没有收到ARP应答,才会删除此表项

邻居状态跟踪,存储ARP状态信息,为下次通信提供保障

NDP定义了5种邻居状态(未完成、可达、陈旧、延迟、探查)

未完成状态:知道对端IPv6地址,不知道对端MAC地址

可达状态:发送NS、NA报文后获取到对端MAC地址

陈旧状态:表项老化时间32s过后,一直呆在陈旧状态

延时状态:当下次使用此表项时,发送NS报文,进入延时状态。

                在延时状态收到NA报文,直接进入可达状态

                在延时状态,发送最多5次NS报文,如果没有收到NA报文,进入探查状态

探查状态:发送NS报文

                在探查状态收到NA报文,直接进入可达状态

                在探查状态,发送1次NS报文,如果没有收到NA报文,进入空状态

延时状态的NS是组播的,探查状态的NS是单播的

路由器发现——获取前缀,通过EUI-64生成IPv6地址

发送RS(目的地址-FF02::2)和RA(目的地址-FF02::1)报文来获取IPv6地址

前缀必须为64,后64接口ID通过EUI-64生成

通过接收到的RA携带的地址前缀生成IPv6地址

重定向功能——(类似ICMP重定向功能)

防止次优路径的产生,重定向报文的目的地址为单播地址


RS报文

Flags字段

M=0  表示无状态获取IPv6

M=1  表示DHCPv6获取IPv6

0=1   表示不获取DNS等其它参数

0=1   表示通过DHCPv6获取DNS等其它参数

地址前缀信息

通过下发地址前缀信息使得终端可以通过无状态获取IPv6地址

生存周期

地址状态

当终端获取到前缀并生成IPv6单播地址后,首先进入Tentavie状态

在通过DAD地址冲突检测后,进入Preferred状态(并在Preferred lifetime内保持该状态)

在Preferred lifetime超时后,进入Deprecated状态(并在Valid lifetime内保持该状态)

在Valid lifetime超时后,地址进入Invalid状态

不同状态对地址的定义

Preferred状态的地址,终端可以使用该地址正常收发报文

Deprecated状态的地址,现有的连接可以使用该地址,但是不可以使用此地址建立新的连接

Invalid状态的地址,该地址无法继续使用


IPv6地址获取方式

链路本地地址的生成方式

手动配置

自动生成——通过软件或者EUI-64

非链路本地地址的生成方式

手工配置

自动生成

无状态自动生成

通过NDP的RS、RA来生成IPv6地址,无法获取到DNS信息(可以手工配置使得RA报文携带DNS服务器地址)

int g0/0/1

 ipv6 nd ra dns-server 114.114.114.114

DHCPv6有状态生成

通过DHCPv6获取IPv6地址、DNS等信息

DHCPv6无状态生成

通过NDP的RS/RA生成IPv6地址,通过DHCPv6获取DNS信息

<think>嗯,用户想了解Excel中的VLOOKUP函数的用法和参数含义。首先,我需要回忆一下VLOOKUP的基本结构。VLOOKUP是垂直查找函数,用于在表格的首列查找指定的值,然后返回该行中指定列的数据。它的四个参数分别是查找值、表格范围、列索引号和匹配模式。 接下来,我得确认每个参数的具体作用。第一个参数是lookup_value,也就是用户要查找的值,比如产品ID或者姓名。第二个参数是table_array,即查找的范围,这里要注意的是,查找值必须位于这个范围的第一列,否则函数无法正确工作。第三个参数是col_index_num,也就是用户想要返回的数据在表格范围中的第几列,这个列数是从表格范围的第一列开始算起的,不是整个工作表的列。第四个参数是range_lookup,决定是精确匹配还是近似匹配,通常用FALSE或0来指定精确匹配,避免错误。 然后,用户可能需要一个具体的例子来理解如何使用。比如,假设有一个产品价格表,用户想根据产品ID查找对应的价格。这时候,VLOOKUP就可以在ID列查找,然后返回价格列的数据。同时,要提醒用户注意表格范围最好使用绝对引用,比如$A$2:$C$100,这样在拖动公式时范围不会变化。 可能遇到的问题也需要考虑。比如,如果查找值不在表格的第一列,或者列索引号超过了表格的列数,函数会返回错误。此外,数据格式不一致也可能导致问题,比如查找值是数字,而表格中是文本格式的数字,这时候需要统一格式。还有,当出现#N/A错误时,可能是查找值不存在,或者匹配模式设置不正确,需要检查参数是否正确。 用户可能还会问到如何避免常见的错误,比如部分数据匹配出错的情况。这时候需要检查是否有多余的空格,或者数据格式不一致,或者表格范围没有锁定导致拖动时偏移。此外,XLOOKUP作为VLOOKUP的升级版,可能在某些情况下更方便,比如可以向左查找或者返回多列数据,这也是可以提及的内容。 最后,整理步骤,从基础语法到参数说明,再到具体案例,逐步引导用户理解如何使用VLOOKUP函数。同时,提供常见错误和解决方法,帮助用户在实际应用中避免问题。如果有必要,还可以比较VLOOKUP和其他查找函数的区别,比如HLOOKUP或XLOOKUP,但根据用户的问题,主要集中在VLOOKUP本身即可。</think>### Excel VLOOKUP函数详解 #### 一、基础语法与参数说明 VLOOKUP函数的语法为: $$=VLOOKUP(lookup\_value, table\_array, col\_index\_num, [range\_lookup])$$ 包含4个参数: 1. **lookup_value**(必填):要查找的值(如单元格引用或具体值) 2. **table_array**(必填):包含数据的表格范围(必须包含查找列和返回列) 3. **col_index_num**(必填):返回值所在列的序号(从table_array第一列开始计数) 4. **range_lookup**(可选):匹配类型 - `TRUE`/`1`:近似匹配(默认值,需数据升序排列) - `FALSE`/`0`:精确匹配(常用选项) [^1][^2] #### 二、使用步骤演示(工资表查询案例) 假设需要根据员工编号查询工资: 1. 建立查询单元格(如`B12`) 2. 输入公式: ```excel =VLOOKUP(A12, $A$2:$D$100, 4, 0) ``` - `A12`:待查询的员工编号 - `$A$2:$D$100`:锁定数据区域(绝对引用) - `4`:返回第4列(工资列) - `0`:精确匹配 [^2][^3] #### 三、常见错误与解决方法 | 错误现象 | 原因 | 解决方案 | |---------|------|---------| | #N/A | 查找值不存在 | 检查数据源或改用`IFERROR`容错 | | #REF! | 列序号超出范围 | 确认col_index_num ≤ 表格列数 | | 部分匹配失败 | 数据格式不一致 | 统一数值/文本格式 | | 结果错位 | 表格未锁定 | 使用`$`符号固定区域引用 | [^3][^4] #### 四、进阶技巧 1. **多条件查询**: 使用辅助列合并多个条件字段 ```excel =VLOOKUP(A2&B2, $D$2:$F$100, 3, 0) ``` 2. **通配符匹配**: `"*"`匹配任意字符,`"?"`匹配单个字符 ```excel =VLOOKUP("张*", $A$2:$C$100, 3, 0) ``` 3. **跨表查询**: 引用其他工作表数据 ```excel =VLOOKUP(A2, Sheet2!$A$2:$D$100, 4, 0) ``` [^1][^4]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静下心来敲木鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值