一种LSP分片报文中发布信息的方法和设备
技术领域
本发明涉及通信技术领域,特别涉及一种LSP分片报文中发布信息的方法和设备。
背景技术
中间到中间系统(IntermediateSystemtoIntermediateSystem,IS-IS)协议主要通过链路状态数据协议单元(LinkStateProtocolDataUnit,LSP)报文通告拓扑及路由信息,以Dijkstra算法为基础进行拓扑计算,并在计算出来的拓扑的基础上进行IPv4/IPv6路由计算,并用于指导数据报文的转发。
目前IS-IS协议中规定,每一个IS-IS系统最多可以发布256个LSP分片,在每一个LSP分片内的链路状态信息即数据信息,是以类型长度值(TLV)的格式存储的,而每一个LSP分片的大小受接口中最小的最大传输单元(MaximumTransmissionUnit,MTU)的限制,因此造成了IS-IS系统发布的路由信息总量的限制,待发布的链路状态信息较多时,会造成LSP满的情况,某些链路状态信息不能在LSP中发布。
目前IS-IS系统的LSP空间的限制可以通过配置虚拟系统来扩展LSP的空间,每一个虚拟系统或原始系统所发布的所有的256个LSP分片,称为一个LSP集合(SET)。
目前IS-IS协议实现中在路由信息变化时,LSP分片报文中数据信息从满到不满的情况下不支持将原来没有在LSP中发布的路由信息重新发布的处理,由于LSP分片报文中的数据信息是以TLV格式存储的,需要用户执行重启(reset)操作重新生成LSP信息,会造成IS-IS邻居的震荡及路由学习的震荡,影响网络服务的稳定性。
由上可见,LSP分片报文的数据信息以TLV格式存储,既不利于数据维护,也不利于重建LSP分片报文。
发明内容
有鉴于此,本发明提供一种LSP分片报文中发布信息的方法和设备,能够有效、灵活的维护发布LSP分片报文的数据信息和控制信息。
为解决上述技术问题,本发明的技术方案是这样实现的:
一种LSP分片报文中发布信息的方法,应用于IS-IS系统中,将待发布的数据信息按类型存储在数据信息数据库中,并根据所述存储的数据信息及当前进程环境动态生成控制信息存储在控制信息数据库中,包括:
根据所述存储在控制信息数据库中的控制信息,将属于同一LSP分片中的存储在数据信息数据库中的数据信息按对应类型封装生成LSP分片报文,并发布。
一种设备,可应用于IS-IS系统中,该设备包括:存储单元、生成单元和发布单元;
所述存储单元,用于将待发布的数据信息按类型存储在数据信息数据库中;将所述生成单元生成的控制信息存储在控制信息数据库中;
所述生成单元,用于根据所述存储单元存储的数据信息及当前进程环境动态生成控制信息;根据所述存储单元存储在控制信息数据库中的控制信息,将属于同一LSP分片中的存储在数据信息数据库中的数据信息按对应类型封装生成LSP分片报文;
所述发布单元,用于将所述生成单元生成的LSP分片报文发布。
综上所述,本发明通过将待发布的数据信息以及发布该数据信息对应的控制信息分离,并分别存储,在发布LSP分片报文时,根据控制信息将对应的数据信息封装生成LSP分片报文发布,能够有效、灵活的维护发布LSP分片报文的数据信息和控制信息。
附图说明
图1为本发明具体实施例中数据信息存储结构示意图;
图2为本发明具体实施例中控制信息存储结构示意图;
图3为本发明具体实施例中数据信息和控制信息的映射关系结构示意图;
图4为本发明具体实施例一中LSP分片报文发布信息的方法流程图;
图5为本发明具体实施例二中LSP分片报文发布信息的方法流程示意图;
图6为本发明具体实施例三中LSP分片报文发布信息的方法流程示意图;
图7为本发明具体实施例中应用于上述技术的设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
本发明实施例中提出一种LSP分片报文中发布信息的方法,该方法应用于IS-IS系统中。将待发布的数据信息以及发布该数据信息对应的控制信息分离,并分别存储,在发布LSP分片报文时,根据控制信息将对应的数据信息封装生成LSP分片报文发布,能够有效、灵活的维护发布LSP分片报文的数据信息和控制信息。
IS-IS系统中任一需要通过LSP分片报文发布信息的设备,将待发布的数据信息按类型存储在数据信息数据库中,并根据所述存储的数据信息及当前进程环境动态生成控制信息存储在控制信息数据库中,这样将控制信息和数据信息分离存储。控制信息中保存了数据信息的发布信息,其中,该发布信息包括数据信息在哪一片LSP报文中发布,在这个LSP分片报文中的位置,占用报文的长度,及各LSP分片中包括了那些数据信息,不同类型的数据信息之间的优先关系等。
参见图1,图1为本发明具体实施例中数据信息存储结构示意图。图1中各数据信息按数据信息的类型,如区域信息(AREA)、协议支持信息(PROTOCOL)、邻居信息(NBR)和路由前缀信息(PREFIX)等,将数据信息存储在数据信息数据库,即TLV_DB的TLV_DATA库中,其中,数据信息的类型还包括路由ID和认证信息等,由于图1表示的限制,不再将所述数据信息的类型一一举例。
参见图2,图2为本发明具体实施例中控制信息存储结构示意图。控制信息是根据数据信息,并结合当前进程环境动态生成的,其特点时根据IS-IS进程环境的不同做自适应处理,其数据变化较大,存储在控制信息数据库,即TLV_DB的CTRL_DATA库中。图2中可见,所有数据信息的控制信息以多个LSP单元(LSP_SET)结构存储,在每个LSP单元中存储多个LSP分片的控制信息,各LSP分片中存储该LSP分片的各数据信息对应的控制信息。
参见图3,图3为本发明具体实施例中数据信息和控制信息的映射关系结构示意图。由图3可见,控制信息对应的控制数据与数据信息对应的数据存在映射关系。
该设备生成多少个LSP分片,及每一个分片中发布的数据信息有当前进程环境决定。在具体实现时,报文的分片,某个分片中的各数据信息的位置根据协议约束确定,不发明不做任何修改。如认证信息必须在每一个LSP中存在,区域、协议支持等TLV类型的数据信息只能存在于LSP-0分片中,及各类TLV类型间的优先级等,通过控制信息将LSP中发布的数据信息和所属的LSP分片建立关联关系。如图1中虚线联系,数据信息节点通过控制信息TLV_CTRL_DATA库决定在那个LSP中发布,及图2中LSP报文单元LSP_PDU和LSP控制信息LSP_DESC间的关联关系等。
实施例一
参见图4,图4为本发明具体实施例一中LSP分片报文发布信息的方法流程图。具体步骤为:
步骤401,设备根据存储在控制信息数据库中的控制信息,将属于同一LSP分片中的存储在数据信息数据库中的数据信息按对应类型封装生成LSP分片报文。
现有实现中LSP分片的数据信息是以TLV格式存储的,在发布LSP报文时,直接封装在LSP报文中,而本发明具体实施例中将存储在数据库中的数据信息按存储类型封装为TLV,再封装在LSP报文中,需要维护的是TLV格式的数据信息。
步骤402,该设备将生成的LSP报文发布。
实施例二
参见图5,图5为本发明具体实施例二中LSP分片报文发布信息的方法流程示意图。具体步骤为:
步骤501,当任一所述LSP分片报文对应的存储在数据信息数据库中的数据信息变化时,设备根据该LSP分片报文当前存储在数据信息数据库中的数据信息及当前进程环境重新动态生成控制信息,并更新该LSP分片报文对应的存储在控制信息数据库中的控制信息。
本发明的具体实施例中当任一LSP分片的数据信息变化时,不需要重启(reset)操作重新生成所有LSP分片报文,只需重建(rebuild)该LSP分片报文即可。具体操作时由于数据信息和控制信息的分离存储,只需根据变化后的数据信息即当前的数据信息,并结合当前进程环境重新动态生成该LSP分片报文,并发布。
步骤501中的数据信息的变化包括:数据信息的删除、添加、修改,数据信息的类型的变化,以及数据信息的优先级的变化。
当该LSP分片报文的数据信息删除时,本发明具体实施例中不是将删除的数据信息在该LSP分片中的位置空闲,而是重新生成该LSP分片报文的控制信息,并根据重新生成的控制信息将对应的数据信息封装生成LSP分片报文。
当该LSP分片报文中的数据信息添加或修改时,则根据当前数据库中该LSP分片报文对应的数据信息,以及当前进程环境重新动态生成该LSP分片报文的控制信息,并更新原先存储在数据库中的该LSP分片报文对应的控制信息,并根据重新生成的控制信息将对应的数据信息封装生成LSP分片报文。
当数据信息的类型的变化,和/或数据信息的优先级的变化等均重新生成控制信息和该LSP分片报文,这里不再一一赘述。由此可见,本发明具体实施例中某一LSP分片的数据信息发生变化时,需重建该LSP分片报文并发布,并且仅仅是重建该LSP报文,不会影响其他LSP分片报文,更不会像现有实现中执行重启操作,重新生成LSP信息,进而造成IS-IS邻居的震荡及路由学习的震荡,影响网络服务的稳定性。
其中,数据信息的类型包括:区域信息、协议支持信息、邻居信息、路由ID、认证信息、路由前缀信息等,在存储数据时根据该类型存储,在封装LSP分片报文时,也根据数据信息对应的类型进行封装。
步骤502,该设备根据当前存储在控制信息数据库中该LSP分片报文对应的控制信息,将属于该LSP分片的当前存储在数据信息数据库中的数据信息按对应类型封装生成LSP分片报文,并发布。
该设备重新生成控制信息时,根据新的控制信息,即当前存储在控制信息数据库中该LSP分片对应的数据信息,将当前存储在数据信息数据库中的数据信息按存储类型封装生成新的LSP分片。
本实施例中通过控制信息的精细控制,实现数据信息的变化影响最小化,即某一LSP分片报文中的数据信息变化,仅影响该LSP分片报文。
实施例三
参见图6,图6为本发明具体实施例三中LSP分片报文发布信息的方法流程示意图。具体步骤为:
步骤601,当该LSP分片中的数据信息由满到不满时,根据该LSP分片报文当前存储在数据信息数据库中的数据信息及当前进程环境重新动态生成控制信息,并更新该LSP分片报文对应的存储在控制信息数据库中的控制信息。
步骤602,该设备根据当前存储在控制信息数据库中该LSP分片报文对应的控制信息,将属于该LSP分片的当前存储在数据信息数据库中的数据信息按对应类型封装生成LSP分片报文,并发布。
本实施例中当LSP分片中的数据信息由满到不满时,会根据当前的数据信息重新生成控制信息,进而重新生成LSP分片报文,这样原先由于该LSP分片已满,若存在未能发布的数据信息,则当该LSP分片报文中的数据信息不满时,通过重新生成LSP分片报文将原先未能发布的,且根据协议规则重新的生成LSP分片报文时能够携带的数据信息进行发布,当然,如果原先未发布的数据信息优先级较低,且该次重新生成的LSP分片报文中的数据信息已满,其仍然不能被发布,即本发明的具体实现是在IS-IS协议规则基础上实现的。
本实施例中通过控制信息的精细控制,实现LSP分片报文中数据信息满到不满的情况下,支持动态重建,将由于数据信息满而未能发布的数据信息进行发布。
本发明具体实施例中基于同样的发明构思,还提出一种设备,可应用于IS-IS系统中。参见图7,图7为本发明具体实施例中应用于上述技术的设备的结构示意图。该设备包括:存储单元701、生成单元702和发布单元703。
存储单元701,用于将待发布的数据信息按类型存储在数据信息数据库中;将生成单元702生成的控制信息存储在控制信息数据库中。
生成单元702,用于根据存储单元701存储的数据信息及当前进程环境动态生成控制信息;根据存储单元701存储在控制信息数据库中的控制信息,将属于同一LSP分片中的存储在数据信息数据库中的数据信息按对应类型封装生成LSP分片报文。
发布单元703,用于将生成单元702生成的LSP分片报文发布。
较佳地,
生成单元702,进一步用于当任一所述LSP分片报文对应的在存储单元701中存储的数据信息数据库中的数据信息变化时,根据该LSP分片报文当前存储在数据信息数据库中的数据信息及当前进程环境重新动态生成控制信息;根据当前存储在控制信息数据库中该LSP分片报文对应的控制信息,将属于该LSP分片报文的当前存储在数据信息数据库中的数据信息按对应类型封装生成LSP分片报文。
存储单元701,进一步用于根据生成单元702重新动态生成的控制信息,更新该LSP分片报文对应的存储在控制信息数据库中的控制信息。
发布单元703,进一步用于将生成单元702重新生成的LSP分片报文发布。
较佳地,
所述数据信息的变化包括:数据信息的删除、添加、修改,数据信息的类型的变化,以及数据信息的优先级的变化。
较佳地,
所述数据信息的类型包括:区域信息、协议支持信息、邻居信息、路由ID和路由前缀信息。
较佳地,
生成单元702,进一步用于当该LSP分片中的数据信息由满到不满时,根据该LSP分片报文当前存储在数据信息数据库中的数据信息及当前进程环境重新动态生成控制信息;根据当前存储在控制信息数据库中该LSP分片报文对应的控制信息,将属于该LSP分片报文的当前存储在数据信息数据库中的数据信息按对应类型封装生成LSP分片报文。
存储单元701,进一步用于根据生成单元702重新动态生成的控制信息,更新该LSP分片报文对应的存储在控制信息数据库中的控制信息。
发布单元703,进一步用于将生成单元702重新生成的LSP分片报文发布。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
综上所述,本发明具体实施例中将待发布的数据信息以及发布该数据信息对应的控制信息分离,并分别存储,在发布LSP分片报文时,根据控制信息将对应的数据信息封装生成LSP分片报文发布,能够有效、灵活的维护发布LSP分片报文的数据信息和控制信息。
在某一LSP分片报文的数据信息变化时,仅重新生成该LSP分片报文并发布即可,实现了数据信息变化影响的最小化。
当某一LSP分片报文的数据信息由满到不满时,会重建该LSP分片报文,将之前由于没有空间未能发布的数据信息进行发布。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。