基于位置信息和内容推送的命名数据网络综合路由方法转让专利

申请号 : CN201910418645.X

文献号 : CN110149274B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 安建平刁文澜李彤胡晗张宇于季弘范戎飞

申请人 : 北京理工大学

摘要 :

本发明涉及基于位置信息和内容推送的命名数据网络综合路由方法,属于计算机网络路由优化技术领域。包括设置网络管理服务器、确定各个结点的链路状态并启动链路状态定时器、建立NDN全网拓扑结构图并启动网络拓扑定时器、建立网络拓扑应用记录表、建立全网数据名称和内容源名称匹配列表并启动统计间隔定时器、用户发送位置请求兴趣包及网络管理服务器回复位置数据包、用户计算转发路径并发送数据请求兴趣包及内容源回复内容数据包、网络管理服务器评估数据流行度及内容源推送数据名称补充NDN结点的FIB表、定期检测链路状态更新网络拓扑和推送高流行度数据名称。本方法复杂度较低、带宽开销较小,可实现快速建立FIB表和高效转发兴趣包。

权利要求 :

1.基于位置信息和内容推送的命名数据网络综合路由方法,其特征在于:包括以下步骤:步骤1、设置网络管理服务器,具体包括如下子步骤:

步骤1.1在NDN网络中心区域选定结点H,作为网络管理服务器;

步骤1.2结点H向全网广播认证兴趣包,通告管理信息,所有收到认证兴趣包的结点在其FIB表中添加一条关于结点H的路由条目,所述路由条目的转发接口为收到认证兴趣包的接口;

所述步骤1.2用于保证NDN中所有除结点H以外的结点对结点H是可达的;

步骤2、确定各个结点的链路状态并启动链路状态定时器,具体包括如下子步骤:步骤2.1NDN中每两个相邻结点互相向对方发送一次问候兴趣包;

其中,相邻结点指的是NDN中任意两个通过一条链路直接相连的结点;问候兴趣包的内容是“本结点名字信息以及向本结点发送数据的路由代价”;

所述步骤2.1用来确定NDN中相邻结点的名字及可达性;

步骤2.2NDN中各个结点根据收到的所有问候兴趣包,记录本结点的所有相邻结点的名字信息以及对应链路的路由代价,形成各个结点的链路状态数据库;

其中,链路状态是指“本结点及其相邻结点以及对应链路的路由代价”;

步骤2.3在NDN各个结点中设置链路状态定时器T1,启动T1开始计时;

步骤3、基于定位兴趣包的汇总建立NDN全网拓扑结构图并启动网络拓扑定时器,具体包括如下子步骤:步骤3.1网络中除结点H以外的所有结点,向结点H发送定位兴趣包;

其中,定位兴趣包的内容是“本结点名字、本结点的相邻结点以及对应链路的路由代价”;即本结点的所有链路状态信息;

步骤3.2结点H根据收到的所有定位兴趣包,汇总建立NDN全网拓扑结构图;

步骤3.3在NDN各个结点中设置网络拓扑定时器T2,启动T2开始计时;

步骤4、建立网络拓扑应用记录表,具体为:在结点H中建立一个网络拓扑应用记录表;

其中,网络拓扑应用记录表中记录的内容是“拥有最新NDN全网拓扑结构图的用户”;

所述步骤4用来记录已经拥有最新NDN全网拓扑结构图的用户名称,以便在后续步骤中决定结点H是否需要为用户传送最新NDN全网拓扑结构图;

步骤5、基于内容兴趣包的汇总建立全网数据名称和内容源名称匹配列表并启动统计间隔定时器,具体包括如下子步骤:步骤5.1NDN所有内容源向结点H发送内容兴趣包,通知结点H本内容源持有的数据;

其中,内容兴趣包的内容包括“本内容源名字以及本内容源持有的所有数据的名称”;

步骤5.2内容兴趣包依据步骤1.2中在各个结点中添加的关于结点H的路由条目,在NDN中经过多个结点逐跳转发到达结点H;

内容兴趣包在转发过程中,途经结点在其FIB表中添加关于该内容源的路由条目,所述路由条目的转发接口为收到内容兴趣包的接口,方便后续结点H与内容源之间的通信;

步骤5.3结点H根据收到的内容兴趣包,汇总并记录各个内容源持有的数据的名称,建立全网数据名称和内容源名称匹配列表,该列表的内容包括“数据名称、对应的内容源名称、数据的用户请求次数”;

步骤5.4将全网数据名称和内容源名称匹配列表中各数据的用户请求次数初始化为0;

步骤5.5在结点H中设置统计间隔定时器T3,启动T3开始计时;

步骤6、用户发送位置请求兴趣包以及结点H回复位置数据包,具体包括如下子步骤:步骤6.1当NDN中用户需要请求数据时,用户根据数据名称查询FIB表,若发现匹配的路由条目,则直接向该条目记录的转发接口发送数据请求兴趣包,执行NDN常规的数据通信流程:数据请求兴趣包经多个结点逐跳转发到达内容源,内容源回复内容数据包给用户;若FIB表中没有匹配的路由条目,则用户向结点H发送位置请求兴趣包,并执行以下步骤;

其中,位置请求兴趣包的内容是“请求数据的名称以及用户名称”;

步骤6.2结点H收到位置请求兴趣包,提取数据名称和用户名称,查找全网数据名称和内容源名称匹配列表,找到该数据对应的内容源名称,并将该数据对应的用户请求次数加

1;

步骤6.3结点H根据用户名称查询网络拓扑应用记录表,若表中已经包含该用户名称,则执行6.3.1;若表中不包含该用户名称,则执行6.3.2;

6.3.1若网络拓扑应用记录表中包含该用户名称,表明此前该用户通过向结点H发送位置请求兴趣包,已经获得了最新NDN全网拓扑结构图;则结点H生成与位置请求兴趣包相同名称的位置数据包,将用户所需数据对应的内容源名称放入位置数据包回复给用户;

6.3.2若网络拓扑应用记录表中不包含该用户名称,表明此前该用户没有发送过位置请求兴趣包,或者由于NDN全网拓扑结构图更新,网络拓扑应用记录表中的用户记录被擦除;则结点H将用户名称记录在网络拓扑应用记录表中,并生成与位置请求兴趣包相同名称的位置数据包,将用户所需数据对应的内容源名称以及最新NDN全网拓扑结构图放入位置数据包回复给用户;

步骤7、用户计算转发路径并发送数据请求兴趣包以及内容源回复内容数据包,具体包括如下子步骤:步骤7.1用户收到来自结点H的位置数据包,从位置数据包中获取所需数据对应的内容源名称;检查位置数据包中是否包含NDN全网拓扑结构图,若位置数据包中包含NDN全网拓扑结构图,则保存NDN全网拓扑结构图或替换结点中原有的NDN全网拓扑结构图;否则跳至步骤7.2继续执行;

步骤7.2用户根据本结点中现有的NDN全网拓扑结构图和用户、内容源的名称信息找到用户及内容源的位置,使用Dijkstra算法计算出从用户到内容源的最优转发路径;

步骤7.3用户发送数据请求兴趣包,并采用Dijkstra算法计算得到转发路径,将转发路径写入数据请求兴趣包,数据请求兴趣包按照这一转发路径,在NDN中逐跳转发,并将请求数据的名称和对应的下一转发接口写入途经结点的FIB表中,建立从用户到内容源的关于该数据的完整的数据请求兴趣包转发路径;

其中,数据请求兴趣包的内容是“请求数据的名称以及数据请求兴趣包的转发路径”;

步骤7.4内容源收到数据请求兴趣包后,查看得知用户所需的数据,内容源回复与数据请求兴趣包相同名称的内容数据包,内容数据包将按照数据请求兴趣包转发的反向路径回传到用户,内容数据包中包含用户所请求的数据内容;内容数据包转发过程中,中间结点将缓存内容数据包,方便后期其他用户获取数据;

步骤8、结点H评估数据流行度以及内容源推送数据名称补充NDN结点的FIB表,具体包括如下子步骤:步骤8.1查询统计间隔定时器T3是否到期,没有到期则等待,一旦T3到期,则结点H查看T3时间内全网数据名称和内容源名称匹配列表中各数据的用户请求次数,以用户请求次数表征数据流行度,数据的用户请求次数越多,则认为该数据的流行度越高;

对于用户请求次数最多的X种数据,结点H发送“通知兴趣包”至相应数据的内容源;

其中,X的取值范围为1到30;“通知兴趣包”的内容是“需要推送的数据的名称”;

步骤8.2内容源收到“通知兴趣包”后,向全网广播“推送兴趣包”,推送该数据的名称;

其中,“推送兴趣包”的内容包括“推送数据的名称以及对应的内容源名称”;

步骤8.3NDN结点收到“推送兴趣包”后查询其FIB表,若FIB表中没有关于该数据的路由条目,则在FIB表中添加关于该数据的路由条目,所述路由条目的转发接口为收到推送兴趣包的接口;若结点的FIB表中已存在关于该数据的路由条目,且该路由条目的转发接口集合中包括收到推送兴趣包的接口,则无需更改FIB表;若结点的FIB表中已存在关于该数据的路由条目,且该路由条目的转发接口集合中不包括收到推送兴趣包的接口,则向该路由条目的转发接口集合中增加一个转发接口即收到推送兴趣包的接口;

步骤8.4将统计间隔定时器T3清零,将结点H的全网数据名称和内容源名称匹配列表中各数据的用户请求次数清零,结点H重新统计各数据的用户请求次数,直到T3再次到期;

至此,NDN中各结点的FIB表实现路由条目扩充,各结点的FIB表中对应推送数据的路由条目可添加多个转发接口,在后续操作中根据FIB表实现数据请求兴趣包的多径转发;

当其他用户请求此数据时,用户根据数据名称查询FIB表,发现匹配的路由条目,则直接向该路由条目记录的转发接口发送数据请求兴趣包,数据请求兴趣包经过多个结点逐跳转发到达内容源,内容源回复内容数据包给用户;

步骤9、定期检测链路状态更新网络拓扑和推送高流行度数据名称,包括如下子步骤:步骤9.1检测T1、T2、T3是否到达设定的定时时间,若链路状态定时器T1到期,执行

9.1.1;若网络拓扑定时器T2到期,执行9.1.2,若统计间隔定时器T3到期,执行9.1.3;

9.1.1若链路状态定时器T1到达设定时间,则NDN每两个相邻结点互相发送一次问候兴趣包,确定各个结点的链路状态;判断任一结点的链路状态是否发生变化,即相邻结点由可达变为不可达,或由不可达变为可达,若发生变化则该结点在确定新的相邻结点和对应链路的路由代价后,立即向结点H发送更新兴趣包,更新兴趣包的内容与定位兴趣包一致;若链路状态无变化则不需要进行任何操作;

结点H收到来自任一结点的更新兴趣包,则立即更新NDN全网拓扑结构图,并将网络拓扑应用记录表中的所有用户记录擦除;之后结点H收到用户的位置请求兴趣包时,会在网络拓扑应用记录表中重新记录用户名称,并将用户所需数据对应的内容源名称以及最新NDN全网拓扑结构图放入位置数据包回复给用户;

9.1.2若网络拓扑定时器T2到达设定时间,则NDN中除结点H以外的所有结点再次确定本结点的链路状态即相邻结点的名称及可达性信息,并向结点H发送定位兴趣包;

结点H收到来自所有结点的定位兴趣包,则立即更新NDN全网拓扑结构图,并将网络拓扑应用记录表中的所有用户记录擦除;之后结点H收到用户的位置请求兴趣包时,会在网络拓扑应用记录表中重新记录用户名称,并将用户所需数据对应的内容源名称以及最新NDN全网拓扑结构图放入位置数据包回复给用户;

9.1.3若统计间隔定时器T3到达设定时间,则结点H查看T3时间内全网数据名称和内容源名称匹配列表中各数据的用户请求次数,并发送“通知兴趣包”至内容源,内容源向全网广播“推送兴趣包”,推送高流行度数据的名称,补充NDN结点的FIB表;然后将T3清零,将全网数据名称和内容源名称匹配列表中各数据的用户请求次数清零,再次统计各数据的用户请求次数直到T3再一次到期。

2.根据权利要求1所述的基于位置信息和内容推送的命名数据网络综合路由方法,其特征在于:步骤1.2中,接口是指硬件接口,即主机或路由器的对外接口,通过接口接入其他硬件设备;所述其他硬件设备是相对于本结点主机的硬件设备,即除本结点主机以外的硬件设备。

3.根据权利要求1所述的基于位置信息和内容推送的命名数据网络综合路由方法,其特征在于:步骤2.3中,链路状态定时器T1的时间取值范围为1s到60s;

链路状态定时器T1的设置是为了定期监测相邻结点间的链路状态,即相邻结点的可达性信息,以便及时更新网络拓扑。

4.根据权利要求1所述的基于位置信息和内容推送的命名数据网络综合路由方法,其特征在于:步骤3.3中,网络拓扑定时器T2的时间取值范围为1min到60min;

网络拓扑定时器T2的设置是为了定期更新NDN全网拓扑结构图。

5.根据权利要求1所述的基于位置信息和内容推送的命名数据网络综合路由方法,其特征在于:步骤5.5中,统计间隔定时器T3的时间取值范围为1min到120min;

统计间隔定时器T3的设置是为了结点H定期统计在T3时间间隔内各数据的用户请求次数。

说明书 :

基于位置信息和内容推送的命名数据网络综合路由方法

技术领域

[0001] 本发明涉及一种基于位置信息和内容推送的命名数据网络综合路由方法,尤其涉及命名数据网络NDN(Named Data Networking)中一种基于位置信息和内容推送的综合路由方法,属于计算机网络路由优化技术领域。

背景技术

[0002] 命名数据网络NDN是一种以命名数据为主要通信对象的网络体系,是信息中心网络的一种特例。在NDN中,通过对数据命名并根据数据包的名字信息进行通信,改变了目前网络基于IP地址的通信方式,实现了数据内容和主机地址的分离,其鲁棒性和扩展性相对于TCP/IP网络更优。NDN中的通信由内容请求者驱动,即内容请求者需要首先发送数据请求,内容发布者再根据数据请求将相应的数据回复给内容请求者。NDN中包含两种格式的包,分别是兴趣包(Interest Packet)和数据包(Data Packet),其中兴趣包是用户即内容请求者为请求数据而发送的包含所需数据名字的请求包,数据包是内容源即内容发布者为响应兴趣包而回复的,包含用户所请求的数据的包,并且数据包和相应兴趣包的命名相同。
[0003] 由于NDN中的包不携带目的地址信息,所有包均被路由器以逐跳转发的方式进行处理。NDN中每个路由器包含三种表结构,分别是转发信息表FIB(Forwarding Information Base)、待定请求表PIT(Pending Interest Table)和内容存储表CS(Content Store)。FIB表记录的是相应名字的兴趣包可以被转发的“下游”(Down Stream)接口集合,用来将兴趣包转发到匹配的下一接口,如果没有匹配接口,则这个兴趣包将被丢弃。PIT表存储的是已经被当前结点转发出去的兴趣包的名字及其对应的“上游”(Up Stream)接口,便于收到数据包后,按照兴趣包转发的反向路径将数据包回复给内容请求者。CS中存储的是内容发布者发送而来的数据,在数据包的转发过程中,沿途路由器将数据包缓存在其CS中,则邻近用户可以直接从该路由器中获取数据,而无需发送兴趣包到内容发布者。
[0004] 由于NDN中的兴趣包不携带目的地址信息,即内容发布者的位置信息,NDN中兴趣包的转发是以逐跳转发的方式处理,即从内容请求者经多个路由器逐跳转发到达内容发布者。因此如何高效建立FIB表以转发兴趣包是NDN领域的研究热点。目前提出的路由方法包括:通过路由信息泛洪建立FIB表和基于辅助信息建立FIB表,其中泛洪路由根据发起对象的不同又分为内容发布者主动通告路由和内容请求者主动发起的按需路由。三种路由方法的通信流程分别描述为:
[0005] (a)按需路由
[0006] 1.当用户需要内容时主动发起请求,兴趣包在NDN中泛洪扩散;
[0007] 2.找到内容源后,内容源发送数据包沿着兴趣包转发的反向路径逐跳返回用户。
[0008] (b)主动通告路由
[0009] 1.内容源向NDN全网主动通告其持有数据,在各个结点中建立FIB表;
[0010] 2.用户请求数据时,发送兴趣包根据建立的FIB表逐跳转发到达内容源;
[0011] 3.内容源响应请求,按照兴趣包转发的反向路径把数据包回复给用户。
[0012] (c)基于位置信息的路由
[0013] 1.内容源为每一个内容分配含有位置信息的键值,并向其周围结点通告绑定消息<名字,主机>;
[0014] 2.用户发起请求前,首先计算内容的键值,并通过底层协议找到某个含有绑定消息<名字,主机>的结点,并以单播方式获取内容源位置信息;
[0015] 3.请求者根据获取的内容源位置信息,采用单播方式取回数据。
[0016] 研究表明:泛洪路由的有效性和可达性比基于位置信息的路由更高,其中按需路由优于主动通告路由,但泛洪操作也带来了更高的带宽开销。基于位置信息的路由算法复杂,但可以有效降低通信开销。因此,对于将要承载多种业务的NDN网络,上述路由方法不能有效地实现带宽开销和算法复杂度的平衡,极大地限制了路由方法的适用性。
[0017] 因此,NDN中需要一种算法复杂度较低且带宽开销较小的路由方法,实现高效的FIB表建立和兴趣包转发,从而使NDN能够承载多种类型的业务,实现兴趣包高效转发和数据传输低时延。

发明内容

[0018] 本发明的目的在于进一步降低NDN中路由方法的算法复杂度以及带宽开销,实现NDN中路由器FIB表的快速建立和兴趣包的高效转发,有效支持NDN中的多兴趣包转发业务,提出了基于位置信息和内容推送的命名数据网络综合路由方法。
[0019] 本发明的技术方案包括以下几部分:设置网络管理服务器、确定各个结点的链路状态并启动链路状态定时器、建立NDN全网拓扑结构图并启动网络拓扑定时器、建立网络拓扑应用记录表、建立全网数据名称和内容源名称匹配列表并启动统计间隔定时器、用户发送位置请求兴趣包以及网络管理服务器回复位置数据包、用户计算转发路径并发送数据请求兴趣包以及内容源回复内容数据包、网络管理服务器评估数据流行度以及内容源推送数据名称补充NDN结点的FIB表、定期检测链路状态更新网络拓扑和推送高流行度数据名称。
[0020] 所述命名数据网络综合路由方法,包括以下步骤:
[0021] 步骤1、设置网络管理服务器,具体包括如下子步骤:
[0022] 步骤1.1在NDN网络中心区域选定结点H,作为网络管理服务器;
[0023] 步骤1.2结点H向全网广播认证兴趣包,通告管理信息,所有收到认证兴趣包的结点在其FIB表中添加一条关于结点H的路由条目,所述路由条目的转发接口为收到认证兴趣包的接口;
[0024] 其中,接口是指硬件接口,即主机或路由器的对外接口,通过接口接入其他硬件设备;所述其他硬件设备是相对于本结点主机的硬件设备,即除本结点主机以外的硬件设备;
[0025] 所述步骤1.2用于保证NDN中所有除结点H以外的结点对结点H是可达的;
[0026] 步骤2、确定各个结点的链路状态并启动链路状态定时器,具体包括如下子步骤:
[0027] 步骤2.1NDN中每两个相邻结点互相向对方发送一次问候兴趣包;
[0028] 其中,相邻结点指的是NDN中任意两个通过一条链路直接相连的结点;问候兴趣包的内容是“本结点名字信息以及向本结点发送数据的路由代价”;
[0029] 所述步骤2.1用来确定NDN中相邻结点的名字及可达性;
[0030] 步骤2.2NDN中各个结点根据收到的所有问候兴趣包,记录本结点的所有相邻结点的名字信息以及对应链路的路由代价,形成各个结点的链路状态数据库;
[0031] 其中,链路状态是指“本结点及其相邻结点以及对应链路的路由代价”;
[0032] 步骤2.3在NDN各个结点中设置链路状态定时器T1,启动T1开始计时;
[0033] 其中,链路状态定时器T1的时间取值范围为1s到60s;
[0034] 链路状态定时器T1的设置是为了定期监测相邻结点间的链路状态,即相邻结点的可达性信息,以便及时更新网络拓扑;
[0035] 步骤3、基于定位兴趣包的汇总建立NDN全网拓扑结构图并启动网络拓扑定时器,具体包括如下子步骤:
[0036] 步骤3.1网络中除结点H以外的所有结点,向结点H发送定位兴趣包;
[0037] 其中,定位兴趣包的内容是“本结点名字、本结点的相邻结点以及对应链路的路由代价”;即本结点的所有链路状态信息;
[0038] 步骤3.2结点H根据收到的所有定位兴趣包,汇总建立NDN全网拓扑结构图;
[0039] 步骤3.3在NDN各个结点中设置网络拓扑定时器T2,启动T2开始计时;
[0040] 其中,网络拓扑定时器T2的时间取值范围为1min到60min;
[0041] 网络拓扑定时器T2的设置是为了定期更新NDN全网拓扑结构图;
[0042] 步骤4、建立网络拓扑应用记录表,具体为:在结点H中建立一个网络拓扑应用记录表;
[0043] 其中,网络拓扑应用记录表中记录的内容是“拥有最新NDN全网拓扑结构图的用户”;
[0044] 所述步骤4用来记录已经拥有最新NDN全网拓扑结构图的用户名称,以便在后续步骤中决定结点H是否需要为用户传送最新NDN全网拓扑结构图;
[0045] 步骤5、基于内容兴趣包的汇总建立全网数据名称和内容源名称匹配列表并启动统计间隔定时器,具体包括如下子步骤:
[0046] 步骤5.1NDN所有内容源向结点H发送内容兴趣包,通知结点H本内容源持有的数据;
[0047] 其中,内容兴趣包的内容包括“本内容源名字以及本内容源持有的所有数据的名称”;
[0048] 步骤5.2内容兴趣包依据步骤1.2中在各个结点中添加的关于结点H的路由条目,在NDN中经过多个结点逐跳转发到达结点H;
[0049] 内容兴趣包在转发过程中,途经结点在其FIB表中添加关于该内容源的路由条目,所述路由条目的转发接口为收到内容兴趣包的接口,方便后续结点H与内容源之间的通信;
[0050] 步骤5.3结点H根据收到的内容兴趣包,汇总并记录各个内容源持有的数据的名称,建立全网数据名称和内容源名称匹配列表,该列表的内容包括“数据名称、对应的内容源名称、数据的用户请求次数”;
[0051] 步骤5.4将全网数据名称和内容源名称匹配列表中各数据的用户请求次数初始化为0;
[0052] 步骤5.5在结点H中设置统计间隔定时器T3,启动T3开始计时;
[0053] 其中,统计间隔定时器T3的时间取值范围为1min到120min;统计间隔定时器T3的设置是为了结点H定期统计在T3时间间隔内各数据的用户请求次数;
[0054] 步骤6、用户发送位置请求兴趣包以及结点H回复位置数据包,具体包括如下子步骤:
[0055] 步骤6.1当NDN中用户需要请求数据时,用户根据数据名称查询FIB表,若发现匹配的路由条目,则直接向该条目记录的转发接口发送数据请求兴趣包,执行NDN常规的数据通信流程:数据请求兴趣包经多个结点逐跳转发到达内容源,内容源回复内容数据包给用户;若FIB表中没有匹配的路由条目,则用户向结点H发送位置请求兴趣包,并执行以下步骤;
[0056] 其中,位置请求兴趣包的内容是“请求数据的名称以及用户名称”;
[0057] 步骤6.2结点H收到位置请求兴趣包,提取数据名称和用户名称,查找全网数据名称和内容源名称匹配列表,找到该数据对应的内容源名称,并将该数据对应的用户请求次数加1;
[0058] 步骤6.3结点H根据用户名称查询网络拓扑应用记录表,若表中已经包含该用户名称,则执行6.3.1;若表中不包含该用户名称,则执行6.3.2;
[0059] 6.3.1若网络拓扑应用记录表中包含该用户名称,表明此前该用户通过向结点H发送位置请求兴趣包,已经获得了最新NDN全网拓扑结构图;则结点H生成与位置请求兴趣包相同名称的位置数据包,将用户所需数据对应的内容源名称放入位置数据包回复给用户;
[0060] 6.3.2若网络拓扑应用记录表中不包含该用户名称,表明此前该用户没有发送过位置请求兴趣包,或者由于NDN全网拓扑结构图更新,网络拓扑应用记录表中的用户记录被擦除;则结点H将用户名称记录在网络拓扑应用记录表中,并生成与位置请求兴趣包相同名称的位置数据包,将用户所需数据对应的内容源名称以及最新NDN全网拓扑结构图放入位置数据包回复给用户;
[0061] 步骤7、用户计算转发路径并发送数据请求兴趣包以及内容源回复内容数据包,具体包括如下子步骤:
[0062] 步骤7.1用户收到来自结点H的位置数据包,从位置数据包中获取所需数据对应的内容源名称;检查位置数据包中是否包含NDN全网拓扑结构图,若位置数据包中包含NDN全网拓扑结构图,则保存NDN全网拓扑结构图或替换结点中原有的NDN全网拓扑结构图;否则跳至步骤7.2继续执行;
[0063] 步骤7.2用户根据本结点中现有的NDN全网拓扑结构图和用户、内容源的名称信息找到用户及内容源的位置,使用Dijkstra算法计算出从用户到内容源的最优转发路径;
[0064] 步骤7.3用户发送数据请求兴趣包,并采用Dijkstra算法计算得到转发路径,将转发路径写入数据请求兴趣包,数据请求兴趣包按照这一转发路径,在NDN中逐跳转发,并将请求数据的名称和对应的下一转发接口写入途经结点的FIB表中,建立从用户到内容源的关于该数据的完整的数据请求兴趣包转发路径;
[0065] 其中,数据请求兴趣包的内容是“请求数据的名称以及数据请求兴趣包的转发路径”;
[0066] 步骤7.4内容源收到数据请求兴趣包后,查看得知用户所需的数据,内容源回复与数据请求兴趣包相同名称的内容数据包,内容数据包将按照数据请求兴趣包转发的反向路径回传到用户,内容数据包中包含用户所请求的数据内容。内容数据包转发过程中,中间结点将缓存内容数据包,方便后期其他用户获取数据;
[0067] 步骤8、结点H评估数据流行度以及内容源推送数据名称补充NDN结点的FIB表,具体包括如下子步骤:
[0068] 步骤8.1查询统计间隔定时器T3是否到期,没有到期则等待,一旦T3到期,则结点H查看T3时间内全网数据名称和内容源名称匹配列表中各数据的用户请求次数,以用户请求次数表征数据流行度,数据的用户请求次数越多,则认为该数据的流行度越高;
[0069] 对于用户请求次数最多的X种数据,结点H发送“通知兴趣包”至相应数据的内容源;
[0070] 其中,X的取值范围为1到30;“通知兴趣包”的内容是“需要推送的数据的名称”;
[0071] 步骤8.2内容源收到“通知兴趣包”后,向全网广播“推送兴趣包”,推送该数据的名称;
[0072] 其中,“推送兴趣包”的内容包括“推送数据的名称以及对应的内容源名称”;
[0073] 步骤8.3NDN结点收到“推送兴趣包”后查询其FIB表,若FIB表中没有关于该数据的路由条目,则在FIB表中添加关于该数据的路由条目,所述路由条目的转发接口为收到推送兴趣包的接口;若结点的FIB表中已存在关于该数据的路由条目,且该路由条目的转发接口集合中包括收到推送兴趣包的接口,则无需更改FIB表;若结点的FIB表中已存在关于该数据的路由条目,且该路由条目的转发接口集合中不包括收到推送兴趣包的接口,则向该路由条目的转发接口集合中增加一个转发接口即收到推送兴趣包的接口;
[0074] 步骤8.4将统计间隔定时器T3清零,将结点H的全网数据名称和内容源名称匹配列表中各数据的用户请求次数清零,结点H重新统计各数据的用户请求次数,直到T3再次到期;
[0075] 至此,NDN中各结点的FIB表实现路由条目扩充,各结点的FIB表中对应推送数据的路由条目可添加多个转发接口,在后续操作中可根据FIB表实现数据请求兴趣包的多径转发;
[0076] 当其他用户请求此数据时,用户根据数据名称查询FIB表,发现匹配的路由条目,则直接向该路由条目记录的转发接口发送数据请求兴趣包,数据请求兴趣包经过多个结点逐跳转发到达内容源,内容源回复内容数据包给用户;
[0077] 步骤9、定期检测链路状态更新网络拓扑和推送高流行度数据名称,包括如下子步骤:
[0078] 步骤9.1检测T1、T2、T3是否到达设定的定时时间,若链路状态定时器T1到期,执行9.1.1;若网络拓扑定时器T2到期,执行9.1.2,若统计间隔定时器T3到期,执行9.1.3;
[0079] 9.1.1若链路状态定时器T1到达设定时间,则NDN每两个相邻结点互相发送一次问候兴趣包,确定各个结点的链路状态;判断任一结点的链路状态是否发生变化,即相邻结点由可达变为不可达,或由不可达变为可达,若发生变化则该结点在确定新的相邻结点和对应链路的路由代价后,立即向结点H发送更新兴趣包,更新兴趣包的内容与定位兴趣包一致;若链路状态无变化则不需要进行任何操作;
[0080] 结点H收到来自任一结点的更新兴趣包,则立即更新NDN全网拓扑结构图,并将网络拓扑应用记录表中的所有用户记录擦除;之后结点H收到用户的位置请求兴趣包时,会在网络拓扑应用记录表中重新记录用户名称,并将用户所需数据对应的内容源名称以及最新NDN全网拓扑结构图放入位置数据包回复给用户;
[0081] 9.1.2若网络拓扑定时器T2到达设定时间,则NDN中除结点H以外的所有结点再次确定本结点的链路状态即相邻结点的名称及可达性信息,并向结点H发送定位兴趣包;
[0082] 结点H收到来自所有结点的定位兴趣包,则立即更新NDN全网拓扑结构图,并将网络拓扑应用记录表中的所有用户记录擦除。之后结点H收到用户的位置请求兴趣包时,会在网络拓扑应用记录表中重新记录用户名称,并将用户所需数据对应的内容源名称以及最新NDN全网拓扑结构图放入位置数据包回复给用户;
[0083] 9.1.3若统计间隔定时器T3到达设定时间,则结点H查看T3时间内全网数据名称和内容源名称匹配列表中各数据的用户请求次数,并发送“通知兴趣包”至内容源,内容源向全网广播“推送兴趣包”,推送高流行度数据的名称,补充NDN结点的FIB表;然后将T3清零,将全网数据名称和内容源名称匹配列表中各数据的用户请求次数清零,再次统计各数据的用户请求次数直到T3再一次到期。
[0084] 有益效果
[0085] 本发明提出的基于位置信息和内容推送的命名数据网络综合路由方法,与现有命名数据网络的路由方法相比,具有如下有益效果:
[0086] 1.与基于位置信息的路由方法相比,本发明所述路由方法的算法复杂度更低;
[0087] 2.与主动通告路由和按需路由方法相比,本发明所述路由方法的带宽开销更小;
[0088] 3.相对于目前NDN中使用的路由方法,所述综合路由方法的优势在于,内容发布者仅推送部分流行度高的数据,而不需要推送所有数据信息,因而链路带宽开销更小;
[0089] 4.所述综合路由方法,针对内容发布者推送的数据,用户可以直接发送数据请求兴趣包到内容发布者获取数据,基于位置信息的Dijkstra算法使用频率降低,因而算法复杂度更低;
[0090] 5.所述综合路由方法实现带宽开销和算法复杂度的平衡,在链路带宽有限的情况下,可实现FIB表的快速建立和兴趣包的高效转发,在大规模NDN网络中尤为适用。

附图说明

[0091] 图1为本发明基于位置信息和内容推送的命名数据网络综合路由方法中步骤一网络拓扑及结点H设置实例图;
[0092] 图2为本发明基于位置信息和内容推送的命名数据网络综合路由方法中步骤六用户发送位置请求兴趣包以及结点H回复位置数据包的流程图;
[0093] 图3为本发明基于位置信息和内容推送的命名数据网络综合路由方法中步骤七用户计算转发路径并发送数据请求兴趣包以及内容源回复内容数据包的流程图;
[0094] 图4为本发明基于位置信息和内容推送的命名数据网络综合路由方法中步骤七使用的Dijkstra最优路径算法的计算流程图;
[0095] 图5为本发明基于位置信息和内容推送的命名数据网络综合路由方法中步骤八结点H评估数据流行度以及内容源推送数据名称补充NDN结点的FIB表的流程图。

具体实施方式

[0096] 下面将结合附图和实施例对本发明加以详细说明,同时论述本发明的技术方案解决的技术问题及有益效果。需要指出的是,所描述的实施例旨在便于对本发明的理解,对本发明不起任何限定作用。
[0097] 实施例1
[0098] 本实施例论述的是基于位置信息和内容推送的综合路由方法在NDN通信中的应用。
[0099] 本实施例基于NDN网络,用户发送兴趣包请求数据,内容源回复数据包响应此请求。网络拓扑及结点设置如图1所示。本实施例中,NDN结点命名格式为“nodex(x=1,2,3……)”,其中node1为用户,node6为内容源。NDN数据命名格式为“datax(x=1,2,3……)”。
应用本发明路由方法的NDN通信实施例如下:
[0100] 步骤I、设置网络管理服务器,具体包括如下子步骤:
[0101] 步骤I.1在NDN的中心区域选定结点H,作为网络管理服务器,本实施例中网络拓扑及结点H的设置如图1所示;
[0102] 步骤I.2结点H以广播的方式推送名称为“/H”的认证兴趣包,认证兴趣包的内容是“结点H为网络管理服务器”。所有收到认证兴趣包的结点在其FIB表中添加一条名称为“/H”的路由条目,所述路由条目的转发接口为收到认证兴趣包的接口;
[0103] 步骤II、确定各个结点的链路状态并启动链路状态定时器,具体包括如下子步骤:
[0104] 步骤II.1NDN中每两个相邻结点互相向对方发送一次问候兴趣包,问候兴趣包的名称为“/hello/nodex”(nodex是本结点名字,x=1,2,3……)。问候兴趣包的内容是“本结点名字信息以及向本结点发送数据的路由代价”;
[0105] 步骤II.2NDN中各个结点根据收到的所有问候兴趣包,记录本结点的所有相邻结点的名字信息以及对应链路的路由代价,形成本结点的链路状态数据库。本实施例中结点node1的链路状态数据库列表如表1所示;
[0106] 表1结点node1的链路状态数据库列表
[0107] 相邻结点 链路的路由代价node2 100
node7 110
node8 120
[0108] 步骤II.3启动所有结点中的链路状态定时器T1,本实施例中设置T1定时时间为30s,即每隔30s,相邻结点互相向对方发送一次问候兴趣包;
[0109] 步骤III、基于定位兴趣包的汇总建立NDN全网拓扑结构图并启动网络拓扑定时器,具体包括如下子步骤:
[0110] 步骤III.1NDN中除结点H以外的所有结点,向结点H发送名为“/H/nodex”的定位兴趣包,定位兴趣包的内容包括“本结点名字,本结点的相邻结点以及对应链路的路由代价”。根据之前在各结点的FIB中添加的名称为“/H”的路由条目,定位兴趣包会被转发至结点H;
[0111] 步骤III.2结点H根据收到的所有定位兴趣包汇总建立NDN全网拓扑结构图;
[0112] 步骤III.3启动所有结点中的网络拓扑定时器T2,本实施例中设置T2定时时间为10min,即每隔10min,NDN各个结点确定本结点的链路状态,并向结点H发送一次定位兴趣包;
[0113] 步骤IV、建立网络拓扑应用记录表,具体为:在结点H中建立一个网络拓扑应用记录表,该表中记录的内容是“拥有最新NDN全网拓扑结构图的用户”,此时该表中内容为空;
[0114] 步骤V、基于内容兴趣包的汇总建立全网数据名称和内容源名称匹配列表并启动统计间隔定时器,具体包括如下子步骤:
[0115] 步骤V.1NDN中内容源node6向结点H发送内容兴趣包,通知结点H本内容源持有的数据。本实施例中内容兴趣包命名为“/H/Producer/node6”,内容兴趣包的内容是“本内容源的名称为node6,内容源持有的数据为data1、data2、data3”;
[0116] 步骤V.2在内容兴趣包的逐跳转发过程中,中间结点node4、node5以及结点H在其FIB表中添加名称为“/node6”的路由条目,所述路由条目的转发接口为收到内容兴趣包的接口,方便后续流程中结点H与内容源node6通信;
[0117] 步骤V.3结点H根据收到的所有内容兴趣包,汇总并记录各个内容源持有的数据名称,建立全网数据名称和内容源名称匹配列表。该表中记录的是NDN中所有数据的名称及其对应的内容源名称以及各数据的用户请求次数;
[0118] 步骤V.4将全网数据名称和内容源名称匹配列表中各数据的用户请求次数初始化为0;
[0119] 步骤V.5启动结点H中的统计间隔定时器T3,本实施例中设置T3定时时间为30min,即每隔30min,结点H统计最近30min内各数据的用户请求次数;
[0120] 步骤VI、用户发送位置请求兴趣包以及结点H回复位置数据包,具体包括如下子步骤:
[0121] 步骤VI.1本实施例中,用户node1请求数据data1,用户查询FIB表发现没有匹配data1的路由条目,用户向结点H发送名为“/H/data1/node1”位置请求兴趣包,位置请求兴趣包的内容是“用户node1请求数据data1”;
[0122] 步骤VI.2结点H收到位置请求兴趣包,提取数据名称“data1”和用户名称“node1”,查找全网数据名称和内容源名称匹配列表,找到存储该数据的内容源node6,并将数据data1对应的用户请求次数加1。此时结点H中全网数据名称和内容源名称匹配列表如表2所示;
[0123] 表2结点H中全网数据名称和内容源名称匹配列表
[0124]数据名称 内容源名称 用户请求次数
data1 node6 1
data2 node6 0
data3 node6 0
[0125] 步骤VI.3结点H根据用户名称查询网络拓扑应用记录表,网络拓扑应用记录表中不包含该用户名称,则结点H将用户名称“node1”添加到网络拓扑应用记录表中;结点H生成名为“/H/data1/node1”的位置数据包,将内容源名称“node6”和最新NDN全网拓扑结构图放入位置数据包,按照位置请求兴趣包转发的反向路径将位置数据包回传给用户;
[0126] NDN中用户发送位置请求兴趣包以及结点H回复位置数据包的流程图如图2所示;
[0127] 步骤VII、用户计算转发路径并发送数据请求兴趣包以及内容源回复内容数据包,具体包括如下子步骤:
[0128] 步骤VII.1用户node1接收位置数据包,从位置数据包中获取内容源名称node6,并保存最新NDN全网拓扑结构图;
[0129] 步骤VII.2用户根据NDN全网拓扑结构图和结点名称找到用户node1和内容源node6的位置,利用Dijkstra算法计算出从用户到内容源的最优转发路径。本实施例中计算得到的路径为node1→node2→node3→node6。Dijkstra最优路径算法的计算流程如图4所示;
[0130] 步骤VII.3用户发送名为“/data1”的数据请求兴趣包,数据请求兴趣包的内容是“请求数据data1,转发路径是node1→node2→node3→node6”,数据请求兴趣包根据相应转发路径,在网络中经过多个结点逐跳转发,并在沿途结点node1、node2、node3的FIB表中添加名称为“/data1”的路由条目,相应的转发接口为最优转发路径对应的下一转发接口,从而建立从用户node1到内容源node6的关于数据data1的完整的数据请求兴趣包转发路径;
[0131] 步骤VII.4内容源node6收到数据请求兴趣包后,查看兴趣包得知用户需要数据data1,内容源回复名称为“/data1”内容数据包,内容数据包中包含用户所请求的数据内容,内容数据包按照数据请求兴趣包转发的反向路径回传到用户,内容数据包回传过程中,中间结点node2、node3缓存内容数据包,方便后期其他用户获取数据;
[0132] NDN中用户计算转发路径并发送数据请求兴趣包以及内容源回复内容数据包的流程图如图3所示;
[0133] 步骤VIII、结点H评估数据流行度以及内容源推送数据名称补充NDN结点的FIB表,具体包括如下子步骤:
[0134] 步骤VIII.1查询统计间隔定时器T3是否到期,每隔30min统计间隔定时器T3到期,结点H查看最近30min内各数据的用户请求次数,即表2中各数据的用户请求次数统计结果。本实施例设定X=1,即对于用户请求次数最多的1种数据,结点H向该数据对应的内容源发送“通知兴趣包”,“通知兴趣包”的内容是“需要推送的数据的名称”;本实施例中需要推送的数据是data1,结点H向内容源node6发送“通知兴趣包”,“通知兴趣包”命名为“/node6/push”,“通知兴趣包”的内容是“需要推送的数据的名称为data1”;
[0135] 步骤VIII.2内容源node6广播“推送兴趣包”,向全网推送数据data1。“推送兴趣包”命名为“/push/data1”。“推送兴趣包”的内容是“推送的数据名称为data1,内容源为node6”;
[0136] 步骤VIII.3所有收到推送兴趣包的结点,查询其FIB表,若FIB表中没有关于数据data1的路由条目,则在其FIB表中添加名为“/data1”的路由条目,所述路由条目的转发接口为收到推送兴趣包的接口;若结点的FIB表中已存在名为“/data1”的路由条目,且该路由条目的转发接口集合中包括收到推送兴趣包的接口,则无需更改FIB表;若结点的FIB表中已存在名为“/data1”的路由条目,且该路由条目的转发接口集合中不包括收到推送兴趣包的接口,则向该路由条目的转发接口集合中增加一个转发接口即收到推送兴趣包的接口;
[0137] 步骤VIII.4将统计间隔定时器T3清零,将结点H的全网数据名称和内容源名称匹配列表中各数据的用户请求次数清零,结点H重新统计各数据的用户请求次数直到T3再次到期。
[0138] NDN中结点H评估数据流行度以及内容源推送数据名称补充NDN结点的FIB表的流程图如图5所示;
[0139] 步骤VIIII、定期检测链路状态更新网络拓扑和推送高流行度数据名称,包括如下子步骤:
[0140] 步骤VIIII.1检测T1、T2、T3是否到达设定的定时时间,若链路状态定时器T1到期,执行VIIII.1.1;若网络拓扑定时器T2到期,执行VIIII.1.2,若统计间隔定时器T3到期,执行VIIII.1.3;
[0141] VIIII.1.1若T1到达设定的定时时间30s,则NDN每两个相邻结点互相发送一次名称为“/hello/nodex”的问候兴趣包,确定各个结点的链路状态。判断任一结点的链路状态是否发生变化,即相邻结点由可达变为不可达,或由不可达变为可达,若发生变化则该结点在确定新的相邻结点和对应链路的路由代价后,立即向结点H发送名为“/H/nodex/new”的更新兴趣包,更新兴趣包与定位兴趣包的内容一致;若链路状态无变化则不需要进行任何操作;
[0142] 结点H收到来自任一结点的更新兴趣包,则立即更新NDN全网拓扑结构图,并将网络拓扑应用记录表中的所有用户记录擦除;之后结点H收到用户的位置请求兴趣包时,会在网络拓扑应用记录表中重新记录用户名称,并将用户所需数据对应的内容源名称以及最新NDN全网拓扑结构图放入位置数据包回复给用户。
[0143] VIIII.1.2若T2到达设定的定时时间10min,则除结点H以外所有结点再次确定本结点的链路状态即相邻结点的名称及可达性信息,向结点H发送名为“/H/nodex”的定位兴趣包;
[0144] 结点H收到来自所有结点的定位兴趣包,则立即更新NDN全网拓扑结构图,并将网络拓扑应用记录表中的所有用户记录擦除。之后结点H收到用户的位置请求兴趣包时,会在网络拓扑应用记录表中重新记录用户名称,并将用户所需数据对应的内容源名称以及最新NDN全网拓扑结构图放入位置数据包回复给用户。
[0145] VIIII.1.3若T3到达设定的定时时间30min,则结点H查看最近30min内全网数据名称和内容源名称匹配列表中各数据的用户请求次数,并发送“通知兴趣包”至内容源,内容源向全网广播“推送兴趣包”,推送高流行度数据的名称,补充NDN结点的FIB表;然后将T3清零,将全网数据名称和内容源名称匹配列表中各数据的用户请求次数清零,再次统计各数据的用户请求次数直到T3再一次到期。
[0146] 本实施例中使用的多种兴趣包命名实例如表3所示;多种数据包命名实例如表4所示;
[0147] 表3多种兴趣包命名实例表
[0148] 兴趣包类型 发送方 接收方 命名实例认证兴趣包 结点H 所有结点 /H
问候兴趣包 任一结点 相邻结点 /hello/node1
定位兴趣包 任一结点 结点H /H/node1
更新兴趣包 任一结点 结点H /H/node1/new
内容兴趣包 内容源 结点H /H/Producer/node6
位置请求兴趣包 用户 结点H /H/data1/node1
数据请求兴趣包 用户 内容源 /data1
通知兴趣包 结点H 内容源 /node6/push
推送兴趣包 内容源 所有结点 /push/data1
[0149] 表4多种数据包命名实例表
[0150]数据包类型 发送方 接收方 命名实例
位置数据包 结点H 用户 /H/data1/node1
内容数据包 内容源 用户 /data1
[0151] 本实施例描述了NDN中使用基于位置信息和内容推送的综合路由方法的通信过程,这种路由方法继承了基于位置信息的路由方法和主动通告路由方法的优点,并对路由方法进行算法优化,实现了链路带宽开销小,算法复杂度低的路由目标,能够在链路带宽有限的情况下,实现FIB表的快速建立和多种类兴趣包的高效转发,对大规模NDN网络尤为适用。
[0152] 以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。