流量引导的方法和装置与流程

文档序号:11878698阅读:185来源:国知局
本发明涉及通信技术应用领域,具体而言,涉及一种流量引导的方法和装置。
背景技术
::随着移动终端的智能化,应用于智能移动终端的各类应用程序也随之丰富,而如何在应用程序执行过程中加速该应用程序的数据传输效率,成为了亟待解决的问题。其中,对安卓应用进行加速有两个重要环节,一是将应用发出的数据包引导到本地代理,二是根据加速白名单对应用发出的数据包进行加速控制;网络防火墙Iptables是Linux系统中管理网络过滤器Netfilter的工具,Netfilter处于传输控制协议/因特网互联协议(TransmissionControlProtocol/InternetProtocol,简称TCP/IP)协议栈的IP层,通过设置Iptables规则可对网络数据包进行过滤、重定向等操作;安卓应用分为普通应用和系统应用,系统会为所有应用分配uid用于管理应用的权限,其中普通应用具有唯一标识uid,从10000开始各不相同,系统应用的uid统一为1000;系统应用通常为具有静默安装、常驻服务、网络管理等权限要求的应用,如本地代理为需要常驻服务的系统应用,应用市场为需要静默安装的系统应用、启动器Launcher为开机启动器的系统应用。这里将应用发出的数据包引导至本地代理通常采用添加Iptables重定向规则实现;Netfilter作用于IP层,仅仅依靠重定向规则无法区分待加速应用与本地代理发出的数据包,本地代理发出的数据包经过Netfilter将再次被重定向至本地代理,造成死循环。针对上述的问题可采用设置Iptables规则过滤加速服务器的服务端口,此时本地代理发送至加速服务器的数据包不会再次被重定向,但却有很大的局限性:当应用访问的端口与加速服务器端口一致时,则流量无法进入本地代理做加速处理;其次经过本地代理回源的数据包由于端口已不是加速服务器端口将造成死循环,上述方法对重定向本地代理的数据包只能做全量加速处理,无法针对加速应用白名单做是否加速的控制。针对上述由于相关技术中加速方案已无法满足对不同应用进行加速控制需求,更无法对系统应用进行加速,从而导致的影响加速产品的应用效率的问题,目前尚未提出有效的解决方案。技术实现要素:本发明实施例提供了一种流量引导的方法和装置,以至少解决由于相关技术中加速方案已无法满足对不同应用进行加速控制需求,更无法对系统应用进行加速,从而导致的影响加速产品的应用效率的技术问题。根据本发明实施例的一个方面,提供了一种流量引导的方法,包括:判断待发送数据包的标签是否与预设匹配规则中的设置的基准标签相同;在判断结果为否的情况下,通过重定向待发送数据包,对待发送数据包配置基准标签;发送配置携带基准标签的待发送数据包。根据本发明实施例的另一方面,还提供了一种流量引导的装置,包括:判断模块,用于判断待发送数据包的标签是否与预设匹配规则中的设置的基准标签相同;配置模块,用于在判断结果为否的情况下,通过重定向待发送数据包,对待发送数据包配置基准标签;第一发送模块,用于发送配置携带基准标签的待发送数据包。在本发明实施例中,通过判断待发送数据包的标签是否与预设匹配规则中的设置的基准标签相同;在判断结果为否的情况下,通过重定向待发送数据包,对待发送数据包配置基准标签;发送配置携带基准标签的待发送数据包,达到了区分应用程序与本地代理发出的数据包的目的,从而实现了对不同应用执行加速控制的技术效果,进而解决了由于相关技术中加速方案已无法满足对不同应用进行加速控制需求,更无法对系统应用进行加速,从而导致的影响加速产品的应用效率的技术问题。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据本发明实施例的流量引导的方法的流程示意图;图2是根据本发明实施例的一种流量引导的方法中应用场景的示意图;图3是根据本发明实施例的一种流量引导的方法的流程示意图;图4是根据本发明实施例的流量引导的装置的结构示意图;图5是根据本发明实施例的一种流量引导的装置的结构示意图;图6是根据本发明实施例的另一种流量引导的装置的结构示意图;图7是根据本发明实施例的又一种流量引导的装置的结构示意图。具体实施方式为了使本
技术领域
:的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。实施例1根据本发明实施例,提供了一种流量引导的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。图1是根据本发明实施例的流量引导的方法的流程示意图,如图1所示,该方法包括如下步骤:步骤S102,判断待发送数据包的标签是否与预设匹配规则中的设置的基准标签相同;具体的,本申请实施例提供的流量引导的方法可以适用于移动终端对各类应用的加速处理过程,其中,本申请实施例以适用于安卓系统的终端设备为例进行说明,这里本申请实施例中的终端设备可以包括:智能手机、平板电脑、掌上商务以及穿戴设备。其中,本申请实施例提供在对终端设备中的各类应用进行加速的过程中,终端设备的IP层的Netfilter会先对各类应用的待发送数据包通过预设匹配条件进行区别,在本申请实施例中预设匹配条件为网络防火墙Iptable设置的mark标签匹配规则和重定向规则,在对接收到的待发送数据包与预设匹配条件进行匹配的过程中,判断该待发送数据包是否携带与Iptable设置的mark标签匹配规则匹配的基准标签,假设本申请实时中的基准标签为一个端口号,匹配规则也以端口号执行匹配操作,这里将通过判断该待发送数据包的基准标签是否与该匹配规则中设置的加速端口相同。即,该基准标签记为mark=8123,匹配规则设置的加速端口为mark=X,判断8123是否等于X。在判断结果为否的情况下执行步骤S104,在判断结果为是的情况下执行步骤S103。步骤S104,在判断结果为否的情况下,通过重定向待发送数据包,对待发送数据包配置基准标签;具体的,基于步骤S102对待发送数据包是否携带基准标签,在判断结果为待发送数据包未携带基准标签的情况下,终端设备的IP层的Netfilter将会把待发送数据包重定向至本地代理,由本地代理对该待发送数据包配置基准标签,以避免相关技术中本地代理发出的数据包经过Netfilter将再次被重定向至本地代理。步骤S106,发送配置携带基准标签的待发送数据包。具体的,基于步骤S104对待发送数据包配置基准标签,在第二次Netfilter对该携带有基准标签的待发送数据包执行步骤S102的匹配操作时,可以得到该待发送数据包的基准标签与预设匹配条件相同,进而经过网卡将该待发送数据包发送至下一路由(即,下一传输路径)。结合步骤S102至步骤S106,图2是根据本发明实施例的一种流量引导的方法中应用场景的示意图,如图2所示,本申请实施例提供的流量引导的方法应用于终端设备,其中,在实现流量引导的方法的过程中,该终端设备具体如下:Step1,终端设备中装有本地代理和需加速的应用,均处于应用层;Step2,Netfilter属于IP层,可对数据包的进行过滤、重定向等操作;Step3,本地代理收到数据包后判断数据包是否需要加速,需要加速的代理至加速服务器,否则代理至源站,并在代理socket上设置mark标签;Step4,加速服务器或源站将响应发送至本地代理,本地代理将其转发至对应应用。本申请实施例提供的流量引导的方法中,通过判断待发送数据包的标签是否与预设匹配规则中的设置的基准标签相同;在判断结果为否的情况下,通过重定向待发送数据包,对待发送数据包配置基准标签;发送配置携带基准标签的待发送数据包,达到了区分应用程序与本地代理发出的数据包的目的,从而实现了对不同应用执行加速控制的技术效果,进而解决了由于相关技术中加速方案已无法满足对不同应用进行加速控制需求,更无法对系统应用进行加速,从而导致的影响加速产品的应用效率的技术问题。可选的,在预设匹配规则还包括重定向规则的情况下,步骤S104中通过重定向待发送数据包,对待发送数据包配置基准标签,包括:Step1,依据重定向规则将待发送数据包重定向至具有标记基准标签功能的本地代理;具体的,在该待发送数据包的基准标签与预设匹配条件中的匹配规则不匹配的情况下,将该待发送数据包重定向至标记有基准标签的本地代理。这里本申请实施例中终端设备中的Netfilter将与预设匹配规则不匹配的待发送数据包重定向至终端设备中的本地代理。Step2,通过预设套接字配置函数对待发送数据包配置基准标签。具体的,基于Step1对待发送数据包的重定向,本地代理通过预设套接字SetSockopt配置函数对该待发送数据包配置基准标签,即,配置基准标签为8123的标签至待发送数据包上。可选的,Step2中通过预设套接字配置函数对待发送数据包配置基准标签,包括:步骤A,对待发送数据包创建对应的套接字;步骤B,依据预设套接字配置函数对套接字配置基准标签。具体的,结合步骤A和步骤B,本地代理对接收到的待发送数据包后创建代理套接字socket,使用Linux的套接字配置函数setsockopt函数对该套接字socket设置mark=8123的标签。可选的,在步骤S102中判断待发送数据包的标签是否与预设匹配规则中的设置的基准标签相同之后,本申请实施例提供的流量引导的方法还包括:步骤S103,在判断结果为是的情况下,将携带基准标签的待发送数据包发出,不再重定向至本地代理。具体的,区别于步骤S104,在判断待发送数据包携带基准标签,且该待发送数据包携带的基准标签与预设匹配条件中的基准标签相同的情况下,本地代理将发送携带基准标签的待发送数据包,其中,本地代理将依据该待发送数据包的应用类型,将该待发送数据包发送至加速服务器或源站。综上,结合步骤S102至步骤S106,图3是根据本发明实施例的一种流量引导的方法的流程示意图;如图3所示,本申请实施例提供的流量引导的方法具体如下:首先,本申请实施例中iptables设置mark标签匹配规则、重定向规则,(即,图3中的Step1)其中,mark标签匹配规则和重定向规则如下:mark标签匹配规则:iptables–tnat–AOUTPUT-mmark–mark8123–jRETURN;重定向规则:iptables–tnat–AOUTPUT–ptcp–jREDIRECT–to-port8123其中,重定向规则的作用是将数据包重定向至8123端口;当数据包具有mark=8123的标签时,匹配规则匹配,数据包不被重定向,以系统默认方式处理;本地代理初始化,设置监听端口8123,用于接收重定向的数据包。其次,应用(含本地代理)发出的数据包经路由后到达Netfilter的OUTPUT链路,此时Netfilter根据数据包属性,以及mark标签匹配规则和重定向规则规则处理数据包,非本地代理发出的数据包(mark!=8123)被重定向至本地代理监听的8123端口(即,图3中的Step2);第三,本地代理收到数据包后创建代理socket,使用Linux的setsockopt函数对socket设置mark=8123的标签,判断该数据包是否需要加速并将其转发至加速服务器或源站(即,图3中的Step3);其中,在Step3中本地代理收到重定向数据包,创建代理socket并设置mark标签,将数据包由代理socket发出。第四,本地代理发出的数据包经过路由后到达Netfilter的OUTPUT链,与mark标签匹配规则匹配,经过网卡发送至下一条路由(即,图3中的Step4)。由上可知,本申请实施例提供的流量引导的方法,依靠mark标签区分本地代理发出的数据包能够实现对应用发出的数据包进行全量加速控制,避免了由于设置iptables过滤规则(端口过滤)造成应用访问的目的端口与加速服务器的端口具有耦合性而无法加速;本地代理与其他系统应用都具有相同的uid,为避免本地代理发出的数据包再次被重定向也可采用设置本地代理的uid的过滤规则,但本地代理为系统应用,与其他系统应用的uid具有耦合性,因而无法对系统应用加速,采用设置mark标签的方法能够在不局限于应用属性的前提下区分本地代理发出的数据包,使系统应用加速控制得以实现。并且,本申请实施例提供的流量引导的方法,不改变Linux的Netfilter、TCP/IP协议栈等关键模块、不需要定制系统,节约了开发成本。实施例2根据本发明实施例,提供了一种流量引导的装置实施例,图4是根据本发明实施例的流量引导的装置的结构示意图,如图4所示,该装置包括:判断模块42、配置模块44和第一发送模块46,其中,判断模块42,用于判断待发送数据包的标签是否与预设匹配规则中的设置的基准标签相同;配置模块44,用于在判断结果为否的情况下,通过重定向待发送数据包,对待发送数据包配置基准标签;第一发送模块46,用于发送配置携带基准标签的待发送数据包。本申请实施例提供的配置MARK标签的装置中,通过判断待发送数据包的标签是否与预设匹配规则中的设置的基准标签相同;在判断结果为否的情况下,通过重定向待发送数据包,对待发送数据包配置基准标签;发送配置携带基准标签的待发送数据包,达到了区分应用程序与本地代理发出的数据包的目的,从而实现了对不同应用执行加速控制的技术效果,进而解决了由于相关技术中加速方案已无法满足对不同应用进行加速控制需求,更无法对系统应用进行加速,从而导致的影响加速产品的应用效率的技术问题。可选的,图5是根据本发明实施例的一种流量引导的装置的结构示意图,如图5所示,配置模块44包括:重定向单元441和配置单元442,其中,重定向单元441,用于在预设匹配规则包括重定向规则的情况下,依据重定向规则将待发送数据包重定向至具有标记基准标签功能的本地代理;配置单元442,用于依据重定向规则将待发送数据包重定向至标记有基准标签的本地代理。可选的,图6是根据本发明实施例的另一种流量引导的装置的结构示意图,如图6所示,配置单元442包括:创建子单元4421和配置子单元4422,其中,创建子单元4421,用于对待发送数据包创建对应的套接字;配置子单元4422,用于依据预设套接字配置函数对套接字配置基准标签。可选的,图7是根据本发明实施例的又一种流量引导的装置的结构示意图,如图7所示,本申请实施例提供的流量引导的装置还包括:第二发送模块43,其中,第二发送模块43,用于在判断结果为是的情况下,将携带基准标签的待发送数据包发出,不再重定向至本地代理。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1