OSPF协议详解分析.docx
上传人:王子****青蛙 上传时间:2024-09-13 格式:DOCX 页数:11 大小:1.5MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

OSPF协议详解分析.docx

OSPF协议详解分析.docx

预览

免费试读已结束,剩余 1 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

OSPF协议号是89,也就是说在ip包的protocol中是89,用ip包来传送数据包格式:在OSPF路由协议的数据包中,其数据包头长为24个字节,包含如下8个字段:*Versionnumber-定义所采用的OSPF路由协议的版本。*Type-定义OSPF数据包类型。OSPF数据包共有五种:*Hello-用于建立和维护相邻的两个OSPF路由器的关系,该数据包是周期性地发送的。*DatabaseDescription-用于描述整个数据库,该数据包仅在OSPF初始化时发送。*Linkstaterequest-用于向相邻的OSPF路由器请求部分或全部的数据,这种数据包是在当路由器发现其数据已经过期时才发送的。*Linkstateupdate-这是对linkstate请求数据包的响应,即通常所说的LSA数据包。*Linkstateacknowledgment-是对LSA数据包的响应。*Packetlength-定义整个数据包的长度。*RouterID-用于描述数据包的源地址,以IP地址来表示,32bit*AreaID-用于区分OSPF数据包属于的区域号,所有的OSPF数据包都属于一个特定的OSPF区域。*Checksum-校验位,用于标记数据包在传递时有无误码。*Authenticationtype-定义OSPF验证类型。*Authentication-包含OSPF验证信息,长为8个字节。FDDI或快速以太网的Cost为1,2M串行链路的Cost为48,10M以太网的Cost为10等。所有路由器会通过一种被称为刷新(Flooding)的方法来交换链路状态数据。Flooding是指路由器将其LSA数据包传送给所有与其相邻的OSPF路由器,相邻路由器根据其接收到的链路状态信息更新自己的数据库,并将该链路状态信息转送给与其相邻的路由器,直至稳定的一个过程。当路由器有了一个完整的链路状态数据库时,它就准备好要创建它的路由表以便能够转发数据流。CISCO路由器上缺省的开销度量是基于网络介质的带宽。要计算到达目的地的最低开销,链路状态型路由选择协议(比如OSPF)采用Dijkstra算法,OSPF路由表中最多保存6条等开销路由条目以进行负载均衡,可以通过"maximum-paths"进行配置。如果链路上出现fapping翻转,就会使路由器不停的计算一个新的路由表,就可能导致路由器不能收敛。路由器要重新计算客观存它的路由表之前先等一段落时间,缺省值为5秒。在CISCO配置命令中"timersspfspf-delayspy-holdtime"可以对两次连续SPF计算之间的最短时间(缺省值10秒)进配置。路由器初始化时Hello包是用224.0.0.5广播给域内所有OSPF路由器,选出DR后在用224.0.0.6和DR,BDR建立邻接。DR用224.0.0.5广播给DRotherLSABDR也是DRother用224.0.0.6广播LSA给DR和BDRDR是在一个以太网段内选举出来的,如果一个路由器有多个以太网段那么将会有多个DR选举;DR的选择是通过OSPF的Hello数据包来完成的,在OSPF路由协议初始化的过程中,会通过Hello数据包在一个广播性网段上选出一个ID最大的路由器作为指定路由器DR(如果设置优先级的话那么首先看优先级,优先级为0不参加选举)并且选出ID次大的路由器作为备份指定路由器BDR,BDR在DR发生故障后能自动替代DR的所有工作然后重新选择BDR。当一个网段上的DR和BDR选择产生后,该网段上的其余所有路由器都只与DR及BDR建立相邻关系。见下图DR的选举过程:这里可以以选举村长为例选举的时候用Hello包中的DR字节来标识,开始的时候都是标识的自己,一旦选举出一个DR来那么即使后来再有优先级更高的进来也不重新选举(因为一旦重新选举那么所有的邻接关系都要重新建立)OSPF启动的过程:downinit发送Hello()DR字段为全零(因为还没有选出DR),单通状态,我能收到对端的Hello报文,但对方没有收到我的报文,怎么知道对端有没有收到我的报文呢,通过NeighborsSeen看2way2个OSPF路由器从Hello中发现互相的routerid(本地路由器最大ip,一般是loopback)建立邻接在这个阶段已经知道谁是DR了exstart预启动状态,OSPF路由器建立主从关系(看谁的routerid大)然后协商一个序列号(因为ip是不可靠的传输采用确认+超时重传就可以)准备传送,头两个DD报文为空,不包含LSA的数据Router1:DDseq=x,I=1,M=1,MS=1I是第一个报文M是more表示还有后续报文MS是表示Router1是MasterRouter2: