提高IS-IS路由协议中CSNP报文广播效率的方法
技术领域
本发明涉及一种提高IS-IS路由协议中CSNP报文广播效率的方法。
背景技术
IS-IS(IntermediateSystem-to-IntermediateSystemintra-domainroutinginformationexchangeprotocol,中间系统到中间系统的域内路由信息交换协议)路由协议不但适合应用于LAN的环境,而且更多使用在城域网的环境中,能够很好的进行大型网络中的路由管理。IS-IS需要处理的报文有四种:Hello报文、LSP(LinkStateProtocolDataUnit,链路状态协议数据单元)报文、CSNP(CompleteSequenceNumberPDU,完全序列码数据包)报文、PSNP(PartialSequenceNumberPDU,部分序列码数据包)报文。Hello报文用来建立邻接关系并选举出DIS(DesignatedIntermediateSystem,指派中间系统),LSP报文用来通告链路状态,CSNP报文用于DIS通告全网的LSP简要信息,PSNP报文用来请求指定的LSP信息。
CSNP报文的作用如图5所示。在图5中,包括多个RT(Router,路由器),RT-A、RT-B、RT-C组成了一个广播网络,RT-B被选举为DIS。首先RT-C向DIS发送自己的LSP,DIS经过接收RT-A、RT-B、RT-C的LSP,已经有了一个网络中完整的LSP数据库,其中DIS单独占有一条LSP。然后DIS在链路上广播CSNP报文,里面包含了LSP数据库中所有LSP的简要信息。当RT-C接收到CSNP报文后,跟自己的LSP数据库进行比较,发现自己只有RT-C的LSP,则向DIS发送PSNP请求报文,请求内容为RT-A、RT-B的LSP报文。最后,当DIS收到RT-C的请求信息时,会把RT-A、RT-B的LSP报文发送给RT-C。
如图6中,RT-A、RT-B、RT-C、RT-D和RT-E构成了一个广播网络,其中RT-B被选举为DIS。初始时,每个RT都只有自己的LSP,它们都只跟DIS进行LSP报文交互。因此,DIS最终会得到网络中所有RT的LSP,而其他RT仍然只有自己的LSP。
为了让其他RT能够获得整个网络的LSP,DIS默认10秒钟在链路上广播一次CSNP报文,此CSNP报文携带了DIS的LSP数据库中所有LSP的概要信息。当一个RT接收到此CSNP报文时,会将其中携带的LSP概要信息和自己LSP数据库中的LSP进行比较,若发现自己缺少哪些LSP,则会向DIS发送一个PSNP请求报文,其中包含了缺少的LSP简要信息。当DIS收到这个PSNP报文后,会向该RT发送其请求的LSP报文。
若一个广播网络中的设备成百上千时,一个CSNP报文的长度会达到几KB,而10秒钟发送一次的频率会消耗相当一部分的网络带宽。如果网络更加庞大,则交互的协议报文会更大,会更加加重网络带宽的负荷。
发明内容
本发明是为避免上述已有技术中存在的不足之处,提供提高IS-IS路由协议中CSNP报文广播效率的方法,以减少CSNP报文的发送次数,降低CSNP广播报文的带宽占用,提高广播效率。
本发明提供了提高IS-IS路由协议中CSNP报文广播效率的方法。
提高IS-IS路由协议中CSNP报文广播效率的方法,其特点是,广播网络中的DIS被选举出来后,DIS自身设置一个变量Time,该变量Time初始化清零;变量Time用来记录接收到表示网络拓扑变化的新LSP的时间;当DIS在时间X接收到表示网络拓扑变化的新的LSP1时,立即更新自己的LSP数据库,同时设置变量Time为当前时间X;延迟10秒钟后,发送CSNP报文,并清零变量Time;若在10秒钟之内,DIS没有接收到新的LSP报文,则向所有邻居发送特定的维持连接关系的Hello报文,Hello报文用来表示当前网络拓扑没有发生任何变化。
本发明的提高IS-IS路由协议中CSNP报文广播效率的方法的特点也在于:
在所述Hello报文中,在其中一个字段所在字节的其中一位设置为用于表示为当前网络拓扑没有发生任何变化的保留位。
提高IS-IS路由协议中CSNP报文广播效率的方法包括如下步骤:
步骤1:当DIS接收到新的LSP时,清空CSNPTable中的Pflag和Cflag,将LSP对应的Cflag置1;
步骤2:根据LSP来更新CSNPTable中存在的网络设备;若在10秒钟后,设置了Cflag的网络设备数目大于1,则将值为1的Cflag置零,然后向链路广播CSNP;若设置了Cflag的网络设备数目等于1,则向链路广播CSNP报文;
步骤3:DIS等待接收PSNP报文,每接收到一个PSNP报文,则在CSNPTable中将其对应网络设备的Pflag置1,然后发送PSNP报文请求的LSP;若在发送CSNP报文10秒后,CSNPTable中还有Pflag为0的表项,则每隔10秒钟在链路上广播一次CSNP报文,直到接收到该网络设备的PSNP请求报文或者接收到一个新的LSP;
步骤4:若DIS的某个邻接断开连接了,则表CSNPTable中该邻接对应的表项则立即被删除,和链路状态同步;
步骤5:若DIS新增加了某个邻接,则表CSNPTable中加入该邻接对应的表项,且在收到了该邻接的序列号为1的LSP报文后,向该邻接点广播CSNP报文。
与已有技术相比,本发明有益效果体现在:
本发明的提高IS-IS路由协议中CSNP报文广播效率的方法中,只有当DIS接收到表示网络拓扑变化的新的LSP时,才会在10秒钟后向链路上广播CSNP,否则就通过维持连接关系的Hello报文定时传送网络拓扑无变化的信息。这样就避免了无用的CSNP广播,并且不会影响正常的业务处理。
本发明提供了一种提高IS-IS路由协议中CSNP报文广播效率的方法,在使用IS-IS路由协议的网络中,可以减少CSNP报文的发送次数,降低CSNP广播报文的带宽占用,提高了广播效率。
附图说明
图1为本发明的提高IS-IS路由协议中CSNP报文广播效率的方法的流程图。
图2为本发明的提高IS-IS路由协议中CSNP报文广播效率的方法的变量Time的变化示意图。
图3为本发明的提高IS-IS路由协议中CSNP报文广播效率的方法的Hello报文的格式。
图4为本发明的提高IS-IS路由协议中CSNP报文广播效率的方法的CSNPTable表。
图5为现有技术中的由3个RT组成的广播网络中CSNP报文广播示意图。
图6为现有技术中的由5个RT组成的广播网络。
以下通过具体实施方式,并结合附图对本发明作进一步说明。
具体实施方式
参见图1,提高IS-IS路由协议中CSNP报文广播效率的方法,广播网络中的DIS被选举出来后,自身设置一个变量Time,变量Time初始化清零。变量Time用来记录接收到表示网络拓扑变化的新LSP的时间。
图2中,变量Time随时间变化和网络拓扑变化而变化。DIS在时间X接收到表示网络拓扑变化的新的LSP1时,立即更新自己的LSP数据库,同时设置变量Time为当前时间X。在之后的10秒内,DIS又接收到4个新的LSP报文,但是由于Time已经设置了时间X,因此不再对变量Time进行设置。延迟10秒钟后,发送CSNP报文,并清零变量Time。
若在10秒钟之内,DIS没有接收到新的LSP报文,则向所有邻居发送特定的维持连接关系的Hello报文,用来表示当前网络拓扑没有发生任何变化。)
在所述Hello报文中,在其中一个字段所在字节的其中一位设置为用于表示为当前网络拓扑没有发生任何变化的保留位。
如图3所示,该Hello报文格式如下:最右端为第0bit,最左端为第7bit。其中,PDUType字段所在字节的第7、6、5bit均为保留位,值均为0。将第5bit置1,表示为当前网络拓扑没有发生任何变化。通过为Hello报文保留位中增加信息,用来标记网络的变化状况,设备根据网络变化状态信息及新增的定时器处理CSNP的发送。本发明中,置位方法并不仅限于此一种,所有类似的置位都属于此种方法。本领域技术人员根据本发明揭示的内容,在本发明的基础上不必经过创造性劳动所进行的改进和修改,都应该在本发明的保护范围之内。
如图1为本发明的方法的流程图,步骤1当DIS接收到新的LSP时,清空CSNPTable中的Pflag和Cflag,将LSP对应的Cflag置1。
本步骤中CSNPTable如图4所示。图4中的表格为在DIS上组织的一张表CSNPTable。表项为区域网路中的每个网络设备的SystemID、两个标志位Pflag和Cflag。Pflag用于标识区域中的网络设备是否向DIS发送PSNP请求报文,Cflag用来标识10秒钟之内网络设备是否向DIS发送新的LSP报文。
步骤2根据LSP来更新CSNPTable中存在的网络设备。若在10秒钟后(由Time计时),设置了Cflag的网络设备数目大于1,则将值为1的Cflag置零,然后向链路广播CSNP;若设置了Cflag的网络设备数目等于1,则向链路广播CSNP报文。
步骤3DIS等待接收PSNP报文,每接收到一个PSNP报文,则在CSNPTable中将其对应网络设备的Pflag置一,然后发送PSNP报文请求的LSP。若在发送CSNP报文10秒后,CSNPTable中还有Pflag为0的表项,则每隔10秒钟在链路上广播一次CSNP报文,直到接收到该网络设备的PSNP请求报文或者接收到一个新的LSP。
步骤4若DIS的某个邻接断开连接了,则表CSNPTable中该邻接对应的表项则立即被删除,和链路状态同步。
步骤5若DIS新增加了某个邻接,则表CSNPTable中加入该邻接对应的表项,且在收到了该邻接的序列号为1的LSP报文后(当设备启动后产生的第一个LSP报文的序列号为1,表明这是一个新加入网络拓扑中的节点),向该邻接点广播CSNP报文。
利用本发明提供的方法,在网络设备中使用优化后的IS-IS协议,在IS-IS协议中,当网络拓扑状态发生变化时,DIS才广播CSNP报文。在IS-IS协议中,当网络拓扑状态不变化时,DIS向所有邻居发送特定的维持连接关系的Hello报文,用来表示当前网络拓扑没有发生任何变化。
在IS-IS网络协议中,默认在广播链路上10秒发送一次CSNP广播报文会消耗链路带宽,加重网络负担。本发明的提高IS-IS路由协议中CSNP报文广播效率的方法,能判断对方回应PSNP报文,减少CSNP报文交互时产生的流量,采用了网络拓扑没有变化的情况下少占带宽的通信机制,增加CSNP可靠性,可以大大降低CSNP报文对广播链路的带宽消耗及网络负担,提高链路带宽的利用率,降低维护成本。