一种路由方法和路由器的制造方法

文档序号:7769742阅读:205来源:国知局
一种路由方法和路由器的制造方法
【专利摘要】本发明提供了一种路由方法和路由器,该方法包括:在路由器节点中设置拓扑路由表TRT,该TRT中保存网络中所有路由器节点的信息与所述路由器节点的下一跳的对应关系;确定与共享内容对应的注册节点,将源节点的信息保存在所述注册节点中;所述方法还包括:当路由器节点收到兴趣INTEREST消息时,查询TRT,找到与INTEREST消息中携带的注册节点的信息对应的下一跳;将INTEREST消息发送给下一跳,以触发该下一跳将INTEREST消息路由到共享内容对应的注册节点及触发该注册节点将从源节点获取的共享内容返回;接收返回的共享内容,并转发所述共享内容给发来INTEREST消息的路由器节点。通过本发明提供的方法能够降低网络中的流量。
【专利说明】 一种路由方法和路由器

【技术领域】
[0001]本发明涉及网络【技术领域】,尤其涉及一种路由方法和路由器。

【背景技术】
[0002]随着未来网络研究的迅速发展,内容中心网络(CCN, Content Centric Network)作为未来网络的一种越来越受到重视。CCN以内容为传输的基础,通过名字获取内容文件,这与传统的使用IP地址来定位内容源不同。内容中心网络可以代替传统的主机到主机会话的内容共享交流模型,将内容识别与源地址信息分离开。
[0003]内容中心网络有非常好的概念模型,但是迄今为止,用何种路由方法可以在这种概念设计的基础上从最佳的源地址获取内容仍然是一个尚未解决的课题。在现有技术中,应用于CCN的路由方法主要是沿用传统IP网络的路由方法。当网络中有节点发布共享内容时,会将该共享内容的源节点信息广播给周围的路由器节点,接收到该信息的路由器节点会记录该共享内容的标记和下一跳的对应关系,并将该信息广播给周围的路由器节点;当网络中的路由器节点接收到请求共享内容的请求消息时,会查询自身是否有该共享内容的标记,如果有,则随机的选择一个该共享内容的标记对应的下一跳,向该下一跳转发该请求消息,如果没有,则随机的向相邻的一个路由器节点转发该请求消息。
[0004]根据以上描述可以看出,在现有技术中,在共享内容发布的过程中,接收到共享内容的源节点信息的路由器节点都会将该信息广播给周围的路由器节点,这会导致网络中的流量很大。


【发明内容】

[0005]本发明实施例提供了一种路由方法和路由器,能够降低网络中的流量。
[0006]一方面,本发明实施例提供了一种路由方法,包括:在路由器节点中设置拓扑路由表TRT,该TRT中保存网络中所有路由器节点的信息与所述路由器节点的下一跳的对应关系;确定与共享内容对应的注册节点,将源节点的信息保存在所述注册节点中;所述方法还包括:
[0007]S1、当路由器节点收到兴趣INTEREST消息时,查询TRT,找到与INTEREST消息中携带的注册节点的信息对应的下一跳;
[0008]S2、将INTEREST消息发送给下一跳,以触发该下一跳将INTEREST消息路由到共享内容对应的注册节点及触发该注册节点将从源节点获取的共享内容返回;
[0009]S3、接收返回的共享内容,并转发所述共享内容给发来INTEREST消息的路由器节点。
[0010]进一步地,所述确定与共享内容对应的注册节点包括:
[0011]将第一个发布所述共享内容的源节点的任意一个下一跳的节点确定为与共享内容对应的注册节点;
[0012]或者,
[0013]将内容中心网络中当前业务负荷量最小的节点确定为与共享内容对应的注册节占.
[0014]或者,
[0015]根据用户输入的注册节点指定命令,确定与共享内容对应的注册节点。
[0016]进一步地,该方法进一步包括:
[0017]在路由器节点中设置转发信息库FIB表,在FIB表的表项中保存共享内容的标记、下一跳以及到共享内容的源节点的跳数三者的对应关系;
[0018]步骤SI中,在所述当路由器节点收到INTEREST消息之后,并在所述查询TRT之前,进一步包括:
[0019]查询FIB表的表项中是否有所述INTEREST消息中携带的共享内容的标记,
[0020]如果有,则选择包括的跳数值最小的表项,根据该表项中下一跳信息发送所述INTEREST消息,直接执行步骤S3 ;
[0021]如果没有,继续执行所述查询TRT的步骤,并且在步骤S3中进一步包括:根据接收到的返回的共享内容,在FIB表中建立共享内容的标记、下一跳以及到共享内容的源节点的跳数三者的对应关系。
[0022]进一步地,所述方法进一步包括:
[0023]当所述路由器节点接收到向注册节点注册的注册信息时,根据注册信息,在FIB表中建立共享内容的标记、下一跳以及到共享内容的源节点的跳数三者的对应关系。
[0024]进一步地,所述方法进一步包括:
[0025]每隔固定的时间,向邻居节点查询所述FIB表中的共享内容的标记是否存在,如果不存在,则删除所述共享内容的标记所在的表项。
[0026]进一步地,该方法进一步包括:
[0027]在路由器节点中设置待定兴趣表PIT,该PIT中保存所述路由器节点已经接收到的INTEREST消息,并且该INTEREST消息对应的响应还未接收到;
[0028]步骤SI中,在所述当路由器节点收到INTEREST消息之后,并在所述查询TRT之前,进一步包括:
[0029]查询PIT中是否有与当前接收到的INTEREST消息相同的INTEREST消息,
[0030]如果有,则等待先前的INTEREST消息的响应,当先前的INTEREST消息返回共享内容后,执行步骤S3 ;
[0031]如果没有,则将当前接收到的INTEREST消息加入到PIT中,继续执行所述查询TRT的步骤,并且在步骤S3中进一步包括:删除所述INTEREST消息。
[0032]进一步地,该方法进一步包括:
[0033]步骤SI中,在所述当路由器节点收到INTEREST消息之后,并在所述查询TRT之前,进一步包括:查询内容缓存CS中是否有INTEREST消息请求的共享内容存在,
[0034]如果有,则发送所述共享内容给发来INTEREST消息的路由器节点,结束当前流程;
[0035]如果没有,继续执行所述查询TRT的步骤,并且在步骤S3中进一步包括:将所述共享内容存储到CS中。
[0036]另一方面,本发明实施例还提供了一种路由器,所述路由器包括:
[0037]TRT保存模块,用于保存TRT,该TRT中包括网络中所有路由器节点的信息与所述路由器节点的下一跳的对应关系;
[0038]注册模块,用于确定与共享内容对应的注册节点,将源节点的信息保存在所述注册节点中;
[0039]查询模块,用于当收到INTEREST消息时,到所述TRT保存模块中查询TRT,找到与INTEREST消息中携带的注册节点的信息对应的下一跳;
[0040]发送模块,用于将INTEREST消息发送给所述查询模块所找到的下一跳,以触发该下一跳将INTEREST消息路由到共享内容对应的注册节点及触发该注册节点将从源节点获取的共享内容返回;
[0041]转发模块,用于接收返回的共享内容,并转发所述共享内容给发来INTEREST消息的路由器节点。
[0042]进一步地,所述注册模块用于:
[0043]将第一个发布所述共享内容的源节点的任意一个下一跳的节点确定为与共享内容对应的注册节点;
[0044]或者,
[0045]将内容中心网络中当前业务负荷量最小的节点确定为与共享内容对应的注册节占.
[0046]或者,
[0047]根据用户输入的注册节点指定命令,确定与共享内容对应的注册节点。
[0048]进一步地,所述路由器进一步包括:FIB表保存模块,其中,
[0049]所述FIB表保存模块,用于保存FIB表,FIB表的表项中包括共享内容的标记、下一跳以及到共孚内容的源节点的跳数二者的对应关系;
[0050]所述查询模块,进一步用于到所述TRT保存模块中查询TRT之前,查询FIB表保存模块,判断FIB表的表项中是否有所述INTEREST消息中携带的共享内容的标记,
[0051]如果有,则选择包括的跳数值最小的表项,根据该表项中下一跳信息发送所述INTEREST 消息;
[0052]如果没有,继续执行到所述TRT保存模块中查询TRT的处理,并且根据接收到的返回的共享内容,在FIB表保存模块的FIB表中建立共享内容的标记、下一跳以及到共享内容的源节点的跳数三者的对应关系。
[0053]进一步地,所述FIB表保存模块用于:
[0054]当所述路由器节点接收到向注册节点注册的注册信息时,根据注册信息,在FIB表中建立共享内容的标记、下一跳以及到共享内容的源节点的跳数三者的对应关系。
[0055]进一步地,所述路由器进一步包括:
[0056]FIB表更新模块,用于每隔固定的时间,向邻居节点查询所述FIB表中的共享内容的标记是否存在,如果不存在,则删除所述共享内容的标记所在的表项。
[0057]进一步地,所述路由器进一步包括:PIT保存模块,其中,
[0058]所述PIT保存模块,用于保存PIT,该PIT中包括所述路由器节点已经接收到的INTEREST消息,并且该INTEREST消息对应的响应还未接收到;
[0059]所述查询模块,进一步用于在到所述TRT保存模块中查询TRT之前,查询所述PIT保存模块,判断PIT中是否有与当前接收到的INTEREST消息相同的INTEREST消息,
[0060]如果有,则等待先前的INTEREST消息的响应;
[0061]如果没有,则将所述INTEREST消息加入到所述PIT保存模块的PIT中,并且当接收到返回的共享内容后,删除所述INTEREST消息。
[0062]进一步地,所述查询模块,进一步用于在到所述TRT保存模块中查询TRT之前,查询内容缓存CS中是否有INTEREST消息请求的共享内容存在,
[0063]如果有,则发送所述共享内容给发来INTEREST消息的路由器节点;
[0064]如果没有,继续执行到所述TRT保存模块中查询TRT的处理,并且当接收到返回的共享内容后,将所述共享内容的存储到CS中。
[0065]本发明实施例提供了一种路由方法,路由器节点在发布共享内容时,向注册节点进行注册,每一个共享内容对应一个注册节点,当获取共享内容时,根据TRT正确路由到对应的注册节点,能够降低网络中流量。

【专利附图】

【附图说明】
[0066]图1本发明实施例提供的一种路由方法的流程图;
[0067]图2本发明实施例提供的一种内容名称组成示意图;
[0068]图3本发明实施例提供的一种节点命名示意图;
[0069]图4本发明实施例提供的一种网络拓扑示意图;
[0070]图5本发明实施例提供的一种路由方法的流程图;
[0071]图6本发明实施例提供的一种路由器结构图。

【具体实施方式】
[0072]为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所收获的所有其他实施例,都属于本发明保护的范围。
[0073]随着CCN的发展,以何种路由方法可以在CCN中从最佳的源地址获取内容越来越迫切的需要解决,针对现有的CCN的路由方法存在的问题,本发明实施例提供了一种路由方法和路由器,参见图1,本发明实施例提供的一种路由方法,该方法包括:
[0074]步骤101:在路由器节点中设置TRT (Topology Routing Table,拓扑路由表),该TRT中保存网络中所有路由器节点的信息与该路由器节点的下一跳的对应关系;
[0075]步骤102:确定与共享内容对应的注册节点,将源节点的信息保存在注册节点中;
[0076]该方法还包括:
[0077]步骤103:当路由器节点收到INTEREST (兴趣)消息时,查询TRT,找到与INTEREST消息中携带的注册节点的信息对应的下一跳;
[0078]步骤104:将INTEREST消息发送给下一跳,以触发该下一跳将INTEREST消息路由到共享内容对应的注册节点及触发该注册节点将从源节点获取的共享内容返回;
[0079]步骤105:接收返回的共享内容,并转发该共享内容给发来INTEREST消息的路由器节点。
[0080]在本发明实施例中,TRT中记录了网络中所有路由器节点的信息与该路由器节点的下一跳的对应关系,例如,路由器节点的名称或位置与该路由器节点的下一跳的对应关系。该共享内容的注册节点中记录了该共享内容的所有的源节点的位置,当该INTEREST消息发送到注册节点后,注册节点可以根据记录中的源节点的位置,将该INTEREST向该共享内容的最近的一个源节点转发,当该源节点接收到INTEREST消息后,按照原路径返回内容。INTEREST消息中包括了要请求的共享内容的信息,例如要请求的共享内容的内容名称。
[0081]另外,确定与共享内容对应的注册节点,包括:
[0082]方法a:将第一个发布该共享内容的源节点的任意一个下一跳的节点确定为与共享内容对应的注册节点;
[0083]方法b:将内容中心网络中当前业务负荷量最小的节点确定为与共享内容对应的注册节点;
[0084]方法c:根据用户输入的注册节点指定命令,确定与共享内容对应的注册节点。
[0085]在对新的共享内容进行内容注册时,确定注册点后,内容名称的三部分:协议名、注册点位置和内容标识都已确定,将内容名称记录在网页或者是某些门户网站上,供需要的用户查询。参见图2,是内容名称的示意图。其中,内容标识是区别文件内容的唯一指标,其命名规则按照现有的CCNx协议的命名方式。注册点位置是按照一种类似于HTTP (Hypertext Transfer Protocol,超文本传送协议)的节点命名方式进行命名的,如图3所示,其中有两个注册点位置,分别是pku.edu.cn和thu.edu.cn。
[0086]下面通过一个CCN的网络拓扑,如图4所示,分别来描述确定与共享内容对应的注册节点的过程。
[0087]方法a:路由器节点D要发布共享内容m,通过查询知道网络中还没有共享内容m的注册节点,则将路由器节点D的下一跳的路由器节点A、E、F、G、H中的任意一个节点确定为该共享内容m对应的注册节点。
[0088]方法b:路由器节点D要发布共享内容m,通过查询知道网络中还没有共享内容m的注册节点,检测到网络中节点B的当前业务负荷量最小,确定节点B为该共享内容m对应的注册节点。
[0089]方法c:路由器节点D要发布共享内容m,通过查询知道网络中还没有共享内容m的注册节点,用户输入注册节点指定命令。指定节点C为该共享内容m对应的注册节点。
[0090]其中,如果一个已经在注册节点注册过的源节点改变了位置,则该源节点会重新向该注册节点进行注册。
[0091]通过上述实施例提供的方法,要首先经过注册节点才能找到源节点,为了更快的找到源节点,本发明实施例中设置了 FIB (Forwarding Informat1n Base,转发信息库)表,具体包括:
[0092]在路由器节点中设置FIB表,在FIB表的表项中保存共享内容标记、下一跳以及到共享内容的源节点的跳数三者的对应关系;
[0093]步骤103中,在当路由器节点收到INTEREST消息之后,并在查询TRT之前,进一步包括:
[0094]查询FIB表的表项中是否有该INTEREST消息中携带的共享内容的标记,
[0095]如果有,则选择包括的跳数值最小的表项,根据该表项中下一跳信息发送该INTEREST消息,直接执行步骤105 ;
[0096]如果没有,继续执行查询TRT的步骤,并且在步骤105中进一步包括:根据接收到的返回的共享内容,在FIB表中建立共享内容的标记、下一跳以及到共享内容的源节点的跳数三者的对应关系。
[0097]另外,当路由器节点接收到向注册节点注册的注册信息时,根据注册信息,在FIB表中建立共享内容的标记、下一跳以及到共享内容的源节点的跳数三者的对应关系。
[0098]并且,每隔固定的时间,向邻居节点查询所述FIB表中的共享内容标记是否存在,如果不存在,则删除所述共享内容标记对应的表项。
[0099]对于跳数的计算,通过在FIB表增加一个跳数计数器来实现,用该跳数计数器来计算当前路由器节点到源节点需要的跳数。
[0100]通过上述的实施例提供的方法,在同一个路由器节点中可能会接到相同的INTEREST消息,而先到的INTEREST消息的响应还没有到达本路由器节点,如果对后来的INTEREST消息重新进行处理,则会浪费不必要的资源和时间,为了避免这种浪费,本发明实施例中设置了 PIT (Pending Interest Table,待定兴趣表),具体包括:
[0101]在路由器节点中设置PIT,该PIT中保存路由器节点已经接收到的INTEREST消息,并且该INTEREST消息对应的响应还未接收到;
[0102]步骤103中,在当路由器节点收到INTEREST消息之后,并在查询TRT之前,进一步包括:
[0103]查询PIT中是否有与当前接收到的INTEREST消息相同的INTEREST消息,
[0104]如果有,则等待先前的INTEREST消息的响应,当先前的INTEREST消息返回共享内容后,执行步骤105 ;
[0105]如果没有,则将当前接收到的INTEREST消息加入到PIT中,继续执行查询TRT的步骤,并且在步骤105中进一步包括:删除该INTEREST消息。
[0106]其中,PIT中保存了本路由器节点接收到的INTEREST消息,当有相同的INTEREST消息时,可以将后来的INTEREST消息删除,当被请求的共享内容返回到本路由器节点时,将该共享内容分别转发给发来INTEREST消息的路由器节点。
[0107]通过上述实施例提供的方法,当某个共享内容接连被请求时,通过上述实施例提供的方法,需要处理多次,为了进一步提高效率,本发明实施例中设置了 CS(ContentStorage,内容缓存),具体包括:
[0108]步骤103中,在当路由器节点收到INTEREST消息之后,并在查询TRT之前,进一步包括:查询CS中是否有INTEREST消息请求的共享内容存在,
[0109]如果有,则发送该共享内容给发来INTEREST消息的路由器节点,结束当前流程;
[0110]如果没有,继续执行所述查询TRT的步骤,并且在步骤105中进一步包括:将该共享内容存储到CS中。
[0111]在上述的本发明实施例中,通过分别添加FIB表、PIT、CS,可以提高获取共享内容的速度,将FIB表、PIT、CS同时用于本发明实施例中,能够进一步的提高路由效率和获取共享内容的速度。
[0112]将FIB表、PIT、CS同时用于本发明实施例,构成一个较优实施例,下面通过一个具体地CCN网络来详细说明本发明实施例的实现过程,参见图4,在本实施例有8个路由器节点,拓扑关系如图所示。路由器节点C向路由器节点H发送INTEREST消息,具体的路由过程如图5所示,包括:
[0113]步骤501:路由器节点H收到路由器节点C发送的INTEREST消息;
[0114]步骤502:查询CS中是否有INTEREST消息请求的共享内容存在;
[0115]步骤503a:如果有,则发送该共享内容给发来INTEREST消息的路由器节点C,结束当前流程;
[0116]步骤503b:如果没有,则查询PIT中是否有与当前接收到的INTEREST消息相同的INTEREST 消息;
[0117]步骤504a:如果有,则等待先前的INTEREST消息的响应,当先前的INTEREST消息返回共享内容后,依次执行步骤507、步骤509 ;
[0118]步骤504b:如果没有,则将当前接收到的INTEREST消息加入到PIT中,查询FIB表的表项中是否有该INTEREST消息中携带的共享内容的标记;
[0119]步骤505a:如果有,则选择包括的跳数值最小的表项,根据该表项中下一跳信息发送该INTEREST消息,依次执行步骤507、步骤509 ;
[0120]步骤505b:如果没有,则查询TRT,找到与INTEREST消息中携带的注册节点的信息对应的下一跳;
[0121]步骤506:将INTEREST消息发送给下一跳,以触发该下一跳将INTEREST消息路由到共享内容对应的注册节点及触发该注册节点将从源节点获取的共享内容返回;
[0122]步骤507:接收返回的共享内容;
[0123]步骤508a:将该共享内容的存储到CS中;
[0124]步骤508b:删除PIT中请求该共享内容的INTEREST消息;
[0125]步骤508c:根据接收到的返回的共享内容,在FIB表中建立共享内容的标记、下一跳以及到共孚内容的源节点的跳数二者的对应关系;
[0126]步骤509:转发该共享内容给发来INTEREST消息的路由器节点C。
[0127]每个路由器节点都执行相同的操作,当一个路由器节点获取了被请求的共享内容后,按照原路径返回共享内容给。
[0128]通过上述实施例可以清楚的说明本发明实施例提供的一种路由方法的实现过程。
[0129]参见图6,本发明实施例还提供了一种路由器,该路由器包括:
[0130]TRT保存模块601,用于保存TRT,该TRT中包括网络中所有路由器节点的信息与该路由器节点的下一跳的对应关系;
[0131]注册模块602,用于确定与共享内容对应的注册节点,将源节点的信息保存在注册节点中;
[0132]查询模块603,用于当收到INTEREST消息时,到TRT保存模块602中查询TRT,找到与INTEREST消息中携带的注册节点的信息对应的下一跳;
[0133]发送模块604,用于将INTEREST消息发送给查询模块603所找到的下一跳,以触发该下一跳将INTEREST消息路由到共享内容对应的注册节点及触发该注册节点将从源节点获取的共享内容返回;
[0134]转发模块605,用于接收返回的共享内容,并转发该共享内容给发来INTEREST消息的路由器节点。
[0135]其中,注册模块601,还用于:
[0136]将第一个共享该共享内容的源节点的任意一个下一跳的节点确定为与共享内容对应的注册节点;
[0137]或者,
[0138]将内容中心网络中当前业务负荷量最小的节点确定为与共享内容对应的注册节占.
[0139]或者,
[0140]根据用户输入的注册节点指定命令,确定与共享内容对应的注册节点。
[0141]为了更快的找到INTEREST消息中所请求的共享内容的源节点,在本发明实施例提供的路由器中增加了 FIB表保存模块606,其中,
[0142]FIB表保存模块606,用于保存FIB表,FIB表的表项中包括共享内容的标记、下一跳以及到共孚内容的源节点的跳数二者的对应关系;
[0143]查询模块603,进一步用于到TRT保存模块602中查询TRT之前,查询FIB表保存模块606,判断FIB表的表项中是否有该INTEREST消息中携带的共享内容的标记,
[0144]如果有,则选择包括的跳数值最小的表项,根据该表项中下一跳信息发送该INTEREST 消息;
[0145]如果没有,继续执行到TRT保存模块602中查询TRT的处理,并且根据接收到的返回的共享内容,在FIB表保存模块606的FIB表中建立共享内容的标记、下一跳以及到共享内容的源节点的跳数三者的对应关系。
[0146]其中,FIB表保存模块606还用于:
[0147]当路由器节点接收到向注册节点注册的注册信息时,根据注册信息,在FIB表中建立共享内容的标记、下一跳以及到共享内容的源节点的跳数三者的对应关系。
[0148]另外,为了保持FIB表中的记录的有效性,在路由器中增加了 FIB表更新模块607,用于每隔固定的时间,向邻居节点查询FIB表中的共享内容的标记是否存在,如果不存在,则删除该共享内容的标记所在的表项。
[0149]为了加快获取被请求的共享内容的速度,在本发明实施例提供的路由器中增加了PIT保存模块608,其中,
[0150]PIT保存模块608,用于保存PIT,该PIT中包括路由器节点已经接收到的INTEREST消息,并且该INTEREST消息对应的响应还未接收到;
[0151]查询模块603,进一步用于在到TRT保存模块602中查询TRT之前,查询PIT保存模块608,判断PIT中是否有与当前接收到的INTEREST消息相同的INTEREST消息,
[0152]如果有,则等待先前的INTEREST消息的响应;
[0153]如果没有,则将该INTEREST消息加入到PIT保存模块608的PIT中,并且当接收到返回的共享内容后,删除该INTEREST消息。
[0154]为了进一步提高获取被请求的共享内容的处理效率,查询模块603进一步用于在到TRT保存模块602中查询TRT之前,查询CS中是否有INTEREST消息请求的共享内容存在,
[0155]如果有,则发送该共享内容给发来INTEREST消息的路由器节点;
[0156]如果没有,继续执行到TRT保存模块602中查询TRT的处理,并且当接收到返回的共享内容后,将共享内容的存储到CS中。
[0157]通过对上述实施例的详细说明,可见,本发明实施例具有如下有益效果:
[0158]1、本发明实施例提供了一种路由方法,路由器节点在发布共享内容时,向注册节点发送注册消息进行注册,每一个共享内容对应一个注册节点,当获取共享内容时,根据TRT正确路由到对应的注册节点,能够降低网络中流量。
[0159]2、本发明实施例提供的路由方法中,通过TRT记录了网络的拓扑结构,使INTEREST消息尽快的到达注册节点,注册节点通过FIB表中记录的达到源节点的跳数,将INTEREST消息转发给最近的源节点,能够提高找到源节点的速度。
[0160]3、本发明实施例提供的路由方法中,通过FIB表、PIT、CS来记录经过本路由器节点的共享内容的历史信息,通过这些历史信息能够更快的找到共享内容,提高了获取共享内容的处理效率和速度。
[0161]4、本发明实施例提供的路由方法中,在FIB表中,增加了当前路由器节点到源节点的跳数,能够确定到达源节点的最短路径,转发时会选择最短路径进行转发,能够提高到达源节点获取所需内容的速度,还能避免循环路由的问题。
[0162]需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
[0163]本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
[0164]最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
【权利要求】
1.一种路由方法,其特征在于,在路由器节点中设置拓扑路由表TRT,该TRT中保存网络中所有路由器节点的信息与所述路由器节点的下一跳的对应关系;确定与共享内容对应的注册节点,将源节点的信息保存在所述注册节点中;所述方法还包括: 51、当路由器节点收到兴趣INTEREST消息时,查询TRT,找到与INTEREST消息中携带的注册节点的信息对应的下一跳; 52、将INTEREST消息发送给下一跳,以触发该下一跳将INTEREST消息路由到共享内容对应的注册节点及触发该注册节点将从源节点获取的共享内容返回; 53、接收返回的共享内容,并转发所述共享内容给发来INTEREST消息的路由器节点。
2.根据权利要求1所述的方法,其特征在于,所述确定与共享内容对应的注册节点包括: 将第一个发布所述共享内容的源节点的任意一个下一跳的节点确定为与共享内容对应的注册节点; 或者, 将内容中心网络中当前业务负荷量最小的节点确定为与共享内容对应的注册节点; 或者, 根据用户输入的注册节点指定命令,确定与共享内容对应的注册节点。
3.根据权利要求1所述的方法,其特征在于,该方法进一步包括: 在路由器节点中设置转发信息库FIB表,在FIB表的表项中保存共享内容的标记、下一跳以及到共孚内容的源节点的跳数二者的对应关系; 步骤SI中,在所述当路由器节点收到INTEREST消息之后,并在所述查询TRT之前,进一步包括: 查询FIB表的表项中是否有所述INTEREST消息中携带的共享内容的标记, 如果有,则选择包括的跳数值最小的表项,根据该表项中下一跳信息发送所述INTEREST消息,直接执行步骤S3 ; 如果没有,继续执行所述查询TRT的步骤,并且在步骤S3中进一步包括:根据接收到的返回的共享内容,在FIB表中建立共享内容的标记、下一跳以及到共享内容的源节点的跳数三者的对应关系。
4.根据权利要求3所述的方法,其特征在于,所述方法进一步包括: 当所述路由器节点接收到向注册节点注册的注册信息时,根据注册信息,在FIB表中建立共享内容的标记、下一跳以及到共享内容的源节点的跳数三者的对应关系。
5.根据权利要求3所述的方法,其特征在于,所述方法进一步包括: 每隔固定的时间,向邻居节点查询所述FIB表中的共享内容的标记是否存在,如果不存在,则删除所述共享内容的标记所在的表项。
6.根据权利要求1所述的方法,其特征在于,该方法进一步包括: 在路由器节点中设置待定兴趣表PIT,该PIT中保存所述路由器节点已经接收到的INTEREST消息,并且该INTEREST消息对应的响应还未接收到; 步骤SI中,在所述当路由器节点收到INTEREST消息之后,并在所述查询TRT之前,进一步包括: 查询PIT中是否有与当前接收到的INTEREST消息相同的INTEREST消息, 如果有,则等待先前的INTEREST消息的响应,当先前的INTEREST消息返回共享内容后,执彳T步骤S3 ; 如果没有,则将当前接收到的INTEREST消息加入到PIT中,继续执行所述查询TRT的步骤,并且在步骤S3中进一步包括:删除所述INTEREST消息。
7.根据权利要求1所述的方法,其特征在于,该方法进一步包括: 步骤SI中,在所述当路由器节点收到INTEREST消息之后,并在所述查询TRT之前,进一步包括:查询内容缓存CS中是否有INTEREST消息请求的共享内容存在, 如果有,则发送所述共享内容给发来INTEREST消息的路由器节点,结束当前流程;如果没有,继续执行所述查询TRT的步骤,并且在步骤S3中进一步包括:将所述共享内容存储到CS中。
8.—种路由器,其特征在于,所述路由器包括: TRT保存模块,用于保存TRT,该TRT中包括网络中所有路由器节点的信息与所述路由器节点的下一跳的对应关系; 注册模块,用于确定与共享内容对应的注册节点,将源节点的信息保存在所述注册节占中.查询模块,用于当收到INTEREST消息时,到所述TRT保存模块中查询TRT,找到与INTEREST消息中携带的注册节点的信息对应的下一跳; 发送模块,用于将INTEREST消息发送给所述查询模块所找到的下一跳,以触发该下一跳将INTEREST消息路由到共享内容对应的注册节点及触发该注册节点将从源节点获取的共享内容返回; 转发模块,用于接收返回的共享内容,并转发所述共享内容给发来INTEREST消息的路由器节点。
9.根据权利要求8所述的路由器,其特征在于,所述注册模块用于: 将第一个发布所述共享内容的源节点的任意一个下一跳的节点确定为与共享内容对应的注册节点; 或者, 将内容中心网络中当前业务负荷量最小的节点确定为与共享内容对应的注册节点; 或者, 根据用户输入的注册节点指定命令,确定与共享内容对应的注册节点。
10.根据权利要求8所述的路由器,其特征在于,所述路由器进一步包括:FIB表保存模块,其中, 所述FIB表保存模块,用于保存FIB表,FIB表的表项中包括共享内容的标记、下一跳以及到共享内容的源节点的跳数三者的对应关系; 所述查询模块,进一步用于到所述TRT保存模块中查询TRT之前,查询FIB表保存模块,判断FIB表的表项中是否有所述INTEREST消息中携带的共享内容的标记, 如果有,则选择包括的跳数值最小的表项,根据该表项中下一跳信息发送所述INTEREST 消息; 如果没有,继续执行到所述TRT保存模块中查询TRT的处理,并且根据接收到的返回的共享内容,在FIB表保存模块的FIB表中建立共享内容的标记、下一跳以及到共享内容的源节点的跳数三者的对应关系。
11.根据权利要求10所述的路由器,其特征在于,所述FIB表保存模块用于: 当所述路由器节点接收到向注册节点注册的注册信息时,根据注册信息,在FIB表中建立共享内容的标记、下一跳以及到共享内容的源节点的跳数三者的对应关系。
12.根据权利要求10所述的路由器,其特征在于,所述路由器进一步包括: FIB表更新模块,用于每隔固定的时间,向邻居节点查询所述FIB表中的共享内容的标记是否存在,如果不存在,则删除所述共享内容的标记所在的表项。
13.根据权利要求8所述的路由器,其特征在于,所述路由器进一步包括:PIT保存模块,其中, 所述PIT保存模块,用于保存PIT,该PIT中包括所述路由器节点已经接收到的INTEREST消息,并且该INTEREST消息对应的响应还未接收到; 所述查询模块,进一步用于在到所述TRT保存模块中查询TRT之前,查询所述PIT保存模块,判断PIT中是否有与当前接收到的INTEREST消息相同的INTEREST消息, 如果有,则等待先前的INTEREST消息的响应; 如果没有,则将所述INTEREST消息加入到所述PIT保存模块的PIT中,并且当接收到返回的共享内容后,删除所述INTEREST消息。
14.根据权利要求8所述的路由器,其特征在于,所述查询模块,进一步用于在到所述TRT保存模块中查询TRT之前,查询内容缓存CS中是否有INTEREST消息请求的共享内容存在, 如果有,则发送所述共享内容给发来INTEREST消息的路由器节点; 如果没有,继续执行到所述TRT保存模块中查询TRT的处理,并且当接收到返回的共享内容后,将所述共享内容的存储到CS中。
【文档编号】H04L12/741GK104426769SQ201310407469
【公开日】2015年3月18日 申请日期:2013年9月9日 优先权日:2013年9月9日
【发明者】张行功, 郭宗明, 牛童 申请人:北京大学, 北大方正集团有限公司, 方正信息产业控股有限公司, 北京北大方正电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1