流量分发方法、路由方法、设备及网络系统与流程

文档序号:18867824发布日期:2019-10-14 18:46阅读:237来源:国知局
流量分发方法、路由方法、设备及网络系统与流程

本申请涉及网络通信技术领域,尤其涉及一种流量分发方法、路由方法、设备及网络系统。



背景技术:

随着网络通信技术的发展,数据中心的网络带宽得以迅速提升,25gb/s的网络带宽已经普及,而100gb/s的网络带宽也已成熟,甚至400gb/s的网络带宽已在酝酿。但是,网络带宽的发展受到物理链路上收发器,例如serdes的制造工艺的限制,网络带宽的发展远赶不上节点计算能力的提升,网络带宽的瓶颈在数据中心中表现得更为突出。

为了解决数据中心面临的网络带宽问题,现有技术通过部署多个物理上独立的网络,允许节点设备同时接入多个网络,由多个网络同时为节点设备提供网络服务,这在一定程度上解决了接入带宽受限的问题。

但是,已有多网络架构也存在一些不足,例如复杂度高、规模庞大等,为此需要新的技术实现一种复杂度、规模相对较低的多网络架构。



技术实现要素:

本申请的多个方面提供一种流量分发方法、路由方法、设备及网络系统,用以解决现有多网络架构存在的复杂度高、规模庞大等问题。

本申请实施例提供一种网络交换设备,包括:n个交换芯片以及可被所述n个交换芯片共享的至少一个共享模块;所述n个交换芯片隶属于n个不同的网络,并且所述n个交换芯片形成m2个网络端口,用于连接m2台节点设备,供所述m2台节点设备接入对应的网络;其中,n和m2是自然数,且n≥2。

本申请实施例还提供一种网络系统,包括:至少一台节点设备和至少一台网络交换设备;

每台网络交换设备包括n个交换芯片以及可被所述n个交换芯片共享的至少一个共享模块;所述n个交换芯片隶属于n个不同的网络,并且所述n个交换芯片形成m2个网络端口,用于连接所述至少一台节点设备中的m2台节点设备,供所述m2台节点设备接入对应的网络;其中,n和m2是自然数,且n≥2;

每台节点设备包括k个网络端口,用于与所述至少一台网络交换设备中一台网络交换设备内的k个交换芯片对应连接,k是自然数,且k≤n。

本申请实施例还提供一种流量分发方法,适用于包含至少两个网络端口的节点设备,该方法包括:

获取当前数据包;

以流量均衡为目的,从流量分发策略对应的端口选择参数中确定目标端口选择参数;

基于所述目标端口选择参数,从所述至少两个网络端口中选择目标网络端口;

通过所述目标网络端口将所述当前数据包发送至所述目标网络端口所接入的网络中,其中,所述至少两个网络端口分别接入不同的网络。

本申请实施例还提供一种路由方法,适用于前述实施例提供的网络交换设备,该方法包括:

基于路由策略,从所述网络交换设备的n个交换芯片中确定待发送数据包对应的第一交换芯片;

当所述第一交换芯片满足设定的网络切换条件时,从其它可达交换芯片中选择第二交换芯片,所述其它可达交换芯片是指所述n个交换芯片中除所述第一交换芯片之外对所述待发送数据包的目的端路由可达的交换芯片;

基于所述第一交换芯片与所述第二交换芯片之间的内部网络,控制所述第二交换芯片将所述待发送数据包发送出去。

本申请实施例还提供一种节点设备,包括:k个网络端口、存储器以及处理器;

所述k个网络端口,用于接入k个不同的网络,k是自然数,且k≥2;

所述存储器,用于存储计算机程序;

所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:

获取当前数据包;

以流量均衡为目的,从流量分发策略对应的端口选择参数中确定目标端口选择参数;

基于所述目标端口选择参数,从所述至少两k个网络端口中选择目标网络端口;

通过所述目标网络端口将所述当前数据包发送至所述目标网络端口所接入的网络中。

在本申请实施例中,将隶属于不同网络的交换芯片合并到一台网络交换设备中,通过这种网络交换设备将节点设备接入不同的网络,从而构建出一种包含不同网络的多轨网络系统。在这种多轨网络系统中,网络交换设备中隶属于不同网络的交换芯片可共享一些模块,有利于节约空间资源,减少了网络交换设备的体积,而且不同网络之间共享同一网络交换设备,网络交换设备的数量相对较少,因此,网络系统的复杂度相对较低,规模相对较小。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1a为本申请一示例性实施例提供的一种网络交换设备的结构示意图;

图1b为本申请另一示例性实施例提供的另一种网络交换设备的结构示意图;

图1c为本申请又一示例性实施例提供的适用于本申请示例性实施例提供的网络交换设备的一种交换芯片的结构示意图;

图1d为本申请又一示例性实施例提供的又一种网络交换设备的结构示意图;

图1e为本申请又一示例性实施例提供的又一种网络交换设备的结构示意图;

图2为本申请又一示例性实施例提供的一种网络系统的结构示意图;

图3a为本申请又一示例性实施例提供的一种流量分发方法的流程示意图;

图3b为本申请又一示例性实施例提供的一种逐包的流量分发方法的流程示意图;

图3c为本申请又一示例性实施例提供的一种逐流的流量分发方法的流程示意图;

图3d为本申请又一示例性实施例提供的另一种逐包的流量分发方法的流程示意图;

图3e为本申请又一示例性实施例提供的另一种逐流的流量分发方法的流程示意图;

图4a为本申请又一示例性实施例提供的一种路由方法的流程示意图;

图4b为本申请又一示例性实施例提供的另一种路由方法的流程示意图;

图5为本申请又一示例性实施例提供的一种节点设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

面对现有多网络架构存在的复杂度高、规模庞大等不足,在本申请一些示例性实施例中,将隶属于不同网络的交换芯片合并到一台网络交换设备中,通过这种网络交换设备将节点设备接入不同的网络,从而构建出一种包含不同网络的多轨网络系统。在这种多轨网络系统中,网络交换设备中隶属于不同网络的交换芯片可共享一些模块,有利于节约空间资源,减少了网络交换设备的体积,而且不同网络之间共享同一的网络交换设备,网络交换设备数量相对较少,因此,网络系统的复杂度相对较低,规模相对较小。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1a为本申请一示例性实施例提供的一种网络交换设备的结构示意图。如图1a所示,该网络交换设备100包括:n个交换芯片101以及可被n个交换芯片共享的至少一个共享模块102。其中,n是自然数,且n≥2,即网络交换设备100包括至少两个交换芯片101。在网络交换设备100中,n个交换芯片101隶属于n个不同的网络s1-sn。

在本实施例中,网络s1-sn可以理解为:是用通信线路和通信设备将分布在不同地点的多台自治计算机系统互相连接起来,按照共同的网络协议,共享硬件、软件等资源,最终实现资源共享的系统。根据互联范围的不同,网络s1-sn中的任一网络可以是局域网、城域网或广域网。

在一些可选实施方式中,网络s1-sn中的网络可以是同构网络,即网络中的设备由同一个供应商供应的或者是兼容设备,它们运行在同一个操作系统或者是网络操作系统下。在另一些可选实施方式中,网络s1-sn中的网络也可以是异构网络,即网络中的设备由不同供应商供应的设备,大部分情况下运行在不同的协议上支持不同的功能或应用。

在本实施例中,设计一种新结构的网络交换设备100,在该网络交换设备100中包括隶属于n个不同网络的n个交换芯片101,这相当于将这n个交换芯片101合并到了一台网络交换设备100中。另外,网络交换设备100还包括至少一个可被n个交换芯片101共享的模块,简称为共享模块。这些共享模块是指能够为n个交换芯片101提供相同服务或能够满足n个交换芯片101相同需求的模块,例如时钟模块、电源模块等。

对网络交换设备100来说,其包括的n个交换芯片101可形成m2个网络端口,用于连接m2台节点设备200,供m2台节点设备200接入对应的网络。其中,m2是自然数。优选地,m2是≥2的自然数。其中,对一台节点设备200来说,可以与n个交换芯片101中的部分交换芯片连接,以接入其所连接的部分交换芯片所属的网络,或者,也可以与n个交换芯片101分别连接,以接入n个不同的网络。

在本实施例中,并不限定节点设备200的实现形态,节点设备200可以是任何能够连接到交换芯片101上的设备,例如可以是工作站、终端设备、网络用户或个人计算机,还可以是服务器、打印机或其他网络连接的设备。

本实施例的网络交换设备包含隶属于不同网络的交换芯片,可以将节点设备接入不同的网络,从而构建出一种包含不同网络的网络系统。为便于描述,将基于本实施例的网络交换设备构建出的网络系统称为多轨网络系统。由于隶属于不同网络的交换芯片被合并到一台网络交换设备中,所以在这种多轨网络系统中,不同网络之间共享同一的网络交换设备,网络交换设备的数量相对较少,另外,网络交换设备中隶属于不同网络的交换芯片可共享一些模块,有利于节约空间资源,减少网络交换设备的体积,因此这种多轨网络系统的复杂度相对较低,规模也相对较小。

在一些示例性实施例中,对网络s1-sn中的任何网络而言,可以包括多个交换芯片,并可采用级联技术将多个交换芯片进行级联,以扩展网络规模,在这些级联的交换芯片之间形成级联层级。在本实施例中,并不限定交换芯片之间的级联方式,也不限定对级联层级的定义。例如,以依次级联的三个交换芯片为例,三个交换芯片的级联层级可以定义为第一层级、第二层级和第三层级,或者也可以定义为层级a、层级b和层级c,等等。

基于上述交换芯片之间的级联层级,网络交换设备100中的n个交换芯片101隶属于n个不同的网络s1-sn,且n个交换芯片101在各自所属网络中的级联层级相同。

在本申请另一些示例性实施例中,如图1b所示,网络交换设备100中的至少一个共享模块可以包括:m2个对外端口模块103。网络交换设备100中的m2个对外端口模块103主要用于实现m2台节点设备200与网络交换设备100内部n个交换芯片101之间的连接。

在一些应用场景中,每台节点设备200可以与n个交换芯片101分别连接,以便于接入n个不同的网络。于是,如图1b所示,每个对外端口模块103的一端与一台节点设备200连接,另一端分别与n个交换芯片101连接。对任一外端口模块103而言,一方面可以将来自与其连接的节点设备200的信号分发至其所属网络交换设备100中的n个交换芯片101,另一方面可以将来自n个交换芯片101的信号汇聚后发送至与其连接的节点设备200。在这些应用场景中,网络交换设备100包含的对外端口模块103的数量一定程度上决定了该网络交换设备100可以连接的节点设备200的数量。

在本申请实施例中,并不限定对外端口模块103与n个交换芯片101之间的连接方式。在一些示例性实施例中,如图1c所示,网络交换设备100中的每个交换芯片101包括m2个外部端口11。每个交换芯片101中的m2个外部端口11分别与网络交换设备100中的m2个对外端口模块103一一对应连接。采用这种交换芯片结构,可以简单、方便地实现对外端口模块103与n个交换芯片101之间的连接。

在本申请又一些示例性实施例中,如图1d所示,网络交换设备100中的至少一个共享模块还可以包括:内网控制模块104。内网控制模块104与网络交换设备100中的n个交换芯片101连接,用于控制n个交换芯片101之间进行数据交换。其中,n个交换芯片101之间相互连接,形成网络交换设备100的内部网络。可选地,如图1c所示,网络交换设备100中的每个交换芯片101还包括:m1个内部端口12。网络交换设备100中的n个交换芯片101通过各自包含的m1个内部端口12互连,形成网络交换设备100的内部网络;其中,m1是自然数,且m1≤n。本申请实施例不对n个交换芯片101通过各自包含的m1个内部端口构成的内部网络的拓扑进行限定,例如可以是星型结构、环型结构、总线型结构、树型结构、网状结构等等。

在这些示例性实施例中,n个交换芯片101之间互联形成网络交换设备100的内部网络,基于n个交换芯片101之间的内部网络,内网控制模块104可以根据应用需求控制网络数据在不同网络之间相互切换,尤其是当某个网络发生拥塞或者发生故障时,内网控制模块104可以灵活地将该网络中的数据切换到其他轻载的网络中,实现了同位交换芯片之间的互联互通,使得流量可以任意在不同网络中切换,实现了多轨网络系统的动态负载均衡和高可用性,也充分挖掘了多轨网络系统中的多路径,便于充分发挥多轨网络系统的优势。

值得说明的是,内网控制模块104可以作为网络交换设备100内部的控制平面,其功能除了控制网络数据在不同网络之间相互切换之外,还可以负责网络交换设备100的配置管理,例如路由表的配置等。内网控制模块104控制网络数据在不同网络之间相互切换的过程,也是内网控制模块104在n个交换芯片之间进行自适应路由的过程。可选地,内网控制模块104可以采用但不限于下述路由方式来控制n个交换芯片101之间进行数据交换:

在该方式中,内网控制模块104可基于路由策略,从n个交换芯片中确定待发送数据包对应的第一交换芯片;当第一交换芯片满足设定的网络切换条件时,从其它可达交换芯片中选择第二交换芯片,其它可达交换芯片是指n个交换芯片中除第一交换芯片之外对待发送数据包的目的端路由可达的交换芯片;基于第一交换芯片与第二交换芯片之间的内部网络,控制第二交换芯片将待发送数据包发送出去。

其中,路由策略可以是传统路由算法,例如可以是分布式路由选择方法,集中式路由选择,混合式动态路由选择,链路状态路由算法等。关于内网控制模块104基于传统路由算法确定第一交换芯片的详细过程与现有技术类似,本领域技术人员基于对传统路由算法的了解可以很容易的理解第一交换芯片的确定过程,故在此不做详述。其中,第一交换芯片可以是n个交换芯片中的任意交换芯片。

其中,网络切换条件可视具体应用场景而定。例如,在一些应用场景中,内网控制模块104在确定第一交换芯片之后,可以判断第一交换芯片上用于发送待发送数据包的外部端口是否存在故障,丢包率是否超过丢包率阈值,和/或平均排队延迟是否超过延迟阈值,并在第一交换芯片上用于发送待发送数据包的外部端口存在故障,丢包率超过丢包率阈值,和/或平均排队延迟超过延迟阈值时,确定第一交换芯片满足网络切换条件,从而触发选择第二交换芯片的操作。

在一些示例性实施例中,每个交换芯片101中的m2个外部端口11按照相同的顺序进行编号,例如从左到右依次为端口d_1,d_2,d_3,……d_m2,并可将各个交换芯片101中具有相同端口号的外部端口连接于同一对外端口模块103。基于此,内网控制模块104在选择第二交换芯片时,可基于第一交换芯片上用于发送待发送数据包的外部端口的端口号,获取其它可达交换芯片上具有相同端口号的外部端口的流量负载;根据其它可达交换芯片上具有相同端口号的外部端口的流量负载,从其它可达交换芯片中选择流量负载满足设定要求的交换芯片作为第二交换芯片。这样可以在某一网络中遇到故障/严重拥塞时,将该网络中的数据包切换到另一个轻载网络中传输,即可做到不同网络之间的负载均衡,又可以降低数据包的传输延时,保证数据包的可达性。

上述设定要求可根据应用需求适应性设置,例如可以是流量负载最低、流量负载小于设定流量负载阈值,或流量负载位于一定流量范围内等。基于此,上述第二交换芯片可以是其它可达交换芯片中具有相同端口号的外部端口的流量负载最低的交换芯片,或者,也可以是其它可达交换芯片中具有相同端口号的外部端口的流量负载小于设定流量负载阈值的交换芯片,或者,也可以是其它可达交换芯片中具有相同端口号的外部端口的流量负载位于一定范围内的交换芯片,等等。

在本申请又一些示例性实施例中,如图1e所示,网络交换设备100中的至少一个共享模块还可以包括但不限于:时钟模块105、电源模块106和/或散热模块107。

其中,时钟模块105与n个交换芯片101连接,用于向n个交换芯片101提供时钟信号。在同一网络交换设备100中,n个交换芯片101之间共享时钟模块105,有利于做到不同网络间最大限度的同步。

其中,电源模块106与n个交换芯片101连接,用于向n个交换芯片101供电。散热模块107与n个交换芯片101连接,用于为n个交换芯片101散热。在同一网络交换设备100中,n个交换芯片101之间共享电源模块106和散热模块107,不仅可以节约网络交换设备的内部空间,降低网络交换设备的实现成本,而且还可以大大提高能效。

基于上述实施例提供的网络交换设备,可以构建一种多轨网络系统。如图2所示,该多轨网络系统10包括:至少一台节点设备200和至少一台网络交换设备100。本实施例并不限定节点设备200和网络交换设备100的数量,可视应用需求和网络规模而定。

如图1a所示,每台网络交换设备100包括n个交换芯片。其中,n是自然数,且n≥2,即网络交换设备100包括至少两个交换芯片。在网络交换设备100中,n个交换芯片隶属于n个不同的网络s1-sn。

可选地,对网络s1-sn中的任何网络而言,可以包括多个交换芯片,并可采用级联技术将多个交换芯片进行级联,以扩展网络规模,在这些级联的交换芯片之间形成级联层级。基于此,每个网络交换设备100中的n个交换芯片隶属于n个不同的网络s1-sn,且n个交换芯片在各自所属网络中的级联层级相同。另外,由于同一网络交换设备100中n个交换芯片在各自所属网络中的级联层级相同,还可以将网络交换设备100中n个交换芯片101在各自所属网络中的级联层级视为网络交换设备100的级联层级。

另外,如图1a所示,每台网络交换设备100还包括至少一个可被n个交换芯片共享的模块,简称为共享模块。这些共享模块是指能够为n个交换芯片提供相同服务或能够满足n个交换芯片相同需求的模块,例如时钟模块、电源模块等。值得说明的是,为便于更加清楚地图示多轨网络系统10的架构,在图2中仅在部分网络交换设备100中示出了共享模块,其它未示出共享模块的网络交换设备100同样包含共享模块。

每台网络交换设备100中的n个交换芯片可形成至少一个网络端口,用于连接至少一台节点设备200中的部分节点设备,以供这些节点设备接入对应的网络。为便于描述,将每台网络交换设备100中n个交换芯片所形成的网络端口的数量,也就是每台网络交换设备100所连接的节点设备的数量记为m2,且对不同网络交换设备100来说,m2可以相同,也可以不相同。即,不同网络交换设备100所连接的节点设备200的数量可以相同,也可以不相同。其中,m2是自然数,且m2小于或等于至少一台节点设备200的总数量。

其中,每台节点设备200包括k个网络端口。每台节点设备200用于与至少一台网络交换设备100中一台网络交换设备连接。一台节点设备200与一台网络交换设备100连接主要是指该节点设备200内的k个交换芯片与该网络交换设备100中的k个交换芯片对应连接,k是自然数,且1≤k≤n。其中,一个网络端口与一个交换芯片对应连接,网络端口与交换芯片之间的对应关系不做限定,可根据灵活设定。例如,可以对网络端口和交换芯片分别编号,将编号相同的网络端口与交换芯片对应连接,但不限于此。

在本实施例中,并不限定节点设备200的实现形态,节点设备200可以是任何能够连接到交换芯片上且具有k个网络端口的设备,例如可以是工作站、终端设备、网络用户或个人计算机,还可以是服务器、打印机或其他网络连接的设备。

在一些可选实施方式中,k≥2,即节点设备200具有至少两个网络端口。在实现形态上,节点设备200可以包含单个多端口网卡,该多端口网卡提供多个网络端口,或者,节点设备200也可以是包含多块网卡(每块网卡可以有一个端口,也可以有多个端口),多块网卡共同提供多个网络端口。

在一可选实施例中,k=n,即每台节点设备200包括n个网络端口,分别与一台网络交换设备中的n个交换芯片一一对应连接。

另外,至少一台网络交换设备100之间可以按照网络交换设备的级联层级进行互联。可选地,在网络交换设备100中n个交换芯片101在各自所属网络中的级联层级相同,且被视为网络交换设备100的级联层级时,至少一台网络交换设备100之间按照内部交换芯片在所属网络中的级联层级相互连接。值得说明的是,在多轨网络系统10中,对于处于同一级联层级的网络交换设备100,可以部署一台,也可以部署多台。

其中,网络交换设备100之间以及节点设备200与网络交换设备100之间互联的链路主要用于承载链路两端发送的若干个并行信号的传输,其可以是有线链路,也可以是无线链路。其中,有线链路的介质可以是多芯光纤、多芯高速电缆或者承载wdm信号的光纤。无线链路是指传播电磁波的路径空间。网络交换设备100之间以及节点设备200与网络交换设备100之间相互连接后可形成多轨网络系统。

在本实施例中,网络交换设备包含隶属于不同网络的交换芯片,可以将节点设备接入不同的网络,从而构建出一种包含不同网络的网络系统。为便于描述,可将基于本实施例的网络交换设备构建出的网络系统称为多轨网络系统。由于隶属于不同网络的交换芯片被合并到一台网络交换设备中,所以在这种多轨网络系统中,不同网络之间共享同一的网络交换设备,网络交换设备的数量相对较少,另外,网络交换设备中隶属于不同网络的交换芯片可共享一些模块,有利于节约空间资源,减少网络交换设备的体积,因此这种多轨网络系统的复杂度相对较低,规模也相对较小。

在本申请一些示例性实施例中,每台节点设备200还包括汇聚/分发(mux/de-mux)模块。该汇聚/分发模块与其所属节点设备200中的k个网络端口连接,用于将来自其所属节点设备200中k个网络端口的信号汇聚后发送至与其所属节点设备200连接的网络交换设备中的k个交换芯片,或者将来自与其所属节点设备200连接的网络交换设备中k个交换芯片的信号分发至其所属节点设备200中的k个网络端口。

在本申请一些示例性实施例中,如图1b所示,每台网络交换设备中的至少一个共享模块包括:m2个对外端口模块。每个对外端口模块的一端与一台节点设备连接,另一端与其所属网络交换设备中的n个交换芯片连接,用于将来自与其连接的节点设备的信号分发至其所属网络交换设备中的n个交换芯片,或者将来自其所属网络交换设备中n个交换芯片的信号汇聚后发送至与其连接的节点设备。

可选地,如图1c所示,每个交换芯片包含m2个外部端口。每个交换芯片的m2个外部端口与其所属网络交换设备中的m2个对外端口模块一一对应连接。

在本申请一些示例性实施例中,如图1d所示,每台网络交换设备中的至少一个共享模块还包括:内网控制模块。每台网络交换设备中的内网控制模块与其所属网络交换设备中的n个交换芯片连接,用于控制其所属网络交换设备中n个交换芯片之间进行数据交换;其中,内网控制模块所属网络交换设备中的n个交换芯片之间相互连接。

可选地,如图1c所示,每个交换芯片还包含m1个内部端口。每台网络交换设备中的n个交换芯片通过各自包含的m1个内部端口互连;m1是自然数,且m1≤n。

在本申请一些示例性实施例中,如图1e所示,每台网络交换设备中的至少一个共享模块还包括但不限于:时钟模块、电源模块和/或散热模块。

其中,时钟模块与n个交换芯片连接,用于向n个交换芯片提供时钟信号。在同一网络交换设备中,n个交换芯片之间共享时钟模块,有利于做到不同网络间最大限度的同步。

其中,电源模块与n个交换芯片连接,用于向n个交换芯片供电。散热模块与n个交换芯片连接,用于为n个交换芯片散热。在同一网络交换设备中,n个交换芯片之间共享电源模块和散热模块,不仅可以节约网络交换设备的内部空间,降低网络交换设备的实现成本,而且还可以大大提高能效。

针对上述多轨网络系统中的节点设备,本申请实施例提供一种流量分发方法。如图3a所示,该方法包括:

301、获取当前数据包。

302、以流量均衡为目的,从流量分发策略对应的端口选择参数中确定目标端口选择参数。

303、基于目标端口选择参数,从节点设备的至少两个网络端口中选择目标网络端口,其中,节点设备的至少两个网络端口分别接入不同的网络。

304、通过目标网络端口将当前数据包发送至目标网络端口所接入的网络中。

在本实施例中,节点设备具有至少两个网络端口,且至少两个网络端口分别接入不同的网络。对节点设备来说,可以将数据包分发到相应网络中进行传输以便送达目的端。为了尽量均匀地将数据包分发到不同网络中,节点设备可以以流量均衡为目的进行数据包分发。

其中,节点设备分发各个数据包的方式相同或类似,在本实施例中,以当前数据包为例详细说明数据包分发过程。

在本实施例中,可以预先设定节点设备采用的流量分发策略,并为流量分发策略配置对应的端口选择参数,该端口选择参数用于供节点设备在对应流量分发策略下选择传输数据包所用的网络。

在一些应用场景中,节点设备是数据源,可以自己产生数据包并需要将数据包发送至目的端,则当节点设备产生新的数据包时,可以获取新产生的数据包作为待分发的当前数据包。在另一些应用场景中,节点设备可以作为中转或中继设备,则当接收到其下游设备上报或发送的数据包时,可以将接收到的数据包作为待发送的当前数据包。

无论是哪一种应用场景,在获得当前数据包后,节点设备可以以流量均衡为目的,从流量分发策略对应的端口选择参数中确定目标端口选择参数,基于目标端口选择参数,从节点设备的至少两个网络端口中选择目标网络端口,进而通过目标网络端口将当前数据包发送至与目标网络端口所接入的网络中。

在本实施例中,节点设备结合流量分发策略以及流量分发策略对应的端口选择参数,以流量均衡为目的为数据包选择传输网络,可以保证各网络中流量均衡,便于发挥多网络的优势。

其中,流量分发策略不同,其所对应的端口选择参数也会所有不同。下面给出两种示例:

在一种示例中,流量分发策略为逐包的流量分发策略,在该场景中,流量分发策略对应的端口选择参数为至少两种网络端口的序号。在该示例中,如图3b所示,一种流量分发过程包括:

311、获取当前数据包。

312、根据发送前一数据包的网络端口的序号和节点设备的至少两个网络端口的端口总数,从至少两种网络端口的序号中确定初始序号值,作为目标端口选择参数,其中,至少两个网络端口分别接入不同的网络。

313、从至少两个网络端口中序号为初始序号值的网络端口开始,依次比较后续各网络端口的当前可用流量是否大于或等于当前数据包的长度,并从当前可用流量大于或等于当前数据包的长度的网络端口中选择目标网络端口。

314、通过目标网络端口将当前数据包发送至目标网络端口所接入的网络中。

可选地,步骤312的一种实现方式包括:根据公式s=(t+1)modk,确定初始序号值。其中,s表示初始序号值,t表示发送前一数据包的网络端口的序号,k表示至少两个网络端口的端口总数,k是自然数。

在本实施例中,采用逐包的流量分发策略,以发送前一数据包的网络端口为基础,并结合每个网络端口的当前可用流量选择目标网络端口,有利于将数据包均匀分散到不同网络中,实现流量均衡。

进一步,结合上述实施例提供的网络交换设备,不同网络之间采用相同的时钟信号,不同网络之间可以做到最大限度的时钟同步,同一数据流中的不同数据包在不同网络中传输也不会引发乱序。

在另一种示例中,流量分发策略为逐流的流量分发策略,在该场景中,流量分发策略对应的端口选择参数为至少两种哈希函数。在该示例中,在确定目标端口选择参数时,可以根据至少两个网络端口的当前可用流量的差异度,从至少两种哈希函数中选择目标哈希函数,作为目标端口选择参数。如图3c所示,一种流量分发过程包括:

321、获取当前数据包。

322、从节点设备的至少两个网络端口的当前可用流量的中,确定最大可用流量和最小可用流量,其中,至少两个网络端口分别接入不同的网络。

323、判断最大可用流量与最小可用流量的差值是否大于设定阈值;若判断结果为是,即最大可用流量与最小可用流量的差值大于设定阈值,则执行324。反之,执行步骤325。

324、从至少两种哈希函数中选择除前一数据包使用的哈希函数之外的其它哈希函数作为目标哈希函数,并执行步骤326。

325、将前一数据包使用的哈希函数作为目标哈希函数,并执行步骤326。

326、基于目标哈希函数,从至少两个网络端口中选择目标网络端口,并执行步骤327。

可选地,可以基于当前数据包对应的流信息x(例如5元组)使用目标哈希函数hashd(x)进行哈希,将该哈希的结果作为目标网络端口的编号,选择具有该编号的网络端口作为目标网络端口。

327、通过目标网络端口将当前数据包发送至与目标网络端口所接入的网络中。

可选地,步骤324的一种实施方式包括:利用公式d=(c+1)modm,确定目标哈希函数。其中,d表示目标哈希函数的标号;c表示第一哈希函数的标号;m表示至少两种哈希函数的总数。

在本实施例中,采用多种哈希函数,并结合网络中的流量差异,当流量中的差异较大时,即最大可用流量与最小可用流量的差值大于设定阈值时,通过为当前数据包选择新的哈希函数,从而在当前数据包与前一数据包属于同一数据流的情况下,可以将当前数据包分散到新的网络中,达到流量均衡的目的。

在上述图3b和图3c所示流量分发过程中,还可以为节点设备的各个网络端口配置流量计数器,分别用来统计各个网络端口的流量信息,例如当前可用流量或当前已用流量等,并为这些流量计数器设置计数器更新周期,以便在当前时间是预置计数器更新周期的整数倍时,将各个网络端口的流量计数器重置为初始值,实现对流量计数器的更新。可选地,计数器更新周期可以是与数据包在网络中的传输耗时相关的数值。例如,可以根据经验统计出各网络传输完成一个数据包的时间长度,并将该时间长度设置为计数器更新周期。

结合上述流量计数器以及计数器更新周期,如图3d所示,一种逐包的流量分发方法包括:

331、初始化节点设备,为节点设备的k个网络端口分别设置流量计数器fc,流量计数器fc用于记录相应网络端口还可以输出的数据量大小,并设置流量计数器fc的初始值为q,恢复初始值的周期为ta。

332、初始化操作完成后,随机选择编号为orig的网络端口作为第一个发送数据包的网络端口,跳转至步骤333。

333、当收到一个长度为l1的数据包时,将该数据包从编号为orig的网络端口发送至该编号为orig的网络端口所接入的网络,并更新编号为orig的网络端口的流量计数器fcorig=fcorig–l1,记录当前被调度的编号s=orig,跳至步骤334;

334、判断当前时间是否是恢复初始值的周期ta的整数倍,若是,则跳转至步骤338;若否,则跳转至步骤335;

335、收到长度为lx的数据包,从编号s开始,寻找第一个满足fc>=lx的网络端口t,若能找到,则跳转至步骤337;若否,则跳转至步骤336。

336、更新所有网络端口的流量计数器的值为fc=q+fc,跳转至步骤334。

337、将长度为lx的数据包从编号为t的网络端口发送至该编号为t的网络端口所接入的网络,并更新编号为t的网络端口的流量计数器fct=fct–lx,记录当前被调度的编号s=(t+1)modk,跳转至步骤334。

338、将所有网络端口的流量计数器fc的值重新设置为初始值q,并随机选择编号为orig的网络端口作为发送下一个数据包的网络端口,跳转至步骤334。

在上述逐包分发方法中,基于当前被调度的网络端口为当前数据包选择网络端口,并结合定期重新随机选择网络端口,一定程度上可以实现流量均衡,避免流量堆积到某个网络中造成拥塞。

结合上述流量计数器以及计数器更新周期,如图3e所示,一种逐流的流量分发方法包括:

341、初始化节点设备,为节点设备的k个网络端口分别设置流量计数器fcn,流量计数器fcn用于记录相应网络端口已经输出的数据量大小,并设置流量计数器fcn恢复初始值的周期为tb,以及设定m个哈希函数标记为hash_1~hash_m,跳转至步骤342。其中,m是自然数,且m≥2。

342、判断当前时间是否是恢复初始值的周期tb的整数倍,若是,则跳转至步骤349;若否,则跳转至步骤343。

343、接收长度为ly的数据包,跳转至步骤344。

344、基于长度为ly的数据包对应的流信息x(例如5元组)使用哈希函数hash_c(x)进行哈希,将该哈希的结果作为编号tar,跳转至步骤345。

其中,hash_c(x)表示当前被调度的哈希函数,亦即发送上一数据包时使用的哈希函数,c表示当前被调度的哈希函数的编号,c是自然数,且1≤c≤m。

345、获得所有流量计数器fc中的最大值和最小值。

346、判断最大值与最小值之间的差值是否大于设定阈值;如果最大值与最小值之间的差值大于设定阈值,说明不同网络间负载已经很不平衡,跳转至步骤347;如果最大值和最小值之间的差值小于或等于设定阈值,说明不同网络间的负载相对平衡,跳转至步骤348。

347、利用公式hash_c=hash_[(c+1)modm]更换哈希函数,跳转至步骤344。

348、将长度为ly的数据包从编号为tar的网络端口发送至编号为tar的网络端口所接入的网络,并更新fcntar=fcntar+ly,跳转至步骤342。

其中,fcntar表示编号为tar的网络端口的流量计数器。

349、所有网络端口的流量计数器fc的值重新设置为0,跳转至步骤343。

在上述逐流分发方法中,基于多个哈希函数,可以在网络负载不均衡的情况下,将同一数据流中的数据包分发到不同网络中,一定程度上可以实现流量均衡,避免流量堆积到某个网络中造成拥塞。

针对上述实施例中的网络交换设备,本申请实施例提供一种路由方法。如图4a所示,该方法包括:

401、基于路由策略,从网络交换设备的n个交换芯片中确定待发送数据包对应的第一交换芯片,n是自然数,且n≥2。

402、当第一交换芯片满足设定的网络切换条件时,从其它可达交换芯片中选择第二交换芯片,其它可达交换芯片是指n个交换芯片中除第一交换芯片之外对待发送数据包的目的端路由可达的交换芯片。

403、基于第一交换芯片与第二交换芯片之间的内部网络,控制第二交换芯片将待发送数据包发送出去。

在本实施例的网络交换设备中包含n个交换芯片,n个交换芯片隶属于不同的网络,n个交换芯片之间互联形成网络交换设备的内部网络,n是自然数,且n≥2。对于进入网络交换设备内的数据包,基于网络交换设备的内部网络可在满足网络切换条件时将其从第一交换芯片所接入的网络切换至第二交换芯片所接入的网络,实现了同位交换芯片之间的互联互通,使得流量可以任意在不同网络中切换,实现了多轨网络系统的动态负载均衡和高可用性,也充分挖掘了多轨网络系统中的多路径,便于充分发挥多轨网络系统的优势。

在上述方法实施例中,网络切换条件可视具体应用场景而定。在一些应用场景中,网络切换条件可以是当前交换芯片是否发生故障和/或拥塞。基于此,如图4b所示,一种路由方法包括:

411、基于路由策略,从网络交换设备的n个交换芯片中确定待发送数据包对应的第一交换芯片,n是自然数,且n≥2。

412、判断第一交换芯片上用于发送待发送数据包的外部端口是否存在故障。如果判断结果为是,说明第一交换芯片满足网络切换条件,执行步骤413-415;如果判断结果为否,执行步骤416。

413、基于第一交换芯片上用于发送待发送数据包的外部端口的端口号,获取其它可达交换芯片上具有相同端口号的外部端口的流量负载。

414、根据其它可达交换芯片上具有相同端口号的外部端口的流量负载,从其它可达交换芯片中选择流量负载满足设定要求的交换芯片作为第二交换芯片。

可选地,第二交换芯片可以是其它可达交换芯片中具有相同端口号的外部端口的流量负载最低的交换芯片,或者,也可以是其它可达交换芯片中具有相同端口号的外部端口的流量负载小于设定流量负载阈值的交换芯片,或者,也可以是其它可达交换芯片中具有相同端口号的外部端口的流量负载位于一定范围内的交换芯片,等等。

415、基于第一交换芯片与第二交换芯片之间的内部网络,控制第二交换芯片将待发送数据包发送出去。

416、控制第一交换芯片将待发送数据包发送出去。

可选地,在步骤412中,还可以判断第一交换芯片上用于发送待发送数据包的外部端口的丢包率是否超过丢包率阈值。如果判断结果为是,说明第一交换芯片满足网络切换条件,则执行步骤413-415;如果判断结果为否,执行步骤416。

可选地,在步骤412中,还可以判断第一交换芯片上用于发送待发送数据包的外部端口的平均排队延迟是否超过延迟阈值等。如果判断结果为是,则执行步骤413-415;如果判断结果为否,执行步骤416。

可选地,在步骤412中,还可以结合两种或两种以上的条件进行综合判断。

本实施例可以在某一网络中遇到故障/严重拥塞时,将该网络中的数据包切换到另一个轻载网络中传输,即可做到不同网络之间的负载均衡,又可以降低数据包的传输延时,保证数据包的可达性。

需要说明的是,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如301、302等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

除上述网络交换设备、网络系统以及相应方法实施例之外,本申请一些实施例还提供一种节点设备,如图5所示,该节点设备包括:k个网络端口51、存储器52以及处理器53。

其中,k个网络端口51,用于接入k个不同的网络,k是自然数,且k≥2。

存储器52,用于存储计算机程序,并可被配置为存储其它各种数据以支持在节点设备上的操作。这些数据的示例包括用于在节点设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。

存储器52可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

处理器53,与存储器52耦合,用于执行存储器52中的计算机程序,以用于:获取当前数据包;以流量均衡为目的,从流量分发策略对应的端口选择参数中确定目标端口选择参数;基于目标端口选择参数,从k个网络端口中选择目标网络端口;通过目标网络端口将当前数据包发送至目标网络端口所接入的网络中。

在一可选实施方式中,如图5所示,该节点设备还包括:汇聚/分发模块54。

汇聚/分发模块54与k个网络端口51连接,用于将来自k个网络端口51的信号汇聚后发送至与该节点设备连接的网络交换设备中的k个交换芯片,或者将来自网络交换设备中k个交换芯片的信号分发至k个网络端口51。其中,网络交换设备包含n个交换芯片,n是自然数,n≥2且k≤n。

在本实施例中,并不限定节点设备的实现形态,节点设备可以是任何能够连接到交换芯片上且具有k个网络端口的设备,例如可以是工作站、终端设备、网络用户或个人计算机,还可以是服务器、打印机或其他网络连接的设备。

结合节点设备的实现形态,在一些可选实施方式中,该节点设备还可以包括:通信组件、显示器、电源组件、音频组件等其它组件。

其中,通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。

其中,显示器包括屏幕,其屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。

其中,电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。

其中,音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(mic),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。

相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,该计算机程序被执行时能够实现上述方法实施例中可由节点设备执行的各步骤或操作。

相应地,本申请实施例还提供另一种存储有计算机程序的计算机可读存储介质,该计算机程序被执行时能够实现上述方法实施例中可由网络交换设备执行的各步骤或操作。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1