发明内容
为解决现有技术的不足,本发明的目的在于提供一种面向内容的网络内容获取方法。
为了实现上述目标,本发明采用如下的技术方案:
一种面向内容的网络内容获取方法,包括:节点发送内容请求兴趣包;接收到该内容请求兴趣包的节点判断该内容请求兴趣包的类型;如果判断该内容请求兴趣包是社区内内容请求兴趣包,则启动社区内内容请求兴趣包处理方法,如果判断该内容请求兴趣包是社区间内容请求兴趣包,则启动社区间内容请求兴趣包处理方法。
进一步的,社区内内容请求兴趣包处理方法包括:
步骤1:节点判断社区内内容请求兴趣包的虚拟社区ID是否与该节点所在虚拟社区的ID一致;
步骤2:如果不一致,则丢弃该内容请求兴趣包;
步骤3:如果一致,则继续判断该节点是否是虚拟社区管理节点;如果是管理节点,则继续步骤4,否则继续步骤6;
步骤4:判断该管理节点的内容缓存列表内是否有内容条目和该内容请求兴趣包相匹配。如果相匹配,则继续步骤6,如果不匹配则继续步骤5;
步骤5:该管理节点启动社区间内容请求兴趣包处理方法;
步骤6:判断内容缓存CS中是否有匹配的内容,如果有匹配的内容则沿发送兴趣包的路径的相反方向,向发送该内容请求兴趣包的节点返回找到的数据包;如果没有匹配的内容则继续步骤7;
步骤7:判断PIT中是否有匹配的内容,如果有匹配的内容则在相应条目中增加Face口并丢弃该内容请求兴趣包;如果没有匹配的内容,则继续步骤8;
步骤8:判断FIB中是否有匹配的内容,如果有匹配的内容,则按照所有匹配Face口进行转发,并在PIT中记录;如果没有匹配内容则丢弃该兴趣包。
进一步的,社区间内容请求兴趣包处理方法包括:
步骤1:接收到社区间内容请求兴趣包的节点首先判断该内容请求兴趣包的小区ID是否与该节点所在的小区ID一致,如果不一致则丢弃该内容请求兴趣包;如果一致则进入步骤2;
步骤2:判断该节点是否是该社区的虚拟社区管理节点,如果不是该社区的虚拟社区管理节点,则将该内容请求兴趣包转发给该社区的虚拟社区管理节点;如果是该社区的虚拟社区管理节点,则进入步骤3;
步骤3:判断本地内容缓存列表中是否有匹配的内容条目,如果没有匹配的内容条目,则将该内容请求兴趣包转发给其他社区的虚拟社区管理节点;如果有匹配的内容条目则进入到步骤4;
步骤4:判断本地CS中是否有匹配的内容,如果有匹配的内容则沿发送兴趣包的路径的相反方向,向发送该内容请求兴趣包的节点返回找到的数据包;如果没有匹配的内容则继续步骤5;
步骤5:该节点启动社区内内容请求兴趣包处理方法;
步骤6:判断是否有内容响应,如果有内容响应,则沿发送兴趣包的路径的相反方向,向发送该内容请求兴趣包的节点返回找到的数据包,并删除该内容请求兴趣包;否则进入步骤7;
步骤7:如果没有内容响应,则删除本地内容缓存列表中的响应条目;
步骤8:将内容请求兴趣包转发给其他虚拟社区的管理节点。
进一步的,在实施该网络内容获取方法之前还包括:将网络系统分为三层:基站,虚拟社区管理节点以及普通节点。
进一步的,基站对网络系统中的小区进行管理与控制,获得并更新小区的网络拓扑信息,进行虚拟社区的划分,并在划分的虚拟社区中选择虚拟社区管理节点,向小区内的各个节点发送通知,通知包括该节点所属的虚拟社区ID以及该虚拟社区的虚拟管理节点的ID,如果某节点是虚拟社区管理节点,则通知中还携带其他虚拟社区管理节点的ID。基站通过向移动核心网发送内容请求来辅助节点进行内容请求,若社区内、社区间内容搜索均失败,则由基站向移动核心网进行内容请求并将响应的内容发送给内容请求节点;虚拟社区管理节点辅助基站对网络进行管理,维护社区内容缓存信息列表,在由虚拟社区管理节点组成的骨干网中广播本社区内容缓存信息,维护社区内FIB及社区间FIB,并发起社区间内容请求;普通节点,向基站上报信息,还周期性地向本社区的虚拟社区管理节点上报自身缓存的内容信息。
进一步的,在内容请求兴趣包选择项Selector中增加字段,使用Community_ID字段或Cell_ID字段区分用于社区内内容搜索的兴趣包以及用于社区间内容搜索的兴趣包。
进一步的,社区内内容请求兴趣包用于社区内的内容搜索,是由内容请求节点发送的,只在内容请求节点所在社区间进行转发;社区间内容请求兴趣包用于社区间的内容搜索,是由内容请求节点所在社区的管理节点发送的,在由管理节点组成的骨干网中进行转发。
进一步的,若社区内和社区间内容搜索均失败,则由基站向移动核心网进行内容请求并将响应的内容发送给内容请求节点。
本发明的有益之处在于:
(1)本发明将兴趣包的转发限制在社区内以及社区间,从而减少了兴趣包的泛洪范围及转发次数,改善了无线频谱资源利用效率;
(2)本发明将内容获取划分为三层进行获取,降低了内容的搜索时延,提高搜索效率;
(3)本发明中大多数普通节点仅参与社区内内容获取过程,因此普通节点的路由表信息会大大减小,降低搜索匹配时延,提高内容获取速度。
具体实施方式
以下结合附图和具体实施例对本发明作具体的介绍。
参照图1,示出了本发明具体实施例的网络拓扑图,该面向内容的网络系统分为三层:基站202,虚拟社区管理节点203以及普通节点204。下面介绍各层所完成的功能。
一、基站202,对网络系统中的小区201进行管理与控制,具体的:
1、获得并更新小区的网络拓扑;
基站202需要获取小区201的多跳网络拓扑信息,以便于完成对小区的网络的管理。小区201中节点的新增、移动、或节点的灭亡会导致网络拓扑信息的变化,因此,基站202需要周期性更新全小区网络拓扑信息。
2、进行虚拟社区205的划分;
基站可以按照设定的规则来进行虚拟社区划分,例如可以按照地理位置、用户的兴趣度等等,并为这些虚拟社区赋予全网唯一的标识ID。
3、选择虚拟社区管理节点以及备用节点;
在划分虚拟社区之后,基站在每个虚拟社区之内选择一个节点和一个备用节点,当虚拟社区管理节点退出网络时,备用节点作为虚拟社区管理节点。虚拟社区管理节点和备用节点的选择一般需要考虑一下几个方面:
计算能力:虚拟社区管理节点需要辅助基站进行网络的管理与控制,因此需要较强的计算能力;
电池电量:虚拟社区管理节点实现管理与控制需要消耗额外的电量,在电池电量有限的Ad Hoc网络中,选择剩余电池电量较多的虚拟社区管理节点才能避免管理节点因为电量不足而退出网络。
位置:处于网络中心位置的节点比处于网络边缘的节点更便于与其他节点的通信,因此更容易被选择为虚拟社区管理节点;
无线覆盖区域:节点无线频率的覆盖范围越大,在用户均匀分布的情况下,其连接的用户越多,则该节点在网络中越重要,因此更易于被选择为虚拟社区管理节点。
4、向小区内的各个节点发送通知,通知包括该节点所属的虚拟社区ID以及该虚拟社区的虚拟管理节点的ID;进一步的,如果某节点是虚拟社区管理节点,则通知中还携带其他虚拟社区管理节点的ID。
5、基站在内容分层获取中主要负责向移动核心网发送内容请求。基站通过向移动核心网发送内容请求来辅助节点进行内容请求,若社区内、社区间内容搜索均失败,则由基站向移动核心网进行内容请求并将响应的内容发送给内容请求节点。
二、虚拟社区管理节点203
辅助基站对网络进行管理。在内容获取方面,主要包括:
1、维护社区内容缓存信息列表(如图2所示)
在社区内的节点有内容更新时,虚拟社区管理节点需要维护本社区内容缓存信息列表。
2、在由虚拟社区管理节点组成的骨干网中广播本社区内容缓存信息。
虚拟社区管理节点通过广播该虚拟社区管理节点所在的社区的内容缓存信息,以便于和其他虚拟社区管理节点一起形成社区间FIB并维护社区间FIB,从而提高社区间内容搜索效率。
3、维护社区内FIB及社区间FIB
在本发明中,由于虚拟社区管理节点需要参与社区内内容搜索以及社区间内容搜索,因此虚拟社区管理节点需要维护两张路由转发信息表:社区内FIB以及社区间FIB。
4、发起社区间内容请求
虚拟社区管理节点在接收到本社区内内容请求兴趣包后在内容缓存信息列表中无响应匹配时,或虚拟社区管理节点接收到来自于本社区节点发送的社区间内容请求指示时发起社区间内容请求。
三、普通节点204
向基站上报自身位置、兴趣、存储内容以及周边节点信息等信息,以便于基站获取多跳网络拓扑信息以及划分虚拟社区选择虚拟社区管理节点等;普通节点还周期性地向本社区的虚拟社区管理节点上报自身缓存的内容信息。
以上根据图2描述了根据本发明的实施例的网络拓扑图,在将网络划分为三层之后,节点可启动网络内容获取流程,下面结合图3描述本发明网络内容获取流程:
步骤1:节点i发送内容请求兴趣包;
步骤2:节点j接收到该内容请求兴趣包;
步骤3:节点j判断该内容请求兴趣包的类型。
步骤4:如果判断该内容请求兴趣包是社区内内容请求兴趣包,则启动社区内内容请求兴趣包处理方法,如果判断该内容请求兴趣包是社区间内容请求兴趣包,则启动社区间内容请求兴趣包处理方法。
传统的CCN中的兴趣包结构并不能实现该功能,因此本发明在传统CCN兴趣包结构的基础上在传统兴趣包中选择项Selector中增加了字段,即如图4和5所示的Community_ID字段及Cell_ID字段,来区分用于社区内内容搜索(使用图4所示的Community_Id来表示虚拟社区ID)的兴趣包以及用于社区间内容搜索(使用图5所示的Cell_Id来表示小区ID)的兴趣包。社区内内容请求兴趣包结构如图4所示,社区间内容请求兴趣包结构如图5所示。
社区内内容请求兴趣包用于社区内的内容搜索,是由内容请求节点发送的,只在内容请求节点所在社区间进行转发。而社区间内容请求兴趣包用于社区间的内容搜索,是由内容请求节点所在社区的管理节点发送的,在由管理节点组成的骨干网中进行转发。
内容请求兴趣包下面结合图6描述对社区内内容请求兴趣包的处理过程。
步骤1:节点判断社区内内容请求兴趣包的虚拟社区ID是否与该节点所在虚拟社区的ID一致;
步骤2:如果不一致,则丢弃该内容请求兴趣包;
步骤3:如果一致,则继续判断该节点是否是虚拟社区管理节点;如果是管理节点,则继续步骤4,否则继续步骤6;
步骤4:判断该管理节点的内容缓存列表内是否有内容条目和该内容请求兴趣包相匹配。如果相匹配,则继续步骤6,如果不匹配则继续步骤5;
步骤5:该管理节点启动社区间内容请求兴趣包处理方法。
步骤6:判断CS中是否有匹配的内容,如果有匹配的内容则沿发送兴趣包的路径的相反方向,向发送该内容请求兴趣包的节点返回找到的数据包;如果没有匹配的内容则继续步骤7;
步骤7:判断PIT中是否有匹配的内容,如果有匹配的内容则在相应条目中增加Face口并丢弃该内容请求兴趣包;如果没有匹配的内容,则继续步骤8;
步骤8:判断FIB中是否有匹配的内容,如果有匹配的内容,则按照所有匹配Face口进行转发,并在PIT中记录;如果没有匹配内容则丢弃该兴趣包。
下面结合图7描述对社区间内容请求兴趣包的处理过程。
步骤1:接收到社区间内容请求兴趣包的节点首先判断该内容请求兴趣包的小区ID是否与该节点所在的小区ID一致,如果不一致则丢弃该内容请求兴趣包;如果一致则进入步骤2;
步骤2:判断该节点是否是虚拟社区管理节点,如果不是,则将该内容请求兴趣包转发给虚拟社区管理节点;如果是虚拟社区管理节点,则进入步骤3;
步骤3:判断本地内容缓存列表中是否有匹配的内容条目,如果没有匹配的内容条目,则将该内容请求兴趣包转发给其他社区的虚拟社区管理节点;如果有匹配的内容条目则进入到步骤4;
步骤4:判断本地CS中是否有匹配的内容,如果有匹配的内容则沿发送兴趣包的路径的相反方向,向发送该内容请求兴趣包的节点返回找到的数据包;如果没有匹配的内容则继续步骤5;
步骤5:该节点启动社区内内容请求兴趣包处理方法。
步骤6:判断是否有内容响应,如果有内容响应,则沿发送兴趣包的路径的相反方向,向发送该内容请求兴趣包的节点返回找到的数据包,并删除该内容请求兴趣包;否则进入步骤7;
步骤7:如果没有内容响应,则删除本地内容缓存列表中的响应条目;
步骤8:将该内容请求兴趣包转发给其他虚拟社区的管理节点。
若社区内和社区间内容搜索均失败,则由基站向移动核心网进行内容请求并将响应的内容发送给内容请求节点。
需要说明的是,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。