一种网络负载均衡方法、设备及系统与流程

文档序号:13882532阅读:236来源:国知局
一种网络负载均衡方法、设备及系统与流程

本发明涉及网络通信技术领域,尤其涉及一种网络负载均衡方法、设备及系统。



背景技术:

在数据通讯网络中,通常存在多条不同链路可以到达同一目的地址。如果使用传统的路由技术,发往该目的地址的报文只能利用其中的一条链路,不能有效利用网络资源。采用负载均衡技术,按一定的规则将流量分担到多条链路上,可以提升链路利用率,还可以备份失效链路的数据传输。当前现有技术中,比较常见的负载均衡技术是等价多路径(equalcostmulti-path,ecmp)技术,来实现多路径负载均衡和链路备份的目的。

采用负载均衡技术,需要将前往同一目的地址的报文调度到多个路径。调度的单位目前有多种选择。当前提出一种采用流分段(flowcell)的概念,含义是在传输控制协议(transportcontrolprotocol,tcp)发送端发出数据流时,按照一定的数据量为单位将数据流切分为多个分段,每个分段具有唯一编号,记为流分段标识flowcellid。流分段方法的优点是每个分段的数据量有明确的上限,那么基于流分段的负载均衡调度可以取得很好的均衡性。例如以64k字节为单位划分流分段,则单个数据流的负载均衡流量精度误差不超过64k字节。大量数据流同时进行负载均衡时,产生显著的累积误差(例如达到千兆链路带宽的1%,即10mbps)的概率极其微小。

现有技术中,以流(flow)为单位进行ecmp是最常见的负载均衡的方法。这种方法的原理是采用五元组(源ip地址、目的ip地址、源端口号、目的端口号、协议号)进行散列计算,把每个流映射到多个可用链路上的一个。但是基于流的负载均衡,存在负载分担不均匀的问题,网络中可能有一部分路径未能得到有效利用。



技术实现要素:

有鉴于此,实有必要提供一种网络负载均衡的方法、设备及系统,用于提升链路利用率。本发明是基于flowcell概念,提出一种网络负载均衡方法、设备及系统。

第一方面,一种网络负载均衡的方法,包括:所述终端设备提供p条逻辑通道,所述p为网络最大负载均衡路径数p,p为大于等于2的整数;所述终端设备将待发送的数据流以流分段为单位进行分割,生成多个子数据流;所述终端设备将所述多个子数据流映射到所述p个逻辑通道,发送至所述网络设备。本发明通过将待发送数据流以流分段为单位进行分割,并通过映射到多个逻辑通道上,可以在网络中实现细粒度的、负载分担更均衡的技术方案,有效提升网络利用率,优化负载均衡效果,同时避免网络设备记录单个数据流的状态和路径信息。

应理解,流分段的含义是在传输控制协议(transportcontrolprotocol,tcp)发送端发出数据流时,按照一定的数据量为单位将数据流切分为多个分段,每个分段具有唯一编号,记为流分段标识flowcellid。对流分段的说明,适用于本发明所有实施例,后续不再赘述。

在一种可能的设计中,所述方法还包括当第x个子数据流与下一个数据流累加的长度超过所述流分段的最大值,将所述下一个数据流作为第x+1个待发送的数据流,x为非负整数。

在一种可能的设计中,所述子数据流还包括:流分段标识;根据所述流分段标识,对p取余,获取与流分段标识对应的逻辑通道;将所述流分段标识的子数据流分别映射到所述对应的逻辑通道。本发明实施例将子数据流根据流分段标识对p取余映射到多个逻辑通道上,可以在网络中实现负载分担更均衡的技术方案。

在一种可能的设计中,通过读取所述终端设备的存储器确定所述最大负载均衡路径数p。

在一种可能的设计中,通过控制台或者命令行设置所述终端设备的最大负载均衡路径数p。

第二方面,本发明实施例还提供一种网络负载均衡的方法,包括:接收来自上游节点的多个子数据流,根据所述子数据流的五元组和所述流分段标识对p取余进行散列运算,映射到多个物理链路发送至下一跳节点,其中,p为网络最大负载均衡路径数,p为大于等于2的整数。本发明通过将待发送数据流以流分段为单位进行分割,并通过映射到多个逻辑通道上,可以在网络中实现细粒度的、负载分担更均衡的技术方案,有效提升网络利用率,优化负载均衡效果,同时避免网络设备记录单个数据流的状态和路径信息。

在一种可能的设计中,所述p值是通过读取存储器获取。

在一种可能的设计中,所述p值是通过命令行或者网管设备来获取。

第三方面,本发明实施例还提供一种终端设备,包括处理器,用于提供p个逻辑通道,所述p为网络最大负载均衡路径数p,p为大于等于2的整数;将待发送的数据流以流分段为单位进行分割,生成多个子数据流;收发器,将所述多个子数据流映射到所述p个逻辑通道,发送至网络设备。本发明通过将待发送数据流以流分段为单位进行分割,并通过映射到多个逻辑通道上,可以在网络中实现细粒度的、负载分担更均衡的技术方案,有效提升网络利用率,优化负载均衡效果,同时避免网络设备记录单个数据流的状态和路径信息。

在一种可能的设计中,所述子数据流还包括:流分段标识;所述处理器,还用于根据所述流分段标识,对p取余,获取与流分段标识对应的逻辑通道;将所述流分段标识的子数据流分别映射到所述对应的逻辑通道。本发明实施例将子数据流根据流分段标识对p取余映射到多个逻辑通道上,可以在网络中实现负载分担更均衡的技术方案。

在一种可能的设计中,所述处理器用于读取所述终端设备的存储单元确定所述最大负载均衡路径数p。

在一种可能的设计中,所述收发器还用于发送第一消息至所述网络设备,用于请求所述网络设备反馈p值。

第四方面,本发明实施例还提供一种网络设备,包括处理器,接收来自上游节点的多个子数据流,其中,每个子数据流携带流分段标识;收发器,用于根据所述子数据流的五元组和所述流分段标识对p取余进行散列运算,映射到多个物理链路发送至下一跳节点,其中,p为网络最大负载均衡路径数,p为大于等于2的整数。本发明通过将待发送数据流以流分段为单位进行分割,并通过映射到多个逻辑通道上,可以在网络中实现细粒度的、负载分担更均衡的技术方案,有效提升网络利用率,优化负载均衡效果,同时避免网络设备记录单个数据流的状态和路径信息。

在一种可能的设计中,所述p值是通过读取存储器获取。

在一种可能的设计中,所述p值是通过命令行或者网管设备来获取。

第五方面,一种通信系统,包括如第三方面所述的终端设备和如第四方面所述的网络设备。

本发明通过将待发送数据流以流分段为单位进行分割,并通过映射到多个逻辑通道上,可以在网络中实现细粒度的、负载分担更均衡的技术方案,有效提升网络利用率,优化负载均衡效果,同时避免网络设备记录单个数据流的状态和路径信息。

附图说明

图1a是本发明实施例提供的一种通信网络的示意性架构图;

图1b是本发明实施例提供的另一种通信网络的示意性架构图;

图2a是本发明实施例提供的不同粒度的数据的示意性图;

图2b是本发明实施例提供的一种新型tcp报文的结构性示意图;

图3是本发明实施例提供的一种网络负载均衡的方法流程示意图;

图4是本发明实施例提供的一种子数据流映射到逻辑通道的示意图;

图5是本发明实施例提供的一种网络负载均衡的方法流程示意图;

图6是本发明实施例提供的一种将多个子数据流映射到多条物理通道的示意图;

图7是本发明实施例提供的一种将多个子数据流映射到多条物理通道的示意图;

图8是本发明实施例提供的一种网络设备的结构示意图;

图9是本发明实施例提供的一种网络设备的结构示意图;

图10是本发明实施例提供的一种网络设备的结构示意图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本发明的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。

本发明终端设备可以经网络与一个或多个网络设备进行通信,用户设备可以指用户终端、计算机、服务器、电话、电脑、手持设备、打印机、掌上电脑、传真机、多功能设备、投影仪、绘图仪等设备。

本发明网络设备可以是用于与终端设备进行通信的网络侧设备,例如,可以是路由器、交换机、网桥、集线器、调制解调器、或者其他具有转发报文功能的设备。

示例性地,图1a为本发明实施例提供的一种通信网络100的示意性架构图。终端设备110通过网络设备120、130连接到终端设备140上。示例性地,图1b是本发明实施例提供的另一种通信网络100的示意性架构图。终端设备110通过网络设备120、130、132连接到终端设备140上。应理解,图1a和图1b仅为示例,实际中的组网架构可能复杂得多,从网络设备120至终端设备140之间可能存在多个网络节点,图1a和图1b仅仅以存在网络设备130和/或132为例。假设源节点设备110欲发送数据流至目的节点140,途径网络设备120以及130、132,其中,网络设备120至目的节点140中存在三条物理路径,本发明的实施例提供一种网络负载均衡方法使得数据流可以均衡在上述三条物理路径上传输。

需要说明的是,如图2a所示,图2a示出了不同粒度的数据的示意性图。图2a以流分段上限为64kb为例,说明了从tcp数据流到流分段、再到报文的划分示意图。一般地,将tcp数据流按固定的长度上限划分为多个流分段,如果某个tcp数据流与前面的数据流所累加的长度超过了上限,则该数据流被划分到下一个流分段中。在划分流分段的同时,为流分段分配流分段标识。在流分段进一步切分为报文(packet)的环节,将流分段标识封装到每个报文的报文头(packetheader)中。如此,划分到同一流分段中的多个tcp数据流,在网络链路上传输的报文中,携带相同的流分段标识。

如图2b所示,提供一种新型tcp报文,包括:

源端口和目的端口:各占2个字节,是运输层与应用层的服务接口。

序号:占4个字节。tcp连接传输的数据流中的每一个字节都被编上一个序号。首部中序号字段的值指的是本报文段所发送的数据的第一个字节的序号。

确认号:占4个字节,是期望收到对方下一个报文段的数据的第一个字节的序号。

数据偏移:占4比特,它指出报文段的数据起始处距离tcp报文段的起始处有多远。实际上就是tcp报文段首部的长度。

保留字段,占6比特。本发明实施例中的flowcellid可以扩展在该保留字段中,也可以通过定义一个名为flowcellid的字段来承载流分段标识。

紧急比特urg:当urg取值1时,表明紧急指针有效。它告诉系统报文段中有紧急数据,应尽快传送。

确认比特ack:当ack取值为1时,确认号字段才有效,当ack取值为0时,确认号字段无效。

推送比特push:接收方接收到push值为1的报文段时,会尽快的将其交付给接收应用进程,而不再等到整个接收缓存都填满后再向上交付。

复位比特rst:当rst取值为1时,表明tcp连接中出现严重差错,必须释放连接。复位比特还用来拒绝一个非法的报文段或拒绝打开一个连接。

同步比特syn:在连接建立时用来同步序号。当syn取值为1时而ack取值为0时,表明这是一个连接请求报文段。对方若同意建立连接,应在响应的报文段中使syn取值为1和ack取值为1。因此,syn取值为1就表示这是一个连接请求或连接接收报文。

终止比特fin:当fin取值为1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。

窗口:占2个字节,用来控制对方发送的数据量,单位是字节,指明对方发送窗口的上限。

校验和:占2个字节,校验的范围包括首部和数据两个部分,计算校验和时需要在报文段前加上12字节的伪首部。

紧急指针:占2个字节,指出本报文段中紧急数据中最后一个字节的序号。只有当紧急比特urg取值为1时,才有效。

选项:长度可变。tcp只规定了一种选项,即最大报文段长度(maximumsegmentsize,mss)。

以下发明实施例可应用于具有多条物理链路的数据通讯网络中,例如但不限于,广域网、企业网、数据中心网等。具体方案请参考以下实施例:

实施例一

如图3所示,本发明实例一提供一种网络负载均衡的方法300,包括:

步骤310、终端设备提供p条逻辑通道,所述p为网络最大负载均衡路径数p,p为大于等于2的整数;

步骤320、所述终端设备将待发送的数据流以流分段为单位分割,生成多个子数据流;

步骤330、所述终端设备将所述多个子数据流映射到所述p条逻辑通道,发送至网络设备。

具体地,网络最大负载均衡路径数p是指整个网络中从某一个节点到另一个节点之间最大的路径数量。

终端设备获取网络最大负载均衡路径数p值,有多种实现方式:

比如,第一种实现方式为:将网络最大负载均衡路径数p设置为网络协议的一部分,网络中的终端设备和网络设备均遵循该网络协议指定的p值,即设备出厂前,已经将p值写入设备的存储器,后续不再改变。比如,协议规定p为6,终端设备和网络设备p值默认为6。在此实现方式中,步骤310可以理解为,通过读取终端设备或者网络设备的存储器,确定p值。

第二种实现方式为:由网络管理者通过控制台或者命令行来设置网络设备的p值,然后终端设备通过信令或者消息从网络设备处获取p值。比如,具体的实现步骤为:

步骤a:终端设备发送第一消息至网络设备,第一消息用于请求网络设备反馈网络最大负载均衡路径数p;

步骤b;网络设备发送第二消息至终端设备,所述第二消息携带所述p值。

其中,网络设备的p值,是由网络管理者通过控制台或者命令行人为设置的。这个p值后续可以更改。其中,第一消息、第二消息的格式可以参考现有技术tcp协议的帧格式,这里不再赘述。可以通过扩展现有tcp协议的保留字段来承载所述p值。

所述方法还包括:每个子数据流携带流分段标识。流分段标识的含义是在传输控制协议(transportcontrolprotocol,tcp)发送端发出数据流时,按照一定的数据量为单位将数据流切分为多个分段,每个分段具有唯一编号,记为流分段标识flowcellid。

具体地,步骤320中的逻辑通道,可以表示一个子连接,每个逻辑通道类似一个tcp连接,具有独立的发送窗口和控制参数。

终端设备对每个逻辑通道的报文进行并行发送,每个逻辑通道各自采用一个tcp发送窗口控制发送速率。

在本发明实施例中,终端设备可以对每个逻辑通道进行准确的路径拥塞状态测量,并进行相应的流量控制。举例说明:

步骤a、逻辑通道#1将当前发送窗口允许发送的报文发出;

步骤b、等候接收端(网络设备)反馈逻辑通道#1的接收确认报文;

当接收端发现同一个流分段中接收的报文的数据序号不连续时,说明出现了丢包;

步骤c、接收端反馈接收确认报文,要求重新传输丢失的报文;

步骤d、发送端接收到要求重新传输丢失的报文时,除了重新传输丢失的报文,还会认为此逻辑通道发生了拥塞;

步骤e、发送端将发送窗口尺寸减半,即降低发送报文的速率。

由于每个逻辑通道有各自独立的窗口,逻辑通道#1发生拥塞,只需要降低逻辑通道#1的报文发送速率,其他逻辑通道不受影响,正常发送报文。

具体地,步骤330中“将分割后的各个流分段,映射到所述p个逻辑通道”,具体包括:

以流分段标识值对p取余,来获得各个流分段具体对应哪个逻辑通道。

示例性地,如图4所示,p取值为3,将待发送的数据流以64k字节为单位(即每个流分段的大小为64k字节),分割为5个flowcell,编号分别记为flowcellid#0~flowcellid#4。其中,flowcellid#0对应逻辑通道0、flowcellid#1对应逻辑通道1、依次类推,flowcellid#4对应逻辑通道1。

应理解,以流分段标识值对p取余只是一种具体的将流分段与p个逻辑通道对应的实现方式。还可以采用其他实现方式,比如,随机分配等。本发明实施例对此不进行限定。

本发明通过将待发送数据流以流分段为单位进行分割,并通过映射到多个逻辑通道上,可以在网络中实现细粒度的、负载分担更均衡的技术方案,有效提升网络利用率,优化负载均衡效果,同时避免网络设备记录单个数据流的状态和路径信息。

实施例二

如图5所示,本发明实施例二提供一种网络负载均衡的方法500,包括:

步骤510、网络设备接收来自上游节点的多个子数据流,其中,每个子数据流携带流分段标识;

步骤520、根据所述子数据流的五元组和所述流分段标识对p取余进行散列运算,映射到多个物理链路发送至下一跳节点,其中,p为网络最大负载均衡路径数,p为大于等于2的整数。

所述下一跳节点可以是中间节点(网络设备),也可以是目的节点,是所述多个子数据流最终到达的终端设备。

具体地,网络设备识别属于一个逻辑通道的报文是通过六元组信息,所谓六元组包括传统的五元组以及流分段标识对p值取余,即六元组包括:源ip、源端口、目的ip、目的端口、协议号以及流分段标识%p,其中,%表示取余运算。

其中,六元组相同的报文,来自一个逻辑通道。

当接收报文时,网络设备首先按照常规的ip路由转发流程,根据报文目的ip地址查询路由表,得到的路由中包括m个下一跳,即代表相邻下游物理链路有m条。m大于等于1。

在一种实现方式中,如图6所示。逻辑通道p取值为3,即将3个逻辑通道上接收到的报文,通过三条物理链路发送,其中,第一逻辑通道上的报文通过第一物理链路发送;第二逻辑通道上的报文通过第二物理链路发送;第三逻辑通道上的报文通过第三物理链路发送。即在该种实现方式中,物理链路的编号与逻辑通道的编号一一对应。

比如,在另一种实现方式中,如图7所示,逻辑通道p取值为3,物理路径物理链路取值为2,即将3个逻辑通道上接收到的报文,通过两条物理路径物理链路发送,其中,第一逻辑通道上的报文通过第一物理路径物理链路发送;第二逻辑通道和第三逻辑通道上的报文通过第二物理路径物理链路发送。假如第二物理路径物理链路连接的下一跳节点下具有2条物理路径物理链路,那么通过第二物理路径物理链路发送的报文可以通过二次分流。

本发明通过将待发送数据流以流分段为单位进行分割,并通过映射到多个逻辑通道上,可以在网络中实现细粒度的、负载分担更均衡的技术方案,有效提升网络利用率,优化负载均衡效果,同时避免网络设备记录单个数据流的状态和路径信息。

实施例三

如图8所示,本发明又一实施例提供一种终端设备800,该终端设备800包括处理器810和收发器820,其中:

处理器810,用于提供p个逻辑通道,所述p为网络最大负载均衡路径数,p为大于等于2的整数;将待发送的数据流以流分段为单元进行分割,生成多个子数据流;

收发器820,用于将所述多个子数据流映射到所述p个逻辑通道,发送至所述网络设备。

其中,每个子数据流携带流分段标识。

具体地,获得网络最大负载均衡路径数p,有多种实现方式:

比如,第一种实现方式为:将网络最大负载均衡路径数p设置为网络协议的一部分,网络中的终端设备和网络设备均遵循该网络协议指定的p值,即设备出厂前,已经将p值写入设备的存储器,后续不再改变。处理单元810通过读取所述终端设备的存储单元确定所述最大负载均衡路径数p。

第二种实现方式为:由网络管理者通过控制台或者命令行来设置网络设备的p值,然后终端设备通过信令或者消息从网络设备处获取p值。比如,具体的实现方案为:

收发器820,用于发送第一消息至所述网络设备,用于请求所述网络设备反馈最大网络负载均衡路径数p值;

收发器820,还用于接收来自所述网络设备的、携带所述p值的第二消息。

其中,第一消息、第二消息的格式可以参考现有技术tcp协议的帧格式,这里不再赘述。可以通过扩展现有tcp协议的保留字段来承载所述p值。

可选地,所属处理器还用于根据所述多个子数据流的流分段标识对p取余,来选择p个逻辑通道,具体可以参考实施例二中的方案,这里不再赘述。

应理解,本发明实施例三是对应于方法实施例一的装置实施例,对方法实施例一的描述,也应适用于本发明实施例三。

本发明通过将待发送数据流以流分段为单位进行分割,并通过映射到多个逻辑通道上,可以在网络中实现细粒度的、负载分担更均衡的技术方案,有效提升网络利用率,优化负载均衡效果,同时避免网络设备记录单个数据流的状态和路径信息。

实施例四

如图9所示,本发明实施例提供一种网络设备900,包括:

处理器910,接收来自上游节点的多个子数据流,其中,每个子数据流携带流分段标识。

收发器920,用于根据所述子数据流的五元组和所述流分段标识对p取余进行散列运算,映射到多个物理链路发送至下一跳节点,其中,p为网络最大负载均衡路径数,p为大于等于2的整数。

应理解,本发明实施例四是对应于方法实施例二的装置实施例,对方法实施例二的描述,也应适用于本发明实施例四。

本发明通过将待发送数据流以流分段为单位进行分割,并通过映射到多个逻辑通道上,可以在网络中实现细粒度的、负载分担更均衡的技术方案,有效提升网络利用率,优化负载均衡效果,同时避免网络设备记录单个数据流的状态和路径信息。

实施例五

图10为本发明又一实施例提供的一种网络设备的示意性框图。该网络设备1000包括处理器1010、存储器1020、总线1030和用户接口1040、网络接口1050。

具体地,处理器1010控制网络设备1000的操作,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件。

用户接口1060,用于连接下层终端设备;

网络接口1050用于连接上层网络设备;

网络设备1000的各个组件通过总线1050耦合在一起,其中总线系统1050除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都标为总线系统1050。需要说明的是,上述对于网元结构的描述,可应用于本发明的实施例。

存储器1020可以包括只读存储器(readonlymemory,rom)和随机存取存储器(randomaccessmemory,ram),或者可存储信息和指令的其他类型的动态存储设备,也可以是磁盘存储器。存储器1020可用于保存实现本发明实施例提供的相关方法的指令。可以理解,通过编程或装载可执行指令到网元1000的处理器1010,缓存和长期存储中的至少一个。在一种具体的实施例中,所述存储器,用于存储计算机可执行程序代码,其中,当所述程序代码包括指令,当所述处理器执行所述指令时,所述指令使所述网元执行以下操作:

提供p个逻辑通道,所述p为网络最大负载均衡路径数p,p为大于等于2的整数;

将待发送的数据流以流分段为单位分割,生成多个子数据流;

将所述多个子数据流映射到所述p个逻辑通道,发送至所述网络设备。

或者,所述指令使所述网元执行以下操作:

接收来自上游节点的多个子数据流,其中,每个子数据流携带流分段标识;

根据所述子数据流的五元组和所述流分段标识对p取余进行散列运算,映射到多个物理链路发送至下一跳节点,其中,p为网络最大负载均衡路径数,p为大于等于2的整数。

以上作为设备的网元包含的处理器所执行操作的具体实现方式可以参照实施例一至二中的由设备执行的对应步骤,本发明实施例不再赘述。

本发明通过将待发送数据流以流分段为单位进行分割,并通过映射到多个逻辑通道上,可以在网络中实现细粒度的、负载分担更均衡的技术方案,有效提升网络利用率,优化负载均衡效果。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

本领域普通技术人员可知,上述方法中的全部或部分步骤可以通过程序指令相关的硬件完成,该程序可以存储于一计算机可读存储介质中,该计算机可读存储介质如rom、ram和光盘等。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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