网络协议论文.docx
- 文档编号:9490846
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:8
- 大小:20.30KB
网络协议论文.docx
《网络协议论文.docx》由会员分享,可在线阅读,更多相关《网络协议论文.docx(8页珍藏版)》请在冰点文库上搜索。
网络协议论文
OSPF路由协议概念及工作原理
摘要:
OSPF路由协议是一种典型的链路状态(Link-state)的路由协议,一般用于同一个路由域内。
在这里,路由域是指一个自治系统(AutonomousSystem),即AS,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。
在这个AS中,所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路由表的。
作为一种链路状态的路由协议,OSPF将链路状态广播数据包LSA(LinkStateAdvertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。
运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。
关键词:
OSPF路由协议;网络;数据库
1.数据包格式
在OSPF路由协议的数据包中,其数据包头长为24个字节,包含如下8个字段:
*Versionnumber-定义所采用的OSPF路由协议的版本。
*Type-定义OSPF数据包类型。
OSPF数据包共有五种:
*Hello-用于建立和维护相邻的两个OSPF路由器的关系,该数据包是周期性地发送的。
*DatabaseDescription-用于描述整个数据库,该数据包仅在OSPF初始化时发送。
*Linkstaterequest-用于向相邻的OSPF路由器请求部分或全部的数据,这种数据包是在当路由器发现其数据已经过期时才发送的。
*Linkstateupdate-这是对linkstate请求数据包的响应,即通常所说的LSA数据包。
*Linkstateacknowledgment-是对LSA数据包的响应。
*Packetlength-定义整个数据包的长度。
*RouterID-用于描述数据包的源地址,以IP地址来表示。
*AreaID-用于区分OSPF数据包属于的区域号,所有的OSPF数据包都属于一个特定的OSPF区域。
*Checksum-校验位,用于标记数据包在传递时有无误码。
*Authenticationtype-定义OSPF验证类型。
*Authentication-包含OSPF验证信息,长为8个字节。
2.OSPF基本算法
2.1SPF算法及最短路径树
SPF算法是OSPF路由协议的基础。
SPF算法有时也被称为Dijkstra算法,这是因为最短路径优先算法SPF是Dijkstra发明的。
SPF算法将每一个路由器作为根(ROOT)来计算其到每一个目的地路由器的距离,每一个路由器根据一个统一的数据库会计算出路由域的拓扑结构图,该结构图类似于一棵树,在SPF算法中,被称为最短路径树。
在OSPF路由协议中,最短路径树的树干长度,即OSPF路由器至每一个目的地路由器的距离,称为OSPF的Cost,其算法为:
Cost=100×106/链路带宽
2.2链路状态算法
作为一种典型的链路状态的路由协议,OSPF还得遵循链路状态路由协议的统一算法。
链路状态的算法非常简单,在这里将链路状态算法概括为以下四个步骤:
当路由器初始化或当网络结构发生变化(例如增减路由器,链路状态发生变化等)时,路由器会产生链路状态广播数据包LSA(Link-StateAdvertisement),该数据包里包含路由器上所有相连链路,也即为所有端口的状态信息。
所有路由器会通过一种被称为刷新(Flooding)的方法来交换链路状态数据。
Flooding是指路由器将其LSA数据包传送给所有与其相邻的OSPF路由器,相邻路由器根据其接收到的链路状态信息更新自己的数据库,并将该链路状态信息转送给与其相邻的路由器,直至稳定的一个过程。
当网络重新稳定下来,也可以说OSPF路由协议收敛下来时,所有的路由器会根据其各自的链路状态信息数据库计算出各自的路由表。
该路由表中包含路由器到每一个可到达目的地的Cost以及到达该目的地所要转发的下一个路由器(next-hop)。
第4个步骤实际上是指OSPF路由协议的一个特性。
当网络状态比较稳定时,网络中传递的链路状态信息是比较少的,或者可以说,当网络稳定时,网络中是比较安静的。
这也正是链路状态路由协议区别与距离矢量路由协议的一大特点。
3.OSPF路由协议的基本特征
前文已经说明了OSPF路由协议是一种链路状态的路由协议,为了更好地说明OSPF路由协议的基本特征,我们将OSPF路由协议与距离矢量路由协议之一的RIP(RoutingInformationProtocol)作一比较,归纳为如下几点:
RIP路由协议中用于表示目的网络远近的唯一参数为跳(HOP),也即到达目的网络所要经过的路由器个数。
在RIP路由协议中,该参数被限制为最大15,也就是说RIP路由信息最多能传递至第16个路由器;对于OSPF路由协议,路由表中表示目的网络的参数为Cost,该参数为一虚拟值,与网络中链路的带宽等相关,也就是说OSPF路由信息不受物理跳数的限制。
并且,OSPF路由协议还支持TOS(TypeofService)路由,因此,OSPF比较适合应用于大型网络中。
RIP路由协议不支持变长子网屏蔽码(VLSM),这被认为是RIP路由协议不适用于大型网络的又一重要原因。
采用变长子网屏蔽码可以在最大限度上节约IP地址。
OSPF路由协议对VLSM有良好的支持性。
RIP路由协议路由收敛较慢。
RIP路由协议周期性地将整个路由表作为路由信息广播至网络中,该广播周期为30秒。
在一个较为大型的网络中,RIP协议会产生很大的广播信息,占用较多的网络带宽资源;并且由于RIP协议30秒的广播周期,影响了RIP路由协议的收敛,甚至出现不收敛的现象。
而OSPF是一种链路状态的路由协议,当网络比较稳定时,网络中的路由信息是比较少的,并且其广播也不是周期性的,因此OSPF路由协议即使是在大型网络中也能够较快地收敛。
4.区域及域间路由
前文已经提到过,在OSPF路由协议的定义中,可以将一个路由域或者一个自治系统AS划分为几个区域。
在OSPF中,由按照一定的OSPF路由法则组合在一起的一组网络或路由器的集合称为区域(AREA)。
在OSPF路由协议中,每一个区域中的路由器都按照该区域中定义的链路状态算法来计算网络拓扑结构,这意味着每一个区域都有着该区域独立的网络拓扑数据库及网络拓扑图。
对于每一个区域,其网络拓扑结构在区域外是不可见的,同样,在每一个区域中的路由器对其域外的其余网络结构也不了解。
这意味着OSPF路由域中的网络链路状态数据广播被区域的边界挡住了,这样做有利于减少网络中链路状态数据包在全网范围内的广播,也是OSPF将其路由域或一个AS划分成很多个区域的重要原因。
随着区域概念的引入,意味着不再是在同一个AS内的所有路由器都有一个相同的链路状态数据库,而是路由器具有与其相连的每一个区域的链路状态信息,即该区域的结构数据库,当一个路由器与多个区域相连时,我们称之为区域边界路由器。
一个区域边界路由器有自身相连的所有区域的网络结构数据。
在同一个区域中的两个路由器有着对该区域相同的结构数据库。
我们可以根据IP数据包的目的地地址及源地址将OSPF路由域中的路由分成两类,当目的地与源地址处于同一个区域中时,称为区域内路由,当目的地与源地址处于不同的区域甚至处于不同的AS时,我们称之为域间路由。
5.OSPF协议路由器及链路状态数据包分类
5.1OSPF路由器分类
当一个AS划分成几个OSPF区域时,根据一个路由器在相应的区域之内的作用,可以将OSPF路由器作如下分类:
内部路由器:
当一个OSPF路由器上所有直联的链路都处于同一个区域时,我们称这种路由器为内部路由器。
内部路由器上仅仅运行其所属区域的OSPF运算法则。
区域边界路由器:
当一个路由器与多个区域相连时,我们称之为区域边界路由器。
区域边界路由器运行与其相连的所有区域定义的OSPF运算法则,具有相连的每一个区域的网络结构数据,并且了解如何将该区域的链路状态信息广播至骨干区域,再由骨干区域转发至其余区域。
AS边界路由器:
AS边界路由器是与AS外部的路由器互相交换路由信息的OSPF路由器,该路由器在AS内部广播其所得到的AS外部路由信息;这样AS内部的所有路由器都知道至AS边界路由器的路由信息。
AS边界路由器的定义是与前面几种路由器的定义相独立的,一个AS边界路由器可以是一个区域内部路由器或是一个区域边界路由器。
指定路由器—DR:
在一个广播性的、多接入的网络(例如Ethernet、TokenRing及FDDI环境)中,存在一个指定路由器(DesignatedRouter),指定路由器产生用于描述所处的网段的链路数据包—networklink,该数据包里包含在该网段上所有的路由器,包括指定路由器本身的状态信息。
5.2OSPF链路状态广播数据包种类
随着OSPF路由器种类概念的引入,OSPF路由协议又对其链路状态广播数据包(LSA)作出了分类。
OSPF将链路状态广播数据包共分成5类,分别为:
类型1:
又被称为路由器链路信息数据包(RouterLink),所有的OSPF路由器都会产生这种数据包,用于描述路由器上联接到某一个区域的链路或是某一端口的状态信息。
路由器链路信息数据包只会在某一个特定的区域内广播,而不会广播至其它的区域。
在类型1的链路数据包中,OSPF路由器通过对数据包中某些特定数据位的设定,告诉其余的路由器自身是一个区域边界路由器或是一个AS边界路由器。
并且,类型1的链路状态数据包在描述其所联接的链路时,会根据各链路所联接的网络类型对各链路打上链路标识,LinkID。
类型2:
又被称为网络链路信息数据包(NetworkLink)。
网络链路信息数据包是由指定路由器产生的,在一个广播性的、多点接入的网络,例如以太网、令牌环网及FDDI网络环境中,这种链路状态数据包用来描述该网段上所联接的所有路由器的状态信息。
类型3和类型4:
类型3和类型4的链路状态广播在OSPF路由协议中又称为总结链路信息数据包(SummaryLink),该链路状态广播是由区域边界路由器或AS边界路由器产生的。
SummaryLink描述的是到某一个区域外部的路由信息,这一个目的地地址必须是同一个AS中。
SummaryLink也只会在某一个特定的区域内广播。
类型3与类型4两种总结性链路信息的区别在于,类型3是由区域边界路由器产生的,用于描述到同一个AS中不同区域之间的链路状态;而类型4是由AS边界路由器产生的,用于描述不同AS的链路状态信息。
类型5:
类型5的链路状态广播称为AS外部链路状态信息数据包。
类型5的链路数据包是由AS边界路由器产生的,用于描述到AS外的目的地的路由信息,该数据包会在AS中除残域以外的所有区域中广播。
一般来说,这种链路状态信息描述的是到AS外部某一特定网络的路由信息,在这种情况下,类型5的链路状枋数据包的链路标识采用的是目的地网络的IP地址;在某些情况下,AS边界路由器可以对AS内部广播默认路由信息,在这时,类型5的链路广播数据包的链路标识采用的是默认网络号码0.0.0.0。
6.OSPF协议工作过程
OSPF路由协议针对每一个区域分别运行一套独立的计算法则,对于ABR来说,由于一个区域边界路由器同时与几个区域相联,因此一个区域边界路由器上会同时运行几套OSPF计算方法,每一个方法针对一个OSPF区域。
下面对OSPF协议运算的全过程作一概括性的描述。
6.1区域内部路由
当一个OSPF路由器初始化时,首先初始化路由器自身的协议数据库,然后等待低层次协议(数据链路层)提示端口是否处于工作状态。
如果低层协议得知一个端口处于工作状态时,OSPF会通过其Hello协议数据包与其余的OSPF路由器建立交互关系。
一个OSPF路由器向其相邻路由器发送Hello数据包,如果接收到某一路由器返回的Hello数据包,则在这两个OSPF路由器之间建立起OSPF交互关系,这个过程在OSPF中被称为adjacency。
在广播性网络或是在点对点的网络环境中,OSPF协议通过Hello数据包自动地发现其相邻路由器,在这时,OSPF路由器将Hello数据包发送至一特殊的多点广播地址,该多点广播地址为ALLSPFRouters。
在一些非广播性的网络环境中,我们需要经过某些设置来发现OSPF相邻路由器。
在多接入的环境中,例如以太网的环境,Hello协议数据包还可以用于选择该网络中的指定路由器DR。
一个OSPF路由器会与其新发现的相邻路由器建立OSPF的adjacency,并且在一对OSPF路由器之间作链路状态数据库的同步。
在多接入的网络环增中,非DR的OSPF路由器只会与指定路由器DR建立adjacency,并且作数据库的同步。
OSPF协议数据包的接收及发送正是在一对OSPF的adjacency间进行的。
6.2建立OSPF交互关系adjacency
OSPF路由协议通过建立交互关系来交换路由信息,但是并不是所有相邻的路由器会建立OSPF交互关系。
OSPF协议是通过Hello协议数据包来建立及维护相邻关系的,同时也用其来保证相邻路由器之间的双向通信。
OSPF路由器会周期性地发送Hello数据包,当这个路由器看到自身被列于其它路由器的Hello数据包里时,这两个路由器之间会建立起双向通信。
在多接入的环境中,Hello数据包还用于发现指定路由器DR,通过DR来控制与哪些路由器建立交互关系。
两个OSPF路由器建立双向通信这后的第二个步骤是进行数据库的同步,数据库同步是所有链路状态路由协议的最大的共性。
在OSPF路由协议中,数据库同步关系仅仅在建立交互关系的路由器之间保持。
OSPF的数据库同步是通过OSPF数据库描述数据包(DatabaseDescriptionPackets)来进行的。
OSPF路由器周期性地产生数据库描述数据包,该数据包是有序的,即附带有序列号,并将这些数据包对相邻路由器广播。
相邻路由器可以根据数据库描述数据包的序列号与自身数据库的数据作比较,若发现接收到的数据比数据库内的数据序列号大,则相邻路由器会针对序列号较大的数据发出请求,并用请求得到的数据来更新其链路状态数据库。
6.3AS外部路由
一个自治域AS的边界路由器会将AS外部路由信息广播至整个AS中除了残域的所有区域。
为了使这些AS外部路由信息生效,AS内部的所有的路由器(除残域内的路由器)都必须知道AS边界路由器的位置,该路由信息是由非残域的区域边界路由器对域内广播的,其链路广播数据包的类型为类型4。
7.OSPF路由协议验证
在OSPF路由协议中,所有的路由信息交换都必须经过验证。
在前文所描述的OSPF协议数据包结构中,包含有一个验证域及一个64位长度的验证数据域,用于特定的验证方式的计算。
OSPF数据交换的验证是基于每一个区域来定义的,也就是说,当在某一个区域的一个路由器上定义了一种验证方式时,必须在该区域的所有路由器上定义相同的协议验证方式。
另外一些与验证相关的参数也可以基于每一个端口来定义,例如当采用单一口令验证时,我们可以对某一区域内部的每一个网络设置不同的口令字。
——在OSPF路由协议的定义中,初始定义了两种协议验证方式,方式0及方式1,分别介绍如下:
验证方式0:
采用验证方式0表示OSPF对所交换的路由信息不验证。
在OSPF的数据包头内64位的验证数据位可以包含任何数据,OSPF接收到路由数据后对数据包头内的验证数据位不作任何处理。
验证方式1:
验证方式1为简单口令字验证。
这种验证方式是基于一个区域内的每一个网络来定义的,每一个发送至该网络的数据包的包头内都必须具有相同的64位长度的验证数据位,也就是说验证方式1的口令字长度为64bits,或者为8个字符。
8.小结
前文介绍了OSPF路由协议的概念及该协议的工作原理。
OSPF路由协议定义于RFC1247及RFC1583,该协议提供了一个不同的网络通过同一种TCP/IP协议交换网络信息的途径。
作为一种链路状态的路由协议,OSPF具备许多优点:
快速收敛,支持变长网络屏蔽码,支持CIDR以及地址summary,具有层次化的网络结构,支持路由信息验证等。
所有这些特点保证了OSPF路由协议能够被应用到大型的、复杂的网络环境中。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 协议 论文