网站建设能挣钱吗,wordpress全部文件夹,全国小学网站建设,做机械产品用什么网站获取pdf#xff1a;密码7281专栏目录首页#xff1a;【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一#xff1a;OSPF概述#xff08;1#xff09;概述#xff08;2#xff09;细节阐述A#xff1a;链路状态和代价B#xff1a;问候分组和邻居表C#xff…获取pdf密码7281专栏目录首页【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一OSPF概述1概述2细节阐述A链路状态和代价B问候分组和邻居表C链路状态通告LSAD链路状态数据库LSDBE最短路径优先SPF3五种分组类型二OSPF基本工作过程三其他问题1多点接入网络中存在的大量多播分组2区域本节对应视频如下 【计算机网络微课堂有字幕无背景音乐版】开放最短路径优先OSPF的基本工作原理 一OSPF概述
1概述
开放最短路径优先OSPF是为了克服RIP的缺点在1989年提出来的协议
开放 是指OSPF协议不受某一家厂商控制而是公开发表的最短路径优先 是指使用了Dijkstra所提出的最短路径算法SPF
具体特点如下
OSPF是基于链路状态的而不像RIP那样是基于距离向量的-OSPF采用SPF算法计算路由从算法.上保证了不会产生路由环路OSPF不限制网络规模更新效率高收敛速度快
2细节阐述
A链路状态和代价
链路状态是指本路由器都和哪些路由器相邻以及相应链路的“代价”(cost)
代价”用来表示费用、距离、时延、带宽,等等。这些都由网络管理人员来决定
例如下图思科路由器中OSPF计算代价的方法是用100Mbps除以链路带宽
如果计算结果小于1则仍然记为1如果计算结果大于1则舍去小数只保留整数部分 B问候分组和邻居表
OSPF相邻路由器之间通过交互问候(Hello) 分组建立和维护邻居关系。因此每个路由器都会建立一张邻居表。问候分组需要封装在IP数据报中发送发往组播地址224.0.0.5 IP数据报中协议号字段取值应该为89表明IP数据报的数据载荷为OSPF分组 问候分组的发送周期为10s若40s还未收到来自邻居路由器的Hello分组则认为该邻居分组不可达
例如下图
R2是R1的一个邻居路由器于是在R1的邻居表中“邻居ID”就记为R2“接口”记为1“死亡倒计时”目前还剩36s若在“死亡倒计时”到达0之前再次收到了R2的问候分组则重新启动针对该邻居条目的40s“死亡倒计时”否则当“死亡倒计时 ”为0时判定该R2不可达R4是R1的一个邻居路由器于是在R1的邻居表中“邻居ID”就记为R4“接口”记为0“死亡倒计时”目前还剩18s若在“死亡倒计时”到达0之前再次收到了R4的问候分组则重新启动针对该邻居条目的40s“死亡倒计时”否则当“死亡倒计时 ”为0时判定该R4不可达 C链路状态通告LSA
使用OSPF的每个路由器都会产生链路状态通告LSA。LSA中包含以下内容
直连网络的链路状态信息邻居路由器的链路状态信息
例如下图N1是路由器R4的直连网络则R4的LSA应包含R4与该直连网络的链路状态信息还应该包含其邻居路由器R1的链路状态信息和邻居路由器R3的链路状态信息 LSA被封装在链路状态更新分组LSU中采用洪泛法发送。收到LSU的路由器将从自己其他所有接口转发该分组也就是进行洪泛转发
例如下图 D链路状态数据库LSDB
使用OSPF的每个路由器都有一个链路状态数据库LSDB用于存储LSA。通过各路由器洪泛发送封装有自己LSA的LSU分组各路由器的LSDB最终将达到一致
例如下图R2的LSDB中记录有各路由器的LSA
E最短路径优先SPF
使用OSPF的各路由器基于LSDB进行最短路径优先SPF计算构建出各自到达其他各路由器的最短路径即构建各自的路由表
例如下图的网络拓扑各链路旁的数字表示代价通过各路由器洪泛法发送封装有自己LSA的LSU各路由器最终会得到相同的LSDB由LSDB可以得出带权有向图对该图进行基于Dijkstra的最短路径优先算法就可以得出以路由器为根的最短路径 3五种分组类型
OSPF的五种分组类型
问候(Hello) 分组 用来发现和维护邻居路由器的可达性数据库描述(Database Description)分组 向邻居路由器给出自己的链路状态数据库中的所有链路状态项目的摘要信息链路状态请求(Link State Request)分组 向邻居路由器请求发送某些链路状态项目的详细信息链路状态更新(Link State Update)分组 使用这种分组将其链路状态进行洪泛发送即用洪泛法对全网更新链路状态链路状态确认(Link State Acknowledgment)分组 是对链路状态更新分组的确认分组
二OSPF基本工作过程
如下图相邻路由器之间周期性发送问候分组以便建立和维护邻居关系建立邻居关系后给邻居路由器发送数据库描述分组也就是将自己的链路状态数据库中的所有链路状态项目的摘要信息发送给邻居路由器。例如
R1收到R2的数据库描述分组后发现自己缺少其中的某些链路状态项目于是就给R2发送链路状态请求分组R2收到后将R1所缺少的链路状态项目的详细信息封装在链路状态更新分组中发送给R1R1收到后将这些所缺少的链路状态项目的详细信息添加到自己的链路状态数据库中并给R2发送链路状态确认分组最终R1和R2的链路状态数据库将达到一致也就是链路状态数据库达到同步
每30min或链路状态发生变化时路由器都会发送链路状态更新分组收到该分组的其他路由器将洪泛转发该分组并给该路由器返回链路状态确认分组。这称之为新情况下链路状态数据库同步 三其他问题
1多点接入网络中存在的大量多播分组
当OSPF路由器在多点接入网络中建立邻居关系时如果不采用其他机制将会产生大量的多播分组
例如下图5台路由器连接在同一个多点接入网络中它们周期性地发送问候分组以建立和维护邻居关系。这些路由器中的任意两个路由器都互为邻居关系邻居关系的数量为n(n−1)2\frac{n(n-1)}{2}2n(n−1)其中nnn为路由器数量这样每个路由器要向其他n−1n-1n−1个路由器发送问候分组和链路状态更新分组
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-
为了减少所发送分组的数量OSPF采用选举指定路由器DR和备用指定路由器BDR的方法所有的非DR/BDR都只与DR/BDR建立邻居关系非DR/BDR之间必须通过DR/BDR交换信息。若DR出现问题则由BDR顶替
例如下图假设已经选举好了DR和BDR由于所有的非DR/BDR都只与DR/BDR建立邻居关系因此之前的邻居关系数量降低为2(n−2)12(n-2)12(n−2)1 2区域
为了使OSPF能够用于规模很大的网络OSPF把一个自治系统再划分为若干个更小的范围叫做区域(Area)。划分区域的好处就是把利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个自治系统这样就减少了整个网络上的通信量
例如下图是一个规模很大的网络将其划分为一个自治系统。在该自治系统内所有路由器都使用OSPF协议 OSPF将该自治系统再划分为4个更小的区域每个区域都有一个32比特区域标识符可以用点分十进制表示。例如主干区域标识符必须为0也即0.0.0.0主干区域用于连通其他区域其他区域标识符不能为0且互补相同。每个区域的规模不应该太大一般所包含的路由器不应超过200个 如果路由器的所有接口都在同一个区域内则该路由器称其为区域内路由器。为了本区域可以和自治系统内的其他区域连通每个区域会设置一个区域边界路由器R3,R4,R7其一个接口用于连接自身所在区域另一个接口用于连接主干区域。主干区域内的路由器称之为主干路由器