本发明涉及网络技术领域,尤其涉及一种网络数据包的路由方法及装置。
背景技术:
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
在互联网上,当远距离传输数据时,由于延迟抖动等因素,导致数据传输效率低下。企业通过部署自己的网络和路由,可达到提高数据传输效率的目的。这种网络具有一些如下一些特点:①由自己部署在全球各地的节点组成,数据包在这些节点之间传输;②节点规模有限,可以探测到两两之间的网络状况;③终端可通过探测的方式,找到离自己最近的节点作为接入点;④系统构建在应用层,而不是网络层。
目前,现有路由协议采用的路由方法,是根据ip分配表或自治域进行路由的,路由器的路由表,通过目的地址加掩码、自治域,确定下一跳,如果将几十万的全球ip分配段,配置到每个节点作为ip分配表,会导致匹配效率大大降低;如果通过自治域确定下一跳,也不合适。一个地区往往存在多个自治域(例如,北京有电信、联调、移动等),如果区分自治域,则需要多个节点,增加了成本,而一个bgp节点,足可以达到效果;其次,有的自治域地理范围很大,这会导致到同一个节点的效果,差别会很大。
技术实现要素:
本发明实施例中提供了一种网络数据包的路由方法,用以解决现有的路由协议根据ip分配表或自治域进行路由,存在开销大、效率低的技术问题,该方法包括:在目标网络中配置多个网络节点,其中,每个网络节点具有一个位置编码;根据所述目标网络中每个网络设备的网络地址,确定每个网络设备对应的位置编码;基于位置编码表,路由各个网络设备之间传输的网络数据包,其中,所述位置编码表中包含:各个网络节点的位置编码。
本发明实施例中还提供了一种网络数据包的路由装置,用以解决现有的路由协议根据ip分配表或自治域进行路由,存在开销大、效率低的技术问题,该装置包括:网络节点配置模块,用于在目标网络中配置多个网络节点,其中,每个网络节点具有一个位置编码;网络设备位置编码确定模块,用于根据所述目标网络中每个网络设备的网络地址,确定每个网络设备对应的位置编码;路由模块,用于基于位置编码表,路由各个网络设备之间传输的网络数据包,其中,所述位置编码表中包含:各个网络节点的位置编码。
本发明实施例中还提供了一种计算机设备,用以解决现有的路由协议根据ip分配表或自治域进行路由,存在开销大、效率低的技术问题,所述计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述网络数据包的路由方法。
本发明实施例中还提供了一种计算机可读存储介质,用以解决现有的路由协议根据ip分配表或自治域进行路由,存在开销大、效率低的技术问题,所述计算机可读存储介质存储有执行上述网络数据包的路由方法的计算机程序。
本发明实施例中,通过在目标网络中配置多个网络节点,使得每个网络节点具有一个位置编码,以便根据目标网络中各个网络设备的网络地址,确定各个网络设备对应的位置编码,进而基于位置编码表中各个网络节点的位置编码,路由各个网络设备之间传输的网络数据包。
与现有技术中根据ip分配表或自治域进行网络数据包路由的技术方案相比,本发明实施例,通过配置网络节点及对应的位置编码,能够实现基于位置编码表的网络数据包路由,降低了路由表的数据量,提高了网络数据包的路由效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中提供的一种网络数据包的路由方法流程图;
图2为本发明实施例中提供的一种可选的网络数据包的路由方法流程图;
图3为本发明实施例中提供的一种网络节点配置流程图;
图4为本发明实施例中提供的一种位置编码格式示意图;
图5为本发明实施例中提供的一种网络数据包的路由装置示意图;
图6为本发明实施例中提供的一种可选的网络数据包的路由装置示意图;
图7为本发明实施例中提供的一种计算机设备示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
本发明实施例中提供了一种网络数据包的路由方法,图1为本发明实施例中提供的一种网络数据包的路由方法流程图,如图1所示,该方法包括如下步骤:
s101,在目标网络中配置多个网络节点,其中,每个网络节点具有一个位置编码。
需要说明的是,本发明实施例中的网络节点是指部署在全球各地idc中的机器,通过软件完成数据包的转发,探测各个节点间的网络情况,并维护一张路由分配表,用以判断路由的下一跳。当网络设备a向网络设备b发送数据时,就近连接到节点,节点通过合适的路由,将数据包传输到离网络设备b最近的节点,再发送到网络设备b。
s102,根据目标网络中每个网络设备的网络地址和各个网络节点的位置编码,确定每个网络设备对应的位置编码。
在具体实施时,上述s102可以通过如下步骤来实现:根据每个网络设备的网络地址,确定与每个网络设备距离最近的网络节点;将与每个网络设备距离最近的网络节点的位置编码,确定为每个网络设备对应的位置编码。
s103,基于位置编码表,路由各个网络设备之间传输的网络数据包,其中,位置编码表中包含:各个网络节点的位置编码。
需要说明的是,位置编码表中包含目标网络中所有网络节点的位置编码,在确定目标网络中数据包发送设备和数据包接收设备对应的位置编码后,可根据位置编码表中包含的各个网络节点的位置编码,确定网络数据包的下一跳路由节点。
本发明实施例中,根据数据包接收设备的ip地址,确定其对应的位置编码,进而基于位置编码表,可快速确定下一跳路由。而在传统路由表中,是根据ip分配表或者自治域进行路由,路由开销大,效率低。
在一个实施例中,如图2所示,本发明实施例中提供的路由方法还可包括如下步骤:
s201,接收每个网络节点上报的网络状态信息,其中,网络状态信息中包含:每个网络节点与其他网络节点之间的往返时延。
在具体实施时,上述s201可以通过如下步骤来实现:接收每个网络节点周期性上报的网络状态信息,其中,每个网络节点按照固定周期探测与其他网络节点之间的往返时延。在具体实施时,每个网络节点周期性探测到其它网络节点的rtt,上报给中心服务器。中心服务器在获得两个网络节点间的网络状态信息后,如果发现网络不通,则设置rtt无限大。中心服务器根据各个网络节点上报的网络状态信息后,可形成一个网络节点图,且该网络节点图在一定时间段内是稳定的,利用图的最短路算法,以路径上rtt之和最小,为目标函数,可以计算每两个节点间的最佳路径。节点到其它节点最佳路径的下一跳,组成了该节点的路由表。
需要说明的是,本发明实施例中的中心服务器是指汇总整个网络的信息,计算最佳路由的服务器,能够根据各个网络设备的ip地址,快速计算对应的位置编码。
s202,根据每个网络节点上报的网络状态信息和位置编码表中各个网络节点的位置编码,路由各个网络设备之间传输的网络数据包。
在具体实施时,上述s202可以通过如下步骤来实现:计算第一网络节点与第二网络节点之间多条路径对应的往返时延总和,其中,第一网络节点为距离第一网络设备最近的网络节点,第二网络节点为距离第二网络设备最近的网络节点,第一网络设备为目标网络中发送网络数据包的网络设备,第二网络设备为目标网络中接收网络数据包的网络设备;通过往返时延总和最小的路径,路由第一网络节点向第二网络节点传输的网络数据包。
需要注意的是,现有路由协议(例如,ospf、rip、bgp等)工作于网络层,适用于大量设备的开放网络中,没有中心节点收集所有节点的信息,只能每个节点通过广播等方式,交换各自信息,在有限的条件下,获得局部最优路由。本发明实施例中,各个网络节点的加入退出,是接受中心服务器管理的,并可以获取到各个节点间的网络信息,使得任意两个节点间的路由,可计算出全局最优,获得最好的路由路径;选择网络比较好的bgp机房,作为候选节点,一个节点可以覆盖周围区域,即使是不同的自治域。从成本和覆盖效果考虑,全球最多几百个节点即可。
本发明实施例中,首先通过计算获取目标设备的loccode,可快速启动发送,后续可以根据目标设备的反馈进行修正。也即,当数据包发送设备第一次发送数据包时,根据数据包接收设备的ip地址信息计算对应的位置编码,由于地理信息的误差,可能会导致与实际不符,因而,当数据包发送设备第二次发送数据包时,可根据数据包接收设备反馈的位置编码进行发送。
在一个实施例中,如图3所示,本发明实施例中提供的网络数据包的路由方法,可以通过如下步骤来配置多个网络节点:
s301,将目标网络对应的地理区域划分为多个第一级区域;
s302,将每个第一级区域划分为多个第二级区域;
s303,将每个第二级区域划分为多个第三级区域;
s304,在每个第三级区域内配置一个网络节点,其中,每个网络节点具有一个16位的位置编码,位置编码的前4位代表网络节点所处的第一级区域,位置编码的中间4位代表网络节点所处的第二级区域,位置编码的后8位代表网络节点所处的第三级区域。
本发明实施例中,将目标网络对应的地理区域(例如,全球区域)按照地理信息,分成多级的区域,每个区域的ip,赋予固定编号,由相应的网络节点服务;使得数据包不再是根据ip段或者自治域路由,而是根据地理信息路由,简化了路由模块的设计,提高了转发效率。
图4为本发明实施例中提供的一种位置编码格式示意图,如图4所示,本发明实施例中的位置编码(loccode),采用16位的三级编码规则。
第一级区域(level1):4bit,代表全球比较大的区域,例如,中国、东北亚、东南亚、南亚、西亚、澳洲、北美、南美、北欧、东欧、南欧、非洲;
第二级区域(level2):4bit,每个level1区域里,细分区域。如果level1为中国,可划分为东北、华北、西北、东南、西南、南方等地理区域;如果level1为海外区域,可按照国别区分;
第三级区域(level3):8bit,如果为level1为中国,level2为东北,则level3可进一步区分到省,例如,辽宁省、吉林省和黑龙江省。
在本发明实施例中,每个网络节点都有一个loccode,代表其可覆盖的区域;网络设备科通过探测各个网络节点的往返时延rtt,选取rtt最小的网络节点,将该网络节点的loccode,作为该网络设备的loccode;或者由管理员指定该网络设备的接入网络节点,将该网络节点的loccode,作为该网络设备的loccode。
在一个实施例中,可由中心服务器根据网络设备的ip地址信息(互联网上的唯一网络地址),通过ip地理信息库(可根据ip地址,得到该ip所在的国家、城市、自治域、经纬度等),获取ip地址对应的地理信息(例如,国家、城市等),再根据查询到的地理西悉尼,获取对应第一级区域、第二级区域、第三级区域的编码,合并得到相应的位置编码。
可选地,本发明实施例中,各个网络设备之间传输的数据包格式为(ttl,sourceip,sourceloccode,destinationip,destinationloccode,payload),其中,ttl和ip协议里ttl的语义相同,每经过一跳,ttl减1,到0时,则丢弃该包。该机制是为了防止网络中,出现循环包;sourceip、sourceloccode为源端的ip和loccode;destinationip、destinationloccode为目的端的ip和loccode;payload为实际的数据内容。
例如,目标网络中设备a向设备b发送数据包过程如下:
①设备a向中心服务器发送请求设备b的loccode。requestloccode(dev_b’sip);
②中心服务器根据设备b的ip,计算设备b的loccode,并返回。response(dev_b’sloccode);
③设备a向自己最近的节点nodea,发送数据包,sendto(dev_a’sip,dev_a’sloccode,dev_b’sip,dev_b’sloccode);
④nodea根据设备b的loccode,选取下一跳,route(sourceip,sourceloccode,destinationip,destinationloccode);
⑤重复route过程,一直到节点loccode为设备b的loccode。该节点将包直接发送到目标ip。sendto(sourceip,sourceloccode,destinationip,destinationloccode);
⑥设备b收到数据包,需要判断数据包里的loccode是否与自己的loccode一致。如果不一致,说明中心服务器给设备a的不够准确,需要修正,下次发送数据给设备a时,带上自己正确的loccode;如果对方的loccode与本地存储的对方loccode不一致,则更新,下次发送数据时,采用最新的loccode。
节点路由表的生成:
路由表的功能,根据目标loccode,确定数据包的下一跳在哪里。
网络信息的收集。每个节点,周期探测到其它节点的rtt,上报给中心服务器。中心服务器获得了全网,两两节点间的网络状况,如果网络不通,则设置rtt无限大。
这样网络节点的网络信息,构成了一个图。在一定时间内,这个图是稳定的。利用图的最短路算法,以路径上rtt之和最小,为目标函数,可以计算每两个节点间的最佳路径。节点到其它节点最佳路径的下一跳,组成了该节点的路由表。
基于同一发明构思,本发明实施例中还提供了一种网络数据包的路由装置,如下面的实施例。由于该装置解决问题的原理与网络数据包的路由方法相似,因此该装置的实施可以参见网络数据包的路由方法的实施,重复之处不再赘述。
图5为本发明实施例中提供的一种网络数据包的路由装置示意图,如图5所示,该装置包括:网络节点配置模块51、网络设备位置编码确定模块52和路由模块53。
其中,网络节点配置模块51,用于在目标网络中配置多个网络节点,其中,每个网络节点具有一个位置编码;网络设备位置编码确定模块52,用于根据目标网络中每个网络设备的网络地址和各个网络节点的位置编码,确定每个网络设备对应的位置编码;路由模块53,用于基于位置编码表,路由各个网络设备之间传输的网络数据包,其中,位置编码表中包含:各个网络节点的位置编码。
在一个实施例中,本发明实施例中提供的网络数据包的路由装置中,网络设备位置编码确定模块52还用于:根据每个网络设备的网络地址,确定与每个网络设备距离最近的网络节点;将与每个网络设备距离最近的网络节点的位置编码,确定为每个网络设备对应的位置编码。
在一个实施例中,如图6所示,本发明实施例中提供的网络数据包的路由装置还包括:节点状态获取模块54,用于接收每个网络节点上报的网络状态信息,其中,网络状态信息中包含:每个网络节点与其他网络节点之间的往返时延;其中,路由模块53还用于:根据每个网络节点上报的网络状态信息和位置编码表中各个网络节点的位置编码,路由各个网络设备之间传输的网络数据包。
在一个实施例中,本发明实施例中提供的网络数据包的路由装置中,节点状态获取模块54还用于:接收每个网络节点周期性上报的网络状态信息,其中,每个网络节点按照固定周期探测与其他网络节点之间的往返时延。
在一个实施例中,本发明实施例中提供的网络数据包的路由装置中,路由模块53还用于:计算第一网络节点与第二网络节点之间多条路径对应的往返时延总和,其中,第一网络节点为距离第一网络设备最近的网络节点,第二网络节点为距离第二网络设备最近的网络节点,第一网络设备为目标网络中发送网络数据包的网络设备,第二网络设备为目标网络中接收网络数据包的网络设备;通过往返时延总和最小的路径,路由第一网络节点向第二网络节点传输的网络数据包。
在一个实施例中,本发明实施例中提供的网络数据包的路由装置中,网络节点配置模块51还用于:将目标网络对应的地理区域划分为多个第一级区域;将每个第一级区域划分为多个第二级区域;将每个第二级区域划分为多个第三级区域;在每个第三级区域内配置一个网络节点,其中,每个网络节点具有一个16位的位置编码,位置编码的前4位代表网络节点所处的第一级区域,位置编码的中间4位代表网络节点所处的第二级区域,位置编码的后8位代表网络节点所处的第三级区域。
基于同一发明构思,本发明实施例中还提供了一种计算机设备,用以解决现有的路由协议根据ip分配表或自治域进行路由,存在开销大、效率低的技术问题,图7为本发明实施例中提供的一种计算机设备示意图,如图7所示,该计算机设备70包括存储器701、处理器702及存储在存储器701上并可在处理器702上运行的计算机程序,处理器702执行计算机程序时实现上述网络数据包的路由方法。
基于同一发明构思,本发明实施例中还提供了一种计算机可读存储介质,用以解决现有的路由协议根据ip分配表或自治域进行路由,存在开销大、效率低的技术问题,该计算机可读存储介质存储有执行上述网络数据包的路由方法的计算机程序。
综上,本发明实施例中提供了一种网络数据包的路由方法、装置、计算机设备及计算机可读存储介质,通过在目标网络中配置多个网络节点,使得每个网络节点具有一个位置编码,以便根据目标网络中各个网络设备的网络地址,确定各个网络设备对应的位置编码,进而基于位置编码表中各个网络节点的位置编码,路由各个网络设备之间传输的网络数据包。
与现有技术中根据ip分配表或自治域进行网络数据包路由的技术方案相比,本发明实施例,通过配置网络节点及对应的位置编码,能够实现基于位置编码表的网络数据包路由,降低了路由表的数据量,提高了网络数据包的路由效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.一种网络数据包的路由方法,其特征在于,包括:
在目标网络中配置多个网络节点,其中,每个网络节点具有一个位置编码;
根据所述目标网络中每个网络设备的网络地址,确定每个网络设备对应的位置编码;
基于位置编码表,路由各个网络设备之间传输的网络数据包,其中,所述位置编码表中包含:各个网络节点的位置编码。
2.如权利要求1所述的方法,其特征在于,根据所述目标网络中每个网络设备的网络地址,确定每个网络设备对应的位置编码,包括:
根据每个网络设备的网络地址,确定与每个网络设备距离最近的网络节点;
将与每个网络设备距离最近的网络节点的位置编码,确定为每个网络设备对应的位置编码。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
接收每个网络节点上报的网络状态信息,其中,所述网络状态信息中包含:每个网络节点与其他网络节点之间的往返时延;
其中,基于位置编码表,路由各个网络设备之间传输的网络数据包,包括:根据每个网络节点上报的网络状态信息和位置编码表中各个网络节点的位置编码,路由各个网络设备之间传输的网络数据包。
4.如权利要求3所述的方法,其特征在于,接收每个网络节点上报的网络状态信息,包括:
接收每个网络节点周期性上报的网络状态信息,其中,每个网络节点按照固定周期探测与其他网络节点之间的往返时延。
5.如权利要求3所述的方法,其特征在于,根据每个网络节点上报的网络状态信息和位置编码表中各个网络节点的位置编码,路由各个网络设备之间传输的网络数据包,包括:
计算第一网络节点与第二网络节点之间多条路径对应的往返时延总和,其中,所述第一网络节点为距离第一网络设备最近的网络节点,所述第二网络节点为距离第二网络设备最近的网络节点,所述第一网络设备为所述目标网络中发送网络数据包的网络设备,所述第二网络设备为所述目标网络中接收所述网络数据包的网络设备;
通过往返时延总和最小的路径,路由第一网络节点向第二网络节点传输的网络数据包。
6.如权利要求1至5任一项所述的方法,其特征在于,在目标网络中配置多个网络节点,包括:
将目标网络对应的地理区域划分为多个第一级区域;
将每个第一级区域划分为多个第二级区域;
将每个第二级区域划分为多个第三级区域;
在每个第三级区域内配置一个网络节点,其中,每个网络节点具有一个16位的位置编码,所述位置编码的前4位代表网络节点所处的第一级区域,所述位置编码的中间4位代表网络节点所处的第二级区域,所述位置编码的后8位代表网络节点所处的第三级区域。
7.一种网络数据包的路由装置,其特征在于,包括:
网络节点配置模块,用于在目标网络中配置多个网络节点,其中,每个网络节点具有一个位置编码;
网络设备位置编码确定模块,用于根据所述目标网络中每个网络设备的网络地址,确定每个网络设备对应的位置编码;
路由模块,用于基于位置编码表,路由各个网络设备之间传输的网络数据包,其中,所述位置编码表中包含:各个网络节点的位置编码。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
节点状态获取模块,用于接收每个网络节点上报的网络状态信息,其中,所述网络状态信息中包含:每个网络节点与其他网络节点之间的往返时延;
其中,所述路由模块还用于:根据每个网络节点上报的网络状态信息和位置编码表中各个网络节点的位置编码,路由各个网络设备之间传输的网络数据包。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述网络数据包的路由方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至6任一项所述网络数据包的路由方法的计算机程序。
技术总结