① 什么是ad hoc 计算方法
http://ke..com/view/28428.htm
Ad hoc Ad hoc网络
摘要:本文首先介绍了Ad hoc网络的特点和应用领域。然后对Ad hoc网络的体系结构进行了研究,给出了结点和网络的几种组织结构。最后对Ad hoc网络面临的特殊问题进行了深入分析,并对这些问题的影响及引发的研究方向进行了讨论。
关键词 Ad hoc网络 自组织 多跳 体系结构
1 引言
我们经常提及的移动通信网络一般都是有中心的,要基于预设的网络设施才能运行。例如,蜂窝移动通信系统要有基站的支持;无线局域网一般也工作在有AP接入点和有线骨干网的模式下。但对于有些特殊场合来说,有中心的移动网络并不能胜任。比如,战场上部队快速展开和推进,地震或水灾后的营救等。这些场合的通信不能依赖于任何预设的网络设施,而需要一种能够临时快速自动组网的移动网络。Ad hoc网络可以满足这样的要求。
Ad hoc网络的前身是分组无线网(Packet Radio Network)。对分组无线网的研究源于军事通信的需要,并已经持续了近20年。早在1972年,美国DARPA(Defense Advanced Research Project Agency)就启动了分组无线网(PRNET,Packet Radio NETwork)项目,研究分组无线网在战场环境下数据通信中的应用。项目完成之后,DAPRA又在1993年启动了高残存性自适应网络(SURAN,SURvivable Adaptive Network)项目。研究如何将prnet的成果加以扩展,以支持更大规模的网络,还要开发能够适应战场快速变化环境下的自适应网络协议。1994年,DARPA又启动了全球移动信息系统(GloMo,Globle Mobile Information Systems)项目。在分组无线网已有成果的基础上对能够满足军事应用需要的、可快速展开、高抗毁性的移动信息系统进行全面深入的研究,并一直持续至今。1991年成立的IEEE802.11标准委员会采用了“Ad hoc网络”一词来描述这种特殊的对等式无线移动网络。
在Ad hoc网络中,结点具有报文转发能力,结点间的通信可能要经过多个中间结点的转发,即经过多跳(MultiHop),这是Ad hoc网络与其他移动网络的最根本区别。结点通过分层的网络协议和分布式算法相互协调,实现了网络的自动组织和运行。因此它也被称为多跳无线网(MultiHop Wireless Network)、自组织网络(SelfOrganized Network)或无固定设施的网络(Infrastructureless Network)。
2 Ad hoc网络的特点和应用
2.1 Ad hoc网络的特点
Ad hoc网络是一种特殊的无线移动网络。网络中所有结点的地位平等,无需设置任何的中心控制结点。网络中的结点不仅具有普通移动终端所需的功能,而且具有报文转发能力。与普通的移动网络和固定网络相比,它具有以下特点:
1.无中心:Ad hoc网络没有严格的控制中心。所有结点的地位平等,即是一个对等式网络。结点可以随时加入和离开网络。任何结点的故障不会影响整个网络的运行,具有很强的抗毁性。
2.自组织:网络的布设或展开无需依赖于任何预设的网络设施。结点通过分层协议和分布式算法协调各自的行为,结点开机后就可以快速、自动地组成一个独立的网络。
3.多跳路由:当结点要与其覆盖范围之外的结点进行通信时,需要中间结点的多跳转发。与固定网络的多跳不同,Ad hoc网络中的多跳路由是由普通的网络结点完成的,而不是由专用的路由设备(如路由器)完成的。
4.动态拓扑:Ad hoc网络是一个动态的网络。网络结点可以随处移动,也可以随时开机和关机,这些都会使网络的拓扑结构随时发生变化。
这些特点使得Ad hoc网络在体系结构、网络组织、协议设计等方面都与普通的蜂窝移动通信网络和固定通信网络有着显着的区别。
2.2 Ad hoc网络的应用领域
由于Ad hoc网络的特殊性,它的应用领域与普通的通信网络有着显着的区别。它适合被用于无法或不便预先铺设网络设施的场合、需快速自动组网的场合等。针对Ad hoc网络的研究是因国事应用而发起的。因此,军事应用仍是Ad hoc网络的主要应用领域,但是民用方面,Ad hoc网络也有非常广泛的应用前景。它的应用场合主要有以下几类:
2 Ad hoc网络
1.军事应用:军事应用是Ad hoc网络技术的主要应用领域。因其特有的无需架设网络设施、可快速展开、抗毁性强等特点,它是数字人战场通信的首选技术。Ad hoc网络技术已经成为美军战术互联网的核心技术。美军的近期数字电台和无线互联网控制器等主要通信装备都使用了Ad hoc网络技术。
2.传感器网络:传感器网络是Ad hoc网络技术的另一大应用领域。对于很多应用场合来说传感器网络只能使用无线通信技术。而考虑到体积和节能等因素,传感器的发射功率不可能很大。使用Ad hoc网络实现多跳通信是非常实用的解决方法。分散在各处的传感器组成Ad hoc网络,可以实现传感器之间和与控制中心之间的通信。这在爆炸残留物检测等领域具有非常广阔的应用前景。
3.紧急和临时场合:在发生了地震、水灾、强热带风暴或遭受其他灾难打击后,固定的通信网络设施(如有线通信网络、蜂窝移动通信网络的基站等网络设施、卫星通信地球站以及微波接力站等)可能被全部摧毁或无法正常工作,对于抢险救灾来说,这时就需要Ad hoc网络这种不依赖任何固定网络设施又能快速布设的自组织网络技术。类似地,处于边远或偏僻野外地区时,同样无法依赖固定或预设的网络设施进行通信。Ad hoc网络技术的独立组网能力和自组织特点,是这些场合通信的最佳选择。
4.个人通信:个人局域网(PAN,Personal Area Network)是Ad hoc网络技术的另一应用领域。不仅可用于实现PDA、手机、手提电脑等个人电子通信设备之间的通信,还可用于个人局域网之间的多跳通信。蓝牙技术中的超网(Scatternet)就是一个典型的例子。
5.与移动通信系统的结合:Ad hoc网络还可以与蜂窝移动通信系统相结合,利用移动台的多跳转发能力扩大蜂窝移动通信系统的覆盖范围、均衡相邻小区的业务、提高小区边缘的数据速率等。
在实际应用中,Ad hoc网络除了可以单独组网实现局部的通信外,它带可以作为末端子网通过接入点接入其他的固定或移动通信网络,与Ad hoc网络以外的主机进行通信。因此,Ad hoc网络也可以作为各种通信网络的无线接入手段之一。
3 Ad hoc网络的体系结构
3.1 结点结构
Ad hoc网络中的结点不仅要具备普通移动终端的功能,还要具有服文转发能力,即要具备路由器的功能。因此,就完成的功能而言可以将结点分为主机、路由器和电台三部分。其中主机部分完成普通移动终端的功能,包括人机接口、数据处理等应用软件。而路由器部分主要负责维护网络的拓扑结构和路由信息,完成报文的转发功能。电台部分为信息传输提供无线信道支持。从物理结构上分,结构可以被分为以下几类:单机机单电台、单主机多电台、多主机单电台和多主机多电台。手持机一般采用的单主机单电台的简单结构。作为复杂的车载台,一个结点可能包括通信车内的多个主机。多电台不仅可以用来构建叠加的网络,还可用作网关结点来互联多个Ad hoc网络。
3.2 网络结构
Ad hoc网络一般有两种结构:平面结构和分级结构。
在平面结构中,所有结点的地位平等,所以又可以称为对等式结构。
分级结构中,网络被刈分为簇。每个簇由一个簇头和多个簇成员组成。这些簇头形成了高一级的网络。在高一级网络中,又可以分簇,再次形成更高一级的网络,直至最高级。在分级结构中,簇头结点负责簇间数据的转发。簇头可以预先指定,也可以由结点使用算法自动选举产生。
分级结构的网络又可以被分为单频分级和多频分级两种。单频率分级网络中,所有结点使用同一个频率通信。为了实现簇头之间的通信,要有网关结点(同时属于两个簇的结点)的支持。而在多频率分组网络中,不同级采用不同的通信频率。低级结点的通信范围较小,而高级结点要覆盖较大的范围。高级的结点同时处于多个级中,有多个频率,用不同的频率实现不同级的通信。在两级网络中,簇头结点有两个频率。频率1用于簇头与簇成员的通信。而频率2用于簇头之间的通信。分级网络的每个结点都可以成为簇头,所以需要适当的簇头选举算法,算法要能根据网络拓扑的变化重新分簇。
平面结构的网络比较简单,网络中所有结点是完全对等的,原则上不存在瓶颈,所以比较健壮。它的缺点是可扩充性差:每一个结点都需要知道到达其他所有结点的路由。维护这些动态变化的路由信息需要大量的控制消息。在分级结构的网络中,簇成员的功能比较简单,不需要维护复杂的路由信息。这大大减少了网络中路由控制信息的数量,因此具有很好的可扩充性。由于簇头结点可以随时选举产生,分级结构也具有很强的抗毁性。分级结构的缺点是,维护分级结构需要结点执行簇头选举算法,簇头结点可能会成为网络的瓶颈。
因此,当网络的规模较小时,可以采用简单的平面式结构;而当网络的规模增大时,应用分级结构。美军在其战术互联网中使用近期数字电台(NTDR,Near Term Digital Radio)组网时采用的就是双频分级结构。
[编辑本段]Ad Hoc类问题
个性化问题,就是那些不能用一种已经被充分研究的算法来解决的问题。每个个性化问题都是不同的;没有具体的或者一般的算法能够解决这类问题。
当然,这使得问题个个有趣,而后让每个人面对一个新的挑战。解决此问题可能需要一种新的数据结构或者一套不寻常的循环或条件的组合。有时候,这些问题所需要的解决方案是十分罕见的,或至少很少遇到的。
个性化问题通常需要认真审题,有时候做题者会因要将题目中的细枝末节仔细联系起来而放弃此题。
个性化问题仍然需要合理的优化和某种程度上的分析,例如避免使用五层嵌套的循环。
[编辑本段]Ad Hoc网络中的关键技术
1. 信道接入技术:Ad Hoc网络的无线信道是多跳共享的多点信道,所以不同于普通网络的共享广播信道、点对点无线信道和蜂窝移动通信系统中由基站控制的无线信道。该技术控制节点如何接入无线信道。信道接入技术主要是解决隐藏终端和暴露终端问题,影响比较大的有MACA协议,控制信道和数据信道分裂的双信道方案和基于定向天线的MAC协议,以及一些改进的MAC协议。
2. 网络体系结构:网络主要是为数据业务设计的,没有对体系结构做过多考虑,但是当Ad Hoc网络需要提供多种业务并支持一定的QoS时,应当考虑选择最为合适的体系结构,并需要对原有协议栈重新进行设计。
3. 路由协议:Ad Hoc路由面临的主要挑战是传统的保存在结点中的分布式路由数据库如何适应网络拓扑的动态变化。Ad Hoc网络中多跳路由是由普通节点协作完成的,而不是由专用的路由设备完成的。因此,必须设计专用的、高效的无线多跳路由协议。目前,一般普遍得到认可的代表性成果有DSDV、WRP、AODV、DSR、TORA和ZRP等。至今,路由协议的研究仍然是Ad Hoc网络成果最集中的部分。
4. QoS保证:Ad Hoc网络出现初期主要用于传输少量的数据信息。随着应用的不断扩展,需要在Ad Hoc网络中传输多媒体信息。多媒体信息对时延和抖动等都提出了很高要求,即需要提供一定的QoS保证。Ad Hoc网络中的QoS保证是系统性问题,不同层都要提供相应的机制。
5. 多播/组播协议:由于Ad Hoc网络的特殊性,广播和多播问题变得非常复杂,它们需要链路层和网络层的支持。目前这个问题的研究己经取得了阶段性进展。
6. 安全性问题:由于Ad Hoc网络的特点之一就是安全性较差,易受窃听和攻击,因此需要研究适用于Ad Hoc网络的安全体系结构和安全技术。
7. 网络管理:Ad Hoc网络管理涉及面较广,包括移动性管理、地址管理和服务管理等,需要相应的机制来解决节点定位和地址自动配置等问题。
8. 节能控制:可以采用自动功率控制机制来调整移动节点的功率,以便在传输范围和干扰之间进行折衷;还可以通过智能休眠机制,采用功率意识路由和使用功耗很小的硬件来减少节点的能量消耗。
② 有关无线传感器网络中时间同步机制有哪些方法和策略
1 时间同步技术的重要性
传感器节点的时钟并不完美,会在时间上发生漂移,所以观察到的时间对于网络中的节点来说是不同的。但很多网络协议的应用,都需要一个共同的时间以使得网路中的节点全部或部分在瞬间是同步的。
第一,传感器节点需要彼此之间并行操作和协作去完成复杂的传感任务。如果在收集信息过程中,传感器节点缺乏统一的时间戳(即没有同步),估计将是不准确的。
第二,许多节能方案是利用时间同步来实现的。例如,传感器可以在适当的时候休眠(通过关闭传感器和收发器进入节能模式),在需要的时候再唤醒。在应用这种节能模式的时候,节点应该在同等的时间休眠和唤醒,也就是说当数据到来时,节点的接收器可以接收,这个需要传感器节点间精确的定时。
2 时间同步技术所关注的主要性能参数
时间同步技术的根本目的是为网络中节点的本地时钟提供共同的时间戳。对无线传感器
网络WSN(Wireless Sensor Networks)[1]
的时间同步应主要应考虑以下几个方面的问题:
(1)能量效率。同步的时间越长,消耗的能量越多,效率就越低。设计WSN的时间同步算法需以考虑传感器节点有效的能量资源为前提。
(2) 可扩展性和健壮性。时间同步机制应该支持网络中节点的数目或者密度的有效扩展,并保障一旦有节点失效时,余下网络有效且功能健全。
(3)精确度。针对不同的应用和目的,精确度的需求有所不用。
(4)同步期限。节点需要保持时间同步的时间长度可以是瞬时的,也可以和网络的寿命一样长。
(5)有效同步范围。可以给网络内所有节点提供时间,也可以给局部区域的节点提供时间。
(6)成本和尺寸。同步可能需要特定的硬件,另外,体积的大小也影响同步机制的实现。 (7)最大误差。一组传感器节点之间的最大时间差,或相对外部标准时间的最大差。 3 现有主要时间同步方法研究
时间同步技术是研究WSN的重要问题,许多具体应用都需要传感器节点本地时钟的同步,要求各种程度的同步精度。WSN具有自组织性、多跳性、动态拓扑性和资源受限性,尤其是节点的能量资源、计算能力、通信带宽、存储容量有限等特点,使时间同步方案有其特
殊的需求,也使得传统的时间同步算法不适合于这些网络[2]
。因此越来越多的研究集中在设
计适合WSN的时间同步算法[3]
。针对WSN,目前已经从不同角度提出了许多新的时间同步算法[4]
。
3.1 成对(pair-wise)同步的双向同步模式
代表算法是传感器网络时间同步协议TPSN(Timing-Sync Protocol for Sensor
Networks)[5~6]
。目的是提供WSN整个网络范围内节点间的时间同步。
该算法分两步:分级和同步。第一步的目的是建立分级的拓扑网络,每个节点有个级别。只有一个节点与外界通信获取外界时间,将其定为零级,叫做根节点,作为整个网络系统的时间源。在第二步,每个i级节点与i-1(上一级)级节点同步,最终所有的节点都与根节点同步,从而达到整个网络的时间同步。详细的时间同步过程如图 1 所示。
图1 TPSN 同步过程
设R为上层节点,S为下层节点,传播时间为d,两节点的时间偏差为θ。同步过程由节点R广播开始同步信息,节点S接收到信息以后,就开始准备时间同步过程。在T1时刻,节点S发送同步信息包,包含信息(T1),节点R在T2接收到同步信息,并记录下接收时间T2,这里满足关系:21TTd
节点R在T3时刻发送回复信息包,包含信息(T1,T2,T3)。在T4时刻S接收到同步信息包,满足关系:43TTd
最后,节点S利用上述2个时间表达式可计算出的值:(21)(43)2
TTTT
TPSN由于采用了在MAC层给同步包标记时间戳的方式,降低了发送端的不确定性,消除了访问时间带来的时间同步误差,使得同步效果更加有效。并且,TPSN算法对任意节点的同步误差取决于它距离根节点的跳数,而与网络中节点总数无关,使TPSN同步精度不会随节点数目增加而降级,从而使TPSN具有较好的扩展性。TPSN算法的缺点是一旦根节点失效,就要重新选择根节点,并重新进行分级和同步阶段的处理,增加了计算和能量开销,并随着跳数的增加,同步误差呈线性增长,准确性较低。另外,TPSN算法没有对时钟的频差进行估计,这使得它需要频繁同步,完成一次同步能量消耗较大。
3.2 接收方-接收方(Receiver-Receiver)模式
代表算法是参考广播时间同步协议RBS(Reference Broadcast Synchronization)[7]
。RBS是典型的基于接收方-接收方的同步算法,是Elson等人以“第三节点”实现同步的思想而提出的。该算法中,利用无线数据链路层的广播信道特性,基本思想为:节点(作为发
送者)通过物理层广播周期性地向其邻居节点(作为接收者)发送信标消息[10]
,邻居节点记录下广播信标达到的时间,并把这个时间作为参考点与时钟的读数相比较。为了计算时钟偏移,要交换对等邻居节点间的时间戳,确定它们之间的时间偏移量,然后其中一个根据接收
到的时间差值来修改其本地的时间,从而实现时间同步[11]
。
假如该算法在网络中有n个接收节点m个参考广播包,则任意一个节点接收到m个参考包后,会拿这些参考包到达的时间与其它n-1个接收节点接收到的参考包到达的时间进行比较,然后进行信息交换。图2为RBS算法的关键路径示意图。
网络接口卡
关键路径
接收者1
发送者
接收者2
图2 RBS算法的关键路径示意图
其计算公式如下:
,,1
1,:[,]()m
jkikkinjnoffsetijTTm
其中n表示接收者的数量,m表示参考包的数量,,rbT表示接收节点r接收到参考包b时的时钟。
此算法并不是同步发送者和接收者,而是使接收者彼此同步,有效避免了发送访问时间对同步的影响,将发送方延迟的不确定性从关键路径中排除,误差的来源主要是传输时间和接收时间的不确定性,从而获得了比利用节点间双向信息交换实现同步的方法更高的精确度。这种方法的最大弊端是信息的交换次数太多,发送节点和接收节点之间、接收节点彼此之间,都要经过消息交换后才能达到同步。计算复杂度较高,网络流量开销和能耗太大,不适合能量供应有限的场合。
3.3 发送方-接收方(Sender-Receiver)模式
基于发送方-接收方机制的时间同步算法的基本原理是:发送节点发送包含本地时间戳的时间同步消息,接收节点记录本地接收时间,并将其与同步消息中的时间戳进行比较,调整本地时钟。基于这种方法提出的时间同步算法有以下两种。
3.3.1 FTSP 算法[8]
泛洪时间同步协议FTSP(Flooding Time Synchronization Protocol)由Vanderbilt大学Branislav Kusy等提出,目标是实现整个网络的时间同步且误差控制在微秒级。该算法用单个广播消息实现发送节点与接收节点之间的时间同步。
其特点为:(1)通过对收发过程的分析,把时延细分为发送中断处理时延、编码时延、传播时延、解码时延、字节对齐时延、接收中断处理时延,进一步降低时延的不确定度;(2)通过发射多个信令包,使得接收节点可以利用最小方差线性拟合技术估算自己和发送节点的频率差和初相位差;(3)设计一套根节点选举机制,针对节点失效、新节点加入、拓扑变化
等情况进行优化,适合于恶劣环境[12]
。
FTSP算法对时钟漂移进行了线性回归分析。此算法考虑到在特定时间范围内节点时钟晶振频率是稳定的,因此节点间时钟偏移量与时间成线性关系,通过发送节点周期性广播时间同步消息,接收节点取得多个数据对,构造最佳拟合直线,通过回归直线,在误差允许的时间间隔内,节点可直接通过它来计算某一时间节点间的时钟偏移量而不必发送时间同步消息进行计算,从而减少了消息的发送次数并降低了系统能量开销。
FTSP结合TPSN和RBS的优点,不仅排除了发送方延迟的影响,而且对报文传输中接收方的不确定延迟(如中断处理时间、字节对齐时间、硬件编解码时间等)做了有效的估计。多跳的FTSP协议采用层次结构,根节点为同步源,可以适应大量传感器节点,对网络拓扑结构的变化和根节点的失效有健壮性,精确度较好。该算法通过采用MAC层时间戳和线性回归偏差补偿弥补相关的错误源,通过对一个数据包打多个时戳,进而取平均和滤除抖动较大的时戳,大大降低了中断和解码时间的影响。FTSP 采用洪泛的方式向远方节点传递时间基准节点的时间信息,洪泛的时间信息可由中转节点生成,因此误差累积不可避免。另外,FTSP的功耗和带宽的开销巨大。
3.3.2 DMTS 算法[9]
延迟测量时间同步DMTS (delay measurement time synchronization) 算法的同步机制是基于发送方-接收方的同步机制。DMTS 算法的实现策略是牺牲部分时间同步精度换取较低的计算复杂度和能耗,是一种能量消耗轻的时间同步算法。
DMTS算法的基本原理为:选择一个节点作为时间主节点广播同步时间,所有接收节点通过精确地测量从发送节点到接收节点的单向时间广播消息的延迟并结合发送节点时间戳,计算出时间调整值,接收节点设置它的时间为接收到消息携带的时间加上广播消息的传输延迟,调整自己的逻辑时钟值以和基准点达成同步,这样所有得到广播消息的节点都与主节点进行时间同步。发送节点和接收节点的时间延迟dt可由21()dtnttt得出。其中,nt为发送前导码和起始字符所需的时间,n为发送的信息位个数,t为发送一位所需时间;1t为接收节点在消息到达时的本地时间;2t为接收节点在调整自己的时钟之前的那一时刻记录的本地时间,21()tt是接收处理延迟。
DMTS 算法的优点是结合链路层打时间戳和时延估计等技术,消除了发送时延和访问时延的影响,算法简单,通信开销小。但DMTS算法没有估计时钟的频率偏差,时钟保持同步的时间较短,没有对位偏移产生的时间延迟进行估计,也没有消除时钟计时精度对同步精度的影响,因此其同步精度比FTSP略有下降,不适用于定位等要求高精度同步的应用。
基于发送方-接收方单向同步机制的算法在上述三类方法中需要发送的时间同步消息数目最少。发送节点只要发送一次同步消息,因而具有较低的网络流量开销和复杂度,减少了系统能耗。
4 结论
文章介绍了WSN时间同步算法的类型以及各自具有代表性的算法,分析了各算法的设计原理和优缺点。这些协议解决了WSN中时间同步所遇到的主要问题,但对于大型网络,已有的方法或多或少存在着一些问题:扩展性差、稳定性不高、收敛速度变慢、网络通信冲突、能耗增大。今后的研究热点将集中在节能和时间同步的安全性方面。这将对算法的容错性、有效范围和可扩展性提出更高的要求。
③ 网络中的ospf 是什么意思
[编辑本段]OSPF协议OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。与RIP相对,OSPF是链路状态路由协议,而RIP是距离矢量路由协议。
一。OSPF起源
I E T F为了满足建造越来越大基于I P网络的需要,形成了一个工作组,专门用于开发开放式的、链路状态路由协议,以便用在大型、异构的I P网络中。新的路由协议以已经取得一些成功的一系列私人的、和生产商相关的、最短路径优先( S P F )路由协议为基础, S P F在市场上广泛使用。包括O S P F在内,所有的S P F路由协议基于一个数学算法—D i j k s t r a算法。这个算法能使路由选择基于链路-状态,而不是距离向量。O S P F由I E T F在2 0世纪8 0年代末期开发,O S P F是S P F类路由协议中的开放式版本。最初的O S P F规范体现在RFC 11 3 1中。这个第1版( O S P F版本1 )很快被进行了重大改进的版本所代替,这个新版本体现在RFC 1247文档中。RFC 1247 OSPF称为O S P F版本2是为了明确指出其在稳定性和功能性方面的实质性改进。这个O S P F版本有许多更新文档,每一个更新都是对开放标准的精心改进。接下来的一些规范出现在RFC 1583、2 1 7 8和2 3 2 8中。O S P F版本2的最新版体现在RFC 2328中。最新版只会和由RFC 2138、1 5 8 3和1 2 4 7所规范的版本进行互操作。
链路是路由器接口的另一种说法,因此OSPF也称为接口状态路由协议。OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器使用这些最短路径构造路由表。
OSPF路由协议是一种典型的链路状态(Link-state)的路由协议,一般用于同一个路由域内。在这里,路由域是指一个自治系统(Autonomous System),即AS,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。在这个AS中,所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路由表的。
作为一种链路状态的路由协议,OSPF将链路状态广播数据包LSA(Link State Advertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。
二.OSPF的hello协议
1.Hello协议的目的:
1.用于发现邻居
2.在成为邻居之前,必须对Hello包里的一些参数协商成功
3.Hello包在邻居之间扮演着keepalive的角色
4.允许邻居之间的双向通信
5.它在NBMA(Nonbroadcast Multi-access)网络上选举DR和BDR
2.Hello Packet包含以下信息:
1.源路由器的RID
2.源路由器的Area ID
3.源路由器接口的掩码
4.源路由器接口的认证类型和认证信息
5.源路由器接口的Hello包发送的时间间隔
6.源路由器接口的无效时间间隔
7.优先级
8.DR/BDR
9.五个标记位(flag bit)
10.源路由器的所有邻居的RID
三.OSPF的网络类型
OSPF定义的5种网络类型:
1.点到点网络
2.广播型网络
3.非广播型(NBMA)网络
4.点到多点网络
5.虚链接(virtual link)
1.1.点到点网络, 比如T1线路,是连接单独的一对路由器的网络,点到点网络上的有效邻居总是可以形成邻接关系的,在这种网络上,OSPF包的目标地址使用的是224.0.0.5,这个组播地址称为AllSPFRouters.
2.1.广播型网络,比如以太网,Token Ring和FDDI,这样的网络上会选举一个DR和BDR,DR/BDR的发送的OSPF包的目标地址为224.0.0.5,运载这些OSPF包的帧的目标MAC地址为0100.5E00.0005;而除了DR/BDR以外的OSPF包的目标地址为224.0.0.6,这个地址叫AllDRouters.
3.1.NBMA网络, 比如X.25,Frame Relay,和ATM,不具备广播的能力,因此邻居要人工来指定,在这样的网络上要选举DR和BDR,OSPF包采用unicast的方式
4.1.点到多点网络 是NBMA网络的一个特殊配置,可以看成是点到点链路的集合. 在这样的网络上不选举DR和BDR.
5.1.虚链接: OSPF包是以unicast的方式发送
所有的网络也可以归纳成2种网络类型:
1.传输网络(Transit Network)
2.末梢网络(Stub Network )
四.OSPF的DR及BDR
在DR和BDR出现之前,每一台路由器和他的邻居之间成为完全网状的OSPF邻接关系,这样5台路由器之间将需要形成10个邻接关系,同时将产生25条LSA.而且在多址网络中,还存在自己发出的LSA 从邻居的邻居发回来,导致网络上产生很多LSA的拷贝,所以基于这种考虑,产生了DR和BDR.
DR将完成如下工作
1. 描述这个多址网络和该网络上剩下的其他相关路由器.
2. 管理这个多址网络上的flooding过程.
3. 同时为了冗余性,还会选取一个BDR,作为双备份之用.
DR BDR选取规则: DR BDR选取是以接口状态机的方式触发的.
1. 路由器的每个多路访问(multi-access)接口都有个路由器优先级(Router Priority),8位长的一个整数,范围是0到255,Cisco路由器默认的优先级是1优先级为0的话将不能选举为DR/BDR.优先级可以通过命令ip ospf priority进行修改.
2. Hello包里包含了优先级的字段,还包括了可能成为DR/BDR的相关接口的IP地址.
3. 当接口在多路访问网络上初次启动的时候,它把DR/BDR地址设置为0.0.0.0,同时设置等待计时器(wait timer)的值等于路由器无效间隔(Router Dead Interval).
DR BDR选取过程:
1. 在和邻居建立双向(2-Way)通信之后,检查邻居的Hello包中Priority,DR和BDR字段,列出所有可以参与DR/BDR选举的邻居.所有的路由器声明它们自己就是DR/BDR(Hello包中DR字段的值就是它们自己的接口地址;BDR字段的值就是它们自己的接口地址)
2. 从这个有参与选举DR/BDR权的列表中,创建一组没有声明自己就是DR的路由器的子集(声明自己是DR的路由器将不会被选举为BDR)
3. 如果在这个子集里,不管有没有宣称自己就是BDR,只要在Hello包中BDR字段就等于自己接口的地址,优先级最高的就被选举为BDR;如果优先级都一样,RID最高的选举为BDR
4. 如果在Hello包中DR字段就等于自己接口的地址,优先级最高的就被选举为DR;如果优先级都一样,RID最高的选举为DR;如果选出的DR不能工作,那么新选举的BDR就成为DR,再重新选举一个BDR。
5. 要注意的是,当网络中已经选举了DR/BDR后,又出现了1台新的优先级更高的路由器,DR/BDR是不会重新选举的
6. DR/BDR选举完成后,DRother只和DR/BDR形成邻接关系.所有的路由器将组播Hello包到AllSPFRouters地址224.0.0.5以便它们能跟踪其他邻居的信息,即DR将泛洪update packet到224.0.0.5;DRother只组播update packet到AllDRouter地址224.0.0.6,只有DR/BDR监听这个地址.
简洁的说:DR的筛选过程
1.优先级为0的不参与选举
2.优先级高的路由器为DR
3.优先级相同时,以router ID 大为DR。
router ID 以回环接口中最大ip为准。
若无回环接口,以真实接口最大ip为准。
4.缺省条件下,优先级为1
五.OSPF邻居关系
邻接关系建立的4个阶段:
1.邻居发现阶段
2.双向通信阶段:Hello报文都列出了对方的RID,则BC完成.
3.数据库同步阶段:
4.完全邻接阶段: full adjacency
邻居关系的建立和维持都是靠Hello包完成的,在一般的网络类型中,Hello包是每经过1个HelloInterval发送一次,有1个例外:在NBMA网络中,路由器每经过一个PollInterval周期发送Hello包给状态为down的邻居(其他类型的网络是不会把Hello包发送给状态为down的路由器的).Cisco路由器上PollInterval默认60s Hello Packet以组播的方式发送给224.0.0.5,在NBMA类型,点到多点和虚链路类型网络,以单播发送给邻居路由器。邻居可以通过手工配置或者Inverse-ARP发现.
OSPF路由器在完全邻接之前,所经过的几个状态:
1.Down:此状态还没有与其他路由器交换信息。首先从其ospf接口向外发送hello分组,还并不知道DR(若为广播网络)和任何其他路由器。发送hello分组是,使用组播地址224.0.0.5。
2.Attempt: 只适于NBMA网络,在NBMA网络中邻居是手动指定的,在该状态下,路由器将使用HelloInterval取代PollInterval来发 送Hello包.
3.Init: 表明在DeadInterval里收到了Hello包,但是2-Way通信仍然没有建立起来.
4.two-way: 双向会话建立,而 RID 彼此出现在对方的邻居列表中。(若为广播网络:例如:以太网。在这个时候应该选举DR,BDR。)
5.ExStart: 信息交换初始状态,在这个状态下,本地路由器和邻居将建立Master/Slave关系,并确定DD Sequence Number,路由器ID大的的成为Master.
6.Exchange: 信息交换状态:本地路由器和邻居交换一个或多个DBD分组(也叫DDP) 。DBD包含有关LSDB中LSA条目的摘要信息)。
7.Loading: 信息加载状态:收到DBD后,使用LSACK分组确认已收到DBD.将收到的信息同LSDB中的信息进行比较。如果DBD中有更新的链路状态条目,则想对方发送一个LSR,用于请求新的LSA 。
8.Full: 完全邻接状态,这种邻接出现在Router LSA和Network LSA中.
六.OSPF泛洪
Flooding采用2种报文
LSU Type 4---链路状态更新报文
LSA Type 5---链路状态确认报文
(补充下)
{
Hello Type 1 ---Hello协议报文
DD(Data Description) Type 2----链路数据描述报文
LSR Type 3----链路状态请求报文
}
在P-P网络,路由器是以组播方式将更新报文发送到组播地址224.0.0.5.
在P-MP和虚链路网络,路由器以单播方式将更新报文发送至邻接邻居的接口地址.
在广播型网络,DRother路由器只能和DR&BDR形成邻接关系,所以更新报文将发送到224.0.0.6,相应的DR以224.0.0.5泛洪LSA并且BDR只接收LSA,不会确认和泛洪这些更新,除非DR失效 在NBMA型网络,LSA以单播方式发送到DR BDR,并且DR以单播方式发送这些更新.
LSA通过序列号,校验和,和老化时间保证LSDB中的LSA是最新的,
Seq: 序列号(Seq)的范围是0x80000001到0x7fffffff.
Checksum: 校验和(Checksum)计算除了Age字段以外的所有字段,每5分钟校验1次.
Age: 范围是0到3600秒,16位长.当路由器发出1个LSA后,就把Age设置为0,当这个LSA经过1台路由器以后,Age就会增加1个LSA保存在LSDB中的时候,老化时间也会增加.
当收到相同的LSA的多个实例的时候,将通过下面的方法来确定哪个LSA是最新的:
1. 比较LSA实例的序列号,越大的越新.
2. 如果序列号相同,就比较校验和,越大越新.
3. 如果校验和也相同,就比较老化时间,如果只有1个LSA拥有MaxAge(3600秒)的老化时间,它就是最新的.
4. 如果LSA老化时间相差15分钟以上,(叫做MaxAgeDiff),老化时间越小的越新.
5. 如果上述都无法区分,则认为这2个LSA是相同的.
六.OSPF区域
区域长度32位,可以用10进制,也可以类似于IP地址的点分十进制分3种通信量
1. Intra-Area Traffic:域内间通信量
2. Inter-Area Traffic:域间通信量
3. External Traffic:外部通信量
路由器类型
1. Internal Router:内部路由器
2. ABR(Area Border Router):区域边界路由器
3. Backbone Router(BR):骨干路由器
4. ASBR(Autonomous System Boundary Router):自治系统边界路由器.
虚链路(Virtual Link)
以下2中情况需要使用到虚链路:
1. 通过一个非骨干区域连接到一个骨干区域.
2. 通过一个非骨干区域连接一个分段的骨干区域两边的部分区域.
虚链接是一个逻辑的隧道(Tunnel),配置虚链接的一些规则:
1. 虚链接必须配置在2个ABR之间.
2. 虚链接所经过的区域叫Transit Area,它必须拥有完整的路由信息.
3. Transit Area不能是Stub Area.
4. 尽可能的避免使用虚链接,它增加了网络的复杂程度和加大了排错的难度.
OSPF区域—OSPF的精华
Link-state 路由在设计时要求需要一个层次性的网络结构.
OSPF网络分为以下2个级别的层次:
骨干区域 (backbone or area 0)
非骨干区域 (nonbackbone areas)
在一个OSPF区域中只能有一个骨干区域,可以有多个非骨干区域,骨干区域的区域号为0。
各非骨干区域间是不可以交换信息的,他们只有与骨干区域相连,通过骨干区域相互交换信息。
非骨干区域和骨干区域之间相连的路由叫边界路由(ABRs-Area Border Routers),只有ABRs记载了各区域的所有路由表。各非骨干区域内的非ABRs只记载了本区域内的路由表,若要与外部区域中的路由相连,只能通过本区域的ABRs,由ABRs连到骨干区域的BR,再由骨干区域的BR连到要到达的区域。
骨干区域和非骨干区域的划分,大大降低了区域内工作路由的负担。
七.LSA类型
1.类型1:Router LSA:每个路由器都将产生Router LSA,这种LSA只在本区域内传播,描述了路由器所有的链路和接口,状态和开销.
2.类型2:Network LSA:在每个多路访问网络中,DR都会产生这种Network LSA,它只在产生这条Network LSA的区域泛洪描述了所有和它相连的路由器(包括DR本身).
3.类型3:Network Summary LSA :由ABR路由器始发,用于通告该区域外部的目的地址.当其他的路由器收到来自ABR的Network Summary LSA以后,它不会运行SPF算法,它只简单的加上到达那个ABR的开销和Network Summary LSA中包含的开销,通过ABR,到达目标地址的路由和开销一起被加进路由表里,这种依赖中间路由器来确定到达目标地址的完全路由(full route)实际上是距离矢量路由协议的行为
4.类型4:ASBR Summary LSA:由ABR发出,ASBR汇总LSA除了所通告的目的地是一个ASBR而不是一个网络外,其他同NetworkSummary LSA.
5.类型5:AS External LSA:发自ASBR路由器,用来通告到达OSPF自主系统外部的目的地,或者OSPF自主系统那个外部的缺省路由的LSA.这种LSA将在全AS内泛洪
6.类型6:Group Membership LSA
7.类型7:NSSA External LSA:来自非完全Stub区域(not-so-stubby area)内ASBR路由器始发的LSA通告它只在NSSA区域内泛洪,这是与LSA-Type5的区别.
8.类型8:External Attributes LSA
9.类型9:Opaque LSA(link-local scope,)
10.类型10:Opaque LSA(area-local scope)
11.类型11:Opaque LSA(AS scope)
八.OSPF末梢区域
由于并不是每个路由器都需要外部网络的信息,为了减少LSA泛洪量和路由表条目,就创建了末节区域,位于Stub边界的ABR将宣告一条默认路由到所有的Stub区域内的内部路由器.
Stub区域限制:
a) 所有位于stub area的路由器必须保持LSDB信息同步, 并且它们会在它的Hello包中设置一个值为0的E位(E-bit),因此这些路由器是不会接收E位为1的Hello包,也就是说在stub area里没有配置成stub router的路由器将不能和其他配置成stub router的路由器建立邻接关系.
b) 不能在stub area中配置虚链接(virtual link),并且虚链接不能穿越stub area.
c) stub area里的路由器不可以是ASBR.
d) stub area可以有多个ABR,但是由于默认路由的缘故,内部路由器无法判定哪个ABR才是到达ASBR的最佳选择.
e)NSSA允许外部路由被宣告OSPF域中来,同时保留Stub Area的特征,因此NSSA里可以有ASBR,ASBR将使用type7-LSA来宣告外部路由,但经过ABR,Type7被转换为Type5.7类LSA通过OSPF报头的一个P-bit作Tag,如果NSSA里的ABR收到P位设置为1的NSSA External LSA,它将把LSA类型7转换为LSA类型5.并把它洪泛到其他区域中;如果收到的是P位设置为0的NSSAExternal LSA,它将不会转换成类型5的LSA,并且这个类型7的LSA里的目标地址也不会被宣告到NSSA的外部NSSA在IOS11.2后支持.
f)totally stub area完全的stub区域,连类型3的LSA也不接收。
OSPF的包类型:
类型号 包 作用 可靠性
1 HELLO 1、用于发现邻居2、建立邻接关系3、维持邻接关系4、确保双向通信 5、选举DR和BDR
2 Database Description 数据库的描述 DBD 可靠
3 Link-state Request 链路状态请求包 LSR 可靠
4 Link-state Update 链路状态更新包 LSU 可靠
5 Link-state Acknowledment 链路状态确认包 LSACK
AS 自治系统(autonomous system):一组相互管理下的网络,它们共享同一个路由选择方法,自治系统由地区再划分并必须由IANA分配一个单独的16位数字。地区通常连接到其他地区,使用路由器创建一个自治系统。
OSPF单区域及多区域的基本配置命令
配置LOOPBACK接口地址
ROUTER(config)#interface loopback 0
ROUTER(config)#ip address IP地址 掩码
1.ospf区域的配置
router ospf 100
network 192.168.1.0 0.0.0.255 area 0
router-id 192.168.2.1 手动设置router-id
area 1 default-cost 50 手动设置开销
#clean ip ospf process
2.配置ospf明文认证
interface s0
ip ospf authentication
ip ospf authentication-key <密码>
3.配置ospf密文认证
interface s0
ip ospf authentication
ip ospf message-digest-key 1 md5 7 <密码>
4.debug ip ospf adj 开启ospf调试
show ip protocols
show ip ospf interface s0
5.手动配置接口花销,带宽,优先级
inter s0
ip ospf cost 200
bandwith 100
ip ospf priority 0
6.虚链路的配置
router ospf 100
area <area-id> virtual-link <router-id>
show ip ospf virtual-links
Show ip ospf border-routers
Show ip ospf process-id
Show ip ospf database
show ip ospf database nssa-external
7.OSPF路由归纳
Router ospf 1\\对ASBR外部的路由进行路由归纳
Summary-address 200.9.0.0 255.255.0.0
Router ospf 1\\执行AREA1到AREA0的路由归纳
Area 1 range 192.168.16.0 255.255.252.0
8.配置末节区域
IR area <area-id> stub
ABR area <area-id> stub
9.配置完全末节区域
IR area <area-id> stub
ABR area <area-id> stub no-summary
10.配置NSSA
ASBR router ospf 100
area 1 nssa
ABR router ospf 100
area 1 nssa default-information-orrginate