一种多标识网络下的链路状态路由方法转让专利

申请号 : CN202211390799.0

文献号 : CN115426308B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李挥王锋白鹤吴政琪裴欣源

申请人 : 北京大学深圳研究生院

摘要 :

本发明提供一种多标识网络下的链路状态路由方法,包括:步骤S1,设计用于传播路由可达性信息的链路状态通告,所述链路状态通告包括邻接链路状态通告和名称链路状态通告;步骤S2,通过分层命名的方式对链路状态路由协议进行命名,通过层级化字符串的形式来表示名称前缀;步骤S3,定期发送Hello协议探测兴趣包实现对邻居路由器活动状态的探测;步骤S4,通过多标识路由器中的路由更新触发生成新的链路状态通告;步骤S5,基于键值数据库对所述链路状态通告进行存储;步骤S6,基于多路径计算实现路由计算。本发明实现了多标识网络中的域内动态路由协议,能够大幅度地减少网络流量开销和网络检索延迟,并有效地提高了其可扩展性能。

权利要求 :

1.一种多标识网络下的链路状态路由方法,其特征在于,包括:

步骤S1,设计用于传播路由可达性信息的链路状态通告,所述链路状态通告包括邻接链路状态通告和名称链路状态通告;

步骤S2,通过分层命名的方式对链路状态路由协议进行命名,在命名过程中,通过层级化字符串的形式来表示名称前缀;

步骤S3,定期发送Hello协议探测兴趣包实现对邻居路由器活动状态的探测;

步骤S4,通过多标识路由器中的路由更新触发生成新的链路状态通告;

步骤S5,基于键值数据库对所述链路状态通告进行存储;

步骤S6,基于多路径计算实现路由计算;

所述步骤S4中,通过多标识路由器中的路由更新触发生成新的链路状态通告的生成和存储,该多标识路由器将更新的链路状态通告类型及序列号信息通过GPPkt推送给所有邻居路由器,GPPkt指的是用于承载推式通信语义的通用推式包;邻居路由器中的多标识路由器在接收到更新通知后,通过兴趣包向所述多标识路由器拉取此次更新的内容;最后,邻居路由器中的多标识路由器将此次更新所获得的新的链路状态通告安装到链路状态数据库中。

2.根据权利要求1所述的多标识网络下的链路状态路由方法,其特征在于,所述步骤S1中,所述邻接链路状态通告用于提供网络拓扑信息,并用于存储所述多标识路由器的邻居路由器列表和邻接链路开销;所述名称链路状态通告用于存储以层级化字符串形式来命名的路由可达性信息,并通过所述多标识路由器实现网络分组的寻址,所述路由可达性信息包括多标识网络中的路由器、网络服务以及数据内容。

3.根据权利要求1所述的多标识网络下的链路状态路由方法,其特征在于,所述步骤S1中,所述链路状态通告还包括扩展链路状态通告,通过添加所述扩展链路状态通告实现新的链路状态通告类型。

4.根据权利要求1至3任意一项所述的多标识网络下的链路状态路由方法,其特征在于,所述步骤S2中,所述名称前缀中,名称用于表示实体身份的ID,所述实体身份包括网络分组、多标识路由器、数据以及服务的特定实体身份,前缀用于实现网络分组的标识名称匹配;当多标识路由器接收到网络分组时,先提取网络分组的标识名称,并与转发信息表中的前缀进行最长前缀匹配,然后根据匹配结果对网络分组进行转发操作。

5.根据权利要求1至3任意一项所述的多标识网络下的链路状态路由方法,其特征在于,所述步骤S2中,对链路状态路由协议进行命名的过程中,通过///对多标识路由器的名称进行命名,其中,/表示层级化字符串的分隔符,Network Field表示网络字段,Site Field表示网站字段,Router Field表示路由器字段;通过/localhop//alrp/LsaUpdate对LSA更新通知前缀进行命名,其中,LSA表示链路状态通告;localhop为用于表示该前缀可以被非本机路由器的远程多标识路由器上运行的应用程序进行注册的固定字符串;alrp为用于表示多标识网络的适应性链路状态路由协议的固定字符串;LsaUpdate表示链路状态通告的更新通知;通过/localhop//alrp/LsaUpdate////对LSA更新通知包的目的标识名称进行命名,其中,LSA Type表示链路状态通告类型字段,LSA Sequence Number表示链路状态通告序列号字段;通过/localhop//alrp/LsaUpdate//对LSA更新通知包的源标识名称进行命名;通过/localhop//alrp/LSA对LSA前缀进行命名;通过/localhop//alrp/LSA////对LSA兴趣包名称进行命名;通过////alrp/INFO对Hello协议探测前缀进行命名,其中,INFO为用于表示Hello协议的信息探测前缀的固定字符串;通过////alrp/INFO/< Base62 encoded string of the MIR Name of the sender>对Hello协议探测兴趣包名称进行命名,其中,Base62 encoded string of the MIR Name of the sender表示存储了Hello协议探测兴趣包发送者的路由器名称为Base62编码字符串的字段。

6.根据权利要求1至3任意一项所述的多标识网络下的链路状态路由方法,其特征在于,在多标识路由器上运行的路由协议进程中,通过序列号管理器为每种类型的链路状态通告分配一个初始的序列号,当该链路状态通告更新时,则递增其序列号;所述序列号用于表示所述链路状态通告的新鲜状态,在路由更新触发时,所述多标识路由器的多个链路状态通告更新通过一个最新序列号发布。

7.根据权利要求1至3任意一项所述的多标识网络下的链路状态路由方法,其特征在于,所述步骤S5中,基于B+树的键值数据库对所述链路状态通告进行封装和存储,所述键值数据库存储在内存中,所述键值数据库用于作为链路状态数据库的存储引擎。

8.根据权利要求1至3任意一项所述的多标识网络下的链路状态路由方法,其特征在于,所述步骤S6包括以下子步骤:

步骤S601,从链路状态数据库中获取所有邻居路由器,获取邻居路由器的数量NUM和邻接矩阵MATRIX,构建出网络拓扑;

步骤S602,依次遍历多标识路由器的每条邻接链路,分别将每条邻接链路作为唯一可用邻接链路,运行Dijkstra算法计算最短路径,并将路由计算结果依次加入到路由表中;

步骤S603,返回包含路由计算结果的路由表。

9.根据权利要求8所述的多标识网络下的链路状态路由方法,其特征在于,所述步骤S602中,所述路由计算结果还反馈至名称前缀表中,并在所述步骤S603实现返回,所述名称前缀表用于存储名称前缀所对应的转发引导信息;所述路由计算结果反馈至路由表和名称前缀表中,并通过管理通信包传送至所述多标识路由器上的转发守护进程,进而引导网络分组的转发。

说明书 :

一种多标识网络下的链路状态路由方法

技术领域

[0001] 本发明涉及一种链路状态路由方法,尤其涉及一种多标识网络下的链路状态路由方法。

背景技术

[0002] 当前互联网使用TCP/IP的网络架构。TCP/IP架构以主机为中心,使用推式通信语义进行网络通信。随着用户需求的多样化,基于TCP/IP架构的网络服务逐渐不能满足一些应用场景。信息中心网络(Information‑Centric Networking,ICN)的出现解决了TCP/IP网络遇到的一些问题。信息中心网络以内容为中心,对数据进行加密,使用拉式通信语义进行网络通信,在移动性场景等多种场景中效果显著。内容中心网络(Content‑Centric Networking,CCN)和命名数据网络(Named Data Networking,NDN)遵循了信息中心网络的以内容为中心的设计理念,是两种更具活力的网络架构。
[0003] 信息中心网络以单一的拉式语义为通信语义。在信息中心网络中,网络层为上层应用只提供单一的通信语义,这使得一些网络功能的实现变得复杂。此外,信任机制的构建也一直是研究热点,并没有得到很好的解决。多标识网络(Multi‑Identifier Network,MIN)正是在这个背景下被提出来的。
[0004] 多标识网络采用推式和拉式两种通信语义,大幅度地发挥了网络设备的性能,并为上层应用提供了更加多样化的使用接口。多标识网络设计了一整套基于密码学、身份认证以及区块链等技术的安全防护机制,使得网络数据更为安全。同时,多标识网络的安全机制也为解决信息中心网络的信任锚问题提供了一种新的解决思路。由于提出了新的多标识网络,那么,必然需要对应的路由协议来实现该网络。
[0005] 路由协议旨在引导网络中数据包的转发。域内路由协议则仅在网络中的某个自治域内支持路由功能。TCP/IP网络中的路由协议主要可以分为两大类别,分别是距离矢量路由协议(distance‑vector routing protocol)和链路状态路由协议(link‑state routing protocol)。
[0006] 距离矢量路由协议采用距离矢量算法来决定报文交换的路径。在这类协议中,路由器需要周期性与相邻的路由器交换更新通告,动态建立路由表,以决定最短路径。网络中的路由器从自己的邻居路由器得到路由信息,并将这些路由信息连同自己的本地路由信息发送给其他邻居,路由信息经过层级传递,最终达到全网同步。在初始状态下,每个路由器只知道与自己直接相连的网络连接状况,并根据从邻居得到的路由信息更新自己的路由。距离矢量协议实现简单,但是它的收敛速度慢,报文量大,占用较多网络开销,并且需要为避免路由环路做各种特殊处理。
[0007] 链路状态路由协议比距离矢量路由协议更为复杂,但基本功能和配置相对简单,算法更易理解。链路状态路由协议从网络或者网络的限定区域内的所有其他路由器处收集信息,最终每个链路状态路由器上都有一个相同的网络拓扑信息。在链路状态路由协议中,每台路由器都可以独立地计算各自的最优路径。
[0008] 信息中心网络中的路由协议除了包括类似TCP/IP架构中的路由协议类型,还包括基于地理位置信息的路由协议和基于控制器的路由协议。但是由于设计上的不同,特别是通信语义上的差异,TCP/IP网络和信息中心网络中的路由协议并不能直接应用在多标识网络中。
[0009] 其中,OSPF(Open Shortest Path First)是TCP/IP网络中的一种链路状态路由协议。每个路由器将其已知的链路状态信息告诉邻居,收敛以后,网络上每个路由器都同步了相同的链路状态。每台路由器根据获取到的全网链路状态,独立计算路由。
[0010] OSPF通过组播hello包来发现邻居,所有邻居都可能跟自己交换链路状态信息。OSPF会在广播型网络中选举DR(Designated Router,指定路由器)和BDR(Backup Designated Router,备用指定路由器),网络内所有路由器只与DR和BDR建立邻接关系。每个路由器都有一个LSDB(Link State Database,链路状态数据库),其中存储了许多条LSA(Link‑State Advertisement,链路状态通告)。LSA用于描述链路状态信息,如网络中某台路由器的编号、其直连的网段以及链路开销等。链路状态每隔30分钟更新一次。如果网络发生变化,则不需等待周期触发,直接向邻居发送更新信息。OSPF是一种运行在TCP/IP网络中的路由协议,但是不能直接运行在多标识网络中。OSPF基于TCP/IP网络中的推式通信语义进行网络通信,无法利用多种通信语义来实现更为高效和安全的链路状态传播。
[0011] 另外,NLSR(Named Data Networking Link State Routing Protocol,命名数据网络链路状态路由协议)是一种为命名数据网络而设计的链路状态路由协议。NLSR运行在命名数据网络中,这使得它只能使用拉式通信语义进行网络通信。NLSR将LSA更新信息的同步功能交给单独的同步协议去处理,从而简化了路由计算部分的设计工作。NLSR先后使用了ChronoSync以及PSync等同步协议,来解决LSA传播问题。
[0012] 但是,NLSR并不能直接运行在多标识网络中。此外,由于NLSR基于拉式语义进行网络通信,不能利用多种通信语义来提高链路状态传播的效率。由于拉式语义和路由信息传播之间存在语义隔阂,NLSR剥离了同步协议,进而也增加了同步协议设计所需的额外工作,其总体设计会变得更加复杂。

发明内容

[0013] 本发明所要解决的技术问题是需要提供一种多标识网络下的链路状态路由方法,旨在为多标识网络这一新型网络提供链路状态路由协议,以提供完整且可操作性强的域内动态路由技术方案。
[0014] 对此,本发明提供一种多标识网络下的链路状态路由方法,包括:
[0015] 步骤S1,设计用于传播路由可达性信息的链路状态通告,所述链路状态通告包括邻接链路状态通告和名称链路状态通告;
[0016] 步骤S2,通过分层命名的方式对链路状态路由协议进行命名,在命名过程中,通过层级化字符串的形式来表示名称前缀;
[0017] 步骤S3,定期发送Hello协议探测兴趣包实现对邻居路由器活动状态的探测;
[0018] 步骤S4,通过多标识路由器中的路由更新触发生成新的链路状态通告;
[0019] 步骤S5,基于键值数据库对所述链路状态通告进行存储;
[0020] 步骤S6,基于多路径计算实现路由计算。
[0021] 本发明的进一步改进在于,所述步骤S1中,所述邻接链路状态通告用于提供网络拓扑信息,并用于存储所述多标识路由器的邻居路由器列表和邻接链路开销;所述名称链路状态通告用于存储以层级化字符串形式来命名的路由可达性信息,并通过所述多标识路由器实现网络分组的寻址,所述路由可达性信息包括多标识网络中的路由器、网络服务以及数据内容。
[0022] 本发明的进一步改进在于,所述步骤S1中,所述链路状态通告还包括扩展链路状态通告,通过添加所述扩展链路状态通告实现新的链路状态通告类型。
[0023] 本发明的进一步改进在于,所述步骤S2中,所述名称前缀中,名称用于表示实体身份的ID,所述实体身份包括网络分组、多标识路由器、数据以及服务的特定实体身份,前缀用于实现网络分组的标识名称匹配;当多标识路由器接收到网络分组时,先提取网络分组的标识名称,并与转发信息表中的前缀进行最长前缀匹配,然后根据匹配结果对网络分组进行转发操作。
[0024] 本发明的进一步改进在于,所述步骤S2中,对链路状态路由协议进行命名的过程中,通过///对多标识路由器的名称进行命名,其中,/表示层级化字符串的分隔符,Network Field表示网络字段,Site Field表示网站字段,Router Field表示路由器字段;通过/localhop//alrp/LsaUpdate对LSA更新通知前缀进行命名,其中,LSA表示链路状态通告;localhop为用于表示该前缀可以被非本机路由器的远程多标识路由器上运行的应用程序进行注册的固定字符串;alrp为用于表示多标识网络的适应性链路状态路由协议的固定字符串;LsaUpdate表示链路状态通告的更新通知;通过/localhop//alrp/LsaUpdate////对LSA更新通知包的目的标识名称进行命名,其中,LSA Type表示链路状态通告类型字段,LSA Sequence Number表示链路状态通告序列号字段;通过/localhop//alrp/LsaUpdate//对LSA更新通知包的源标识名称进行命名;通过/localhop//alrp/LSA对LSA前缀进行命名;通过/localhop//alrp/LSA////对LSA兴趣包名称进行命名;通过////alrp/INFO对Hello协议探测前缀进行命名,其中,INFO为用于表示Hello协议的信息探测前缀的固定字符串;通过////alrp/INFO/< Base62 encoded string of the MIR Name of the sender>对Hello协议探测兴趣包名称进行命名,其中,Base62 encoded string of the MIR Name of the sender表示存储了Hello协议探测兴趣包发送者的路由器名称为Base62编码字符串的字段。
[0025] 本发明的进一步改进在于,所述步骤S4中,通过多标识路由器中的路由更新触发生成新的链路状态通告的生成和存储,该多标识路由器将更新的链路状态通告类型及序列号信息通过GPPkt推送给所有邻居路由器,GPPkt指的是用于承载推式通信语义的通用推式包;邻居路由器中的多标识路由器在接收到更新通知后,通过兴趣包向所述多标识路由器拉取此次更新的内容;最后,邻居路由器中的多标识路由器将此次更新所获得的新的链路状态通告安装到链路状态数据库中。
[0026] 本发明的进一步改进在于,在多标识路由器上运行的路由协议进程中,通过序列号管理器为每种类型的链路状态通告分配一个初始的序列号,当该链路状态通告更新时,则递增其序列号;所述序列号用于表示所述链路状态通告的新鲜状态,在路由更新触发时,所述多标识路由器的多个链路状态通告更新通过一个最新序列号发布。
[0027] 本发明的进一步改进在于,所述步骤S5中,基于B+树的键值数据库对所述链路状态通告进行封装和存储,所述键值数据库存储在内存中,所述键值数据库用于作为链路状态数据库的存储引擎。
[0028] 本发明的进一步改进在于,所述步骤S6包括以下子步骤:
[0029] 步骤S601,从链路状态数据库中获取所有邻居路由器,获取邻居路由器的数量NUM和邻接矩阵MATRIX,构建出网络拓扑;
[0030] 步骤S602,依次遍历多标识路由器的每条邻接链路,分别将每条邻接链路作为唯一可用邻接链路,运行Dijkstra算法计算最短路径,并将路由计算结果依次加入到路由表中;
[0031] 步骤S603,返回包含路由计算结果的路由表。
[0032] 本发明的进一步改进在于,所述步骤S602中,所述路由计算结果还反馈至名称前缀表中,并在所述步骤S603实现返回,所述名称前缀表用于存储名称前缀所对应的转发引导信息;所述路由计算结果反馈至路由表和名称前缀表中,并通过管理通信包传送至所述多标识路由器上的转发守护进程,进而引导网络分组的转发。
[0033] 与现有技术相比,本发明的有益效果在于:实现了多标识网络中的域内动态路由协议,并且还进一步结合了多标识网络推拉一体的特点,针对性设计了序列号管理以及对链路状态路由协议的命名规则,还在融合推拉语义的基础上实现对应的链路状态通告传播机制以及多路径计算,以大幅度地减少网络流量开销和网络检索延迟,并有效地提高了路由协议的可扩展性能。

附图说明

[0034] 图1是本发明一种实施例的工作流程示意图;
[0035] 图2是本发明一种实施例的链路状态通告传播过程示意图;
[0036] 图3是本发明一种实施例的多路径计算流程示意图。

具体实施方式

[0037] 下面结合附图,对本发明的较优的实施例作进一步的详细说明。
[0038] 多标识网络区别于传统的TCP/IP网络及其它新型网络,引进了多种标识和多种通信语义进行网络通信。作为一种较新的网络体系架构,在多标识网络中的域内动态路由协议的设计中,需要针对提高其适应性能进行更多的考虑。在多标识网络下链路状态路由的设计和实现过程中,需要特别考虑的方面包括且不限于:第一、使用哪种路由协议类型来支持多标识网络中的域内路由;第二、如何使用推拉一体的通信语义来实现更为高效的链路状态通告传播;第三、如何存储链路状态通告;第四、如何针对性进行路由计算。本申请的链路状态通告简称LSA,即Link‑State Advertisement。
[0039] 对比,本申请旨在实现针对多标识网络这一新型网络下的链路状态路由协议,以便为多标识网络提供完整且可操作性强的域内动态路由技术方案。更为具体的,如图1所示,本实施例一种多标识网络下的链路状态路由方法,包括:
[0040] 步骤S1,设计用于传播路由可达性信息的链路状态通告,所述链路状态通告包括邻接链路状态通告和名称链路状态通告;
[0041] 步骤S2,通过分层命名的方式对链路状态路由协议进行命名,在命名过程中,通过层级化字符串的形式来表示名称前缀;
[0042] 步骤S3,定期发送Hello协议探测兴趣包实现对邻居路由器活动状态的探测;
[0043] 步骤S4,通过多标识路由器中的路由更新触发生成新的链路状态通告;
[0044] 步骤S5,基于键值数据库对所述链路状态通告进行存储;
[0045] 步骤S6,基于多路径计算实现路由计算。
[0046] 本实施例针对性通过分层命名的方式对链路状态路由协议进行命名,设计了一套对应的命名规则,以解决多标识路由器、LSA以及Hello探测数据包等的命名问题;多标识路由器也称Mutil‑Identifier Router,简称MIR。Hello探测数据包用于探测和维护邻居路由器的状态。首先,本申请利用多标识网络特有的推拉一体的通信语义,设计了更加适合多标识网络的LSA传播机制;在此基础上,关于LSA的存储,本申请重点考虑存取效率,然后还通过对应的多路径计算为路由器的转发提供更多的路径选择。本申请直接使用多标识路由器转发守护进程对网络分组的安全校验机制,为链路状态路由方法及其协议提供了安全保障。
[0047] 本申请所述多标识网络下的链路状态路由方法所实现的链路状态路由协议中,其路由的基础处理流程如图1的步骤S3至步骤S6所示。在完成设计用于传播路由可达性信息的链路状态通告,并通过分层命名的方式对链路状态路由协议进行命名之后,先通过Hello协议进行邻居路由器的状态探测和维护;然后,根据LSA传播机制进行路由可达性信息的获取;接着,在将这些路由可达性信息存储到链路状态数据库后,本申请所述链路状态路由协议将基于这些路由可达性信息进行路由计算,从而得到路由计算结果。所述链路状态数据库为Link State Database ,简称LSDB。所述路由计算结果指示了网络分组要被转发到的网络接口,从而可以到达目的路由器或目的数据所在的路由器。
[0048] 本实施例所述步骤S1中,所述邻接链路状态通告用于提供网络拓扑信息,并用于存储所述多标识路由器的邻居路由器列表和邻接链路开销,以便使得网络分组转发到指定的多标识路由器;所述名称链路状态通告用于存储以层级化字符串形式来命名的路由可达性信息,如多标识路由器之上的网络服务和数据内容等,并通过锚定某个特定的所述多标识路由器实现网络分组的寻址,所述路由可达性信息包括多标识网络中的路由器、网络服务以及数据内容。所述路由可达性信息通过两种类型的LSA进行传播,即邻接LSA(Adjacency LSA)和名称LSA(Name LSA),也称邻接链路状态通告和名称链路状态通告。
[0049] 值得说明的是,所述步骤S1中,所述链路状态通告还包括扩展链路状态通告,通过添加所述扩展链路状态通告实现新的链路状态通告类型。因此,本实施例所述LSA的类型是可以扩展的,支持在新版本中添加新的LSA类型,以此来扩展本申请所述链路状态路由协议的功能,为提高其可扩展性能提供很好的基础。
[0050] 本实施例所述链路状态路由协议使用分层命名方案来对多标识路由器、进程、网络分组以及密钥等进行命名。这样设计的原因在于,多标识路由器对网络分组的处理和转发采用的是最长前缀匹配原则。多标识路由器默认使用以“/”进行分割的字符串来做前缀匹配。
[0051] 需要说明的是,在多标识网络的最新实现方案中,多标识路由器有三种基础网络包:通用推式包GPPkt、兴趣包Interest以及数据包Data。其中,通用推式包GPPkt用于承载推式通信语义,对应的是TCP/IP架构中的IP包;兴趣包Interest和数据包Data用于承载拉式通信语义,对应的是信息中心网络中的网络包设计。
[0052] 本实施例所述链路状态路由协议包括名称和前缀,可以分别表示为Name和Prefix,以便对命名规则作出更加详细和准确的限定。在本实施例的命名规则中,名称和前缀均使用以“/”分割的层级化字符串的形式来表示,由于名称与前缀的形式表示一样,因而又可以统称为名称前缀,即Name Prefix。所述名称前缀中,名称用于表示实体身份的ID,所述实体身份包括网络分组、多标识路由器、数据以及服务等特定实体的身份,前缀用于实现网络分组的标识名称匹配;可以不用于表示特定实体的身份。
[0053] 当多标识路由器收到一个网络分组时,先提取网络分组的目的标识符名称,并与转发信息表中的的表项进行匹配,从匹配结果中选出匹配前缀最长的一个或几个,即进行最长前缀匹配,然后进行转发操作,转发给本机其它进程或其它多标识路由器。所述转发信息表也称Forwarding Information Base,简称FIB。
[0054] 下表所示的是本申请所述链路状态路由协议的命名规则,本实施例所述步骤S2中,对链路状态路由协议进行命名的过程中,通过///对多标识路由器的名称进行命名,其中,/表示层级化字符串的分隔符,Network Field表示网络字段,指的是多标识路由器所处的网络;Site Field表示网站字段,指的是多标识路由器所处的网站;Router Field表示路由器字段,指的是多标识路由器由其所属网站分配的标识符字符串;通过/localhop//alrp/LsaUpdate对LSA更新通知前缀进行命名,其中,LSA表示链路状态通告;localhop为用于表示该前缀可以被非本机路由器的远程多标识路由器上运行的应用程序进行注册的固定字符串;alrp为用于表示多标识网络的适应性链路状态路由协议的固定字符串,采用的是adaptive link‑state routing protocol的缩写;LsaUpdate表示链路状态通告的更新通知;通过/localhop//alrp/LsaUpdate////对LSA更新通知包的目的标识名称进行命名,其中,LSA Type表示链路状态通告类型字段,用于指示LSA的类型;LSA Sequence Number表示链路状态通告序列号字段,简称LSA序列号字段,表示了特定路由器之上特定LSA类型的序列号,值得说明的是,本实施例的LSA序列号被设计为单调递增;通过/localhop//alrp/LsaUpdate//对LSA更新通知包的源标识名称进行命名;通过/localhop//alrp/LSA对LSA前缀进行命名;通过/localhop//alrp/LSA////对LSA兴趣包名称进行命名;通过////alrp/INFO对Hello协议探测前缀进行命名,其中,INFO为用于表示Hello协议的信息探测前缀的固定字符串;通过////alrp/INFO/< Base62 encoded string of the MIR Name of the sender>对Hello协议探测兴趣包名称进行命名,其中,Base62 encoded string of the MIR Name of the sender表示存储了Hello协议探测兴趣包发送者的路由器名称为Base62编码字符串的字段。除网络字段、网站字段、路由器字段、LSA类型、LSA序列号以及Hello协议探测兴趣包名称的最后一个字段外,下表中其它的命名字段均为固定的字符串。
[0055]
[0056] 本实施例通过层级化命名的技术方案为多标识网络中的路由器、进程以及网络分组等进行命名,符合路由器和进程等之间天然存在的从属关系,从而为多标识网络提供了一种新的命名规范,符合本申请基于多标识网络这一新型网络的路由协议需求。
[0057] 本实施例所述步骤S3通过定期发送Hello协议探测兴趣包实现对邻居路由器活动状态的探测。Hello协议作为本申请所述链路状态路由协议的一个子模块/子步骤存在,主要用于定期发送Hello协议探测兴趣包来探测邻居路由器的活动状态。
[0058] 当邻居路由器对Hello协议探测兴趣包进行响应时,该路由器会认为此邻居路由器处于活跃状态;当邻居路由器多次对Hello协议探测兴趣包无响应时,该路由器则认为此邻居路由器处于关闭状态。若Hello协议探测到邻居路由器的状态发生改变,则会通知调度器构建新的LSA,以更新LSDB中的邻接信息。
[0059] 本实施例所述步骤S4用于实现LSA的传播。本实施例所述步骤S4在所述链路状态路由协议设计了融合推式和拉式两种通信语义的LSA传播机制。由于LSA存储了网络中所有多标识路由器及路由器之上的服务信息,链路状态路由协议通过对这些LSA进行分析和路由计算,以最终引导网络分组的转发。因此,对LSA的传播设计属于关键步骤之一。
[0060] 多标识路由器中的LSA更新来源于路由信息的变动,例如网络拓扑、数据内容或网络服务的改变等。在路由收敛时,网络中的所有多标识路由器存储的LSA是相同的。当一个特定多标识路由器上的LSA发生更新时,LSA的传播就开始了。本申请所述LSA的更新会被通知给它的所有邻居路由器,但不会在网络中泛洪,网络流程开销小。
[0061] 值得说明的是,本实施例多标识路由器上的LSA序列号采用的是单调递增的机制,这种单调递增机制通过序列号管理器来实现,实现方式如下:在多标识路由器上运行的路由协议进程中,通过序列号管理器为每种类型的链路状态通告(LSA)分配一个初始的序列号,当该链路状态通告(LSA)更新时,则递增其序列号;所述序列号指的是LSA序列号,用于表示所述链路状态通告的新鲜状态,在路由更新触发时,所述多标识路由器的多个链路状态通告更新通过一个最新序列号发布,进而让多标识路由器积累的多个LSA更新能够通过一个最新序列号发布出去,以便有效减少网络流量的开销。
[0062] 本实施例所述链路状态路由协议中的LSA的传播过程如图2所示,所述步骤S4中,通过多标识路由器(多标识路由器B)中的路由更新触发生成新的链路状态通告的生成和存储,该多标识路由器将更新的链路状态通告类型及序列号信息通过GPPkt推送给所有邻居路由器,GPPkt指的是用于承载推式通信语义的通用推式包;邻居路由器中的多标识路由器(多标识路由器A)在接收到更新通知后,通过兴趣包Interest向所述多标识路由器(多标识路由器B)拉取此次更新的内容;最后,邻居路由器中的多标识路由器(多标识路由器A)将此次更新所获得的新的链路状态通告安装到链路状态数据库中。至此,一次LSA的传播过程结束。
[0063] 本实施例利用多标识网络中推拉一体的通信语义特性,针对性设计上面所述LSA的传播过程,能够有效地减少网络流量的开销。
[0064] 本实施例所述步骤S5用于实现LSA的存储,主要基于存取速率和可扩展性两个方面进行LSA存储的优化设计。在所述步骤S5中,基于B+树的键值数据库对所述链路状态通告进行封装和存储,使其能够支持LSA的存入、查询以及删除等多种操作,所述键值数据库存储在内存中,不写入磁盘。所述键值数据库用于作为链路状态数据库的存储引擎,能够发挥高效存储LSA的作用。更为优选的,所述链路状态数据库中的存储引擎可以通过其它方法进行实现,且可以通过配置文件对其进行切换,以提高实际应用的灵活程度。因此,本实施例基于B+树实现,并且以键值数据库的形式对LSA进行存取,存储至内存的内存数据库中,还进一步将存储引擎与链路状态数据库分离,从而提高了链路状态路由协议的可扩展性,进而为未来链路状态路由协议中的LSA存储设计提供了很好的基础。
[0065] 本实施例所述步骤S6用于实现路由计算,采用的是多路径计算,以便为转发提供了更多的路径选择,减少网络不稳定状态下的路由计算耗时,从而减少了网络延迟。
[0066] 更为具体的,如图3所示,本实施例所述步骤S6包括以下子步骤:
[0067] 步骤S601,从链路状态数据库中获取所有邻接LSA,分析邻接LSA,并获取邻居路由器的数量NUM和邻接矩阵MATRIX,构建出网络拓扑,并初始化计数器Count=1;
[0068] 步骤S602,在计数器Count大不于邻居路由器的数量NUM时,依次遍历多标识路由器的每条邻接链路,分别将每条邻接链路作为唯一可用邻接链路,比如选择当前的第Count条邻接链路作为唯一可用邻接链路,运行Dijkstra算法计算最短路径,并将路由计算结果依次加入到路由表中的下一条列表;对计数器Count进行加1处理,直到当前的计数器Count大于邻居路由器的数量NUM,则跳转至步骤S603;
[0069] 步骤S603,返回包含路由计算结果的路由表。
[0070] 在多路径计算过程中,所述路由表存储了转发引导信息,所述转发引导信息用于运行在源路由器到网络中其它路由器的转发引导,即所述转发引导信息指的是引导网络分组进行转发的引导信息,用于表达网络分组从哪个或哪些网络接口进行转发。
[0071] 值得说明的是,本实施例所述步骤S602中,所述路由计算结果还反馈至名称前缀表中,并在所述步骤S603实现返回,所述名称前缀表用于存储名称前缀所对应的转发引导信息;名称前缀代表的是服务标识以及内容标识等标识的名称信息,因此,所述名称前缀的转发引导信息包括了服务和数据的转发引导信息,所述名称前缀表随着路由表的改变而改变。所述路由计算结果反馈至路由表和名称前缀表中,并通过管理通信包(Management Communication Packet)传送至所述多标识路由器上的转发守护进程,进而引导网络分组的转发。
[0072] 综上所述,本实施例实现了多标识网络中的域内动态路由协议,并且还进一步结合了多标识网络推拉一体的特点,针对性设计了序列号管理以及对链路状态路由协议的命名规则,还在融合推拉语义的基础上实现对应的链路状态通告传播机制以及多路径计算,以大幅度地减少网络流量开销和网络检索延迟,并有效地提高了路由协议的可扩展性能。
[0073] 以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。