发明内容
本发明提供一种基于聚合链路的数据传输方法和设备,以有效的利用物理链路的带宽资源。
为了达到上述目的,本发明提供一种基于聚合链路的数据传输方法,应用于包括发送端设备和接收端设备的系统中,所述发送端设备与所述接收端设备之间存在多条物理链路,且所述多条物理链路组成聚合链路,该方法包括以下步骤:
所述发送端设备接收需要通过所述聚合链路发送给所述接收端设备的数据,所述数据中携带数据流关键特征信息;
所述发送端设备通过所述数据流关键特征信息查询数据流转发表,所述数据流转发表用于记录数据流关键特征信息与物理链路之间的对应关系;
当查询结果为没有匹配的记录时,所述发送端设备从所述多条物理链路中选择剩余带宽最高的物理链路向所述接收端设备发送所述数据,并在所述数据流转发表中记录所述数据中携带的数据流关键特征信息与所述剩余带宽最高的物理链路之间的对应关系;
当查询结果为有匹配的记录时,所述发送端设备通过所述数据中携带的数据流关键特征信息在所述数据流转发表中对应的物理链路向所述接收端设备发送所述数据。
所述数据流关键特征信息包括以下之一或任意组合:源IP地址、目的IP地址、源MAC地址、目的MAC地址、源端口标识、目的端口标识、数据的协议号。
所述发送端设备从所述多条物理链路中选择剩余带宽最高的物理链路向所述接收端设备发送所述数据,具体包括:
所述发送端设备获得物理链路的总物理带宽以及所述物理链路的当前已使用带宽,通过所述总物理带宽以及所述当前已使用带宽确定所述物理链路的剩余带宽,并确定所述多条物理链路中剩余带宽最高的物理链路,以及通过所述剩余带宽最高的物理链路向所述接收端设备发送所述数据。
所述数据流转发表中还记录有老化时间;
所述发送端设备在所述数据流转发表中记录所述数据中携带的数据流关键特征信息与所述剩余带宽最高的物理链路之间的对应关系,包括:
当所述数据流转发表的占用空间已经达到预设阈值时,所述发送端设备删除所述数据流转发表中老化时间最长的对应关系,并在所述数据流转发表中记录所述数据中携带的数据流关键特征信息与所述剩余带宽最高的物理链路之间的对应关系。
所述数据流转发表中还记录有老化时间,所述方法还包括:所述发送端设备定时遍历所述数据流转发表中的所有对应关系,如果有对应关系的老化时间超过预设数值,则删除该对应关系。
一种发送端设备,应用于包括所述发送端设备和接收端设备的系统中,所述发送端设备与所述接收端设备之间存在多条物理链路,且所述多条物理链路组成聚合链路,所述发送端设备包括:
接收模块,用于接收需要通过所述聚合链路发送给所述接收端设备的数据,所述数据中携带数据流关键特征信息;
查询模块,用于通过所述数据流关键特征信息查询数据流转发表,所述数据流转发表用于记录数据流关键特征信息与物理链路之间的对应关系;
处理模块,用于当查询结果为没有匹配的记录时,从所述多条物理链路中选择剩余带宽最高的物理链路向所述接收端设备发送所述数据,并在所述数据流转发表中记录所述数据中携带的数据流关键特征信息与所述剩余带宽最高的物理链路之间的对应关系;当查询结果为有匹配的记录时,通过所述数据中携带的数据流关键特征信息在所述数据流转发表中对应的物理链路向所述接收端设备发送所述数据。
所述数据流关键特征信息包括以下之一或任意组合:源IP地址、目的IP地址、源MAC地址、目的MAC地址、源端口标识、目的端口标识、数据的协议号。
所述处理模块,具体用于获得物理链路的总物理带宽以及所述物理链路的当前已使用带宽,通过所述总物理带宽以及所述当前已使用带宽确定所述物理链路的剩余带宽,并确定所述多条物理链路中剩余带宽最高的物理链路,以及通过所述剩余带宽最高的物理链路向所述接收端设备发送所述数据。
所述数据流转发表中还记录有老化时间;所述处理模块,进一步用于当所述数据流转发表的占用空间已经达到预设阈值时,删除所述数据流转发表中老化时间最长的对应关系,并在所述数据流转发表中记录所述数据中携带的数据流关键特征信息与所述剩余带宽最高的物理链路之间的对应关系。
所述数据流转发表中还记录有老化时间;所述处理模块,还用于定时遍历所述数据流转发表中的所有对应关系,如果有对应关系的老化时间超过预设数值,则删除该对应关系。
与现有技术相比,本发明至少具有以下优点:通过统计各个物理链路的剩余带宽,选择最为空闲的物理链路进行数据转发,以有效的利用物理链路的带宽资源;此外,通过匹配数据流转发表的方式进行数据转发,避免了频繁统计物理链路带宽所带来的效率问题。
具体实施方式
本发明提出一种基于聚合链路的数据传输方法,该方法应用于包括发送端设备和接收端设备的系统中,以图1为本发明应用场景示意图,则在设备A向设备B发送数据时,设备A为发送端设备,设备B为接收端设备;在设备B向设备A发送数据时,设备B为发送端设备,设备A为接收端设备。
需要说明的是,在发送端设备与接收端设备之间存在多条物理链路,且多条物理链路组合成聚合链路。
本发明中,需要在发送端设备上维护数据流转发表,且该数据流转发表用于记录数据流关键特征信息与物理链路(以物理链路号方式记录)之间的对应关系;该数据流关键特征信息包括但不限于以下之一或任意组合:源IP地址、目的IP地址、源MAC(Media Access Control,介质访问控制)地址、目的MAC地址、源端口标识、目的端口标识、数据的协议号。
优选的,数据流关键特征信息可以为:源IP地址、目的IP地址、源MAC地址、目的MAC地址、数据的协议号;优选的,数据流关键特征信息还可以为源IP地址、目的IP地址、源MAC地址、目的MAC地址、源端口标识、目的端口标识、数据的协议号。
当然,在实际应用中并不局限于此,只要是能够区分出数据流的特征信息均在本发明范围之内。
为了方便描述,后续以数据流关键特征信息为源IP地址、目的IP地址、源MAC地址、目的MAC地址、源端口标识(即UDP(User Datagram Protocol,用户数据包协议)或TCP(Transmission Control Protocol,传输控制协议)源端口标识)、目的端口标识(即UDP或TCP目的端口标识)、数据的协议号为例进行说明;需要注意的是,数据流转发表在初始化时为空,如表1所示,为初始化时的数据流转发表的示例。
表1
源IP |
目的IP |
源MAC |
目的MAC |
源端口 |
目的端 |
协议 |
物理链 |
地址 |
地址 |
地址 |
地址 |
标识 |
口标识 |
号 |
路 |
|
|
|
|
|
|
|
|
基于维护的数据流转发表,如图3所示,该方法包括以下步骤:
步骤301,发送端设备接收需要通过聚合链路发送给接收端设备的数据,该数据中携带数据流关键特征信息。以数据中携带如下关键特征信息为例:源IP地址为IP地址1、目的IP地址为IP地址2、源MAC地址为MAC地址1、目的MAC地址为MAC地址2、源端口标识为端口1、目的端口标识为端口2、数据的协议号为TCP。
步骤302,发送端设备通过数据中携带的数据流关键特征信息查询数据流转发表;当查询结果为没有匹配的记录时,则执行步骤303;当查询结果为有匹配的记录时,则执行步骤304。
具体的,发送端设备可以通过数据流关键特征信息(IP地址1、IP地址2、MAC地址1、MAC地址2、端口1、端口2、TCP)查询自身维护的数据流转发表,当查询结果为没有匹配的记录时,则执行步骤303;当查询结果为有匹配的记录时,则执行步骤304。
步骤303,发送端设备从多条物理链路中选择剩余带宽最高的物理链路向接收端设备发送数据,并在数据流转发表中记录数据中携带的数据流关键特征信息与剩余带宽最高的物理链路之间的对应关系。
本发明中,在发送端设备通过数据中携带的数据流关键特征信息(IP地址1、IP地址2、MAC地址1、MAC地址2、端口1、端口2、TCP)查询表1所示的数据流转发表时,查询结果为没有匹配的记录;之后,发送端设备需要获得各物理链路的总物理带宽以及该物理链路的当前已使用带宽,并通过该总物理带宽以及当前已使用带宽确定该物理链路的剩余带宽;并确定多条物理链路中剩余带宽最高的物理链路,以及通过该剩余带宽最高的物理链路向接收端设备发送数据。
具体的,在查询结果为没有匹配的记录时,发送端设备需要统计当前link_1到link_N的负荷状态(即带宽占用率),并选择其中剩余带宽最高的物理链路作为最优转发物理链路,以进行数据转发。发送端设备可以根据公式MAX{(Bw_link1-Usage_link1),(Bw_link2-Usage_link2),......(Bw_linkN-Usage_linkN)}选取最优转发物理链路,并通过该最优转发物理链路发送数据;其中,Bw_linkN代表物理链路N的总物理带宽,Usage_linkN代表当前此物理链路已使用的带宽。
基于表1所示的数据流转发表以及数据中携带的数据流关键特征信息(IP地址1、IP地址2、MAC地址1、MAC地址2、端口1、端口2、TCP),且以剩余带宽最高的物理链路为物理链路3为例,则发送端设备在数据流转发表中记录数据中携带的数据流关键特征信息与剩余带宽最高的物理链路之间的对应关系,可以如表2所示。
表2
需要注意的是,如果后续具有相同数据流关键特征信息的数据需要从设备A转发到设备B,通过查询数据流转发表可知查询结果为有匹配的记录;因此为了减少时序问题对设备的影响,并提高数据转发效率,不再重新统计物理链路的当前负荷状态,直接从数据流转发表中记录的物理链路进行转发。
步骤304,发送端设备通过数据中携带的数据流关键特征信息在数据流转发表中对应的物理链路向接收端设备发送数据。
本发明中,发送端设备通过数据中携带的数据流关键特征信息(IP地址1、IP地址2、MAC地址1、MAC地址2、端口1、端口2、TCP)查询表2所示的数据流转发表时,查询结果为有匹配的记录;该情况下,发送端设备直接通过数据中携带的数据流关键特征信息在数据流转发表中对应的物理链路(即物理链路3)向接收端设备发送数据。
需要说明的是,该数据流转发表中还可以记录有老化时间(Age);发送端设备在记录数据中携带的数据流关键特征信息与剩余带宽最高的物理链路之间的对应关系的过程中,如果数据流转发表的占用空间已经达到预设阈值(如缓存已经被占满),则发送端设备删除数据流转发表中老化时间最长的对应关系,并在数据流转发表中记录数据中携带的数据流关键特征信息与剩余带宽最高的物理链路之间的对应关系,并将此对应关系的老化时间清零。
如表3所示,为数据流转发表中记录有老化时间,且记录数据流关键特征信息(IP地址1、IP地址2、MAC地址1、MAC地址2、端口1、端口2、TCP)以及物理链路3的对应关系时的数据流转发表。
本发明中,在数据流转发表中记录有老化时间时,发送端设备还需要定时遍历数据流转发表中记录的所有对应关系,如果有对应关系的老化时间超过预设数值,则发送端设备需要删除该对应关系。此外,如果接收到的数据中所携带的数据流关键特征信息在数据流转发表中有相应的匹配记录,则发送端设备需要将其老化时间清0,并重新开始计时。
综上所述,本发明中,通过综合考虑数据中携带的数据流关键特征信息以及当前物理链路的负荷状态,来选择适当的物理链路,从而实现动态负载分担的目的。具体的,通过统计各个物理链路的剩余带宽,选择最为空闲的物理链路进行数据转发,以有效的利用物理链路的带宽资源;此外,通过匹配数据流转发表的方式进行数据转发,避免了频繁统计物理链路带宽所带来的效率问题,且避免了数据乱序对上层应用所带来的影响。
基于与上述方法同样的发明构思,本发明还提出了一种发送端设备,应用于包括所述发送端设备和接收端设备的系统中,所述发送端设备与所述接收端设备之间存在多条物理链路,且所述多条物理链路组成聚合链路,如图4所示,所述发送端设备包括:
接收模块11,用于接收需要通过所述聚合链路发送给所述接收端设备的数据,所述数据中携带数据流关键特征信息;
查询模块12,用于通过所述数据流关键特征信息查询数据流转发表,所述数据流转发表用于记录数据流关键特征信息与物理链路之间的对应关系;
处理模块13,用于当查询结果为没有匹配的记录时,从所述多条物理链路中选择剩余带宽最高的物理链路向所述接收端设备发送所述数据,并在所述数据流转发表中记录所述数据中携带的数据流关键特征信息与所述剩余带宽最高的物理链路之间的对应关系;当查询结果为有匹配的记录时,通过所述数据中携带的数据流关键特征信息在所述数据流转发表中对应的物理链路向所述接收端设备发送所述数据。
所述数据流关键特征信息包括以下之一或任意组合:源IP地址、目的IP地址、源MAC地址、目的MAC地址、源端口标识、目的端口标识、数据的协议号。
所述处理模块13,具体用于获得物理链路的总物理带宽以及所述物理链路的当前已使用带宽,通过所述总物理带宽以及所述当前已使用带宽确定所述物理链路的剩余带宽,并确定所述多条物理链路中剩余带宽最高的物理链路,以及通过所述剩余带宽最高的物理链路向所述接收端设备发送所述数据。
所述数据流转发表中还记录有老化时间;所述处理模块13,进一步用于当所述数据流转发表的占用空间已经达到预设阈值时,删除所述数据流转发表中老化时间最长的对应关系,并在所述数据流转发表中记录所述数据中携带的数据流关键特征信息与所述剩余带宽最高的物理链路之间的对应关系。
所述数据流转发表中还记录有老化时间;所述处理模块13,还用于定时遍历所述数据流转发表中的所有对应关系,如果有对应关系的老化时间超过预设数值,则删除该对应关系。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。