ICMP V6(计算机网络-网络层)

news/2025/2/19 20:43:16/

IPv6 使用的 ICMP


IETF 制定的与IPv6配套使用的ICMP新版本,即ICMPv6

ICMPv6报文作为IPv6分组有效载荷进行传输,对应的IPv6“下一个首部字段”的值为58

ICMPv6 的报文格式和 IPv4 使用的 ICMP 的相似,即前 4 个字节的字段名称都是一样的,第 5 个字节起的后面部分作为报文主体

ICMPv6 的报文划分为两大类

差错报告报文(Error Message)

信息提供报文(Informational Message)

ICMPv6 包含 ARP 和 IGMP 的功能


地址解析协议 ARP网际组管理协议 IGMP 协议的功能都已被合并到 ICMPv6 中

 IPv6 的地址解析


主机A需要查找B的物理地址

IPv6的地址解析与IPv4的最大不同在于使用邻居请求多播来代替ARP请求的广播

 IPv6 无状态地址自动配置


IPv6一开始就设计了地址自动配置的机制

一个IPv6主机通常会自动为每个接口配置以下 IPv6 地址:

一个本地链路单播地址(必须)

一个公开全球单播地址

一个临时全球单播地址

每个单播地址对应的请求结点多播地址

所有结点多播地址

创建本地链路单播地址


        在默认情况下,IPv6结点会为接口自动创建一个IPv6本地链路单播地址,并利用该地址与同一网络内的其他结点通信

        本地链路单播地址由前缀FE80::/64和64位的接口标识符构成。64位的接口标识符通常由48位的局域网MAC地址映射生成(EUI-64机制)

        但为了用户的隐私性,现在很多操作系统都支持随机生成接口标识符的方法,例如Windows系统,以避免攻击者通过IPv6地址获取主机的MAC地址

重复地址检测


        为了保证自动创建的本地链路单播地址在本地链路上的唯一性,要利用ICMPv6的邻居请求报文进行重复地址检测(Duplicate Address Detection,DAD)

        检测结点首先发送一个邻居请求报文,报文目标地址字段值为需要检测唯一性的IPv6地址,该报文IPv6首部中的目的地址为检测地址对应的请求结点多播地址

        若本链路上存在另一接口使用该地址,则会用邻居通告报文对该邻居请求报文进行应答,即分配的地址发生冲突。若没有应答,则通过重复地址检测。

若结点采用 EUI-64 机制生成接口标识符,则重复地址检测失败会导致接口失效(通常不会发生)

若结点采用随机方法生成接口标识符,发现地址冲突后,会尝试生成新的地址

主机自动创建的所有单播地址都需要进行重复地址检测

创建全球单播地址


主机为创建全球单播地址,会多播发送一个ICMPv6的路由器请求报文(源地址为本地链路单播地址,目的地址为所有路由器多播地址)


路由器会单播发送路由器通告报文进行应答,该通告报文中包含所在链路的网络前缀等信息


主机根据接收到的网络前缀和自己生成的接口标识符来创建全球单播地址,并将该路由器的本地链路单播地址作为自己的默认网关地址

 


http://www.ppmy.cn/news/6386.html

相关文章

多损失融合的小样本光伏组件隐裂检测算法

摘要 针对工业生产线光伏组件隐性纹检测问题,为了降低人力成本,提高检测效率,并快速适应新型产品的隐裂检测,提出了一种多损失融合的小样本光伏组件隐裂检测算法。首先,为丰富卷积神经网络提取的语义信息,引入了Transformer的多头注意力机制,缓解各批次产品的分布差异对隐裂检测…

MXNet的Faster R-CNN(基于区域提议网络的实时目标检测)《1》

原论文:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 开源代码:https://github.com/ijkguo/mx-rcnn Parallel Faster R-CNN implementation with MXNet,使用MXNet实现快速并行的区域提议的卷积神经网络…

【PAT甲级 - C++题解】1125 Chain the Ropes

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📚专栏地址:PAT题解集合 📝原题地址:题目详情 - 1125 Chain the Ropes (pintia.cn) 🔑中文翻译:结绳 📣专栏定…

Nature:剑桥大学的研究人员找到了终结新冠的新药了吗?

本月初(即2022年12月5日),《Nature》杂志发布了剑桥大学Teresa Brevini等人的一篇关于新冠研究的论文。在该论文中,作者首先发现法尼酯 X 受体(FXR)能够直接调节人体的ACE2的表达。过去的研究已经表明&…

世界杯已开赛,哪些看球设备让你觉得身临其境?

笔者在父亲的影响下,从1994年美国世界杯开始接触足球,因为当时 CCTV5 对拥有着小世界杯之称的意甲转播,成为了一名意大利足球队的忠实拥趸,一直到现在。 四年一次的世界杯也成了我从不错过的足球盛宴。2002年日韩世界杯和2006年德…

**(双星/星号)和*(星号/星号)对参数有什么作用?

问: *args 和 **kwargs 是什么意思? def foo(x, y, *args): def bar(x, y, **kwargs):答1: huntsbot.com高效搞钱,一站式跟进超10任务平台外包需求 *args 和 **kwargs 是一种常见的习惯用法,允许函数使用任意数量的参数&#xf…

spice-gtk音频播放完整流程笔记

1、获取SpiceAudio句柄,也就是音频播放和录音类对象1.1、在主通道中获取SpiceAudio句柄1.1.1、在channel-main.c的main_agent_handle_msg函数中能力协商(VD_AGENT_ANNOUNCE_CAPABILITIES)时调用agent同步音频播放获取SpiceAudio句柄/* corout…

C++运算符重载

定义:运算符重载是对已有的运算符赋予多重含义,使得同一个运算符作用于不同类型的数据时导致不同的行为。 实质:运算符重载就是函数重载。在实现过程中,首先把指定的运算表达式转化为对运算符函数的调用,运算对象转化…