一种数据包传输方法和系统技术方案

技术编号:16042700 阅读:115 留言:0更新日期:2017-08-20 01:06
本发明专利技术公开了一种数据包传输方法,所述方法包括:代理程序通过监听端口接收请求数据包,为所述请求数据包设置标签后,发送所述带标签的请求数据包;本地系统接收所述代理程序和所述应用程序发出的请求数据包,匹配所述请求数据包中的标签,若匹配成功,则直接转发所述请求数据包,若匹配失败,则重定向所述请求数据包至所述代理程序监听端口;对代理程序发送出去的数据包进行标签设置,以使得本地系统可根据标签区分来自应用和代理的请求数据包,并进行相应操作,避免数据包在本地的死循环。本发明专利技术还公开了一种数据包传输系统。

【技术实现步骤摘要】
一种数据包传输方法和系统
本专利技术涉及网络
,尤其涉及一种数据包传输方法和系统。
技术介绍
随着互联网技术的不断发展,各种应用程序如雨后春笋般密集涌现。为了提供更好的用户体验,针对应用程序的网络加速服务也应运而生,以Android应用代理加速为例,可以分为主动代理和被动代理两种方式,主动代理是应用程序在发起网络请求时主动进行代理加速,被动代理,又称本地代理,是在系统层面通过某些手段将特定的请求数据包拦截至本地的加速服务程序,由本地代理程序做相应的加速控制后再将数据包重新发出去。现有的被动代理中,主要是通过添加重定向规则,将应用数据包重定向到代理程序来实现,但在某些实际应用中,发现仅仅依靠重定向规则可能无法区分待加速应用与经代理程序处理后发出的数据包,代理程序发出的数据包将会再次被重定向至代理程序,造成数据包在系统内死循环。
技术实现思路
为了解决现有技术的问题,本专利技术实施例提供了一种数据包传输方法和系统。所述技术方案如下:一方面,一种数据包传输方法,所述方法包括:代理程序通过监听端口接收请求数据包,为所述请求数据包设置标签后,发送所述带标签的请求数据包;本地系统接收所述代理程序和所述应用程序发出的请求数据包,匹配所述请求数据包中的标签,若匹配成功,则直接转发所述请求数据包,若匹配失败,则重定向所述请求数据包至所述代理程序监听端口。进一步的,所述代理程序在为所述请求数据包设置标签的同时,为所述标签添加掩码。进一步的,所述掩码的取值范围为0x8000000~0xfff00000。进一步的,所述本地系统版本为Android5.0及其以上版本。进一步的,在所述代理程序发送所述带标签的请求数据包之前,所述代理程序判断所述请求数据包是否需要进行加速,若需要则修改所述请求数据包的目的端口和目的IP地址至加速服务器。进一步的,判断所述请求数据包是否需要进行加速的方法包含:先白名单校验,若校验成功则所述请求数据包需要加速;若校验失败,则判断所述请求数据包是否为HTTP请求的数据包,如果是HTTP,则根据URL及预设规则判断是否需要加速。进一步的,所述代理程序和所述应用程序运行在所述本地系统上。进一步的,所述本地系统内核为Linux内核。另一方面,一种数据包传输系统,所述系统包括终端设备、加速服务器和源站,所述终端设备的本地系统上运行有应用程序、代理程序;其中,所述代理程序通过监听端口接收请求数据包,为所述请求数据包设置标签后,发送所述带标签的请求数据包;本地系统接收所述代理程序和所述应用程序发出的请求数据包,匹配所述请求数据包中的标签,若匹配成功,则直接转发所述请求数据包至所述加速服务器或所述源站,若匹配失败,则重定向所述请求数据包至所述代理程序监听端口。进一步的,所述代理程序在为所述请求数据包设置标签的同时,为所述标签添加掩码。进一步的,所述掩码的取值范围为0x8000000~0xfff00000。进一步的,所述本地系统版本为Android5.0及其以上版本。进一步的,在所述代理程序包含加速处理单元,在所述代理程序发送所述带标签的请求数据包之前,所述代理程序的加速处理单元,判断所述请求数据包是否需要进行加速,若需要则修改所述请求数据包的目的端口和目的IP地址至加速服务器。进一步的,所述代理程序的加速处理单元判断所述请求数据包是否需要进行加速的方法包含:先白名单校验,若校验成功则所述请求数据包需要加速;若校验失败,则判断所述请求数据包是否为HTTP请求的数据包,如果是HTTP,则根据URL及预设规则判断是否需要加速。进一步的,所述本地系统内核为Linux内核。本专利技术实施例提供的技术方案带来的有益效果是:本专利技术实施例的数据包传输方法,代理程序通过监听端口接收请求数据包,为所述请求数据包设置标签后,发送所述带标签的请求数据包;本地系统接收所述代理程序和所述应用程序发出的请求数据包,匹配所述请求数据包中的标签,若匹配成功,则直接转发所述请求数据包,若匹配失败,则重定向所述请求数据包至所述代理程序监听端口;对代理程序发送出去的数据包进行标签设置,以使得本地系统可根据标签区分来自应用和代理的请求数据包,并进行相应操作,避免数据包在本地的死循环。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例一提供的一种数据包传输方法的流程图;图2是本专利技术实施例二提供的一种数据包传输方法的流程图;图3是本专利技术实施例三提供的一种数据包传输系统结构图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。第一实施例参见图1所示,本专利技术第一实施例提供一种数据包传输方法,该数据包传输方法中涉及代理程序、应用程序及本地系统,其中应用程序是为用户提供具体业务服务的程序,例如浏览器、音乐视频服务、及其他功能性服务程序,用户通过对该些应用程序的操作来获取相应的服务;代理程序对应用程序发出的请求数据包进行处理,以使得享受网络加速服务的应用程序所发出的请求数据包能被转发到加速服务器;应用程序及代理程序均运行在本地系统上,本专利技术的实施例中,本地系统的内核为Linux内核,可以是Android系统,本实施例就是以Android系统为例。本实施例中的数据包传输方法包括步骤A101~A103和步骤S101~S102,详述如下。步骤A101:代理程序通过监听端口接收请求数据包。如上所述,代理程序需要对应用程序发出的请求数据包进行处理,故在代理程序初始化时,设置专门的监听端口,用于接收应用程序的请求数据包,例如,代理程序的监听端口设置为8123。步骤A102:代理程序为所述请求数据包设置标签。具体的,代理程序接收到请求数据包后通过创建代理socket,并使用Linux的setsockopt()函数对socket设置标签,例如mark=0x12345678。步骤A103:代理程序发送带标签的请求数据包。代理程序发送出的带标签的请求数据包将被本地系统接收。步骤S101:本地系统接收所述代理程序和所述应用程序发出的请求数据包。本专利技术的实施例中,本地系统为Android系统,而Android系统的内核为Linux内核,众所周知,Netfilter是Linux内核中的一个软件框架,用于管理网络数据包。iptables是基于Netfilter基本架构实现的一个可扩展的的用户层数据包管理工具,大部分Linux系统都自带iptables模块,并通过它对网络数据包进行过滤、拦截、重定向等操作,从而实现系统防火墙等功能,本专利技术的实施例中,也是通过iptables对代理程序和应用程序发出的请求数据包进行接收。步骤S102:匹配所述请求数据包中的标签,若匹配成功,则直接转发所述请求数据包,若匹配失败,则重定向所述请求数据包至所述代理程序监听端口。同样的,本地系统通过设置iptablesmark标签匹配规则和重定向规则,对数据包中的标签进行匹配,若匹配成功,根据设置规则则直接转发该请求数据包,若匹配失败,则重定向该请求数据包至代理本文档来自技高网...
一种数据包传输方法和系统

【技术保护点】
一种数据包传输方法,其特征在于,所述方法包括:代理程序通过监听端口接收请求数据包,为所述请求数据包设置标签后,发送所述带标签的请求数据包;本地系统接收所述代理程序和所述应用程序发出的请求数据包,匹配所述请求数据包中的标签,若匹配成功,则直接转发所述请求数据包,若匹配失败,则重定向所述请求数据包至所述代理程序监听端口。

【技术特征摘要】
1.一种数据包传输方法,其特征在于,所述方法包括:代理程序通过监听端口接收请求数据包,为所述请求数据包设置标签后,发送所述带标签的请求数据包;本地系统接收所述代理程序和所述应用程序发出的请求数据包,匹配所述请求数据包中的标签,若匹配成功,则直接转发所述请求数据包,若匹配失败,则重定向所述请求数据包至所述代理程序监听端口。2.根据权利要求1所述的数据包传输方法,其特征在于,所述代理程序在为所述请求数据包设置标签的同时,为所述标签添加掩码。3.根据权利要求2所述的数据包传输方法,其特征在于,所述掩码的取值范围为0x8000000~0xfff00000。4.根据权利要求2所述的数据包传输方法,其特征在于,所述本地系统版本为Android5.0及其以上版本。5.根据权利要求1所述的数据包传输方法,其特征在于,在所述代理程序发送所述带标签的请求数据包之前,所述代理程序判断所述请求数据包是否需要进行加速,若需要则修改所述请求数据包的目的端口和目的IP地址至加速服务器。6.根据权利要求5所述的数据包传输方法,其特征在于,判断所述请求数据包是否需要进行加速的方法包含:先白名单校验,若校验成功则判断所述请求数据包需要加速;若校验失败,则判断所述请求数据包是否为HTTP请求的数据包,如果是HTTP,则根据URL及预设规则判断是否需要加速。7.根据权利要求1所述的数据包传输方法,其特征在于,所述代理程序和所述应用程序运行在所述本地系统上。8.根据权利要求1所述的数据包传输方法,其特征在于,所述本地系统内核为Linux内核。9.一种数据包传输系统,其特征在于,所述系统包括终...

【专利技术属性】
技术研发人员:康若鹏范自道
申请(专利权)人:网宿科技股份有限公司
类型:发明
国别省市:上海,31

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

1