一种数据代理方法与系统的制作方法
【技术领域】
[0001 ]本发明涉及数据处理领域,特别是涉及一种数据代理方法与系统。
【背景技术】
[0002]数据代理技术是指一种特殊的网络服务,其允许一个网络终端(一般为客户端)通过该服务与另一个网络终端(一般为服务器)进行非直接的连接。使用代理技术可以实现提高访问速度、控制内部资源访问、过滤内容等。
[0003]现有的针对android移动终端的数据代理技术都是基于某一特定应用或特定协议进行的数据代理,无法识别所有应用、代理终端所有数据。
[0004]另外,市面上使用的是一种基于虚拟专用网络(Virtual Private Network)技术的方式,可以获取终端所有流量进行转发,但是虚拟专用网络主要侧重网络的安全性,会在传输过程中进行大量的数据封装、加密、解压等,严重影响数据的代理效率及并发支持。此夕卜,传统的虚拟专用网络设备无法识别数据所属的应用信息,从而无法根据用户的使用行为对用户访问进行精确的实时监控与控制。
【发明内容】
[0005]为了解决现有技术存在的不足,本发明的目的在于提供一种数据代理方法与系统,实现保证高效率、高并发和高实时性的同时,在不需要特殊权限的情况将终端的所有流量进行代理转发的功能,同时根据用户的访问行为进行相应的实时控制。
[0006]为实现上述目的,本发明提供的的数据代理方法,包括以下步骤:
[0007](1)移动终端发送连接请求,并根据配置信息,创建流量隧道;
[0008](2)获取用户上行流量,对上行数据进行协议封装,并上传至代理服务器;
[0009 ] (3)代理服务器对所述上传数据进行解封装,获取原数据,并进行转发;
[0010](4)获取下行数据,对数据进行协议封装后,发送回对应的移动终端;
[0011](5)移动终端接收下行数据,对数据进行解封装,并写入流量隧道,由流量隧道返回给相应的应用程序。
[0012]进一步地,所述步骤(1)进一步包括以下步骤:移动终端将账号密码信息发送到代理服务器进行连接请求;代理服务端根据账号密码信息对移动终端进行验证;验证通过后,代理服务端移动终端分配配置信息,并将所述配置信息返回给移动终端;移动终端使用配置信息进行流量隧道的创建。
[0013]进一步地,所述配置信息,包括虚拟IP、MTU、DNS信息。
[0014]进一步地,所述步骤(2)进一步包括:移动终端从流量隧道中获取用户的上行数据,对上行数据进行协议封装;对上行数据进行应用识别;将封装后的上行数据与其所属应用信息同时上传至代理服务器。
[0015]更进一步地,所述步骤(3)进一步包括:服务端接收上行数据,对数据进行解封装,获取原数据;通过原数据的目的IP进行转发。
[0016]为实现上述目的,本发明还提出了一种数据代理系统,包括:移动终端、代理服务器、外部应用服务器,以及内部资源服务器,其中,
[0017]所述移动终端,其通过外部网络与所述代理服务器进行通信;所述代理服务器通过外部网络与所述外部应用服务器进行通信;所述代理服务器与所述内部资源服务器通过内网进行通?目;
[0018]所述移动终端经过所述代理服务器对所述外部应用服务器、所述内部资源服务器进行访问。
[0019]进一步地,所述移动终端,包括,隧道控制模块、终端数据收发模块、数据应用信息识别与控制模块,以及终端协议处理模块,其中,
[0020]所述隧道控制模块,其建立流量隧道并维护与所述代理服务器的连接;
[0021 ]所述终端数据收发模块,其从所述流量隧道中读取数据,发往所述代理服务器或从所述代理服务器接收数据写入所述流量隧道;
[0022]所述数据应用信息识别与控制模块,其识别数据所属应用,同时对数据进行策略控制;
[0023]所述终端协议处理模块,其用于封装或解析数据。
[0024]进一步地,所述代理服务器,包括连接控制模块、服务器数据转发模块、服务器协议处理模块,以及数据控制模块,其中,
[0025]所述连接控制模块,其维护和建立与所述移动终端的连接,为所述移动终端分配配置信息;
[0026]所述服务器数据转发模块,其向所述外部应用服务器转发所述移动终端数据;
[0027]所述服务器协议处理模块,其用于封装、解析数据;
[0028]所述数据控制模块,其用于对数据进行策略控制。
[0029]更进一步地,所述对数据进行策略控制,是对用户访问总流量或针对某一款应用进行流量统计、速度限制。
[0030]本发明的数据代理方法和系统,使系统具有代理用户所有应用数据并且对数据进行区分应用的策略控制的能力,通过简单协议进行数据传输,既保证了系统的处理效率,又保证了系统对多用户、高并发高以及高实时性的支持。
[0031]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
【附图说明】
[0032]附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
[0033]图1为根据本发明的数据代理系统架构图;
[0034]图2为根据本发明的移动终端原理框图;
[0035]图3为根据本发明的代理服务器原理框图;
[0036]图4为根据本发明的数据代理方法工作流程图;
[0037]图5为根据本发明的移动终端工作流程图;
[0038]图6为根据本发明的代理服务器工作流程图。
【具体实施方式】
[0039]以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0040]图1为根据本发明的数据代理系统架构图,如图1所示,本发明的数据代理系统,包括终端101、代理服务器102、外部应用服务器103以及内部资源服务器104,其中,
[0041]移动终端101与代理服务器102通过外部网络进行通信。代理服务器102与内部资源服务器104通过内网进行通信。代理服务器102与外部应用服务器103通过外网进行通信。移动终端101对外部应用服务器103以及内部资源服务器104的访问,都先经过代理服务器102进行转发。
[0042]移动终端101可以是智能手机、平板电脑等。代理服务器102可以从外部网络直接访问,代理服务器102可以接收移动终端101的连接,对数据进行流量转发。内部资源服务器104可为企业内部办公网络环境。外部应用服务器103为移动应用服务器,可以是微信、QQ、百度等应用的服务器端。
[0043]图2为根据本发明的移动终端原理框图,如图2所示,本发明的移动终端101,包括,隧道控制模块201、终端数据收发模块202、数据应用信息识别与控制模块203,以及终端协议处理模块204,其中,
[0044]隧道控制模块201,其用于隧道的建立、连接的维护;隧道控制模块201通过代理服务端102发送的配置信息,调用android平台对外提供的VPN接口进行流量隧道的建立。上述配置信息,包括代理服务端102为移动终端101分配的虚拟IP、MTU、DNS等信息。
[0045]终端数据收发模块202,用于从隧道中读取数据,发往代理服务器102或从代理服务器102接收数据写入隧道。
[0046]数据应用信息识别与控制模块203,用于识别数据所属应用,同时对数据进行策略控制。数据应用信息识别与控制模块203从流量隧道中获取所有的用户对外访问的上行数据,数据类型为网络层数据,可以根据数据的端口等信息对数据进行应用识别。数据应用信息识别与控制模块203识别出数据所属应用,同时对数据进行策略控制。获取原始下行数据后,数据应用信息识别与控制模块203将数据写入流量隧道,并通过流量隧道分发至本地终端的各应用程序。
[0047]终端协议处理模块204,用于封装、解析数据。终端协议处理模块204获取上行数据后对数据进行封装;当发现有代理服务端102发送的下行数据时,终端协议处理模块204根据协议对下行数据进行解封装。
[0048]图3为根据本发明的代理服务器原理框图,如图3所示,本发明的代理服务器102,包括,连接控制模块301、服务器数据转发模块302、服务器协议处理模块303,以及数据控制模块304,其中,
[0049]连接控制模块301,用于维护和建立与移动终端101的连接,分配相应的移动终端配置信息。连接控制模块301接收到移动终端101连接请求之后,对移动终端101的用户名密码等信息进行验证。验证成功后,为移动终端101分配虚拟IP、MTU、DNS等配置信息。
[0050]服务器数据转发模块302,用于向上游转发所有移动终端数据,根据服务器协议处理模块303解析后得到的原数据,通过原数据的源IP进行NAT转发。
[0051]服务器协议处理模块303,读取上行数据,并根据数据长度,数据类型,应用信息等进行数据解析;收到外部应用服务器103的下行数据后,服务器协议处理模块303对该下行数据进行协议封装,并根据下行数据的目的IP,将数据下发到相应的移动终端101。
[0052]数据控制模块304,对用户的行为数据进行监控统计,包括应用类型、目的IP、访问端口、使用流量等,并根据这些信息,对用户进行流量分析、流量限制等策略控制。
[0053]图4为根据本发明的数据代理方法工作流程图,下面将参考图4,对本发明的数据代理方法进行详细描述。
[0054]首先,在步骤401,移动终端101向代理服务端102发送连接请求。移动终端101根据配置好的服务器
IP和端口与代理服务端102建立TCP连接,连接成功后,移动终端101将账号密码等用户信息进行MD5加密后,发送给代理服务端102。
[0055]在步骤402,代理服务端102对用户信息进行校验成功后,为移动终端101分配配置信息,并将配置信息返回移动终端101。
[0056]在步骤403,移动终端101使用上述配置信息进行流量隧道的创建。
[0057]在步骤404,移动终端101建立流量隧道成功后,首先从流量隧道中获取用户的上行数据,然后对上行数据进行协议封装,避免复杂的加密、压缩等操作,用以保证数据的传输效率以及实时性;移动终端101对用户数据进行应用识别,并将数据的所属应用信息随数据同时上传至代理服务端102。
[0058]在步骤405,代理服务端102接收到移动终端101发送的上行数据后,代理服务端102会接收到外部应用服务器返回的下行数据;收到下行数据后,代理服务端102同样对数据进行协议封装,根据下行数据的目的IP将数据原路发送回对应的移动终端101;移动终端101在接收到下行数据之后,对数据进行解封装,然后将写入流量隧道,并由流量隧道返回给相应的应用程序。
[0059]其中,在上述代理服务端102和移动终端101处理数据的过程中,根据用户的访问行为以及数据所属的应用信息选择相应策略进行控制。
[0060]图5为根据本发明的移动终端工作流程图,下面将参考图5,对本发明的移动终端工作流程进行详细描述。
[0061]首先,在步骤501,移动终端101通过终端数据收发模块202向代理服务端102发送连接请求。移动终端101根据配置好的服务器IP和端口与代理服务端102建立TCP连接,连接成功后,移动终端101将账号密码等用户信息进行MD5加密后,发送给代理服务端102。
[0062]在步骤502,移动终端101通过终端数据收发模块202接收代理服务端102发送的配置信息;隧道控制模块201通过配置信息,调用android平台对外提供的VPN接口进行流量隧道的建立。上述代理服务端102发送的配置信息,包括代理服务端102为移动终端101分配的虚拟IP、MTU、DNS等信息。
[0063]在步骤503,隧道控制模块201建立流量隧道成功后,数据应用信息识别与控制模块203从流量隧道中获取所有的用户对外访问的上行数据,数据类型为网络层数据,可以根据数据的端口等信息对数据进行应用识别。数据应用信息识别与控制模块203识别出数据所属应用,同时对数据进行策略控制。
[0064]在步骤504,终端协议处理模块204获取上行数据后对数据进行封装,封装的协议仅包括数据长度、服务端IP、所属应用信息等少量信息,封装完成后将数据实时透明的发往代理服务端102以提尚效率。
[0065]在步骤505,数据应用信息识别与控制模块203在发送和接收的同时可以对数据进行实时监控与控制,具体的可以对用户访问总流量或者针对某一款应用进行流量统计、速度限制等策略,如微信、百度等。
[0066]在步骤506,移动终端101实时监测代理服务端102的下行数据,当发现有下行数据时,移动终端101通过终端数据收发模块202接收代理服务端102发送的数据,终端协议处理模块204根据协议解封装。获取原始下行数据后,数据应用信息识别与控制模块203将数据写入隧道,并通过隧道分发至本地终端的各应用程序。
[0067]图6为根据本发明的代理服务器工作流程图,下面将参考图6,对本发明的代理服务器工作流程进行详细描述。
[0068]首先,在步骤601,代理服务端102接收移动终端101的连接请求,对用户进行验证,为用户分配资源。
[0069]代理服务端102接收到移动终端101连接请求之后,连接控制模块301对移动终端101的用户名密码等信息进行验证;验证成功后,为移动终端101分配虚拟IP、MTU、DNS等配置信息。并在代理服务端102上为移动终端101分配句柄、内存等资源用以维护连接。
[0070]在步骤602,获取上行数据,解析数据。代理服务端102接收到移动终端101发送的上行数据,其服务器协议处理模块303读取数据后,根据数据长度,数据类型,应用信息等进行数据解析。
[0071]在步骤603,代理服务端102的服务器数据转发模块302根据服务器协议处理模块303解析后得到的原数据,通过原数据的源IP进行NAT转发。
[0072]在步骤604,代理服务端102的数据控制模块304,对用户的行为数据进行监控统计,包括应用类型、目的IP、访问端口、使用流量等,并根据这些信息,对用户进行流量分析、流量限制等策略控制。
[0073]在步骤605,代理服务端102收到外部应用服务器103的下行数据后,服务器协议处理模块303对该下行数据进行协议封装,并根据下行数据的目的IP,将数据下发到相应的移动终端101。
[0074]本发明技术方案的优点主要体现在:通过获取移动终端的全部用户数据并解析数据应用信息,从而使系统具有代理用户所有应用数据并且对数据进行区分应用的策略控制的能力。移动终端与代理服务器之间通过简单协议进行数据传输,保证了系统的处理效率。代理服务器使用异步高并发架构进行数据处理和转发,保证了系统对多用户、高并发高以及高实时性的支持。
[0075]本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种数据代理方法,其特征在于,包括以下步骤: (1)移动终端发送连接请求,并根据配置信息,创建流量隧道; (2)获取用户上行流量,对上行数据进行协议封装,并上传至代理服务器; (3 )代理服务器对所述上传数据进行解封装,获取原数据,并进行转发; (4)获取下行数据,对数据进行协议封装后,发送回对应的移动终端; (5)移动终端接收下行数据,对数据进行解封装,并写入流量隧道,由流量隧道返回给相应的应用程序。2.根据权利要求1所述的数据代理方法,其特征在于,所述步骤(1)进一步包括以下步骤:移动终端将账号密码信息发送到代理服务器进行连接请求;代理服务端根据账号密码信息对移动终端进行验证;验证通过后,代理服务端移动终端分配配置信息,并将所述配置信息返回给移动终端;移动终端使用配置信息进行流量隧道的创建。3.根据权利要求1所述的数据代理方法,其特征在于,所述配置信息,包括虚拟IP、MTU、DNS信息。4.根据权利要求1所述的数据代理方法,其特征在于,所述步骤(2)进一步包括:移动终端从流量隧道中获取用户的上行数据,对上行数据进行协议封装;对上行数据进行应用识另IJ;将封装后的上行数据与其所属应用信息同时上传至代理服务器。5.根据权利要求1所述的数据代理方法,其特征在于,所述步骤(3)进一步包括:服务端接收上行数据,对数据进行解封装,获取原数据;通过原数据的目的IP进行转发。6.—种数据代理系统,包括移动终端、代理服务器、外部应用服务器,以及内部资源服务器,其特征在于, 所述移动终端,其通过外部网络与所述代理服务器进行通信;所述代理服务器通过外部网络与所述外部应用服务器进行通信;所述代理服务器与所述内部资源服务器通过内网进行通?目; 所述移动终端经过所述代理服务器对所述外部应用服务器、所述内部资源服务器进行访问。7.根据权利要求6所述的数据代理系统,其特征在于,所述移动终端,包括,隧道控制模块、终端数据收发模块、数据应用信息识别与控制模块,以及终端协议处理模块,其中, 所述隧道控制模块,其建立流量隧道并维护与所述代理服务器的连接; 所述终端数据收发模块,其从所述流量隧道中读取数据,发往所述代理服务器或从所述代理服务器接收数据写入所述流量隧道; 所述数据应用信息识别与控制模块,其识别数据所属应用,同时对数据进行策略控制; 所述终端协议处理模块,其用于封装或解析数据。8.根据权利要求6所述的数据代理系统,其特征在于,所述代理服务器,包括连接控制模块、服务器数据转发模块、服务器协议处理模块,以及数据控制模块,其中, 所述连接控制模块,其维护和建立与所述移动终端的连接,为所述移动终端分配配置信息; 所述服务器数据转发模块,其向所述外部应用服务器转发所述移动终端数据; 所述服务器协议处理模块,其用于封装、解析数据; 所述数据控制模块,其用于对数据进行策略控制。9.根据权利要求7或8所述的数据代理系统,其特征在于,所述对数据进行策略控制,是对用户访问总流量或针对某一款应用进行流量统计、速度限制。
【专利摘要】一种数据代理方法与系统,该方法包括:移动终端发送连接请求,并根据配置信息,创建流量隧道;获取用户上行流量,对上行数据进行协议封装,并上传至代理服务器;代理服务器对所述上传数据进行解封装,获取原数据,并进行转发;获取下行数据,对数据进行协议封装后,发送回对应的移动终端;移动终端接收下行数据,对数据进行解封装,并写入流量隧道,由流量隧道返回给相应的应用程序。本发明的数据代理方法与系统,使系统具有代理用户所有应用数据并且对数据进行区分应用的策略控制的能力,通过简单协议进行数据传输,保证了系统的处理效率,并保证了系统对多用户、高并发以及高实时性的支持。
【IPC分类】H04W28/10, H04W76/02, H04L29/08
【公开号】CN105491169
【申请号】CN201610052300
【发明人】贾鹏, 宋继勐, 田光辉, 王强, 郭超
【申请人】苏州蜗牛数字科技股份有限公司
【公开日】2016年4月13日
【申请日】2016年1月26日