




已阅读5页,还剩78页未读, 继续免费阅读
(计算机软件与理论专业论文)icmpv6相关协议分析及其在linux环境下的验证.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西南交通大学硕士研究生学位论文第l 亘 摘要 随着p 由口v 4 发展到口v 6 ,作为控制信息的i c m p 已不能适应球v 6 的 需要,1 9 9 8 年i e t f 提出了新的i c m p 协议i c m p v 6 以适应口v 6 的需要。 i c m p v 6 是邛v 6 体系结构总体的一个组成部分,任何礤v 6 都必须实现。在目 煎,i c m p v 6 实现并提供了错误报告、两络诊断、邻屠发现、缎播等多种弼络 功能。 本文结合一系列相应的r f c 标准文档,分析了i c m p v 6 相关协议的内容、 报文格式和处理规则,并与i c m p 进行了比较。重点分析了i c m p v 6 协议、 邻居发现协议、组播侦听者发现协议、无状态地址自动配置协议的工作原理, 它们所具有的功能,以及各协议在主机和主机之间、主机和路由器之间的工 作过程。 为了验证l i n u x 下i c m p v 6 相关协议中的各个报文及其选项,以及各协议 的主要工作过程是否与r f c 文档相一致,设计了i c m p v 6 侦听与i c m p v 6 发 送程序,其中i c m p v 6 侦听程序用于监听所在节点接收到的i c m p v 6 报文: i c m p v 6 发送程序用于发送i c m p v 6 报文。 我们向中国教育科研网( c e r n e t ) 口v 6 试验床的组织者申请了供实验用 的p v 6 地址块,通过台r e d h a tl i n u x 9 o 主机作为路由器,利用其提供的 t u l l i l e lb r o k e r 服务,接入了坤v 6 试验床及6 b o n e ( 国际口v 6 试验床) 。利用 这台路由器,在实验室内通过以太网交换机和另外三台主机互连搭建实验网 络,其中1 台运行w i n d o w 8x p 操作系统,仅用于观测报文;另外2 台运行 r e 担a tl i n u x 9 0 操作系统,用做主机。在l i n u x 主机和路由器上运行i c m p v 6 报文侦听程序和i c m p v 6 报文发送程序,完成了对i c m p v 6 相关协议的验证。 关键词:i p 、,6 ;i c m p v 6 ;邻居发现;组播侦听发现;地址自动配置;协议验 证 西南交通大学硕士研究生学位论文第l i 页 a b s t r a c t 】1 t e m e tc o n t r 0 1m e s s a g ep r o t o c o l ( i c m p ) c a nn o tm e e tm en e e do fd v 6 a l o n g 耐mp f b mm v 4t o 疋v 6 m1 9 9 8 ,砸t fp u tf b n v a r dan e wi c m p p r o t o c d l , i e i c m p v 6 ,s o 鹤t oa d a p tt h en e e do fi p v 6 i c m pi st h en e c e s s a r yp a no fp v 6 a r c h i t e c t t l r ew h i c hm u s tb ew a 王i z e db y 弹v 6 ,n o w a d 鑫y sl c n 口v 6c 蕊e so u tm a n y n e 伽o r k c t i o n ss u c ha se 玎o rr e p o r t ,n e t 、v o r kd i a g n o s e ,n e i g l l b o rd i s c o v e m m u l t i c a s t ,a n de t c s t a n i n gw i m t h ea n a l y s i so fas e r i e so f r e l e v a i l tr f c ( r e q u e s tf o rc o m m e n t ) s t 龃面d s ,也i sm e s i sp r e b e n t st h ec o n t e n t s ,也em e s s a g ef o 玎n a t sa n dt h eh a n d l 证g 兀l l e so fi c m p v 6a i l di t sc o r r e l a t i v ep r o t o c o l s ,a n dc o m p a r e sm e n lw i t l li c m pt h e e m p h a s e so fa t l a l y s i sa r eo nt h ep r i n c i p l e s ,血n c t i o n sa n dp r o c e s sp r o c e d u r e so n h o s t t o h o s ta n dh o s t t o m m e ro fi c m p v 6 , n e i g h b o rd i s c o v e r yp r o t o c o l , m u h i c a s t“s t c n e r d i s c o v e r v f o r 邛v 6 a n d口v 6s t a t e l e s s a d d r e s s a u t o c o n f i g l l r a t i o n i c m p v 68 n o o p i n gp m g r 跚a i l di c m p v 6s e n d i n gp r o g r a n la r ed e s i 印e di n o r d e rt ov a l i 妇t et h ec o n s i s t 跖c yo fm e s s a g e s ,o p t i o n sa i l dm a i nw o r kp r o c e s s e s b e 押e e nt h er e a l i z a t i o no fl i n u xa i l dr f cs t a i l d a r d sa b o u ti c m p v 6 鼬di t s r e l e v a i l tp r o t o c o l s i c m p v 6s n 0 0 p i gp r o g r a n li su s c dt od e t e c tt 1 1 ei c m p v 6 m e s s a g e sw h i c ha r er e c e i v e 4a tm o n i t o r i n gn o t e s i c m p v 6s e n d i n gp r o 蓼锄i s u s e dt os e n dt h ei c m p v 6 m e s s a g e s w ea p p l i e da l l dg o tab l o c ko fd v 6a d d r e s s 丘o mc e i t n e t ( c h i n ae d u c a t i o n a 1 1 dr e s e a r c hn e 柳o r k ) 弹v 6t e s l b e d w i t l lm ea p p l i e d 邛v 6a d d r e s sb l o c ka i l dm e t u r i i l e ib f o k e rs e r v i c ep r o v i d e db yc e 砒咂ti p v 6t e s t b e d ,w eg o ta c c e s s 埝t h e c e r n e t 邛v 6t e s t b e da 1 1 d6 b o n e ( i n t e m a t i o n a li p v 6t e s t b e d ) t h r o u 曲ah o s ta c t e d a sar o u t e rw i mr e d h a tl i n u x9 0 w eb u i l da r le x p e r i m e tn e t w o r kb yt h j sr o u t e r 锄dt l l r e eo t h e r h o s t si nt 1 1 el 曲o n eh o s t ,w h i c hm n st l l ew i r i d o w sx p o p e r a t i n g 8 y $ t e m ,i su s e do l yt od e t e c tt h em e s s a g e s ,a n d 血et w oo t h e rh o s t sm nt l l e r e d h a tl i n u x9 oo p e r a t i n gs y s t e m i c m p v 6 蛳o o p i n gp r o g r a ma n di c m p v 6 s e n d i r 玛p r 0 舒锄n l no nh o s 招a n dr o u t e rw h j c hn l nl i r n l xo p e r a t i n gs y s t e m ,s oa s t oc o m p l e t em ev a l i d a t i o no fi c 口v 6a n di t sc o 盯e l a t i v ep r o t o c o l s k e y w o r d s :i p v 6 ;i c m p v 6 ;n e i g h b o rd i s c o v e r y ;m u i t i c a s tl i s t e e rd i s c o v e r y ; a d d r e s sa u t o c o n n g u r a t i o n ;p r o t o c o lv a l i d a t i o n ,一。二一 西南交通大学硕士研究生学位论文第1 页 第一章绪论 1 1 课题的国内外研究现状 口v 6 协议最初的草案是1 9 9 5 年由c i s c o 公司的s t e v e d e c r i n 鐾和n o k i a 公 司的r d b e r th i n d e n 起草完成的( 即r f c l 8 8 3 ) 。1 9 9 8 年,m t f 对其进行了 较大改进,形成了现有的坤v 6 协议( r f c 2 4 6 0 【2 1 ) 。飘6 的其他标准也隧续 由砸t f 的相关工作组制定出来。1 c m p v 6 作为d v 6 整体中的一部分,1 9 9 5 年1 2 月i c 伸v 6 的第一个协议规范r f c l 8 8 5 出台,1 9 9 8 年,改进之后形成 了现有的i c m p v 6 协议( r f c 2 4 6 3 1 3 】) ,其它相关协议如邻居发现协议 ( r f c 2 4 6 1 1 4 】) 、p v 6 无状态地址自动配置协议( r f c 2 4 6 2 6 1 ) 、组播侦听报 文协议( r f c 2 7 1o l ”) 、逆向邻居发现协议( r f c 3 1 2 2 同) 也先后制定出来。 随着对球v 6 研究的深入,国内外越来越多的厂商开发了适于6 的软硬 件产品。硬件方面如在2 0 0 2 年1 2 月,x e l e r a t 司正式推出了业界第一款支持 脚6 的商用网络处理器,同时该公司还提供了碑v 6 相关开发工具以及代码库 软 牛,软件方面哥前支持d h 6 的操作系统包括s 斫a r i s 、u n 皿、b s d 、s l 】r i o s 、 d i g i t a l lj n 、w i n d o w s 等,路由软件有g a l c d 、m r t 、z e b r a 、c o s 、n o k i a 、 t e l e b i t 等。就v 6 中的i c m p v 6 来说,丘e e b s d 、m m l a tl i n u x 、微软w i n d o w s 2 0 0 0 及以上版本中都随、r 6 协议栈带有i c m p v 6 代码。国外的研究组织一直 没有停止对它的研究,如k a r n e 【9 l 主要从事b s d 操作系统下蹬v 6 协议的研究、 u s a g 】【】州从事h l u x 操作系统下d v 6 协议的研究;而国内目前对疋v 6 的协 议进行分析研究的只有清华大学和中国科技大学等几所大学,专门对i c 眦,v 6 协议的研究相对更少,目前只有兰州理工大学在w i n d o w s 操作系统下对其进 行了分析研究【l l j ;在l i m l x 操作系统下的研究工作目前还没有。基于以上情 况,本文将结合一系列r f c 标准文档,对i c ,v 6 相关协议进行分析,并完 成在l m u x 平台下的协议验证。 1 2 论文主要研究内容 论文研究工作如下: 对i c m p v 6 协议、邻居发现协议、 报文字段、处理规对鲍综述: 对i c m p v 6 协议、邻居发现协议、 组播侦听者发现协议的报文格式、 组播侦听者发现协议内容的介绍 西南交通大学硕士研究生学位论文第2 页 对i c m p v 6 协议、邻居发现协议、组播侦听者发现协议主要功能、工 作过程的详细分析: 编写i c m v 6 报文侦听与发现程序,为验证各协议做准备; 在“n u x 下搭建实验平台,向中国教育网疋v 6 试验床提出加入申请, 利用所获得的6 地址网段配置实验主机和路由器,通过t u n n e lb r o k 一1 2 】 以隧道方式连入6 试验床,利用i c m p v 6 报文侦听与发现程序及其它辅助 工具对i c m p v 6 相关协议的工作过程、主要功能进行验证,与r f c 文档做对 比。 1 3 论文结构安排 论文结构安排如下: 第一章绪论讲述了i c m p v 6 及其相关协议的国内外研究情况,本论文的 主要研究内容。 第二章对i c m p 、r 6 协议的报文格式、处理规则做介绍,详细分析i c m p v 6 协议的差错报文和信息报文,并对i c m p v 6 和【c m p 做比较。 第三章简要介绍邻居发现协议的内容及其报文格式,对邻居发现协议的 主要功能进行分析。 第四章简要介绍组播侦听发现协议的内容及其报文格式。对组播侦听发 现协议的工作过程作了描述。 第五章是i c m p v 6 侦听与发送程序的设计与实现部分,它们用来对 i c m p v 6 相关协议在i j n u x 下进行验证。 第六章是对i c m p v 6 相关协议的验证过程。 结束语部分对本论文的主要工作做总结,对实验结果做分析,并提出该 课题进一步研究的个人见解。 本文对协议描述时引用了一些专用术语和简称,参见附录b 。 d 一一 西南交通大学硕士研究生学位论文袅3 墓 第二章i c m p v 6 协议分析与比较 2 1i c m p v 6 简介 在网络体系的设计中球报文的发送机制并不是设计得绝对可靠。而是 遵循“尽力而为”的原则。这个原则实施的结果就是:当网络出现问题时, 可咀返回报错或反馈消息等控制信息,由信源地址重新发送或改变报文的结 构再重新发送;也不保证瑶数据报文一定正确到达;很可能一些珀数据报 文在投有任何控制信息报告的情况下丢失。在这种状况下上层协议只有使 用固有的差错控制应用程序来加以判断。i c m p 协议报文就是这样的控锦u 信 息,在原有的口v 4 结构体系中它的主要功能就是进行错误报告和网络诊断。 i c m p 协议使用婵作为底层支持,好象它是一个高层协议,而实际上它是p 的一部分,必须由其它口模块实现i ”1 ”。 随着d 由v 4 发展到6 ,作为控制信息的i c m p 不能适应口v 6 的需 要,1 9 9 8 年母r f 提出了新的c m p 协议脚v 6 ( r f c 2 4 6 3 ) 以适应p v 6 的需要。i c m p v 6 是口v 6 体系结构总体的一个组成部分,由所有口v 6 实现支 持。i c m p v 6 具备了疋v 4 中的i c m p 所有基本功能。抛弃了一些不再使用的 过时消息类型,综合了原4 中分属不同协议完成的功能,包括组播侦听发 现协议( r f c 2 7 1 0 ) 、邻居发现协议( r f c 2 4 6 1 ) 和逆向邻居发现协议 ( r f c 3 1 2 2 ) ,其中组播侦听发现协议( m l d ) 用i c m p v 6 消息取代了v 4 所用的网际组管理协议( i g m p ) ,管理组播成员资格;邻居发现协议用i c m p v 6 消息取代了所用的地址解析协议( a i 冲) ,并实现了一些新的功能;逆 向邻居发现协议用l c m p v 6 消息取代了口v 4 所用的逆向地址解析协议 ( r a r p ) 。i c 姬 x 西南交通大学硕士研究生学位论文第4 页 2 2 报文格式 i c m p v 6 报文总体上被分为两种类型:差错报文和信息报文。差错报文的 识别是通过在消息类型字段值的最高比特位中设置0 。因此,差错报文的报 文类型从o 到1 2 7 ;信息报文的类型从1 2 8 到2 5 5 。 i c m p v 6 报文的传送依赖于刀p v 6 报文的传送,也即i c m p v 6 报文是在d v 6 报文中一起传送的。每一个i c m p v 6 报文在传送时都是附加在一个口v 6 基本 报头和若干( 或没有) v 6 扩展报头之后。i c m p v 6 报头的识别是通过在它 之前并且离它最近的报头中的下一报头字段( th e a d e r 的标识来加以识别 的,i c m p v 6 在该字段中对应的值为5 8 ( 注意:这和在口v 4 中i c m p 的标识 值是不同的) 。i c m p 、,6 报文的通用格式如图2 1 所示: 图2 li c m p v 6 报文格式 类型:表示i c m p v 6 报文的类型,此字段的长度为8 位。在i c m p 、r 6 差错报文中,此字段的最高位为o 。在i c m p v 6 信息报文中,此字段的最 高位为1 。 代码:代码字段从属于类型字段,它以报文类型字段为基础,可以在 这些最基本的类型上再细分出新的类型,此字段的长度为8 位。 校验和:用于i c m p v 6 报文的校验,此字段的长度为1 6 位。当计算 校验和时,p v 6 的伪报头被加到i 呻v 6 报文之前。 报文:i c m p v 6 报文专有的数据。 已经定义的i c m p v 6 报文类型如表2 一l 所示: 2 3 报文处理规则 当一个节点接收到某个i c m p v 6 报文信息时,该节点必须根据这个 i c m p v 6 报文的消息类型进行相应的应答。 一般来说,节点对待i c m p v 6 报文信息,应遵循以下基本规范: 如果收到一个无法判别其类型的i c m p v 6 差错报文,则送到上层协议 西南交通大学硕士研究生学位论文第5 页 表2 1 i c m p v 6 报文的类型 类型字段值所对应的类型 l 目的不可达报文 2 数据包过大报文 3 超时报文 4 参数错误报文 1 2 8 回应请求报文 1 2 9 回应应答报文 1 3 0 组播侦听查询报文 1 3 1 组播侦听报告撮文 1 3 2 组播侦听已完成报文 1 3 3 路由器请求报文 1 3 4 路由器通告报文 1 3 5 邻居请求报文 1 3 6 邻居通告报文 1 3 7 重定向报文 进行处理。 如果收到一个无法判别其类型的i c m p v 6 信息报文则直接丢弃。 在不超过最小p v 6m t u 的情况下,i c m p v 6 差错报文应包含尽可能 大的引起出错的p v 6 报文。 在以上的情况中,网络层协议把i c m p v 6 差错报文传送到上层协议的 进程。原包中的上层协议字段( 在i c m p v 6 差错报文的报文体中) 被取 出,用来选择合适的上一层进程来处理错误。如果原包含有一个很大的 扩展首部,那么有可能上层协议类型并没有包含在i c m p v 6 差错报文中。 原因是为了满足最小m v 6 最大传输单元的限制,原包被切断了。在这种 情况下,丢弃差错报文。 如果接收到以下情况之一,则不允许发送i c m p v 6 差错报文: 接收到的是一个i c m p v 6 差错报文。 夺接收到的是一个发送到组播地址的数据报文。但这种情况下有两种 例外:分组过大报文,这是为了允许路径m t u 发现在v 6 组播 模式下工作;代码为2 的参数出错报文,这是为了报告一个不认 识的口v 6 选项。 夺接收到的是一个作为链路层组播的数据报文。两种例外情况在这里 也适用。 西南交通大学硕士研究生学位论文第7 页 l :与目标的通信被管理策略禁止管理上禁止与目标地址通信。 通常在数据包技防火墙丢弃时。发送该类型的报文: 2 :超出源站的地址范围目的地址不在源站地址的范围内; 3 :地址不可到达目的地址不可到达。通常在无法解析目的地址 的链路层地址时,发送该类型报文; 4 二端口不可到达耳的端口不可到达。发送该类型摄文,通常是 由于包含u 】) p 报文的m v 6 数据包到达了目的地址节点,但是却没有应 用程序侦听切) p 端口。当节点接收到i c 瑚p v 6 目的不可达报文时,必须 发送到上一层进程,移交处理。 2 4 2 数据包过大报文 当路由器收到一个超过了链路m t u 大小的口v 6 报文后,因为不自皂转发 这个口v 6 报文,于是,该路由器旋出数据报文过大的差错报文。这个报文中 的信息在发现路径m t u 的过程中使用。数据包过大报文与其它报文相比, 在处理规则上是个例外,它的发送是作为接收到m v 6 组播地址、链路层组播 地址或链路层广播地址的报文魄回应。数据包过大撮文是出路出器产生酌。 数据包过大报文格式如图2 3 所示: 类型( 8 b i t s 产2代码( 8 b i t s 户o 校验和( 1 6 b i t s ) f链路最大传送单元0 2 b f s 1 在不超过最小m ,6 f t u 的情况下,尽可能多地被丢弃的数据包的内容 图2 3 数据包过大报文的格式 其中,对于口v 6 报文而言,信源地址字段就是所发i c m p v 6 报文的接口 口v 6 地址- 信宿地址就是被丢弃酽v 6 报文信源遗址。在1 c m p v 6 的数据包过 大报文中,类型字段值为2 ,代码字段在发送方取值为o ,在接收方忽略。链 路最大传送单元内容为下一跳链路的最大传送单元。 当节点接收到i c 啪p 、,6 数据包过大报文时必须发送到上层进程,移 交处理。 2 4 3 超时报文 当一个路由器接收到一个跳数限制为0 或是它将跳数限制减去1 后变为 西南交通大学硕士研究生学位论文第b 页 。时的报文,该路由器必须丢弃这个报文,并且发送一个代码为。的i c m p v 6 超时报文给信源节点。这种情况,超时报文表明出现了一个路由环路或是初 始的跳数限制值太小。超时报文是由路由器产生的,超时报文的格式如图2 - 4 所示: 类型( 8 b b ) = 3 l代码( 8 b i t 宕产l 校验和( 1 6 b i 磷 未用( 3 2 b n s ) 在不超过最小口v 6 m t u 的情况下,尽可能多的被丢弃数据包的内容 圆2 1 4 超时报文韵格式 其中,对于p v 6 报文而言,信源地址字段就是所发i c m p v 6 报文的接口 d v 6 地址,信宿地址就是被丢弃p v 6 报文信源地址。在i c m p v 6 的超时报文 中,类型字段值为3 ,代码字段取值范围为0 和1 。未用字段的3 2 位目前还 没有使用,在信源节点发送时,该字段将被初始化为o ,在信宿节点接收时 则被忽略不计。代码字段的含义为: o :传输中超越了跳限制由路由器设置,当婵v 6 报头中的跳限制 字段减小为o 时,或者在收到的数据包的脚6 报头中的跳限制字段的值 本身就为o 时设置: 1 :片段重组超时由主机设置,当目标主机的片段重组时间耗尽 时设置。r f c 2 4 6 0 规定片段重组的时间为6 0 秒。 当节点接收到i c 但v 6 超时报文时,必须发送到上一层进程,移交处理。 2 4 4 参数错误报文 当一个瑶v 6 节点发现了弹v 6 基本报头或者其扩展报头中的某个字段有问 题,从而导致对报文的处理失败时,该节点必须丢弃这个报文,并发送一个 i c m p v 6 参数错误报文给信源地址,表明出错的位置和出错的类型。参数错 误报文是由节点产生的。参数错误报文的格式如图2 5 所示: 类型( 8 b i t s ) 卅代码( 8 b i t s ) = o 2 校验和( 1 6 b i 乜) 指针( 3 2 b i t s ) l 在不超过最小口v 6 m t u 的情况下,尽可能多的被丢弃数据包的内容 图2 ,5 参数错误报文的格式 西南交通大学硕士研究生学位论文第9 至 其中,对于d v 6 报文而言,信源地址字段就是所发i c m p v 6 报文的接口 口、,6 地址。信宿地址就是被丢弃口v 6 报文信源地址。在i c m p v 6 的参数错误 掇文中,类型字段值为1 ,代码字段取值范围为o 2 。指针字段指出了在引起 出错的报文中错误出现地方的偏移量,偏移量从p 头开始计算,比如,一个 类型为4 ,代码为l 。指针字段值为4 0 的i c 加,v 6 报文,指出了源包中跟在 邛v 6 基本报头后的扩展报头的下一报头字段有一个无法识别的值。代码字段 的含义为: 0 :遇到错误的报头字段; l :遇到无法识别的下一个报头类型: 2 :遇到无法识别的口v 6 选项 当节点接收到i c m p v 6 参数错误报文时,必须发送到上层进程,移交 处理。 2 5l 筛p v 6 信息报文 2 5 1 回应请求报文 任何一个疋v 6 节点必须能够实现i c m p v 6 回应应答的功能,即在收到 icmpv6回应请求时必须发出相应的icmp、,6回应应答。为了便于诊断,一个 节点还应该能够为发送请求消息和接收应答、消息提供应用层接口。回应请求报文的结构如图z ,6 所示: i 类型( 8 b i t s 户1 2 8代码( 8 b n s ) = o 图2 6 回应请求报文的结构其孛。对于霉v 6 撮交而言,依源地址字段就是所发i c m p v 6 报文的接口 p v 6 地址,信宿地址字段可以为任何刀时6 地址。在i c m p v 6 的回应请求报文 中,类型字段的值为1 2 8 ,代码字段取值为0 。标识字段用来在回应请求报文 和回应应答报文之间建立对应关系。该字段可设置为0 。序列号字段是一个 顺序号码,也是用来在圆应请求报文和回应应答报文之间建立对应关系,与 标识字段类似。该字段可设置为o 。 西南交通大学硕士研究生学位论文第10 _ 页 回应请求报文可以被送到接收i c m p v 6 报文的进程。 2 5 ,2 回应应答报文 任何一个p v 6 节点必须能够实现i c m p v 6 回应应答的功能,即在收到 i c m p v 6 回应请求时必须发出相应的i c m p v 6 圆应应答。为了便于诊断,一个 节点还应该能够为发送请求消息和接收应答消息提供应用层接口。回应请求 报文的结构如图2 7 所示: 类型( 8 b b ) = 1 2 9l代码( 8 b 恼产。校验和( 1 6 b i t s ) 标识序列号 可选数据 图2 - 7 回应请求报文的结构 其中,对于p v 6 报文而言,信源地址字段就是所发i c m p 、,6 报文的接口 邛v 6 她址,信宿地址字段就是对应的回应请求报文的信源口v 6 地址。对一个 单播地址的回应请求报文应答时,回应应答报文的信源地址必须和囡应请求 报文的信宿地址相同。对一个组播地址的回应请求报文应答时,回应应答报 文的源地址必须是一个属于接收到组播回应请求报文接口的单播地址。在 i c m p v 6 的回应应答报文中,类型字段的值为1 2 9 ,代码字段取值为0 。标识 字段与所对应回应请求报文字段的数值保持一致,用来在回应请求报文和回 应应答报文之间建立对应关系。序列号字段与所对应回应请求报文相同字段 的数值保持一致,也是用来在回应请求报文和回应应答报文之间建立对应关 系的。 匿i 应应答报文必须被迭到发送回应请求报文的进程。它也有可能被送到 没有发送回应请求报文的其它进程。 类型值为1 3 0 1 3 2 的i c m p h v 6 报文将在4 2 节介绍。 类型值为1 3 3 一1 3 7 的i c m p v 6 报文将在3 2 节介绍。 2 6 lc m p v 6 与lc m p 的比较 i c m p v 6 合并了珏4 中多个协议的功能,包括i c m p ( h t e m e t 控制报文 协议版本4 ) 、i g m p ( h l t e r i l e t 组成员协议) 、j 蟠蹬( 地址解析协议) 、r a r p 西南交通大学硕士研究生学位论文第11 夏 ( 逆向地址解析协议) ;它自身主要由i c m p v 6 ( m t e m e t 控制报文协议版本 6 ) 、n d p ( 邻居发现协议) 、m l d ( 组播侦听发现协议) 等构成。 在d v 4 中,口v 4 报头的协议字段用1 表示口数据报的数据区是1 c m p 消息数据;在疋v 6 中,p v 6 基本报头把协议字段改为下一个报头字段,并且 用5 8 表示其后的数据区是i c m p v 6 消息数据。 【c m p 报文分为差错报文和信息报文,i c 鲫p v 6 也分为差错报文租信息掇 文,但1 c m p 差错报文中的源站抑制报文在i c m p v 6 中被取消了;i c m p 信息 报文中的时间戳请求和答复报文、地址掩码请求和答复报文在i c m p v 6 中也 被取消了;重定向报文在i c m p 中属于差错报文,在i c m p v 6 中被归入了信 息报文,并对其报文格式进行了修改瓤扩充;在! c 盘v 5 孛,增如了数据包 过大差错报文。 在d v 4 中,p 地址和物理地址之间的映射关系是用灿冲协议来解决的, a r p 运行在数据链路层,对不同的链路层定义不同的_ 埘协议:而在6 中,口地址和物理地蛙之阊游映射关系是厣n d p 协议中的邻居请求和邻居通 告实现的,n d p 运行在网络层,n d p 取代了触强,不用为每种链路层协议 定义一种a 】强。口“是基于链路层的广播机制,占用大量的带宽,并会引起 “广播风暴”;而口v 6 是基于口层的组播机制,减少了受到地址解析所发 送的包影响的节点数雌“ ”。 在m v 4 中,由i g 砌p 协议实现坤v 4 的组播管理;而在肌6 中,由于组 播功能是作为m v 6 的必选功能出现的,所以就没有单独的i g m p 协议,它由 属于i c m p v 6 的m l d 协议来实现。 i c m p v 6 增加了主机无状态地址自动配置功能,不再需要人工去配置口v 6 地址,实现了“即插即用”。而在婵v 4 中并无此功能。 查塑窒逦盔堂塑研究生学位论文第16 页 它的值为重定向报文的目的地址字段的值:目的地址字段的值为触发路由器 发送重定向报文的数据包的信宿地址;选项字段见3 2 7 小节。 3 2 6 各种选项 邻居发现协议的各种报文可以分别包含几个不同选项,其中的一些选项 可以在个报文中多次出现。邻居发现协议的选项采用类型一长度值( t l v ) 格式,其格式如图3 6 所示,8 位的类型字段表示邻居发现选项的类型,8 位 的长度字段表示整个选项的长度,即8 字节块的数目。在r f c 2 4 6 l 中定义的 邻居发现选项包括源链路层地址选项、目标链路层地址选项、前缀信息选项、 重定向报头选项、m t u 选项,以下将作简要介绍。 l 旦! 竺型 1 翌鲤鲤塑型! ! 1 r 一 图3 6 邻居发现选项格式 源链路层地址选项表示邻居发现报文的发送方的链路层地址,它用于邻 居请求、路由器请求和路由器通告报文。当源地址是未指定地址( :) 时,邻居 发现报文不使用源链路层地址。源链路层地址选项的格式如图3 7 所示:对 于以李旦二! 塑旦! 垦罂空坚竺垫竺:望芈兰垦篁垫l l 坚坚坐! l ;塑! 塑! 塑 l兰些 图3 - 7 源链路层地址选项格式 目标链路层地址选项表示6 数据包应发送到的邻节点的链路层地址。 它用于邻居通告和重定向报文,格式如图3 8 所示,对于以太网,v a h ”字段 为以太网m a c 地址,l e l l g l l l 字段值为l 。 r 1 一 l 型些堕三l兰竺堂堂堂 些 一 要壹窑夔奎堂塑圭塑塞圭堂焦迨塞蔓! ! 卫 重定向报头选项用于重定向报文中,它可以包含全部或部分的重定向 口v 6 数据包,但应保证整个重定向报文的长度不超过1 2 8 0 字节,格式如图 3 1 0 所示: 图3 1 0 重定向报头选项格式 m t u 选项用于路由器通告报文,它要确保同一链路上的所有节点使用相 同的删值,如果链路的m v 6 m 1 u 不是常见的,或者由于转换配置或混合 介质桥接配置的原因而需要进行设置时,就会使用该选项。m n j 选项的格式 如图3 1 l 所示: 图3 “ 盯u 选项格式 3 2 7 各邻居发现报文中可能包含的选项 表3 1 邻居发现报文和可能包含的选项 邻居发现报文可能包舍在报文中的选项 路由器请求掇文源链路层地址选项 路由器通告报文 源链路层地址选项、前缀信息选项、m n j 选项 邻居请求报文源链路层地址选项 邻居通告报文 目标链路层地址选项 重定向撮文重定向报头选项、目标链路层地址选项 3 3 邻居发现过程的分析 3 3 1 数据结构 主机和某些路由器在与邻居节点发生联系时,需要维护一些数据结构 西南交通大学硕士研究生学位论文第1b 匝 主机一般情况需要维护以下的数据结构: 邻居高速缓存表:个近来进行过通信的邻居的表。袁中存储了链路上 邻居的单播p 地址、链路层地址、路由器标志、等待解析地址的报文的队列 指针、邻居的可达状态、下一次发起邻居不可达检测的时间等:其中邻居的 可达状态有五个状态:未完成、可达、失效、延迟、探测,且由邻居不可达 检测算法维护。 目的高速缓存表:存储的是最近有信息发送到的目的的下一跳地址。在 目的高速缓存表中的每一项都含有目的碑地址( 本地或远程) 、先前解析的 下跳球地址和目的的路径m 1 1 j 。 前缀列表:包含了链路上的裁缀。在蓠缀列裹的每一项中都定义了可以 直接到达的目的( 即邻居) 的一个口地址范围。该列表根据路由器在路由器 通告报文中所通告的前缀来添加表项。 默认路由器列表:包含了与链路上的路由器相对应的口地址,这些路由 器或者是发送了路由器通告报文的路由器,或者是有资格用作颓认路由器的 那些路由器。 对2 4 6 l 中定义了这些数据结构,但在m 晒实现时,并不需要去创建这 些精确的数据结构,只要主机的外部行为与r f c 2 4 6 1 中的定义一致就行。 3 3 2 路由器发现 主机通过路由器发现过程来尝试发现本地链路上的路出器的设置,它可 以使主机获得如下信息:是否把收到的路由器通告中的路由器设置成默认路 由器、m v 6 报头中的跳限字段的默认值、确定节点是否应该为地址和其它配 置参数使用有状态地址配置协议、用于邻居不可达检测的可到达时间和重发 定时器、本地链路鲍搬u 、要加入路由表的特殊路由、为链路所定义的网络 前缀的列表。 母、,6 的路由器发现过程如下所示【1 3 】: p v 6 路由器在本缝链路上周期往地发送路由器通告报文。以通告它们自 己的存在。它们也提供默认跳限制、m t u 、前缀和路由等参数。 在本地链路上的活动矾6 主机接收路由器通告报文,并使用这些报文的 内容来维护默认路由器列表和前缀列表、自动配置地址、添加路由和配置其 它参数。 正在启动的主机会向链路本地范围所有路由器组播地址( f f 0 2 :2 1 发送路 西南交通大学硕士研究生学位论文第19 页 由器请求报文。如果正在启动的主机已经配置了单播地址,则在主机发送的 路由器请求报文中会以此单播地址为源地址。否则,路由器请求报文中的源 地址为未指定地址( :) 。当接收到路由器请求报文后,本地链路上的所有路由 器都会向发送路由器请求报文的主机的单播地址( 如果路由器请求报文中的 源地址是单播地址) 发送路由器通告报文,或者向链路本地范围所有节点组 播地址( f f 0 2 :1 ) ( 如果路由嚣请求报文中的源地址为未指定地址) 发送路由器 通告报文。主机接收路由器通告报文,并用它们的内容来建立默认路由器列 表、前缀列表和设置其它的配置参数。在放弃路由器发现之前,主机可以多 次发送路由器请求报文进行尝试。 路由器发现过程中使用了路由器请求报文和路由器通告报文,在主机和 路由器上接收时要先对其进行确认,凡不符合确认条件的都将被丢弃,不予 处理。 路由器请求报文的确认条件: m 报文的跳限字段必须是2 5 5 ; 当报文携带有球认证扩展报头时,必须认证正确; i c m p v 6 校验和正确; i c m p v 6 代码字段为o ; i c m p v 6 的长度必须大于或者等于8 个字节; 报文中所有的选项长度必须是大于o 的; 坤信源地址如果未指定,报文中将没有源链路层地址选项; 所有的主机将丢弃路由器请求报文。未用字段和不认识的选项都应忽略, 在将来的向下兼容协议中有可能用到这些字段或是增加新的选项,现在路由 器请求报文中的有效选项是源链路层地址选项。通过以上检查的路由器请求, 称之为“有效的请求”。 路由器通告报文的确认条件; 脾报文的信源地址必须是一个链路本地址; p 报文的跳限字段必须是2 5 5 ; 当理报文携带有口认证扩展报头时,必须认证正确: i c m p v 6 校验和正确: i c m p v 6 代码字段为0 : i c m p v 6 的长度必须大于或者等于8 个字节: 报文中所有的选项长度必须是大于o 的; 未用字段和不认识的选项都应忽略,在将来的向下兼容协议中有可能用 西南交通大学硕士研究生学位论文第2 0 亟 到这些字段或是增加新的选项,现在路由器通告报文中的有效选项是源链路 层地址选项、前缀信息选项和m t u 选项。通过以上检查的路由器通告,称 之为“有效的通告”。 3 3 3 地址解析 口v 6 节点的地址解析过程是通过邻居请求报文和邻居通告报文的交互, 来解析给定目标的链路上下一跳地址的链路层地址。发送主机在适当的接口 上发送组播邻居请求报文,邻居请求报文的组播地址是从目标坤地址得到的 请求节点组播地址。邻居请求报文中包含了发送主机的源链路层地址。当目 标主机收到邻居请求报文后,会根据邻居请求报文中的源地址和源链路层地 址选项中的链路层地址,来更新它自已的邻居高速缓存表。接着,目标节点 向邻居请求报文的发送方发送一个单播邻居通告报文。邻居通告报文中包含 目标链路层地址选项。当新收到来自目标节点的邻居通告报文后,发送主机 会根据目标链路层地址选项中的信息,创建一个关于目标节点的新表项,以 更新它的邻居高速缓存表。这时,在发送主机和目标之间就可以进行通信了。 地址解析过程中使用了邻居请求报文和邻居通告报文,在主机秽路由器 上接收时要先对其进行确认,凡不符合确认条件的都将被丢弃,不予处理。 同时这些条件在邻居不可达检测( 3 3 4 小节) 和重复地址检测( 3 3 5 小节) 过程 中也同样适用。 邻居请求报文的确认条件: d 报文的跳限字段必须是2 5 5 ; 当口报文携带有疋认证扩展报头时,必须认证正确: i c m p v 6 校验和正确; i c m p v 6 代码字段为0 ; i c m p v 6 的长度必须大于或者等于2 4 个字节; 报文中的目标地址字段不能是组播地址; 报文中所有的选项长度必须是大于o 的: d 信源地址如果未指定,则信宿地址是一个请求节点组播 地址,且报文中没有源链路层地址选项。 未用字段和不认识的选项都应忽略,在将来的向下兼容协议中有可能用 到这些字段或是增加新的选项,现在邻居请求报文中的有效选项是源链路层 地址选项。通过以上检查的邻居请求,称之为“有效的请求”。 邻居通告报文的确认条件: 西南交通大学硕士研究生学位论文第2 1 页 p 报文的跳限字段必须是2 5 5 ; 当d 报文携带有讲认证扩展报头时,必须认证正确: l q 佃v 6 校验和正确; i c m p v 6 代码字段为o : i c m p 、r 6 的长度必须大于或者等于2 4 个字节; 报文中的目标地址字段不能是组援地址: 信宿地址如果是组播地址,报文中的请求标志为o : 报文中所有的选项长度必须是大于o 的。 末用字段和不认识的选项都应忽略,在将来的向下兼容协议中有可能用 至q 这些字段或是增加新的选项,现在邻居通告报文中的有效选顼是目标链路 层地址选项。通过以上检查的邻居通告,称之为“有效的通告”。 3 3 、4 邻居不可达检测 如果确认了发送给相邻节点的口v 6 数据包已被邻居接收并处理,那么邻 居就是可以到达的。验证邻居的可达性,并不表示也必然验证了从发送节点 到目标节点的端到端的可达性。因为相邻节点并不一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44851.14-2025道路车辆液化天然气(LNG)燃气系统部件第14部分:压差式液位计
- GB/T 21794-2025化学品体外哺乳动物细胞染色体畸变试验方法
- GB/T 46076-2025自动真空贴体包装机通用技术要求
- GB/T 46122.11-2025烟花爆竹特定化学物质检测方法第11部分:磷含量的测定电感耦合等离子体原子发射光谱法(ICP-OES)
- 应急安全培训中心附近宾馆课件
- 应急处理安全知识培训课件
- 2025年自考专业(工商企业管理)题库检测试题打印及1套参考答案详解
- 做销售工作计划和目标
- 2024-2025学年度医师定期考核检测卷及答案详解【名师系列】
- 2025年建筑工地安全管理信息化技术规范解读报告001
- 土石方运输居间合同范本土石方运输居间合同格式-仅供参考8篇
- 2025-2026学年人教版(PEP)三年级上册英语教学计划(三篇)
- 室外消火栓埋地施工方案
- 电源老化知识培训课件
- 施工质量月课件
- 2025年辅警笔试考试题库题库与答案
- 心血管疾病患者血糖波动管理的专家共识解读 8
- 人工智能技术及应用 第2版 课件全套 程显毅 第1-7章 人工智能时代 -人工智能应用
- 四川佰思格新材料科技有限公司钠离子电池硬碳负极材料生产项目环评报告
- WST854-2025血液透析中心医院感染预防与控制标准解读
- 2025年四川省综合评标专家库评标专家考试(第二阶段·住建类实务)历年参考题库含答案详解(5套)
评论
0/150
提交评论