一种数据转发方法、装置以及计算机可读存储介质制造方法及图纸

技术编号:20493538 阅读:15 留言:0更新日期:2019-03-02 23:23
本发明专利技术公开了一种数据转发方法及装置,其中,数据转发方法包括步骤:当接收到任一客户端传来的数据时,通过调用钩子函数判断所述数据所属的客户端;根据所述客户端的信息指定唯一的转发端口号,根据所述转发端口号获取与所述客户端对应的唯一的转发端口,通过所述转发端口转发所述数据至路由器。能指定任一客户端数据的转发端口,均衡链路负载,提高吞吐量。

A Data Forwarding Method, Device and Computer Readable Storage Media

The invention discloses a data forwarding method and device, in which the data forwarding method includes steps: when receiving data from any client, the client to which the data belongs is judged by calling a hook function; according to the information of the client, the unique forwarding port number is specified, and the unique forwarding terminal corresponding to the client is acquired according to the forwarding port number. The port forwards the data to the router through the forwarding port. Can specify any client data forwarding port, balance link load, improve throughput.

【技术实现步骤摘要】
一种数据转发方法、装置以及计算机可读存储介质
本专利技术涉及通讯领域,尤其涉及一种数据转发方法、装置以及计算机可读存储介质。
技术介绍
中继器通过多条链路与路由器桥接,在数据传输时,需解决如何选择链路才能充分发挥链路的性能、提高吞吐量的问题。目前的一种实现方法是,通过监听中继器上传到路由器的数据流,记录下每一条数据流的传输链路,当路由器需要向中继器传输一条数据流时,检测是否有相应的反向流从中继器传输到路由器的记录,若有,则这条数据流就会从其反向流的接收链路转发出去,即当中继器调整一条流到指定链路之后,路由器也会跟随中继器调整,把这条流的反向流从指定的链路转发出去,路由器跟随中继器调流的行为称为FollowRE。但作为一个中继器,在实际应用中,以下行流传输为主,则与路由器之间传输的数据,能自主调整的大多数都是TCP-ACK流之类的小数据流,而路由器会通过哪条链路向中继器传输数据,并不由中继器决定,因此,要实现此方法,还需要路由器支持FollowRE功能。当路由器不支持FollowRE功能时,这种方法能起到的提高吞吐量效果很微弱,而且目前大多数路由器不支持FollowRE功能。即使路由器支持FollowRE功能,某些情况下也可能出现FollowRE功能失效的情况,比如中继器和路由器之间无线使用三地址的桥接方式。路由器在转发数据时,会考虑两个参数,ARP表和FDB表。路由器会根据数据的目的IP地址查询ARP表得到目的Mac地址,然后通过目的Mac地址查询FDB表,找到转发端口,并通过此端口转发数据。针对此方法,如果一个中继器上的客户端,在同时收发多条数据流,并且这些流在经过中继器转发到路由器时选择了不同的链路,会导致路由器生成不稳定的FDB表,从而造成路由器转发目的地址为此客户端的数据流时,选择的链路不确定的现象,而且如果中继器和路由器之间是通过三地址桥接的,还可能会造成路由器的ARP表不稳定的现象。
技术实现思路
本专利技术实施例提供一种数据转发方法、装置以及计算机可读存储介质,能有效解决现有技术上中继器的客户端数据从不同的链路转发至路由器且导致ARP表和FDB表不稳定的问题,能有效提高吞吐量。本专利技术一实施例提供一种数据转发方法,包括:当接收到任一客户端传来的数据时,通过调用钩子函数判断所述数据所属的客户端;根据所述客户端的信息指定唯一的转发端口号,根据所述转发端口号获取与所述客户端对应的唯一的转发端口,通过所述转发端口转发所述数据至路由器。与现有技术相比,本专利技术实施例公开的数据转发方法,通过根据所述客户端的信息指定唯一的转发端口号,根据所述转发端口号获取与所述客户端对应的唯一的转发端口,通过所述转发端口转发所述数据至路由器,能有效指定任一客户端数据的转发端口,均衡链路负载,提高吞吐量。作为上述方案的改进,当接收到任一客户端传来的数据时,通过调用钩子函数判断所述数据所属的客户端前,还包括步骤:配置用于桥接路由器的端口为上行口,配置用于客户端访问的端口为下行口。作为上述方案的改进,当接收到任一客户端传来的数据时,通过调用钩子函数判断所述数据所属的客户端前,还包括步骤:通过内核模块注册或重定向钩子函数;其中,所述钩子函数包括netfilter。作为上述方案的改进,根据所述客户端的信息指定唯一的转发端口号,根据所述转发端口号获取与所述客户端对应的唯一的转发端口,通过所述转发端口转发所述数据至路由器,具体为:查询HA表中是否存在所述客户端对应的HA条目,当所述HA表中存在所述客户端对应的HA条目时,生成所述HA条目中的转发端口号;其中,所述HA表用于收集所述HA条目;所述HA条目用于标识所述数据并指定所述数据的转发端口;当所述HA表中不存在所述客户端对应的HA条目时,查询FDB表中是否存在所述客户端对应的fdb条目;当所述FDB表中存在所述客户端对应的fdb条目时,判断所述转发端口的属性;当所述转发端口为下行口时,在所述HA表中生成所述客户端对应的HA条目,生成fdb查询的转发端口号;当所述转发端口为上行口时,查询HC表中是否存在所述客户端对应的HC条目;其中,所述HC表用于收集所述HC条目;所述HC条目用于标识所述客户端并指定所述客户端的数据转发端口;当所述HC表中存在所述客户端对应的HC条目时,在所述HA表中生成所述客户端对应的HA条目,并生成HC查询的转发端口号;当所述HC表中不存在所述客户端对应的HC条目时,根据最优链路参数在所述HC表中生成所述客户端对应的HC条目,在所述HA表中生成所述客户端对应的HA条目,并生成HC查询的转发端口号。作为上述方案的改进,最优链路参数用于指向当前时刻的最优链路,具体为:周期性监听应用层中实时的链路状态,当任意时刻检测到超载链路时,通过netlink消息通知内核模块,修改HC条目,将超载链路上的部分客户端的数据调整到除所述超载链路外的其他链路上,并在最优链路参数中指定当前时刻的最优链路;其中,所述最优链路为负载最小的链路。作为上述方案的改进,当所述FDB表中不存在所述客户端对应的fdb条目时,标记所述转发端口号为空,采用预设的转发规则指定所述数据的转发端口,通过所述转发规则指定的转发端口转发所述数据。本专利技术另一实施例对应提供了一种数据转发装置,包括:客户端信息获取模块,用于当接收到任一客户端传来的数据时,通过调用钩子函数判断所述数据所属的客户端;数据转发模块,用于根据所述客户端的信息指定唯一的转发端口号,根据所述转发端口号获取与所述客户端对应的唯一的转发端口,通过所述转发端口转发所述数据至路由器。与现有技术相比,本专利技术实施例公开的数据转发装置,通过客户端信息获取模块判断所述数据所属的客户端,再通过数据转发模块指定唯一的转发端口号,然后通过所述转发端口转发所述数据至路由器,能有效指定任一客户端数据的转发端口,均衡链路负载,提高吞吐量。作为上述方案的改进,所述数据转发装置,还包括:配置模块,用于配置用于桥接路由器的端口为上行口,配置用于客户端访问的端口为下行口;函数模块,用于通过内核模块注册或重定向钩子函数;其中,所述钩子函数包括netfilter。本专利技术另一实施例提供了一种数据转发装置,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述专利技术实施例所述的数据转发方法。本专利技术另一实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述专利技术实施例所述的数据转发方法。附图说明图1是本专利技术实施例1提供的一种数据转发方法的流程示意图。图2是本专利技术实施例2提供的一种数据转发方法的流程示意图。图3是本专利技术实施例3提供的一种数据转发装置的结构示意图。图4是本专利技术实施例4提供的一种数据转发装置的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。参见图1,是本专利技术实施例1提供的一种数据转发方法的流程示意图本文档来自技高网
...

【技术保护点】
1.一种数据转发方法,其特征在于,包括步骤:当接收到任一客户端传来的数据时,通过调用钩子函数判断所述数据所属的客户端;根据所述客户端的信息指定唯一的转发端口号,根据所述转发端口号获取与所述客户端对应的唯一的转发端口,通过所述转发端口转发所述数据至路由器。

【技术特征摘要】
1.一种数据转发方法,其特征在于,包括步骤:当接收到任一客户端传来的数据时,通过调用钩子函数判断所述数据所属的客户端;根据所述客户端的信息指定唯一的转发端口号,根据所述转发端口号获取与所述客户端对应的唯一的转发端口,通过所述转发端口转发所述数据至路由器。2.如权利要求1所述的数据转发方法,其特征在于,所述当接收到任一客户端传来的数据时,通过调用钩子函数判断所述数据所属的客户端前,还包括步骤:配置用于桥接路由器的端口为上行口,配置用于客户端访问的端口为下行口。3.如权利要求1所述的数据转发方法,其特征在于,所述当接收到任一客户端传来的数据时,通过调用钩子函数判断所述数据所属的客户端前,还包括步骤:通过内核模块注册或重定向钩子函数;其中,所述钩子函数包括netfilter。4.如权利要求1所述的数据转发方法,其特征在于,所述根据所述客户端的信息指定唯一的转发端口号,根据所述转发端口号获取与所述客户端对应的唯一的转发端口,通过所述转发端口转发所述数据至路由器,具体为:查询HA表中是否存在所述客户端对应的HA条目,当所述HA表中存在所述客户端对应的HA条目时,生成所述HA条目中的转发端口号;其中,所述HA表用于收集所述HA条目;所述HA条目用于标识所述数据并指定所述数据的转发端口;当所述HA表中不存在所述客户端对应的HA条目时,查询FDB表中是否存在所述客户端对应的fdb条目;当所述FDB表中存在所述客户端对应的fdb条目时,判断所述转发端口的属性;当所述转发端口为下行口时,在所述HA表中生成所述客户端对应的HA条目,生成fdb查询的转发端口号;当所述转发端口为上行口时,查询HC表中是否存在所述客户端对应的HC条目;其中,所述HC表用于收集所述HC条目;所述HC条目用于标识所述客户端并指定所述客户端的数据转发端口;当所述HC表中存在所述客户端对应的HC条目时,在所述HA表中生成所述客户端对应的HA条目,并生成HC查询的转发端口号...

【专利技术属性】
技术研发人员:万祥军
申请(专利权)人:普联技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1