




已阅读5页,还剩57页未读, 继续免费阅读
(计算机应用技术专业论文)路由模拟环境下的ospf协议行为研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
s 3 2 6 l g 路由模拟环境下的o s p f 协议行为研究 计算机应用专业 研究生犟文浩指导教师卢苇教授 路由器是 n t e r n e t 的灵魂,而路由器的f 常运作又取决于内茕路由协议的 稳定运行。但是到t - t i j i 为止,斟内同行的研究重点集中在对路由协议内部操作 的研究或者是独立路由实体的个体行为研究“7 “t 4 9 1 还没有对常用的o s p f 路由协议在大型网络之中的“群体”行为进行深入仔细的研究,国外同行的研 究也处于起步阶段t 4 0 l 。i n t e m e t 规模的迅速扩大提高了路由环境的复杂性,设 计部署大型路由网络需要对网络设计架构有深刻的认识。能够预计到局部网络 参数的改变对整体环境的影响。与此同时,层次同趋多样化的网络互联结构要 求有高效稳定的路由协议加以支持。应用和丌发层面都需要有一种路由环境模 拟机制为我们的工作提供经济有效的实验环境。 我们殴计和建设了这样一个实验性路由测试环境以可伸缩模拟架构s s a ( s c a l a b l es i m u l a t i o na r c h i t e c t u r e ) 为基础对实现这个架构所需要的四个主 要部分一一进行了分析,提出了如何将已育的o s p f 实现方案以可簧换模块的 形式嵌入到模拟架构中去的分层实现方法。该架构能够方便快捷地创建各种目 标网络拓扑,在这样的环境下就能够自由地创建多种多样的网络拓扑结构,对 o s p f 路出协议的动念和分布式特性进行研究。 在实验结果的分析过程中,我们根据当f i i 流行的网络拓扑建立了模拟路由 试验环境。特别针对l s a 的突发性、周期性和同步流量的时域特征进行了观 察,不仅探究了三种重要l s a 流量的发生机理以及这些流量的变化对整体路 由效率的影响,比对了我们的预测与最终的实验结果深入研究了统计图表里 各种异常情况的成因和路由协议采用不同算法和策略以后对整体路由环境的 影响。更重要的是为l s a 数据单元流量测试的研究工作确定了规范化的测试 集合和方法,避免了测试过程的随意性。是对l s a 协议数据单元流量测试的 有益探索和进一步研究的基础。 关键词: 路由实体,测试集,l s a 协议单元,流量分析,突发性,周期性,同步流 置 r e s e a r c ho fo s p fb e h a v i o r u n d e r r o u t i n g s i m u l a t o r m a j o r o f c o m p u t e ra p p l i c a t i o n p o s t g r a d u a t e :q i n w e n h a o s u p e r v i s o r :p r o f l uw e i r o u t e ri st h es p i r i to fi n t e r a c t ,t h ec o r r e c to p e r a t i o no fas p e c i f i cr o u t e rc o u n t so n t h es t a b i l i t yo fb u i l t _ i nr o u t i n gp r o t o c 0 1 r e l i a b l ep e r f o r m a n c el l i n g e so nr o u t i n g s t a b i l i t y , y e t t h eb e h a v i o ro fl a r g e o p e r a t i o n a l o s p fn e t w o r k si sn o tw e l l u n d e r s t o o d “o 。4 7 。舢m u c hw o r kh a sb e e nd o n e b yr e s e a r c h e r si no u rc o u n t r y , b u t m o s to ft h e mw e r ec o n c e m e da b o u ti n t e r n a lp r o t o c o lo p e r a t i o nt e s t ,n o tr e l a t e d w i t h p r o t o c o lb e h a v i o r si nl a r g ee n t e r p r i s en e t w o r k a t t h es 甜r l et i m e t h er e s e a r c h c o n c e r n i n gr o u t i n gp r o t o c o lb e h a v i o r i ne n t e r p r i s en e t w o r ki nt h er e s to f t h ew o r l d a st h ee x p a n d i n go ft h ei n t e m e t t h ed e s i g na n dd e p l o yo f l a r g es c a l em u t i n g n e t w o r k sr e q u i r e sad e e pu n d e r s t a n d i n go fa l lt h ee f f e c t sw h i c hm a ya r i s ew h e n s o m el o c a li n c i d e n t sc o m ei n t o b e i n g m o r e a n dm o r e c o m p l i c a t e dl a y e r e d n e t w o r k sn e e dh i g he f f i c i e n ta n dj a r l e s s r o u t i n gp r o t o c o l s a st h e b a c k g r o u n d m e c h a n i s ma tb o t h d e v e l o p i n g a n d a p p l i c a t i o n l e v e l s a c c o r d i n g t ot h i s r e q u i r e m e n t w ed e v e l o p e ds u c haf l e x i b l ei n f r a s t r u c t u r et os u p p o r to u rr e s e a r c ho n d y n a m i c a n dd i s t r i b u t e d c h a r a c t e r i s t i c s ,e s p e c i a l l yt h et r a l 弧co f l s a s p o p u l a rn e t w o r ki n f r a s t r u c t u r ew h i c hw a sd e p l o y e de v e r y w h e r eh a sb e e ns e tu pa s o u rt e s tb e d w ei n v e s t i g a t ef i n e rt i m es c a l es t a t i s t i c a l p r o p e r t i e so ft h i s 仃a 伍c i n c l u d i n gb u r s t i n e s s ,p e r i o d i c i t y , a n ds y n c h r o n i z a t i o n u t i l i z i n gt h ed a t ag a t h e r e d b yo u rs i m u l a t o r , w ec o m p a r e dt h er e s u l t sw i t ho u rp r e d i c t i o n ,a f t e rt h a t ,w e m v 髓f i g a t e dt h er o o tc a u s eo f as p e c i f i cn e t w o r k i n gt m 塌cp a t t e r n u n d e rv a r i o u s n e t w o r kc o n f i g u r a t i o na n dp o l i c i e s 1 1 1 e i m p o r t a n c eo fo u rw o r ki sn o to n l y a n a l y z i n gt h ec a u s eo f e a c ht m 历cp a t t e r n b u ta l s op r o v i d i n gab e n e f i c i a lf o r m a l m e t h o df o rf u t u r er e s e a r c h k e yw o r d s : r o u t e e n t i t y , t e s ts u i t ,l s ap r o t o c o lu n i t ,t r a 衢c a n a l y s i s ,b u r s t i n e s s ,p e r i o d i c i t y , s y n c h r o n i z a t i o n i v 1 引言 1 1 动机 大型口路由网络的设计、配置、管理及路由策略的设定需要对整个目标 网络的体系结构有深刻的认识,能够在配置改变或者错误发生时凭借多年的经 验实施有效的应对措施网络设计和管理人员尤其对口路由网络中局部拓扑 和配置的改变对整体网络的效应有浓厚的兴趣。在改变菜局部链路参数后, 迅速预测新的拓扑中数据包的路径是每一个管理人员的梦想。 为了明晰在大型路由网络中各种因素所产生的联合效应,我们需要这样一 个可伸缩的模拟环境,它不仅能对中小型网络进行很好的模拟,而且同样适用 于i 常大型的网络。为了完全精确地描述路由协议的交互行为,过去我们采用 事件驱动多层建模的方案来“模拟”路由协议的“行为 4 7 1 | 4 5 | 4 9 1 。所以对协 议的模拟被局限于标准状态或者有限状态自动机的状态转换描述“1 。在我们 的环境模拟方案之中,我们决定将真实豹路由协议代码嵌入到设计豹模拟环境 之中,为每一个被模拟路由单元构建对应的路由实体,这也就意味着我们的模 拟环境能够更加接近目标网络的实际运作过程。 i n t c r n c t 由一系列自治网络构成,在这些系统之间按照事先确定的若干策 略进行通讯。这些自治同络被称之为自治系统,一般来说可以代表某个特定的 i n t e r n c t 接入服务提供商我们研究路由网络时必须明确区分域问路由和域内 路由,也就是自治域之闯的路由和自治域内部的路由。 i m e m e t 上的路由协议能够对网络拓扑的改变或者链路失效做出动态的反 应对于域问路由我们有对应的域问路由协议e g p ( e x t e r n a lg a t e w a y p r o t o e o l s - e g p ) ,对予域内路由同样有域内路由协议i g p ( 删g a t e w a y p r o t o c o l s - i g p ) 加以支持我们的模拟环境目前针对域内路由环境建设,成熟 的城内路由协议包括o s p f ,r i p ,i g r p ,e i g r p 等,都可以被我们的模拟环 境实现,其具体测试方案有多种形式,将会在以后进一步讨论。 对于o s p f 路由协议l s a 流量的测试,应当分阶段分步骤地进行,借鉴 已经趋于成熟的对路由协议进行测试的方秦,采用形式化与非形式化相结合的 3 技术思想“”,对于适于形式化的测试内容,采用形式化的方法,对于不适合 或难以采用形式化手段的内容,比如路由协议的内部处理过程,则采取灵活的 非形式化的方法t l l l t 3 t l 。在测试实践中,一方面应当充分利用现有的成果和经 验“,“9 1 “”1 ,进行改进和扩展,同时探索更适合于路由协议测试的方 法、手段乃至系统在本文中,l s a 流量特征的溺试既包含适用于大多数路 由协议的一般性时域测试”1 1 6 1 j 也包含特地针对l s a 流量周期性特征的 专门性测试。 1 2 文章结构 第二章首先介绍了路出模拟环境和可伸缩模拟架构s s a 。在这以后,展示 了这个架构包含的五个重要类,并且详细讨论了路由实体的实现方法( 包括路 由实体内部的数据流和分组流) 接着,我们详细描述了需要用到的主要数据 结构和我们的实验数据获取接口。在第三章单,给出了在这个路由模拟环境下 进行测试需要用到的测试方案和测试集合,确定了目标网络结构和目标协议单 元。接下来的第四章中对需要明晰的o s p f 重要概念原理进行了澄清,根据第 三章的要求在第五章中描述了模拟路由环境中的实验拓扑和具体步骤。最重要 的是第六章。我们依据测试集进行了试验,分析了各种试验数据并追寻了产 生这些结果的原因。最后在第七章中总结了本论文的主要工作和取得的成果。 4 2 网络模拟环境的实现 2 1 模拟环境的设计架构 2 1 1 设计架构总览 我们的目标是以马里兰大学的o s p f 实现和j o h ntm o y ( o s p f 协议标准 提出者) 的工作为基础,使用c 十+ 和t c l r k 语言鸵”在单工作站上仿真 个完整的路由网络,该路由网络上的每一个路由实体均运行被测试路由协议的 相同拷贝,当该路由网络被输入测试配置以后,不仅可以通过查看对应路由表 的有效性观察该路出网络内数掘库的一致性,还可以观察路由信息交换的过程 并截取交换过程之中发送的数掘帧。验证每个数据桢的合法性。更进一步, 要能够让测试者实时观察到网络上每一台路由器的同步状态可以随时修改各 个路由实体的配,臂。将协议交互的r 志文件写到指定输出上作为故障模式匹配 器的输入。 真实的路幽网络中,数据帧在不同i p 阐的路由器端口之问传送,端口的 l p 地址就唯一代表了路出器的端口。如何在仿真环境中映射真实环境中的这 个关系有多种解决方案| j 9 j l 3 1 1 2 7 3 如果要节约协议帧的传输和复制带来的资源 消耗,可以对协议帧采用“零拷贝”的方式进行传输和复制,也就是在各个路 由实体之白j 交换协议帧的引用,而不是复制协议帧。节约序列化( s e r i a l i z e ) 带来的资源消耗。但是这样做的话必须精心构造协议帧所属类的拷贝构造函数 ( c o p yc o n s t r u c t o r ) ,以避免意想不到的麻烦。另一种解决方案也是本文采用 的方案,每一个路由实体完全独立存在各个路由实体之间使用套接字 ( s 0 c k e t ) 进行通讯,将路由表中的l p 目的地址映射到端口号,使用端口地 址标识路由器的端口。这就需要每个路由实体在完成正常的路由表生成和查找 以外还要维护一张目标l p 地址和本机端口号的映射表虽然该操作加重了每 一个路由实体的计算负荷,但正是由于采用了这种方式。每个路由实体的运作 过程可以基本达到与真实环境别无二致,多的仅仅是一次i p 地址和端口号的 映射我们将这次映射从路幽实体中剥离出来形成一个单独的层,这样,这个 5 单独剥离出来的层次就使路由实体的运作和模拟环境的具体实现无关了,既减 小了对待测路由协议的代码修改量,更使我们的模拟最大限度地接近了真实的 路由环境。见图2 1 。 圈2 1 :路由实体层和端口映射层的层次结构 路由模拟环境由固定主控模块c 和动态生成的路由实体集合s = s l , s 2 s 3 l 组成,主控模块与其生成的所有动态路由实体使用套接字进行连 接,协调各个路由实体之问的通讯,接收所有路由实体的输出并完成配置各个 路由实体的工作主控模块读取路由环境的配置文件对路由环境进行初始配 置,在各路由实体运行的过程中还可以对各实体进行实时配置。各个路由实体 之间也通过套揍字进行连接,交换包括链路状态公告弄实体状态在内的诸多协 议信息,这些连接都拥有自己的属性( 诸如延迟等影响路由选择的参数) ,也 就是说,整个模拟环境内的连接形式只有两种,路由实体之间的仿真连接以及 主控模块和其它路由实体之间的控制连接,对使用该模拟环境的用户来说路 由实体之问的仿真连接是可见的,而控制连接是非可见结构。 2 1 2 可伸删絮俺s 鼬( 妇l 曩b f s l 附i a t j 钟a r c h i t e c t u r e ) 玎1 如上所述,这样的模拟环境设计架构可以适用于包括o s p f 、r i p 和e i g r p 在内的大多数i g p 。由予路由实体层和端口映射层的分离实现对多种路由协 议的模拟时只器受更换豫由实体的实现方式即可,总体控籼机构一直保持不变 啷,以后我们将这种实现体系称之为s c a l a n es i m u l a t i o n a r c h i t e c t u r e ( s s a ) 2 7 | 。 6 s s a 的应用程序接口( s s aa p i ) 包含r o u t c e n t i t y 、a l l e v e n t 、d a m c h a n n e l 和c o n t r o l c h a n n e l 、s i m c o n t r o l 五个核心类,这五个核心类向外界隐藏了所有 模拟环境的所有内部实现细节,同时向外部提供了多种易用的接口。 1 r o u t e e n t i t y , r o u t e e m i t y 是所有类型路由实体的基类,对应多种不同路由协议的实现。 每一个r o t a e e n t i t y 的实现都是对路由节点的路由引擎的完全模拟。这些实体 根据它们之间交互得到的数据,在协议有限状态自动机的引导下自主地驱动路 由的计算,路由表的查找和更新。我们路由实体类的实现建立在马里兰大学 o s p f 协议实现版本的基础之上,根据我们的需求作出了相应的修改。 2 a l l p k t a l l p k t 是实体单元之闻以及实体单元和路由控制单元之间交换的信息单元 的基类协议数据包、控制信息包以及为了测试需要人为向路由网络注入的数 据单元都将由该基类及其派生类实现。 3 d a t a c h a n n e 2 和c o n 自r o l c h a n n c l c h a n n e l 是实体间信息传输的唯一通道,是实体蒯通信的终结点。为了实 现对真实网络的映射,我们在c h a n n e l 上设置了可调节的传输延迟。可以调节 信息单元沿着该通道传输需要的晟短时间,同时,也设定了随机产生的传输错 误,实现对路出网络的可控随机错误注入。 4 s i m c o n t r o l 最后一个基类是整个模拟环境的控制中心,是所有通讯的中央节点,所有 路由实体倒的行为都在它的掌控之中。在这罩对整个系统进行定时操作,处理 所有节点的r 恚信息,在系统初始化或者运行过程中将配置下载到指定节点。 2 2 路由实体的实现 我们从两个方面来介绍路由实体的实现,首先考察协议数据单元的流动 然后才介绍协议主要数据结构及实现,下面以o s p f 协议为例描述实现过程。 7 2 2 l 路由实体蔚数据菠 路由实体的初始化代码首先为我们创建了一个系统接口( 类 o s p f s y s c a l l s ) ,以完成o s p f 协议的基本功能,如发送协议分组,插入路由表 项目,宦n 建顶层类o s p f 以初始化o s p f 代码,最后读取o s p f 配置等等。 程序主体以循环方式不断读取接收到的o s p f 分组,跟踪记录已消耗的时 间,并不对地调用o s p f 代码的计时程序保证计时函数的正确执行, 与此同时,主循环监铡用户的重新配置请求并将其传送到o s p f 代码实现 中去。下面是o s p f 实现中路由实体的数据流示意图( 图2 2 ) “,。 i 钾她 _ 一 计时赴曩 纯代蠢量 u 倒 “? 柚絮 f c i f 、 计时卜弭一一1 基口f一帮一l 保持 。黛舸 - 。乙u u 8 擅泅薹 巴广l - 1 “ i 岫l 摩老他 ; 坟的 阐 ! 竺竺! j o s p f 耳分蛆 嘴叫 一 。u 、衙 长口 h 翻日m n _ y i s 和a s h h m 吼雷t 状骞 ,j对、 敢童 h m o 耘s 目蕈 1 奠撞 黼 l 。* lj lb 主一 麓鼍分囊lt 控应鲁l 抽睢 t 矗由秘r i 。劬附0 1y 眇蛳i t ,1 r 豳2 厶o s 阼实聂中路由实体的敷鲁漉示意蟹 8 2 2 。2 路由实体的分组流 程序主循环调用a p i 根据所收到的o s p f 分组类型对协议分组进行多路分 解( d e m u l t i p l e x ) ,将协议分组分解后产生的结果传送给o s p f 代码“。o s p f 协议机制维护着一个恩步的分布式数据库,每一对相邻路由器之间进行数据库 的同步。我们使用的所有o s p f 分组类型几乎都是为了维护相邻o s p f 路由实 体间的邻接关系,在允许时间范围内收到的h e l l o 分组会引发相邻关系的创建, 如果没有按照协议的要求收到对应的h e l l o 分组则会最终导致相邻关系的破 坏。路由实体与部分相邻实体之间形成邻接关系以后,接收到的数据库描述分 组和链路状态请求分组经历相邻路由实体有限状态自动机的一系列状态转换 过程后正式建立邻接关系,使相邻路由实体问的数据库同步化碍以保证,并可 以使用邻接关系转发分组。在类s p f n b r 中包含了与建立维护邻接关系相关的 所有状态转换及逻辑,详细,实现将在后面加以讨论。 与一个相邻路由器建立邻接关系以后,与相邻路由器之间的数据库同步就 通过可靠洪泛过程加以维护。路由器定时从每个接1 2 1 发出h e l l o 分组,至于其 它分组的发送则有两个可能的触发原因,一是当网络拓扑发生变化,路由器生 成新的l s a 时被发送,二是路由器对响应接收到的分组加以响应,这也是可 靠洪泛过程的要求。如果这些分组在传输过程中遭到破坏,o s p f 计数函数将 会触发分组的重传过程。 2 3 主要数据结构h 下面以o s p f 路由协议为例在模拟环境中豹实现为大家展示r o u t e e n t i t y 类的主要数据结构及其相互关系。由于o s p f 路由选择域的两层结构将整个路 由选择域分解成为多个区每个区独立维护自己的链路状态数据库,使用类 s p f a 表示,在s p f a r e a 类中包含了该区的所有接口列表,这些接口使用类 s p f i f e 表示o s p f 路由实体试图在每_ 个接口上和相邻路由实体建立会话, 如果能够进步与相邻路由实体建立邻接关系,就可以进行链路状态数据库的 周步我们使用类s p f n b r 描述维护数据库周步所必须的状态信息。唯一的标 识每个会话。 q 圈2 3 :路由实体类的数据结构 下面是我们r o u t e r e n t i t y 类基本实现的程序清单( 由于文章篇幅限制,该 实现中使用的o s f f 标准类型定义没有在文章中附带给出) : c l a s sr o u t e e n t i t y c o r l s tr _ t i d tm y i d ; 潞电器i d s p f l f c * i f c s ; ,接口列表 i mne x t l m p o r t s ;导入的a se x t e r n a l a v l t r e ee x t l s a s ;a se x t e r n a ll s a u n s 3 2a x s u m ; a se x t e r n a ll s a 的校验和 a v l n a s b r t r :a s b r 的a v l 树 a s b r r t e * a s b r s ;以单向链表形式构建的a s b r 路由表项目 a v l t r e e p h y i n t s ; ,物理接口 s p f a r e a * a r e a s ; 区列表 i n tn _ a r e a ; 已知区域数量 u n s l 6o s p f _ m t a ;办所有接口的最大i p 数据报 ; 1 0 0 sp _ f 路由器i d 号在r o u t e e n t i t y :m y i d 中存储逶过r o u t e e n t i t y :a n y _ i d o 访问。o s p f 路由器l d 号被作为参数传递给r o u t e e n t i t y 的构造函数如果需 要改变路由实体的i d 必须首先调用路由实体的关闭过程,然届构造新的 r o u t e e n t i t y 重新构造新的黯由实体重新读取配置数据才能达到改变路由器 i d 号的目的, r o u t e e m i t y :i f c s 是路由器的o s p f 接口列表。每一个接口都是到某一i p 子网的连接每个接1 2 1 使用m t u 代表不需分段( f r a g m e n t a t i o n ) 就能发送出去的 最大分组,使用r o u t e e n t i t y :o s p f _ m t u 存贮。由于每一物理子网可以拥有多个 i p 子网,使用类p h y i n t 表示每一个与物理予网的连接。 r o u t e e n t i t y :e x t l s a s 是a se x t e r n a ll s a 的数据库,这些a se x t e r n a ll s a 的l s 校验和字段的总和存储在r o u l e e n t i t y :a s e _ x s u m 中该值可以由o s p f m i b 变量o s p f e x t c m a l s a c k s u m s u m 报告。a se x t e r n a ll s a 由a s b r ( a s b o u n d a r yr o u t e r ) 产生,我们将至q 达每个a s b r 的路径保存在a s b r r t e 中, 在将这些类添加到a v l 树r o u t e e n t i t y :a s b r t r e e 中的同时也将它们放入链表 r o u t e e n t i t y :a s b r s 中。 大部分o s p f 路出机制包括洪泛、s p f 计算都是建立在区( a r e a ) 的基 础上,描述o s p f 区机制的s p f a r e a 类的主要项目陈列如下: c l a s ss p f a r e a c o n 筑a i d :a i d ; a v l t r c cr t r l s a s ; a v l t 疆en e t l s a s ; 区i d 号 r o u t e r - l s a l n e t w o f k l s a a v l t r e es u m m l s a s ;s u m m a r y - l s a a v l t r c ea s b r l s a s ;l l 瑟b r - s u m m a r y - l s a a v l t r e 虻g r p l s a s ;g r o u p - m e m b e r s h i p - l s a u n s 3 2d b _ 秘岫; ,数据库校验和 s p f l f c * a _ i f c s ; 辐关接口射表 i n tl l v l s ; 穿过该区的虚链路 b o o lat r a n s i t ; 是中继区与否 a v l t r e ea b r _ _ t b l ;,为区边界路亩器建立的r t r a e 二叉辩 p u b l i c : b o o ta _ _ s t u b ,s t u b 选项 a v l t r e e r a n g e s ; 区地址聚合 i n tn _ a c t i v ei f :,活动接口的数量 u n s l 6 am r i ; 所有接口的最大i p 数据包 i n l i n eb o o li s _ s t u b o ; i n l i n eb o o li st r a n s i t o ; i n l i n ea i d ti d o ; r - t t e a d da b r ( u n s 3 2r t r i d ) ; v o i dr e m o v e l f c ( s p f l f c ) ; v 0 i d f c c h a n g e ( i n ti n c r e m e n t ) ; ) : s p f a r e a :ai d 是区的o s p f 区域i d 号。该i d 在类构造函数中设置,并通 过g p f a r e a :i d 0 访问。 链路状念数据库被保存在类s p f a r e a 中并按照各个不同的链路状态类型 组织成独立的二叉树:区域的r o u t e r - l s a 对应s p f a r e a :r t r l g a s ;n e t w o r kl s a 对应s p f a r e a :n e t l s a s :s u m m a r yl s a 对应s p f a r e a :s u m m l s a s ;a s b r s u m m a r yl s a 对应s p f a r e a :a s b r l s a s :g r o u pm e m b e r s h i pl s a 对应 s p f a r e a :g r p l s a s 所有l s a 昀l s 校验穰字段的总和保存在s p f a r e a :d b _ x s u r a 中,该值等价于o s p fm i b 的o s p f a r e a l s a c k s u m s u m 。 路由器与各区域相连的接口链表保存在s p f a r e a :a _ _ i f c s 中。活跃接口数量 保存在s p f a r e a :n a c t i v e _ i f 中当且仅当s p f a r e a :na c t i v el i b 0 时,才认为该 区域是活跃的通过谓甩s p f a r e a :i f c c h a n g e 0 j l 知送域某一接口状态的改变 从一个区中删除接口调用s p f a r e a :r e m o v e l f e ( ) 。 一个区域承抠的逶信业务流如果既不是始于该区,也不是中止予该区域, 我们就将该区域称为中继区域( t r a n s i t a r e a ) 。o s p f 主干区( b a c k b o n e a r e a ) 总是中继区域;对于非主干区域来说,当且仅当一个或者更多的路由器已经穿 1 2 过该区并建立起了虚链鼹。承担穿越该区域流量时才可以成为中继区域区域 的中继状态保存在s p f a r e a :a _ t r a m i t 中,通过s p f a r e a :_ i s t r a n s i t 0 读取如果 路由器本身就是虚链路的终点,就将s p 8 :n ,s 的值加一- 存根区域( s t u b a r e a ) 不会承担中继通讯,我们将一个区是否为存根区域 的标客保存在s p f a r e a :a _ s t u b 中,由s p f a r v a :i ss m b o 读取状态。为了在路由 选择计算期何处理s u m l l l a t yl s a ,并确定虚链路另一端的可达性,o s p f 路由 器会追踪每一个区域边界路由器的代价我们将区域边界路由器使用类 r t r r t e 描述,将这些路由器的集合保存在二叉树s p f a r e a :a b r _ t b l 中。使用 s p f a r e a :a d d _ a b r 0 莆l l 印a r 豫:f i n d a b i o 向二叉树中添加和查找边冕路由器- 为了达到聚合( a g g r e g a t e ) 路由选择信息的目的,使用类r a n g e 的实例表 示每一个已配置的聚合路由信息,同时将这些类的聚合保存在s p f a r e a :r a n g e s 中。 为了确定能够同时在一个区域的所有接口上处理的最大分组大小,所有区 接口的m t u 保存在s p f a r e a :am t i i 中。 我们使用s p f l f c 作为各种不同类型的o s p f 接e l 的虚基类,各种接口类的 层次如下图: 豳2 。4 t 矮口癸的暮次( 仅仅作为基粪的赛使用阴影衰示) 类s p f l f c 的基本项目如下: c l a s ss p f l f c t p r o t e c t e d : 作) 可配置参数 i n m a s ki f _ m a s k ; u n s l 6r a m ; i n ti fi f l n d e x ; s p f a r c a + i f _ a r e a ; c r y t k + j r k e y s ; i n a d d r i f _ n e t ; ,动态配簧参数 i n ti f s t a t c ; f s m 行为程序 ,接口地址掩码 健大m t u ,为m i b i i 的l f l n d e x 实现保留 棚连o s p f 区 密码密钥 ,最终网络数 ,当前接口状态 v i r t u a lv o i di f a _ s t a r t o = o ; p u b l i c : ,可配置参数 i n a d d ri f _ a d d r ; 接口的i p 地址 i mi f _ p h y i m ; ,物理接口 s p f n b r + i f _ n l s t ;相连接的相邻路由器列表 i n ti f _ n n b r s ; ,相邻路由器数量 i n ti f n f u l l ; 完全邻接的相邻路由器数量 s p f l f c ( 1 n a d d ra d d ni n tp h y i n t ) ;构造函数 虞函数( 由于各种接口类型不同。这就要求使用虚函数实现多态操 _ s p f l f c :i f a d d r 保存了接口的i p 地址,未编号接口( i pu n n u m b e r e d ) 地址为0 0 0 0 。 4 s p f l f c :i f 保存地址掩码,通过 取。_masks p f l f c :m a s k o n s p f l f c :i f存放了相应物理接口的i d 号。 指定给接_ p 口h 的y i n t m i b i li f l n d e x 值保存在s p f l f c :i f _ _ i f l n d e x 中。该参数用 来标识未编号的接口。 接1 2 1 附属的o s p f 区域指针存放在s p f l f c :i f a r e a 中,通过s p f l f c :a r e a o 读耿。 在接口上运行o s p f 密码验证时,s p f l f c :i fk e y s 保留接口所有活动的 m d 5 密码列表,每一个密码都由类c r y t k 描述。 i p 数据报的最大尺寸保存于s p f l f c :m t u 中。 构成相邻关系的o s p f 路由器与其相邻的路由器交换o s p f 协议信息,这 种形式的状态称为相邻关系,由s p f n b r 类加以描述,它的基本项目如下: c l a s ss p t n b r i n a d d rn _ a d d r ; 相邻路由器的i p 地址 r t i at ai d ;相邻路出器i d i n tn _ i n d e x ; 计时器偏移量 i n t ns t a l e ; t m s 3 2m d 5 _ s e q n o ; ,当前相邻狄念 ,密码验证序列号 p r o t e c t e d : s p f l f c i | _ _ j 币;檑邻o s p f 所连接的接口指针 p u b l i c : s p f n 讯s p t a f c + 。r t i d ti d ,i n a d d ra d d r ) ; v i r t u a l s # n b r o ; i n l i n es p f l f c i f c o ; i n i n ei n ts t a t e ( ) ; i n l i n ei n a d d ra d d r o ; i n l i t a ca i d _ ti d o ; v i r t u a lb o o lc o n f i g u r e d ( ) ; v i r t u a lb o o id r _ e l i g i b l e ( ) ; ; 一相邻路出器的i p 地址保存在s p f n b r :n a d d r 中,其o s p fi d 号保存在 s p f n b r :n _ i d 中。这两个参数分别由s p f n b r :m d r 0 和s p t n b r :i d ( ) i 函数 读取。 一在给s p f n b r 分配内存时,同时给它指定一个索引值并将该索引值保 存于s p f n b r :n i n d e x 中,该索引值给我们表明了该路由器被分配内存 的先后顺序。 _ 相邻路出器的状态保存在s p f n b r :n _ s t a t e 中使用s p f n b r :s t a t e o 读取, 该状,奈表示路由器是否应该和相邻路由器建立邻接关系,如果邻接关 系已经建立。则代表邻接关系所处的状态。 - 在某一接口上使用o s p f 验证时,使用s p f n b r :m d 5 一s e q n o 保护路由器 的验证过程不会遭受与诸如中间人攻击类似的数据劫持。 一s p f n b r :n _ i f p 晕面保存了与相邻路由器相连的接1 2 指针,使用 s p f n b r :i f c 0 读取。 、 在非广播性同络中。由于缺乏动态发现相邻路由器的广播机制,需要 配置静念的的相邻路由器i d 号,于是需要从s p f n b r 中派生出一个新类 s t a t i c n b r ,并定义如下: c l a s ss t a t i c n b r :p u b l i cs p f n b r ( b o o l d re l i g i b l e ; b o o la c t i v e ; p u b l i c : i n l i n es t a t i e n b r ( s p n f e + ,i n a d d r ) ; v i r t u a lb o o lc o n f i g u r e d ( ) ; v i r t u a lb o o ld r _ e l i g i b l e ( ) ; v i r t u a lv o i dc l e a r _ c o n f i g o ; 1 6 ; 一s p 俄b r :c o n f i g u r e d ( ) 对于使用静态配置的路由器返回t r u e ,其它情况返 回f a l s e 。 一s p f n b r :d r i i g i b i e ( ) 表示相邻路由器是否有资格成为指定路由器( d r ) 或者备份指定路出器( b d r ) 。对于静态配置的路由器而言,由程序 根据配置文件加以指定,对于动态配置的路由器而言通过测试从相邻 路由器接受到的h e l l o 分组中d r 优先权标志位的状态获取。 a l l p k t 是实体单元之间以及实体单元和路由控制单元之间交换的信息单元 的基类,协议数据包、控制信息包以及为了测试需要人为向路由网络注入的数 据单元都将出该基类及其派生类实现。 a l l p k t 基类的基本结构在其o s p f 实现中是这样的: c l a s sa l i p k t i n p k t + i p h d r ; i n tp h y i n t ; b o o ll l m u l t ; b o o lh o l d ; to o lx s u m m e d ; s p f p k t s p f p k t ; i n tb s i z e ; u n s l 6b o d y _ x s u m ; a l l p k t o ; a l i p k t ( i n tp h y , i n p k t + i n p k t ) ; b o o lp a r t i a l _ c h e c k s u m o ; ) ; 该信息单元的实例在o s p f 实现中描述了一个正在被处理的协议分组,这 个分组既可能是在某一接口上收到的,也可能是正在创建并准备发送到某一个 接口上的。 一a l l p k t :i p h d r 指向分组的i p 首部,a i p k t :s p f p k t 为o s p f 分组首部, a l l p k t 矗s i z e 为系统为分组在i p 首部后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第十一课 多姿多彩的“我”说课稿-2025-2026学年小学心理健康人教版二年级上册-人教版
- 化肥厂原料验收登记制度
- 2025电子产品代理的销售合同书
- 江苏大学出版社《应用写作》说课稿-2023-2024学年中职中职专业课职业素养公共课程
- 建材买卖合同(卫浴洁具类)
- 教科版高中信息技术教案+教学设计
- 军训个人体会心得
- 2025年山西人民警察招聘考试申论题库含答案详解
- 2025年监理工程考试合同管理真题及答案
- 商场租赁合同范本及租赁保证金缴纳及退还流程
- 医院环境卫生学监测和院感控制课件
- YBT 165-2018 铝镁碳砖和镁铝碳砖
- 2024年惠州市国资本投资集团限公司招聘29人(高频重点提升专题训练)共500题附带答案详解
- IVSS智能视频监控一体机使用手册
- YYT 1898-2024 血管内导管导丝 亲水性涂层牢固度试验方法
- GB/T 29319-2024光伏发电系统接入配电网技术规定
- 水电厂检修管理工作手册
- 2023年11月成都市龙泉驿区天鹅湖小学招聘笔试历年高频考点难、易错点荟萃附答案带详解
- 飞行员日常保健知识讲座
- 规划核实测绘标书
- 骨科皮牵引压疮发生原因分析鱼骨图对策拟定
评论
0/150
提交评论