一种网络数据路由方法、系统及装置与流程

文档序号:15232870发布日期:2018-08-21 19:52阅读:134来源:国知局
本发明涉及网络数据传输领域,特别涉及一种网络数据路由方法、系统及装置。
背景技术
:dtn是一个新兴的研究领域,它是由kevin等人于2002年提出的一种通用的面向消息的可靠的覆盖层网络体系结构,它是一种位于区域网络之上的覆盖网络,处理受限网络中频繁网络断开高延迟和异构性等问题。dtn网络的特点是源节点到目标节点间不需要存在完整路径,利用移动节点的特性,采取“存储-携带-转发”的路由机制来实现网络通信的网络,由于dtn网络结构的特殊性,dtn的研究和发展将对军事战争、航天通信、灾难恢复、应急抢险等领域的消息交互提供有力的科学理论和技术支持,并极大地推进未来网络通信智能化、泛在化、融合化的发展趋势。目前针对dtn网络的路由机制方案已经提出了许多,从最初的基于副本路由协议和基于上下文路由协议为主,随着面向副本协议的路由技术的研究的越来越完善,更多的研究人员转向对节点关系、节点运动性对于路由协议的影响;bubble路由算法基于人类社会关系,根据社团结构和节点分布情况综合来选择合适的转发节点,由于总是寻找节点分布密度高的节点来进行消息转发,节点分布密度低的节点无法获得转发消息的机会,从而造成了节点资源的浪费,此外,对于大规模的网络,此路由算法的副本保存过多问题也会造成较大的开销;现有技术中的路由算法存在高网络传输延迟的问题。因此,为了解决这些缺点,需要提出一种低网络传输延迟的网络数据路由方法。技术实现要素:有鉴于此,本发明的目的在于提供一种网络数据路由方法、系统及装置,降低网络传输延迟。其具体方案如下:一种网络数据路由方法,包括:s11:第一转发节点判断自身是否为目的节点,如果是则进入s12,如果否则进入s13;s12:所述第一转发节点解析数据包,结束所述数据包的转发过程,不再执行后续步骤,其中,所述数据包为所述第一转发节点接收上一个转发节点转发的所述数据包得到的,或所述第一转发节点为源节点,所述第一转发节点生成待转发的所述数据包;s13:所述第一转发节点利用所述数据包中记载的目的节点信息和基础信息中的社团标号判断与所述目的节点是否属于同一社团,如果是则进入s17,如果否则进入s14;s14:所述第一转发节点利用所述基础信息中的连边数判断自身外部连边数是否为0,如果是则进入s17,如果否则进入s15;s15:所述第一转发节点利用与其相连的各外部社团与第一社团间的游走概率和平均距离计算出各外部社团与第一社团间的社团紧密度,其中,所述第一社团为包括所述第一转发节点的社团;s16:所述第一转发节点利用各外部社团与第一社团间的社团紧密度从中查找出与第一社团社团紧密度最高的第二社团所述第一转发节点;s17:所述第一转发节点利用所述基础信息中的节点活跃度将所述数据包发送至与所述第一转发节点相连的节点活跃度最高的第二转发节点,并返回s11直至所述第一转发节点为所述目的节点,其中,若所述第一转发节点与所述目的节点属于同一社团或所述第一转发节点自身外部连边数为0,则所述第二转发节点属于所述第一社团,若所述第一转发节点自身外部连边数不为0,则所述第二转发节点属于所述第二社团;其中,预先对全网中全部节点进行社团划分,生成多个包括不同节点的社团;所述基础信息为预先对全网进行统计得到的,包括每个节点的连边数、节点活跃度、社团标号、节点间距离。可选的,所述基础信息还包括转发数据包次数;所述第一转发节点判断自身是否为目的节点之前,还包括所述第一转发节点利用所述基础信息判断所述转发数据包次数是否超过预设的转发次数阈值,如果是则所述第一转发节点拒绝接收所述数据包。可选的,所述预先对网络中全部节点进行社团划分,生成多个包括不同节点的社团的过程,包括:利用radicchi算法计算出节点之间连边的聚集系数;其中,所述radicchi算法为:式中,c(i,j)表示节点i和节点j的连边的聚集系数,zi,j表示包含了边(i,j)的三角形个数,ki表示与节点i相关联的连边的条数,kj表示与节点j相关联的连边的条数,min(ki-1,kj-1)表示为节点i和节点j间连边最多可能属于的三角形结构数;利用聚集系数对网络中全部节点进行社团划分,生成多个包括不同节点的社团。可选的,所述利用聚集系数对网络中全部节点进行社团划分的过程,包括:利用聚集系数对网络中全部节点进行社团划分;判断全网中是否有同时属于多个社团的重叠节点;如果有,则删除全网中每个节点的与最小聚集系数对应的连边;判断所述重叠节点是否属于多个社团;如果是,则将所述重叠节点划分至紧密度最高的社团;如果否,则利用聚集系数对重叠节点进行划分。可选的,所述第一转发节点利用所述基础信息中的节点活跃度将所述数据包发送至与所述第一转发节点相连的节点活跃度最高的第二转发节点的过程,包括:基于随机线性网络编码所述第一转发节点利用所述基础信息中的节点活跃度将所述数据包以随机线性编码后得到的编码包形式发送至与所述第一转发节点相连的节点活跃度最高的所述第二转发节点。可选的,所述第一转发节点解析数据包的过程,包括:所述第一转发节点判断所述数据包是否为编码包;如果否,则解析所述数据包;如果是,则判断所述编码包是否与所述第一转发节点中已缓存的历史编码包重复;如果否,则将所述编码包缓存至所述第一转发节点的编码矩阵;如果是,则将所述编码包舍弃。可选的,所述基于随机线性网络编码所述第一转发节点利用所述基础信息中的节点活跃度将所述数据包以随机线性编码后得到的编码包形式发送至与所述第一转发节点相连的节点活跃度最高的所述第二转发节点的过程,包括:所述第一转发节点利用所述基础信息中的节点活跃度判断自身活跃度是否超过预设的活跃度阈值;如果未超过,则将所述数据包发送至所述第二转发节点;如果超过,则对所述数据包再次进行随机线性网络编码;将所述数据包以编码包形式发送至所述第二转发节点。可选的,所述第一转发节点利用与其相连的各外部社团与第一社团间的游走概率和平均距离计算出各外部社团与第一社团间的社团紧密度所述第一转发节点的过程,包括:所述第一转发节点利用游走概率计算公式计算所述第一社团游走到每个相连社团的游走概率;所述第一转发节点利用平均距离计算公式计算所述第一社团到每个相连社团的平均距离;所述第一转发节点利用游走概率、平均距离和社团紧密度计算公式计算出所述第一社团与每个相连社团的社团紧密度,得到所述第一社团的社团紧密度集;其中,所述游走概率计算公式:ηab(t)=ptηab(t-1);所述平均距离计算公式:所述社团紧密度计算公式:式中,ηab(t)表示社团a经过t步随机游走后到社团b的概率,p表示概率矩阵,表示社团a和社团b的平均距离,na表示社团a的节点数,nb表示社团b的节点数,表示表示社团a与社团b在t时刻的社团紧密度,|ea|表示社团a与其他社团间的总连边数,|eb|表示社团b与其他社团间的总连边数,|e|表示社团a和b的总连边数。本发明还公开了一种网络数据路由系统,包括:自身判断模块,用于第一转发节点判断自身是否为目的节点,如果是则调用解析模块,如果否则调用社团判断模块;所述解析模块,用于所述第一转发节点解析数据包,其中,所述数据包为所述第一转发节点接收上一个转发节点转发的所述数据包得到的,或所述第一转发节点为源节点,所述第一转发节点生成待转发的所述数据包;所述社团判断模块,用于所述第一转发节点利用所述数据包中记载的目的节点信息和基础信息中的社团标号判断与所述目的节点是否属于同一社团,如果是则调用转发模块,如果否则调用外部连边判断模块;所述外部连边判断模块,用于所述第一转发节点利用所述基础信息中的连边数判断自身外部连边数是否为0,如果是则进入s17,如果否则进入s15;紧密度计算模块,用于所述第一转发节点利用与其相连的各外部社团与第一社团间的游走概率和平均距离计算出各外部社团与第一社团间的社团紧密度,其中,所述第一社团为包括所述第一转发节点的社团;社团查找模块,用于所述第一转发节点利用各外部社团与第一社团间的社团紧密度从中查找出与第一社团社团紧密度最高的第二社团所述第一转发节点;所述转发模块,用于所述第一转发节点利用所述基础信息中的节点活跃度将所述数据包发送至与所述第一转发节点相连的节点活跃度最高的第二转发节点,并调用所述自身判断模块直至所述第一转发节点为所述目的节点,其中,若所述第一转发节点与所述目的节点属于同一社团或所述第一转发节点自身外部连边数为0,则所述第二转发节点属于所述第一社团,若所述第一转发节点自身外部连边数不为0,则所述第二转发节点属于所述第二社团;社团划分模块,用于预先对全网中全部节点进行社团划分,生成多个包括不同节点的社团;其中,所述基础信息为预先对全网进行统计得到的,包括每个节点的连边数、节点活跃度、社团标号、节点间距离。本发明还公开了一种网络数据路由装置,包括:存储器,用于存储指令;其中,所述指令包括s11:第一转发节点判断自身是否为目的节点,如果是则进入s12,如果否则进入s13;s12:所述第一转发节点解析数据包,结束所述数据包的转发过程,不再执行后续步骤,其中,所述数据包为所述第一转发节点接收上一个转发节点转发的所述数据包得到的,或所述第一转发节点为源节点,所述第一转发节点生成待转发的所述数据包;s13:所述第一转发节点利用所述数据包中记载的目的节点信息和基础信息中的社团标号判断与所述目的节点是否属于同一社团,如果是则进入s17,如果否则进入s14;s14:所述第一转发节点利用所述基础信息中的连边数判断自身外部连边数是否为0,如果是则进入s17,如果否则进入s15;s15:所述第一转发节点利用与其相连的各外部社团与第一社团间的游走概率和平均距离计算出各外部社团与第一社团间的社团紧密度,其中,所述第一社团为包括所述第一转发节点的社团;s16:所述第一转发节点利用各外部社团与第一社团间的社团紧密度从中查找出与第一社团社团紧密度最高的第二社团所述第一转发节点;s17:所述第一转发节点利用所述基础信息中的节点活跃度将所述数据包发送至与所述第一转发节点相连的节点活跃度最高的第二转发节点,并返回s11直至所述第一转发节点为所述目的节点,其中,若所述第一转发节点与所述目的节点属于同一社团或所述第一转发节点自身外部连边数为0,则所述第二转发节点属于所述第一社团,若所述第一转发节点自身外部连边数不为0,则所述第二转发节点属于所述第二社团;其中,预先对全网中全部节点进行社团划分,生成多个包括不同节点的社团;所述基础信息为预先对全网进行统计得到的,包括每个节点的连边数、节点活跃度、社团标号、节点间距离;处理器,用于执行所述存储器中的指令。本发明中,网络数据路由方法,包括:s11:第一转发节点判断自身是否为目的节点,如果是则进入s12,如果否则进入s13;s12:第一转发节点解析数据包,其中,数据包为第一转发节点接收上一个转发节点转发的数据包得到的,或第一转发节点为源节点,第一转发节点生成待转发的数据包;s13:第一转发节点利用数据包中记载的目的节点信息和基础信息判断与目的节点是否属于同一社团,如果是则进入s17,如果否则进入s14;s14:第一转发节点利用基础信息判断自身外部连边数是否为0,如果是则进入s17,如果否则进入s15;s15:第一转发节点利用与其相连的各外部社团与第一社团间的游走概率和平均距离计算出各外部社团与第一社团间的社团紧密度,其中,第一社团为包括第一转发节点的社团;s16:第一转发节点利用各外部社团与第一社团间的社团紧密度从中查找出与第一社团社团紧密度最高的第二社团第一转发节点;s17:第一转发节点利用基础信息将数据包发送至与第一转发节点相连的节点活跃度最高的第二转发节点,并返回s11直至第一转发节点为目的节点,其中,若第一转发节点与目的节点属于同一社团或第一转发节点自身外部连边数为0,则第二转发节点属于第一社团,若第一转发节点自身外部连边数不为0,则第二转发节点属于第二社团;其中,基础信息为预先对全网进行统计得到的,包括每个节点的连边数、节点活跃度、社团标号、节点间距离;预先对全网中全部节点进行社团划分,生成多个包括不同节点的社团。本发明预先对网络中的各个节点进行社团划分,第一转发节点通过判断目的节点所在社团位置,优化数据包转发路线,若第一转发节点与目的节点处于同一社团,则第一转发节点直接在第一社团内将数据包转发至节点活跃度最高的第二转发节点,若第一转发节点与目的节点处于不同社团,则第一转发节点判断自身是否与外部社团连接,如果不连接,则在第一社团内将数据包转发至节点活跃度最高的第二转发节点,以使数据包能够尽快的从第一社团中转发至外部社团,如果连接,则第一转发节点将进行社团间的社团紧密度计算,第一转发节点将与第一社团社团紧密度最高的第二社团作为待转发社团,从而优化转发路径,缩短延迟,再在此基础上第一转发节点将数据包转发至节点活跃度最高的第二转发节点,实现转发路径的优化。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其它的附图。图1本发明实施例公开了一种网络数据路由方法流程示意图;图2本发明实施例公开了一种网络数据路由系统结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。本发明实施例公开了一种网络数据路由方法,参见图1所示,该方法包括:s11:第一转发节点判断自身是否为目的节点,如果是则进入s12,如果否则进入s13。需要说明的是,除源节点外,数据路由过程中每个节点首先均需判断自身是否为目的节点,以便决定后续触发哪一步骤,即使第一转发节点为源节点也可以判断自身是否为目的节点。具体的,第一转发节点接收其余转发节点转发的数据包后判断自身是否为目的节点或第一转发节点为源节点,第一转发节点生成数据包后,可以执行s11或直接进入s13。s12:第一转发节点解析数据包,结束数据包的转发过程,不再执行后续步骤。具体的,因第一转发节点为目的节点,所以接收数据包,完成数据包在网络中的传输过程,不再执行s13至s17后续步骤。s13:第一转发节点利用数据包中记载的目的节点信息和基础信息中的社团标号判断与目的节点是否属于同一社团,如果是则进入s16,如果否则进入s14。具体的,第一转发节点利用数据包中记载的目的节点信息和基础信息中的目的节点的社团编号和第一转发节点的社团编号,判断与目的节点是否属于同一社团,例如,数据包中记载的目的节点信息为目的节点编号i,利用目的节点编号i,在基础信息中查找到目的节点i,同时获取到目的节点的社团编号3,并获取第一转发节点自身的社团编号4,比较目的节点的社团编号和第一转发节点的社团编号,社团编号不一致,说明目的节点和第一转发节点不在同一社团,则进入s14,若目的节点的社团编号和第一转发节点的社团编号均为3,则一致进入s16。可以理解的是,在数据路由前预先对全网中全部节点进行社团划分,生成多个包括不同节点的社团,通过生成多个包括不同节点的社团,将节点进行了规划,加快了传输路径的筛选,使节点能够快速的选择相应的社团中的节点,减少了无关节点的选择。其中,基础信息为保存在第一转发节点中预先对全网状态进行统计得到的信息,基础信息包括每个节点的连边数、节点活跃度、社团标号、节点间距离,从而保证每个节点能够进行后续的连边数判断、社团紧密度判断和目的节点识别等判断,基础信息可以线性动态链表的形式保存在每个节点中,如表一线性动态链表所示。表一节点名称连边数节点活跃度社团标号节点间距离转发数据包次数s14:第一转发节点利用基础信息中的连边数判断自身外部连边数是否为0,如果是则进入s16,如果否则进入s15。可以理解的是,网络中的每个节点会预先与其它节点相连和通讯,从而建立节点之间的连边,由于社团的划分,将同一社团内节点之间的连边称为内部连边,不同社团的节点之间的连边称为外部连边,当社团中的节点拥有外部连边该社团才能与外部社团进行通信,因此,当目的节点与第一转发节点不在同一社团,第一转发节点需利用基础信息中的连边数判断自身外部连边数是否为0,从而决定第一转发节点是否向外部社团中的节点转发数据包。需要说明的是,向外部社团转发数据包优先级大于同社团内节点之间转发数据包。s15:第一转发节点利用与其相连的各外部社团与第一社团间的游走概率和平均距离计算出各外部社团与第一社团间的社团紧密度,其中,第一社团为包括第一转发节点的社团第一转发节点。s16:第一转发节点利用各外部社团与第一社团间的社团紧密度从中查找出与第一社团社团紧密度最高的第二社团,其中,第一社团为包括第一转发节点的社团。具体的,若第一转发节点外部连边数不为0后,则第一转发节点需要判断与其相连的各外部社团与第一社团间的社团紧密度,第一转发节点利用社团间的游走概率和平均距离计算出社团间的社团紧密度,通过比对第一社团与通过第一转发节点相连的各外部社团的社团紧密度,从中选出与第一社团社团紧密度最高的第二社团,以备第一转发节点将数据包转发至第二社团中的节点;社团紧密度越高表明两个社团间的延迟越低,因此数据包的传输速度更快。s17:第一转发节点利用基础信息中的节点活跃度将数据包发送至与第一转发节点相连的节点活跃度最高的第二转发节点,并返回s11直至第一转发节点为目的节点,其中,若第一转发节点与目的节点属于同一社团或第一转发节点自身外部连边数为0,则第二转发节点属于第一社团,若第一转发节点自身外部连边数不为0,则第二转发节点属于第二社团;具体的,第一转发节点利用基础信息得到与其相连的各节点的节点活跃度,其中,基础信息可以包括相连节点的节点转发数据包的频率、外部社团连边数和所连接到的社团数,第一转发节点从各节点的节点活跃度中挑选出活跃度最高的第二转发节点,并将数据包发送至第二转发节点,当第二转发节点接收到数据包后,作为新的第一转发节点执行s11中记载的步骤,直至第一转发节点为目标节点,完成数据包的接收,结束一次数据包的传输过程。可以理解的是,通过将数据包转发至活跃度最高的第二转发节点,实现了转发路径的优化,提高了将数据包以最短路径转发至目的节点的可能性。需要说明的是,s17中由于判断条件的不同,第二转发节点可以属于第一社团也可以属于第二社团,但并不影响第一转发节点将数据包转发至第二节点的过程。可见,本发明实施例中预先对网络中的各个节点进行社团划分,第一转发节点通过判断目的节点所在社团位置,优化数据包转发路线,若第一转发节点与目的节点处于同一社团,则第一转发节点直接在第一社团内将数据包转发至节点活跃度最高的第二转发节点,若第一转发节点与目的节点处于不同社团,则第一转发节点判断自身是否与外部社团连接,如果不连接,则在第一社团内将数据包转发至节点活跃度最高的第二转发节点,以使数据包能够尽快的从第一社团中转发至外部社团,如果连接,则第一转发节点将进行社团间的社团紧密度计算,第一转发节点将与第一社团社团紧密度最高的第二社团作为待转发社团,从而优化转发路径,缩短延迟,再在此基础上第一转发节点将数据包转发至节点活跃度最高的第二转发节点,实现转发路径的优化。本发明实施例公开了一种具体的网络数据路由方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:本发明实施例中,为让每个节点不会因为缓存过大而影响数据传输,此外,设置转发节点次数阈值,防止转发节点因转发次数过多而缓存过大,从而缩短网络传输的延迟。具体的,在上述基础信息中添加转发数据包次数;同时,在第一转发节点判断自身是否为目的节点之前,也在第一转发节点接收上一个转发节点发送的数据包之前,还包括第一转发节点利用基础信息判断转发数据包次数是否超过预设的转发次数阈值,如果是则第一转发节点拒绝接收数据包;若第一转发节点的转发次数超过转发次数阈值,说明第一转发节点的缓存已经过大,会影响网络传输速度,因此第一转发节点将不再提供转发功能,使上一个转发节点向其余转发节点转发数据包,第一转发节点可以采用进入离线模式从而停止转发功能。需要说明的是,转发数据包次数在每次数据包转发完成后均会进行重置,第一转发节点在重置转发数据包次数后,也将重新提供转发功能。可以理解的是,上述预先对网络中全部节点进行社团划分,生成多个包括不同节点的社团的过程,可以包括:s21:利用radicchi算法计算出节点之间连边的聚集系数。具体的,节点之间的连接可以称为连边,每个节点可以与多个节点连接,即每个节点可以有多个连边,利用radicchi算法计算出每个节点上所有连边的聚集系数。其中,radicchi算法公式为:式中,c(i,j)表示节点i和节点j的连边的聚集系数,zi,j表示包含了边(i,j)的三角形个数,ki表示与节点i相关联的连边的条数,kj表示与节点j相关联的连边的条数,min(ki-1,kj-1)表示为节点i和节点j间连边最多可能属于的三角形结构数。s22:利用聚集系数对网络中全部节点进行社团划分,生成多个包括不同节点的社团。具体的,每个连边对子各自的聚集系数,可以通过预先设置聚集范围,将聚集系数在聚集范围内的连边对应的两个节点划分为一个社团,例如,聚集范围可以为小于0.6,当两节点间的连边的聚集系数小于0.6,则将两节点划分在一个社团。进一步的,同一个节点可以与多个不同社团的节点之间的连边的聚集系数均满足聚集范围,可以划分至多个社团,因此,在进行社团划分时,难以对此类节点进行社团划分,需将该节点作为重叠节点对待,上述利用聚集系数对网络中全部节点进行社团划分,生成多个包括不同节点的社团的具体过程还可以包括s221至s226:s221:利用聚集系数对网络中全部节点进行社团划分;s222:判断全网中是否有同时属于多个社团的节点。具体的,在完成对全部节点的划分后,判断全网中是否有同时属于多个社团的节点,找出重叠节点,以根据结果选择执行步骤。s223:如果有,则删除全网中每个节点的与最小聚集系数对应的连边。具体的,聚集系数越小表明两个节点越接近,通过删除与最小聚集系数对应的连边可以减少重叠节点与多个社团连接的可能性。s224:判断重叠节点是否属于多个社团;s225:如果是,则将重叠节点划分至紧密度最高的社团。具体的,如果重叠节点仍属于多个社团,则需分别计算重叠节点与所属的各个社团的紧密度,并将重叠节点划分至紧密度最高的社团。s226:如果否,则利用聚集系数对重叠节点进行划分。具体的,如果重叠节点不再属于多个社团,则可以利用聚集系数再对重叠节点进行划分,将重叠节点划分至其一条连边的聚集系数满足聚集范围的社团中。需要说明的是,仅执行一次s223可能无法将全网中全部重叠节点去除,因此,在s225和s226之后,重复s222至s226,直至全网中没有重叠节点。进一步的,为增加全网网络吞吐量,本发明实施例采用随机线性网络编码,利用网络编码对网络中各个节点的各条信道上的数据包进行线性或非线性的处理,对dtn网络的源节点和中心节点分别进行随机线性网络编码操作,从而达到路由传输最大流界,提高了消息的传输效率,增加了网络吞吐量。具体的,上述s17第一转发节点利用基础信息中的节点活跃度将数据包发送至与第一转发节点相连的节点活跃度最高的第二转发节点的过程,可以具体为:基于随机线性网络编码第一转发节点利用基础信息中的节点活跃度将数据包以随机线性编码后得到的编码包形式发送至与第一转发节点相连的节点活跃度最高的第二转发节点;当第一转发节点为源节点或中心节点则会对数据包进行网络编码,将数据包转化为编码包的形式,并进行转发,若第一转发节点为普通节点,则直接将编码包形式的数据包发送至与第一转发节点相连的节点活跃度最高的第二转发节点。进一步的,第一转发节点将数据包转发至第二转发节点的具体过程可以包括s31至s34;其中,s31:第一转发节点利用基础信息中的节点活跃度判断自身活跃度是否超过预设的活跃度阈值。具体的,当第一转发节点不为源节点时,第一转发节点需利用基础信息中自身的节点活跃度判断自身的活跃度是否超过预设的活跃度阈值,如果超过则表明第一转发节点为中心节点,如果未超过则表明第一转发节点为普通转发节点,需要说明的是当第一转发节点为源节点时,直接执行s33中的对数据包再次进行随机线性网络编码。s32:如果未超过,则将数据包发送至第二转发节点。具体的,第一转发节点的自身活跃度未超过活跃度阈值,则第一转发节点为普通转发节点,将编码包形式的数据包发送至第二转发节点,可以理解的是,此时的数据包为源节点或在第一转发节点接收数据包之前由其它中心节点网络编码后的数据包。s33:如果超过,则对数据包再次进行随机线性网络编码。具体的,如果第一转发节点的自身活跃度超过活跃度阈值,则第一转发节点为中心节点,将数据包再次编码和转发;二次编码可以减轻源节点的编码压力,增强编码数据包的线性无关性,从而减少冗余信息的转发,改善转发节点缓存增大的问题。s34:将数据包以编码包形式发送至第二转发节点。其中,源节点对数据包进行随机线性网络编码的具体过程为令源节点产生n个同一目的地址的数据包dp1,dp2,dp3,...,dpn,对其执行线性网络编码,得到m个编码包ec,其中m>n,其中ek是从有限域中随机产生的系数,每个编码计算都需要在有限域范围内进行,在每个编码包的头部相应的存储编码向量e=|e1…en|,跟随m个编码包一起发出去,假设编码向量矩阵原始数据包编码包t表示的是转置操作,则解码结果p=e-1ec;具体的,中心节点对数据包再次进行随机线性网络编码的过程与上述过程同理,在此不再进行赘述。在实际应用中,目的节点可能会接收到未编码的数据包,当然也会接收到已编码的数据包,采取不同的接收策略,具体的,上一实施例中s12第一转发节点解析数据包的具体过程,可以包括s121至s125;其中,s121:第一转发节点判断数据包是否为编码包。具体的,第一转发节点作为目的节点接收数据包后,首先判断数据包是否为编码包,来决定后续执行步骤。s122:如果否,则解析数据包。具体的,如果数据包为未编码的数据包,则第一转发节点直接接收数据包并解析其中数据完成数据包的接收,结束数据包在网络中的转发。s123:如果是,则判断编码包是否与第一转发节点中已缓存的历史编码包重复。具体的,如果数据包为编码包,则第一转发节点需要判断编码包是否已经缓存在自身的编码矩阵中,避免编码包重复缓存。需要说明的是,第一转发节点在收到n个编码向量线性无关的编码包时,就可以计算解出原始发送的n个数据包dp1,dp2,dp3,...,dpn。s124:如果否,则将编码包缓存至第一转发节点的编码矩阵。具体的,将未保存的编码包均缓存在第一转发节点的编码矩阵中,当编码矩阵满秩时即可对完整的数据进行解码,完成对完整数据的解析。s125:如果是,则将编码包舍弃。进一步的,上一实施例中,s15第一转发节点利用与其相连的各外部社团与第一社团间的游走概率和平均距离计算出各外部社团与第一社团间的社团紧密度第一转发节点的具体过程,可以包括s151至s153;其中,s151:第一转发节点利用游走概率计算公式计算第一社团游走到每个相连社团的游走概率;s152:第一转发节点利用平均距离计算公式计算第一社团到每个相连社团的平均距离;s153:第一转发节点利用游走概率、平均距离和社团紧密度计算公式计算出第一社团与每个相连社团的社团紧密度,得到第一社团的社团紧密度集;游走概率计算公式:ηab(t)=ptηab(t-1);平均距离计算公式:社团紧密度计算公式:式中,ηab(t)表示社团a经过t步随机游走后到社团b的概率,p表示概率矩阵,表示社团a和社团b的平均距离,na表示社团a的节点数,nb表示社团b的节点数,表示表示社团a与社团b在t时刻的社团紧密度,|ea|表示社团a与其他社团间的总连边数,|eb|表示社团b与其他社团间的总连边数,|e|表示社团a和b的总连边数。相应的,本发明实施例中还公开了一种网络数据路由系统,参见图2所示,该系统包括:自身判断模块11,用于第一转发节点判断自身是否为目的节点,如果是则调用解析模块12,如果否则调用社团判断模块13;解析模块12,用于第一转发节点解析数据包,其中,数据包为第一转发节点接收上一个转发节点转发的数据包得到的,或第一转发节点为源节点,第一转发节点生成待转发的数据包;社团判断模块13,用于第一转发节点利用数据包中记载的目的节点信息和基础信息中的社团标号判断与目的节点是否属于同一社团,如果是则调用转发模块17,如果否则调用外部连边判断模块14;外部连边判断模块14,用于第一转发节点利用基础信息中的连边数判断自身外部连边数是否为0,如果是则进入s17,如果否则进入s15;紧密度计算模块15,用于第一转发节点利用与其相连的各外部社团与第一社团间的游走概率和平均距离计算出各外部社团与第一社团间的社团紧密度,其中,第一社团为包括第一转发节点的社团;社团查找模块16,用于第一转发节点利用各外部社团与第一社团间的社团紧密度从中查找出与第一社团社团紧密度最高的第二社团第一转发节点;转发模块17,用于第一转发节点利用基础信息中的节点活跃度将数据包发送至与第一转发节点相连的节点活跃度最高的第二转发节点,并调用自身判断模块11直至第一转发节点为目的节点,其中,若第一转发节点与目的节点属于同一社团或第一转发节点自身外部连边数为0,则第二转发节点属于第一社团,若第一转发节点自身外部连边数不为0,则第二转发节点属于第二社团;社团划分模块18,用于预先对全网中全部节点进行社团划分,生成多个包括不同节点的社团;其中,基础信息为预先对全网进行统计得到的,包括每个节点的连边数、节点活跃度、社团标号、节点间距离。可见,本发明实施例中预先对网络中的各个节点进行社团划分,第一转发节点通过判断目的节点所在社团位置,优化数据包转发路线,若第一转发节点与目的节点处于同一社团,则第一转发节点直接在第一社团内将数据包转发至节点活跃度最高的第二转发节点,若第一转发节点与目的节点处于不同社团,则第一转发节点判断自身是否与外部社团连接,如果不连接,则在第一社团内将数据包转发至节点活跃度最高的第二转发节点,以使数据包能够尽快的从第一社团中转发至外部社团,如果连接,则第一转发节点将进行社团间的社团紧密度计算,第一转发节点将与第一社团社团紧密度最高的第二社团作为待转发社团,从而优化转发路径,缩短延迟,再在此基础上第一转发节点将数据包转发至节点活跃度最高的第二转发节点,实现转发路径的优化。本发明实施例中,还可以包括转发次数判断模块;其中,基础信息中还包括转发数据包次数;转发次数判断模块,用于在自身判断模块11判断之前,第一转发节点利用基础信息判断转发数据包次数是否超过预设的转发次数阈值,如果是则第一转发节点拒绝接收数据包。本发明实施例中,上述社团划分模块18,包括聚集系数计算单元和社团划分单元;其中,聚集系数计算单元,用于利用radicchi算法计算出节点之间连边的聚集系数;其中,radicchi算法为:式中,c(i,j)表示节点i和节点j的连边的聚集系数,zi,j表示包含了边(i,j)的三角形个数,ki表示与节点i相关联的连边的条数,kj表示与节点j相关联的连边的条数,min(ki-1,kj-1)表示为节点i和节点j间连边最多可能属于的三角形结构数;社团划分单元,用于利用聚集系数对网络中全部节点进行社团划分,生成多个包括不同节点的社团。具体的,上述社团划分单元,包括社团划分子单元、重叠判断子单元、连边删除子单元、多社团判断子单元、重叠划分子单元和系数划分子单元;其中,社团划分子单元,用于利用聚集系数对网络中全部节点进行社团划分;重叠判断子单元,用于判断全网中是否有同时属于多个社团的重叠节点;连边删除子单元,用于当重叠判断子单元判定全网中有同时属于多个社团的重叠节点,则删除全网中每个节点的与最小聚集系数对应的连边;多社团判断子单元,用于判断重叠节点是否属于多个社团;重叠划分子单元,用于当多社团判断子单元判定重叠节点属于多个社团,则将重叠节点划分至紧密度最高的社团;系数划分子单元,用于当多社团判断子单元判定重叠节点不属于多个社团,则利用聚集系数对重叠节点进行划分。具体的,上述转发模块17,具体用于基于随机线性网络编码第一转发节点利用基础信息中的节点活跃度将数据包以随机线性编码后得到的编码包形式发送至与第一转发节点相连的节点活跃度最高的第二转发节点。具体的,上述解析模块12,包括编码判断单元、解析单元、缓存判断单元、缓存单元和舍弃单元;其中,编码判断单元,用于第一转发节点判断数据包是否为编码包;解析单元,用于当编码判断单元判定数据包不为编码包,则解析数据包;缓存判断单元,用于当编码判断单元判定数据包为编码包,则判断编码包是否与第一转发节点中已缓存的历史编码包重复;缓存单元,用于当缓存判断单元判定编码包不重复,则将编码包缓存至第一转发节点的编码矩阵;舍弃单元,用于当缓存判断单元判定编码包重复,则将编码包舍弃。具体的,上述转发模块17,包括活跃度判断单元、第一转发单元、编码单元和第二转发单元;其中,活跃度判断单元,用于第一转发节点利用基础信息中的节点活跃度判断自身活跃度是否超过预设的活跃度阈值;第一转发单元,用于当活跃度判断单元判定活跃度未超过,则将数据包发送至第二转发节点;编码单元,用于当活跃度判断单元判定活跃度超过,则对数据包再次进行随机线性网络编码;第二转发单元,用于将数据包以编码包形式发送至第二转发节点。具体的,上述紧密度计算模块15,包括游走概率计算单元、平均距离计算单元和紧密度集计算单元;其中,游走概率计算单元,用于第一转发节点利用游走概率计算公式计算第一社团游走到每个相连社团的游走概率;平均距离计算单元,用于第一转发节点利用平均距离计算公式计算第一社团到每个相连社团的平均距离;紧密度集计算单元,用于第一转发节点利用游走概率、平均距离和社团紧密度计算公式计算出第一社团与每个相连社团的社团紧密度,得到第一社团的社团紧密度集;其中,游走概率计算公式:ηab(t)=ptηab(t-1);平均距离计算公式:社团紧密度计算公式:式中,ηab(t)表示社团a经过t步随机游走后到社团b的概率,p表示概率矩阵,表示社团a和社团b的平均距离,na表示社团a的节点数,nb表示社团b的节点数,表示表示社团a与社团b在t时刻的社团紧密度,|ea|表示社团a与其他社团间的总连边数,|eb|表示社团b与其他社团间的总连边数,|e|表示社团a和b的总连边数。此外,本发明实施例还公开了一种网络数据路由装置,该装置包括:存储器,用于存储指令;其中,指令包括s11:第一转发节点判断自身是否为目的节点,如果是则进入s12,如果否则进入s13;s12:第一转发节点解析数据包,结束数据包的转发过程,不再执行后续步骤,其中,数据包为第一转发节点接收上一个转发节点转发的数据包得到的,或第一转发节点为源节点,第一转发节点生成待转发的数据包;s13:第一转发节点利用数据包中记载的目的节点信息和基础信息中的社团标号判断与目的节点是否属于同一社团,如果是则进入s17,如果否则进入s14;s14:第一转发节点利用基础信息中的连边数判断自身外部连边数是否为0,如果是则进入s17,如果否则进入s15;s15:第一转发节点利用与其相连的各外部社团与第一社团间的游走概率和平均距离计算出各外部社团与第一社团间的社团紧密度,其中,第一社团为包括第一转发节点的社团;s16:第一转发节点利用各外部社团与第一社团间的社团紧密度从中查找出与第一社团社团紧密度最高的第二社团第一转发节点;s17:第一转发节点利用基础信息中的节点活跃度将数据包发送至与第一转发节点相连的节点活跃度最高的第二转发节点,并返回s11直至第一转发节点为目的节点,其中,若第一转发节点与目的节点属于同一社团或第一转发节点自身外部连边数为0,则第二转发节点属于第一社团,若第一转发节点自身外部连边数不为0,则第二转发节点属于第二社团;其中,预先对全网中全部节点进行社团划分,生成多个包括不同节点的社团;基础信息为预先对全网进行统计得到的,包括每个节点的连边数、节点活跃度、社团标号、节点间距离;处理器,用于执行存储器中的指令。关于本发明实施例中存储器中的存储指令的具体细节可以参考前述网络数据路由方法实施例中的内容,在此不在进行赘述。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。以上对本发明所提供的一种网络数据路由方法、系统及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1