当前位置: 首页 > article >正文

IPv6之邻居发现(ND)协议介绍

引言 邻居发现协议(Neighbor Discovery Protocol,简称ND协议)是IPv6的一个关键协议,ND协议是IPv4一类协议在IPv6中综合起来的升级和改进,如ARP、ICMP路由器发现和ICMP重定向等协议。作为IPv6的基础性协议,ND还提供了其他功能,如前缀发现、邻居不可达检测、重复地址检测、地址自动配置等。 邻居发现协议的应用范围是本地链路,即路由器不能转发ND协议报文。为确保接收节点收到的报文来自本地链路上,协议规定发送节点在发出报文时,需要将IPv6基本头的跳数限制字段(Hop Limit)置为255;当接收节点收到报文时,会首先检测跳数限制字段,如果不是255,就丢弃报文。RFC中几个常用术语概念:节点(Node):实现了IP协议栈的设备,包括路由器和主机。路由器(Router):具有转发能力的节点,可以转发目的地址不是自己地址的报文。主机(Host):任意非路由器节点,通常是报文的源节点和目的节点。接口(Interface):节点上与链路相连的端口。邻居(Neighbor):位于同一链路上的节点互相称为邻居。邻居发现协议是建立在ICMPv6基础之上的,为此,首先介绍下该协议。ICMPv6协议简介 ICMPv6基本功能与ICMPv4类似,用于IPv6节点报告报文处理过程中发生的错误以及完成网络诊断等,要求每个IPv6节点都必须实现。ICMPv6协议号(Next Head)为58,属于IPv6的上层协议头,承载于基本报文头之上。ICMPv6报文格式如下:Type:报文类型字段。Code:代码字段,在报文类型基础上定义。Checksum:校验和字段。Message Body:数据字段,该字段为目的节点提供相关的消息。 实际上,ICMPv6综合了IPv4多个协议的功能,有ICMP、IGMP、ARP等,而且,IPv6中的许多协议也都是采用ICMPv6报文格式实现的,如ND协议、IND协议(InverseNeighbor Discovery)、MLD协议(Multicast Listener Discovery)、移动IPv6协议等。ND协议定义了五种类型的ICMPv6报文,对应的类型字段为133~137。邻居发现ND协议报文 邻居发现ND协议定义的报文类型包括:路由器请求报文、路由器通告报文、邻居请求报文、邻居通告报文和重定向报文。路由器请求报文RS Router Solicitation Message 主机启动后,通过RS消息向路由器发出请求,期望路由器立即发送RA消息响应。RS报文格式如下。 Type 类型字段,值133Code代码字段,值0Checksum校验和字段Reserved保留字段,发送者必须将其初始化为0,接收者必须忽略此字段Options 选项字段选项字段说明:源链路层地址选项 仅用于已编址的链路层可用于RS报文的只有源链路层地址选项,表明该报文发送者的链路层地址。如果IPv6头的源地址为未指定地址,则不能包括该选项。IPv6报文头中的字段要求:Hop Limit 值255,保证是本地链路上的报文Source Address发送接口的本地链路地址或未指定地址Destination Address本地链路中所有路由器的组播地址FF02::2以太网卡中通过wireshark 抓到的一个RS 报文:路由器通告报文RA Router AdvertisementMessage 路由器周期性的发布RA消息,其中包括前缀和一些标志位的信息,或者以RA报文响应路由器请求报文RS。RA报文格式如下:Type 类型字段,值134Code代码字段,值0Checksum校验和字段Cur Hop Limit路由器发送报文的跳数限制 协议规定缺省为IPv6头中Hop Limit数值。若为0,表示路由器不使用该字段。M 管理地址配置标识(Managed address configuration)0-无状态地址分配,客户端通过无状态协议(如ND)获得IPv6地址;1-有状态地址分配,客户端通过有状态协议(如DHCPv6)获得IPv6地址。O 其它有状态配置标识(Other stateful configuration) 0-客户端通过无状态协议(如ND)获取除地址外的其他配置信息; 1-客户端通过有状态协议(如DHCPv6)获取除地址外的其他配置信息,如DNS、SIP服务器信息;按照协议,若M标记置为1,则O标记也应置为1,否则无意义。H Home代理标识(Home Agent)移动IPv6定义的字段,当置位时,表示发出RA报文的路由器也可以作为移动节点的Home代理。Prf缺省路由器优先级(Default Router Preference) RFC4191中定义的字段,定义为发送RA报文的路由器作为主机缺省路由器的优先级。用二进制表示为01(High)、00(Medium)、11(Low)、10(Reserved),当报文中Prf为10时,接收者作为00处理。如果有多个路由器通告自己为缺省路由器,则可以通过配置这些路由器,使它们在通告为缺省路由器时带有不同的优先级。参考协议,当Router Lifetime字段为0时,发送者也应该把Prf字段设为0,并且接收者忽略该字段。Prf 缺省值为00。P代理标识(Proxy),RFC4389定义的字段,用于ND proxyRsv保留字段,发送者必须将其初始化为0,接收者必须忽略该字段Router Lifetime缺省路由器的生命周期(单位:秒) 表示发送该RA报文的路由器作为缺省路由器的生命周期。Router Lifetime最长18.2小时,缺省值30分钟。如果该字段为0时,表示该路由器不能作为缺省路由器,但RA报文的其他信息仍然有效。Reachable Time可达时间(单位:毫秒) 发送NS报文后,得到NA报文最长的等待时间,用于邻居不可达检测。 路由器在接口上通过发送RA报文,让同一链路上的所有节点都使用相同的可达时间。若Reachable Time为0,表示路由器不使用该字段参数。该值可配置,RA报文中缺省值为0。Retrans Timer重传定时器(单位:毫秒) 重传NS报文的时间间隔,用于邻居不可达检测和地址解析。若该值为0,表示路由器不使用该字段参数。该值可配置,RA报文缺省值为0。Options选项字段源链路层地址选项 仅用于已编址的链路层。当路由器正在多个链路层地址上进行负荷分担时,要忽略该选项。MTU选项 链路的可变MTU前缀信息选项 用于地址自动配置的前缀信息,可包含多个通告间隔选项 用于移动IPv6家乡代理信息选项 用于移动IPv6路由信息选项 用于主机生成缺省路由,表明前缀通过该路由器是可达的IPv6报文头中的字段要求如下:Hop Limit255Source Address必须是发送接口的本地链路地址Destination Address组播地址FF02::1,或发送RS请求报文的主机的单播地址以太网卡中通过wireshark 抓到的一个RA报文:邻居请求报文NS Neighbor SolicitationMessage主机通过NS消息可以得到邻居的链路层地址、检查邻居是否可达、重复地址检测等。Type 类型字段,值135Code代码字段,值0Checksum校验和字段Reserved保留字段,发送者必须将其初始化为0,接收者必须忽略此字段Target Address 目标地址,16bytes请求目标的IP地址,不能是组播地址,可以是本地链路、本地站点、全局地址。Options选项字段源链路层地址选项 和RS报文的选项相同,可用于NS报文的只有源链路层地址选项。源链路层选项仅用于已编址的链路层,如果IPv6头的源地址为未指定地址,则不能包括该选项。IPv6报文头中字段要求如下:Hop Limit 255Source Address发送接口的地址或未指定地址(DAD检测)Destination Address目的节点单播地址或目的节点地址对应的请求节点组播地址需要说明,如果源地址为未指定地址,则目的地址应为被请求节点的组播地址,并且没有源链路层地址选项。以太网卡中通过wireshark 抓到的一个NS报文:邻居通告报文NA Neighbor AdvertisementMessage 邻居通告NA报文是主机对NS的响应报文,同时主机在链路层变化时也可以主动发送NA消息,以通知相邻节点自己的链路层地址或者角色发生改变。Type 类型字段,值136Code代码字段,值0Checksum校验和字段/

相关文章:

IPv6之邻居发现(ND)协议介绍

引言 邻居发现协议(Neighbor Discovery Protocol,简称ND协议)是IPv6的一个关键协议,ND协议是IPv4一类协议在IPv6中综合起来的升级和改进,如ARP、ICMP路由器发现和ICMP重定向等协议。作为IPv6的基础性协议,ND还提供了其他功能,如前缀发现、邻居不可达检测、重复地址检测、…...

从噪声到精准:DiffDet4SAR如何用扩散模型革新SAR图像飞机检测

1. 当扩散模型遇上SAR图像:一场噪声与精准的博弈 第一次看到SAR图像中的飞机目标时,我差点以为这是一张被墨水泼过的抽象画。那些离散的散射点就像打翻的芝麻,而背景中的金属建筑和地形杂波更是让整个画面"热闹"得令人头疼。这正是…...

KINGBASE 数据库 license管理实战指南

1. KINGBASE数据库license管理基础 第一次接触KINGBASE数据库license管理时,我也被各种专业术语搞得一头雾水。后来在实际项目中摸爬滚打几年后才发现,这东西就像汽车的行驶证,没有有效的license,数据库这个"引擎"就跑不…...

ezdxf实战指南:解决CAD数据处理难题的5个创新方法

ezdxf实战指南:解决CAD数据处理难题的5个创新方法 【免费下载链接】ezdxf Python interface to DXF 项目地址: https://gitcode.com/gh_mirrors/ez/ezdxf 在现代工程设计与制造流程中,DXF(CAD数据交换格式)文件作为标准化的…...

工业以太网实战:基于OMRON Compolet与Sysmac Gateway的CIP通信架构解析

1. 工业以太网与CIP通信基础 第一次接触OMRON的Compolet组件时,我被它简洁的API设计惊艳到了。作为一个在自动化行业摸爬滚打多年的工程师,我深知工业通信的复杂性——但Compolet确实让这件事变得简单了许多。让我们先从基础开始,理解这个系统…...

如何用Python处理1985-2023年全国逐月NPP数据?从下载到可视化的完整指南

Python全流程处理1985-2023年全国逐月NPP数据实战指南 当我们需要分析中国陆地生态系统近40年的植被生产力变化时,1985-2023年的全国逐月NPP数据无疑是一座金矿。但面对数百个TIFF文件、复杂的空间坐标转换和庞大的时间序列分析需求,很多研究者常常在数…...

六年级语文下册习课堂任务单(2024新版电子版资料)

温馨提示:文末有联系方式【权威同步】六年级语文下册习课堂任务单全新升级 本套资料严格依据2024年统编版小学语文六年级下册教材编写,覆盖全部单元、课文及语文要素,紧扣课堂学习节奏,助力学生夯实基础、提升语感与表达能力。【便…...

高效下载中小学电子课本:三步完成国家教育平台PDF获取

高效下载中小学电子课本:三步完成国家教育平台PDF获取 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具 项目地址: https://gitcode.com/GitHub_Trending/tc/tchMaterial-parser tchMaterial-parser是一款专为教师和学生设计的…...

Python实战:5分钟用代码模拟时分复用(TDM)数据传输过程

Python实战:5分钟用代码模拟时分复用(TDM)数据传输过程 通信技术中的时分复用(Time Division Multiplexing, TDM)就像高速公路上的车道分时共享机制。想象一下,如果能让不同车辆在不同时间段独占整条道路&a…...

厦门大学432应用统计学考研复试备考复习资料电子版

温馨提示:文末有联系方式厦门大学432应用统计学复试备考资料全解析 本套资料专为报考厦门大学统计学专业(代码432)硕士研究生复试阶段考生精心打造,内容紧扣近年复试流程、考核重点与高频型。高清电子版资料,详情一图尽…...

嵌入式老司机教你快速定位IAR/KEIL编译报错:从警告信息反推代码问题

嵌入式开发实战:从IAR/KEIL警告编号逆向诊断代码缺陷 在嵌入式开发领域,IAR和KEIL作为两大主流编译器,其警告信息往往隐藏着代码质量的关键线索。许多开发者习惯性忽略这些黄色警告,殊不知它们正是编译器在向我们传递代码潜在风险…...

Cosmos-Reason1-7B智能体(Agent)开发入门:构建你的第一个AI助手

Cosmos-Reason1-7B智能体(Agent)开发入门:构建你的第一个AI助手 你是不是也好奇,那些能帮你查天气、订行程、甚至写代码的AI助手,到底是怎么做出来的?感觉它们背后有一套复杂的逻辑,离我们普通…...

避坑指南:Python图片转视频常见问题及优化技巧(基于imageio 2.31.1)

Python图片转视频实战:从性能优化到高级技巧(基于imageio 2.31.1) 当你需要将数百张高分辨率图片转换为流畅视频时,是否遇到过内存爆炸、编码格式混乱或输出文件异常的问题?作为计算机视觉开发中的基础操作&#xff0c…...

nRF52832开发环境搭建:从编译到烧录的完整实践(基于Ubuntu 22.04和nRF5 SDK 15.3/17.1双版本)

nRF52832开发环境搭建:从编译到烧录的完整实践(基于Ubuntu 22.04和nRF5 SDK 15.3/17.1双版本) 在嵌入式开发领域,nRF52832作为Nordic Semiconductor推出的高性能蓝牙低功耗SoC,凭借其优异的射频性能和丰富的外设资源&a…...

ESP32-S3蓝牙配网实战:从零开始配置你的物联网设备(附完整代码)

ESP32-S3蓝牙配网实战:从零开始配置你的物联网设备(附完整代码) 在物联网开发中,设备首次连接网络往往是个令人头疼的问题。想象一下,你刚拿到一个全新的智能设备,没有屏幕,没有键盘&#xff0…...

中文纠错模型横向评测:MacBERT/T5/ChatGLM在SIGHAN2015上的表现对比

中文纠错模型实战评测:MacBERT、T5与ChatGLM的技术博弈 在智能输入法、OCR后处理等场景中,中文文本纠错技术直接影响着用户体验。当用户输入"今天新情很好"时,系统能否准确纠正为"今天心情很好",背后是语言模…...

2.数据采集基础知识

import requests from bs4 import BeautifulSoup#数据采集基础知识:豆瓣读书T250的数据获取 for i in range(0,10):url "https://book.douban.com/top250"header {"user-agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, …...

MogFace-CVPR22效果惊艳展示:10张复杂合影人脸检测结果对比图集

MogFace-CVPR22效果惊艳展示:10张复杂合影人脸检测结果对比图集 1. 核心能力概览 MogFace(CVPR 2022)作为当前最先进的人脸检测模型之一,在复杂场景下展现出了令人印象深刻的能力。这个基于ResNet101架构的模型,专门…...

TM8211双通道16位DAC驱动实践:从音频到高精度信号生成

1. TM8211芯片基础解析:不只是音频DAC TM8211这颗双通道16位DAC芯片在电子爱好者圈子里常被当作音频解码器使用,但它的能力远不止于此。我第一次接触这颗芯片是在一个工业传感器校准项目中,当时需要生成微伏级精度的参考电压,市面…...

Psins静基座仿真精解:从IMU数据生成到误差传播理论验证

1. 静基座仿真与IMU数据生成基础 静基座仿真是惯性导航系统验证中最基础也最重要的场景之一。想象一下你的手机放在桌面上完全静止的状态——这就是静基座条件的直观体现。在这种环境下,我们可以排除运动带来的干扰,专注于分析惯性测量单元(I…...

玩转汽车数据流:用Torque Pro打造你的车载性能监控系统(支持GPS轨迹记录)

玩转汽车数据流:用Torque Pro打造你的车载性能监控系统(支持GPS轨迹记录) 在智能汽车时代,数据已经成为理解车辆状态的最佳语言。对于热爱技术的车主来说,能够实时获取并分析爱车的各项性能指标,不仅是一种…...

网络安全、计算机网络、理论技术+企业级的产品实践经验相结合

Part1 网络安全产品 终端侦测与响应系统(EDR) 网络侦测与响应系统(NDR) 多引擎脆弱性(漏洞)扫描(VAS) 网络安全威胁情报中心(TIS) 多源日志审计监测系统&…...

Verilog实战:手把手教你用CORDIC算法实现16位反正切函数(附完整代码)

Verilog实战:从零构建16位CORDIC反正切函数的工程实践 在FPGA开发中,数学函数的硬件实现一直是性能优化的关键环节。当标准IP核无法满足定制化需求时,自主实现核心算法就成为工程师的必备技能。本文将带您深入CORDIC算法的Verilog实现细节&am…...

AudioLDM-S企业应用:智能客服语音反馈系统

AudioLDM-S企业应用:智能客服语音反馈系统 1. 引言 想象一下这样的场景:一位焦急的客户拨通客服热线,等待解决问题的方案。传统的语音应答系统往往只能提供机械、单一的回复,让人感到冷漠和失望。但现在,借助AudioLD…...

RINEX格式解析:从GPS数据采集到多源接收机协同处理

1. RINEX格式:GPS数据处理的"普通话" 第一次接触GPS数据处理时,我被各种接收机厂商的专有数据格式搞得晕头转向。就像不同地区的人说着各自的方言,Trimble的.dat文件、Leica的.m00文件、Topcon的.t02文件彼此互不相通。直到遇到RIN…...

从描述到演示:基于 nano banana pro 的 PPT 智能生成框架,如何重塑内容创作流程

1. 当PPT制作遇上AI:一场效率革命的开端 每次临近汇报截止日期,办公室里总会响起此起彼伏的键盘敲击声和叹气声。我见过太多同事为了调整PPT的版式熬夜到凌晨,也见过不少设计师因为客户反复修改配色方案而抓狂。直到去年接触到Banana-slides这…...

DETR Revolution: How Transformers are Redefining End-to-End Object Detection

1. DETR如何颠覆传统目标检测范式 第一次看到DETR(Detection Transformer)的检测结果时,我盯着屏幕愣了好几秒——那些整齐排列的预测框就像是被某种魔法直接"印"在图像上,完全跳过了传统检测器中那些繁琐的后处理步骤。…...

PDF-Extract-Kit-1.0性能优化:利用CUDA加速模型推理

PDF-Extract-Kit-1.0性能优化:利用CUDA加速模型推理 1. 为什么需要GPU加速PDF处理 处理PDF文档其实是个挺耗资源的活儿,特别是当你要从复杂的PDF里提取内容时。想想看,一页PDF可能包含文字、图片、表格、公式等多种元素,每个都需…...

使用Jungo WinDriver v14.3.0进行PCIE DMA通信测试:基于XAPP1052的实战教程

PCIe DMA通信实战:基于Jungo WinDriver与Xilinx FPGA的高效数据传输指南 在FPGA与主机间实现高速数据传输始终是硬件开发者面临的核心挑战之一。PCIe DMA技术凭借其高带宽和低延迟特性,成为解决这一问题的黄金方案。本文将带您深入探索如何利用Jungo Wi…...

ADB设置手机代理的两种方法对比:哪种更适合你的抓包需求?

ADB设置手机代理的两种方法对比:哪种更适合你的抓包需求? 在移动应用开发和测试过程中,网络抓包是必不可少的调试手段。无论是分析API请求、排查网络问题,还是进行安全测试,设置手机代理都是第一步。ADB作为Android开…...