首页> 中国专利> 一种透明代理实现方法、装置以及客户端

一种透明代理实现方法、装置以及客户端

摘要

一种透明代理方法、装置、客户端以及终端,包括:分层服务提供层(LSP)将第一应用层数据发送地址修改为中转回路层地址,并将所述应用层数据发送至所述中转回路层;中转回路层接收来自LSP层的第一应用层数据,并按照预设的代理协议将所述第一应用层数据修改为第二应用层数据;中转回路层将第二应用层数据发送至基础服务提供层(BSP);所述基础服务提供层(BSP)根据所述第二应用层数据所包含的代理协议信息将所述第二应用层数据推送至TCP/IP协议栈。基于本发明实施例提供的技术方案能够将LSP层与应用层数据修改功能解耦,降低了LSP层的复杂程度,从而避免了在修改应用层数据时导致的LSP冲突,或者由于遗漏模型导致的上层应用程序无法执行。

著录项

  • 公开/公告号CN107070934A

    专利类型发明专利

  • 公开/公告日2017-08-18

    原文格式PDF

  • 申请/专利权人 腾讯科技(深圳)有限公司;

    申请/专利号CN201710282184.9

  • 发明设计人 谢磊;陈寿功;

    申请日2017-04-26

  • 分类号

  • 代理机构广州三环专利商标代理有限公司;

  • 代理人郝传鑫

  • 地址 518000 广东省深圳市南山区高新区科技中一路腾讯大厦35层

  • 入库时间 2023-06-19 03:07:54

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-08-28

    授权

    授权

  • 2017-09-12

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20170426

    实质审查的生效

  • 2017-08-18

    公开

    公开

说明书

技术领域

本发明属于计算机通信网络技术领域,具体涉及一种透明代理实现方法、装置以及客户端。

背景技术

Winsock作为应用程序的Windows的网络套接字工具,可以由称为“分层服务提供商(LSP,Layered Service Provider)”的机制进行扩展。Winsock LSP可用于非常广泛的实用用途,包括Internet家长控制(parental control)、Web内容筛选等。LSP就是TCP/IP等协议的接口,LSP可以方便程序员们编写监视系统网络通讯情况的Sniffer,也可以是现在常见的用于浏览器劫持。

在视窗系统(Windows)中,删除不正确的LSP(也称为“buggy”)可能会导致注册表中的Winsock目录损坏,潜在地导致所有网络连接的丢失。另外,LSP是指一个FEC在MPLS网络中经过的路径称为标签交换路径LSP(Label Switched Path),是从入口到出口的一个单向路径。

发明内容

为了解决现有技术中存在的技术问题,本发明实施例提供了一种网络代理实现方法、装置以及客户端,技术方案如下:

第一方面,提供一种透明代理实现方法,所述方法包括:分层服务提供层(LSP)将第一应用层数据发送地址修改为中转回路层地址,并将所述应用层数据发送至所述中转回路层;中转回路层接收来自LSP层的第一应用层数据,并按照预设的代理协议将所述第一应用层数据修改为第二应用层数据;中转回路层将第二应用层数据发送至基础服务提供层(BSP);所述基础服务提供层(BSP)根据所述第二应用层数据所包含的代理协议信息将所述第二应用层数据推送至TCP/IP协议栈。

第二方面,提供一种透明代理装置,所述方法装置组成如下:分层服务提供层(LSP),用于将第一应用层数据发送地址修改为中转回路层地址,并将所述应用层数据发送至所述中转回路层;中转回路层,用于接收来自LSP层的第一应用层数据,并按照预设的代理协议将所述第一应用层数据修改为第二应用层数据;并将第二应用层数据发送至基础服务提供层(BSP);基础服务提供层(BSP),用于根据所述第二应用层数据所包含的代理协议信息将所述第二应用层数据推送至TCP/IP协议栈。

第三方面,提供一种客户端,包含前述的装置。

第四方面,提供一种终端,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-7所述的方法步骤。

本发明能够达到的有益效果:基于本发明实施例提供的技术方案能够将LSP层与应用层数据修改功能解耦,降低了LSP层的复杂程度,从而避免了在修改应用层数据时导致的LSP冲突,或者由于遗漏模型导致的上层应用程序无法执行。

附图说明

下面结合附图对本发明的具体实施方式作进一步详细的说明;

图1是本发明实施例提供的透明代理原理示意图。

图2是本发明实施例提供的透明代理层构架示意图。

图3是本发明实施例提供的透明代理原理示意图。

图4是本发明实施例提供的透明代理层构架示意图。

图5是本发明实施例提供的透明代理原理示意图。

图6是本发明实施例提供的透明代理方法步骤流程图。

图7(a)-(c)是本发明实施例提供的透明代理方法步骤流程图。

图8是本发明实施例提供的透明代理装置结构框图。

图9是本发明实施例提供的透明代理装置结构框图。

图10是本发明实施例提供的终端结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

如图1所示,透明代理是指客户端根本不需要知道有代理服务器的存在,它会改编终端发送的报文(request fields),并会传送真实IP。加密的透明代理则是属于匿名代理,意思是不用设置使用代理了。透明代理实践的例子就是时下很多公司使用的行为管理软件。

用户设备A和用户设备B并不知道行为管理设备充当透明代理行为,当用户设备A或用户设备B向服务器A或服务器B提交请求的时候,透明代理设备根据自身策略拦截并修改用户设备A或用户设备B的报文,并作为实际的请求方,向服务器A或服务器B发送请求,当接收信息回传,透明代理再根据自身的设置把允许的报文发回至用户设备A或用户设备B;如果透明代理设置不允许访问服务器B,那么用户设备A或者用户设备B就不会得到服务器B的数据。

如图2、图3所示,在一个实施例中,实现透明代理的层构架包括:上层应用程序、Windows Sockets API、LSP接口层、BSP、TCP/IP协议栈。上层应用程序,通过Windows Sockets程序的API接口接入到应用层数据。应用层数据通过支持Internet和网络应用程序的动态链接库接入到分层服务提供商层(LSP)。在一个实施例中,动态链接库为系统连接库中的WS2_32.dll,WS2_32.dll是Windows Sockets应用程序接口,用于支持Internet和网络应用程序。程序运行时会自动调用ws2_32.dll文件,ws2_32.dll是个动态链接库文件位于系统文件夹中。Windows在查找动态链接库文件时会先在应用程序当前目录搜索,如果没有找到然后才会搜索Windows所在目录;如果还是没有会搜索system32和system目录。在LSP层,涉及到Select模型、EventSelect模型、AsyncSocket模型、WSAAsyncSelect模型、I/O Completion模型的对接实现。之后,LSP层将应用层数据发送至基础服务提供层(BSP),BSP层则将数据发送至TCP/IP协议堆栈,以按照LSP层写入的头文件依据TCP/IP协议将数据发送至远端设备。

Select模型的实现原理是:按照一定周期,而复始地去检查是否有数据输入,如果有数据那么便接收/发送数据。

WSAAsyncSelect模型是Windows下最简单易用的一种Socket I/O模型。使用这种模型时,Windows会把网络事件以消息的形势通知应用程序。首先定义一个消息标示常量:然后就可以使用WSAAsyncSelect了:应用程序可以对收到WM_SOCKET消息进行分析,判断是哪一个socket产生了网络事件以及事件类型:Msg的WParam是产生了网络事件的socket句柄,LParam则包含了事件类型。

WSAEventSelect模型则是在大量用户使用的情况下,为网络消息添加一个附加装置,用于监视网络事件,在发生某些网络事件时,发出提醒消息,该模型要使用线程:procedure TListenThread.Execute。

在上述过程中,LSP层同时进行代理和改写应用层数据,由此实现对于LSP的透明代理。然而,要实现一个支持任何应程序的LSP非常复杂,最容易出现的问题是与其他厂商的LSP产生冲突。并且,为了在LSP层实现代理协议,就需要在应用层数据上增加包头实现透明代理,一旦需要改变应用层数据,就必须实现所有windows网络模型,任何一个模型漏掉都可能引起上层应用程序无法工作,这也导致了维护成本很高。

如图4、5所示,在另一个实施例中,在LSP层与BSP层之间,引入一个负责代理数据传输的中转回路层,利用中转回路层将代理协议和LSP层解耦,无需在LSP层实现代理协议,从而大大简化LSP的复杂度。具体地,透明代理的层构架包括:上层应用程序、Windows Sockets API、LSP接口层、BSP、TCP/IP协议栈、中转回路层、BSP、TCP/IP协议栈。上层应用程序,通过Windows Sockets程序的API接口接入到应用层数据。应用层数据通过支持Internet和网络应用程序的动态链接库接入到分层服务提供商层(LSP)。在一个实施例中,动态链接库为系统连接库中的WS2_32.dll,WS2_32.dll是Windows Sockets应用程序接口,用于支持Internet和网络应用程序。程序运行时会自动调用ws2_32.dll文件,ws2_32.dll是个动态链接库文件位于系统文件夹中。Windows在查找动态链接库文件时会先在应用程序当前目录搜索,如果没有找到然后才会搜索Windows所在目录;如果还是没有会搜索system32和system目录。在LSP层,LSP仅负责修改目标传输地址,而不负责修改应用层数据。那么,LSP层与应用层数据修改功能解耦,这大大降低了LSP层的复杂程度,从而避免了在修改应用层数据时导致的LSP冲突,或者由于遗漏模型导致的上层应用程序无法执行。在LSP层会将应用层数据的发送地址修改为中转回路层的地址,这样,应用层数据被首先发送至中转回路层,并在中转回路层进行应用层数据修改,比较典型的修改是在应用层数据中增加TCP/IP传输协议的头文件。

在上述过程中,通过在LSP层与BSP层之间设置中转回路层,LSP层负责修改目标传输地址,中转回路层负责应用层数据的修改,成功地将应用层数据修改这一个功能与LSP层解耦,从而避免了由于应用层数据修改与LSP层的网络模型适应问题,也可以避免不同LSP冲突的问题,这样可以极大地降低维护成本。

如图6所示,本发明的一个实施例提供一种透明代理方法,包括:

S610,分层服务提供层(LSP)将第一应用层数据发送地址修改为中转回路层地址,并将所述应用层数据发送至所述中转回路层。

根据在图2-3、图4-5所对应的实施例中所分析的,在图2、3所示的代理服务构架中,LSP层会根据Select模型、EventSelect模型、AsyncSocket模型、I/O Completion模型等为应用层数据添加代理包头。但是,图2、3的模型导致了LSP层的高复杂度,不同提供商之间的LSP还可能存在冲突,如果在应用层数据上增加包头实现透明代理,一旦需要改变应用层数据,就必须实现所有windows网络模型,任何一个模型遗漏都可能引起上层应用程序无法工作。因此,在图4、5所示的代理服务构架中,对图2、3的实施例进行进一步地改进,在LSP层的上层设置一个中转回路层,负责代理数据传输,中转回路层可以降低LSP层的复杂度。具体地,中转回路层设置在LSP层与BSP层之间,负责代理数据的传输、修改,LSP层只负责修改目标地址,而不负责修改应用层数据,据此,可以将LSP层与应用层数据修改功能解耦,这大大降低了LSP层的复杂程度。当然,与应用层数据修改无相关性、且不会提高LSP处理负责度的其它功能,仍然可以由LSP层执行。

在上述过程中,第一应用层数据是LSP层从上层应用程序获取的,通过系统动态连接库调用的,包含了上层应用程序交互信息的原始数据。

在本步骤中,LSP层只需将应用层数据的发送地址修改为中转回路层地址。当然,更具体地,中转层是设置在本地回路中的本地回路中转层。

S620,中转回路层接收来自LSP层的第一应用层数据,并按照预设的代理协议将所述第一应用层数据修改为第二应用层数据。

如前所述,第一应用层数据是LSP层从上层应用程序获取的,通过系统动态连接库调用的,包含了上层应用程序交互信息的原始数据。LSP层将第一应用层数据发送到中转回路层后,中转回路层则按照预先设置的代理协议规则对应用层数据进行修改,比较典型的一种修改是为应用层数据增加头文件,头文件可以包含了TCP/IP传输协议所需的IP地址、IP地址转换函数、域名转换函数、数据结构定义函数等。当然,修改也不局限于增加头文件,可以是用于TCP/IP传输的单个信息,修改也可以是对于应用层内容的修改、拆分、重组、合并等,修改后的第一应用层数据称为第二应用层函数。

按照解耦后的功能划分,LSP层只负责简单的网络调用转发,本地回路中转层工作在应用层级别,负责代理协议实现,可是视为公共底层和逻辑完全解耦独立,大大简化了LSP层的复杂度。中转回路层负责代理数据的传输、修改,其会接收LSP层发送的应用层数据,按照预设代理协议生成应用层数据的头文件,当需要进行代理版本升级,或者代理和加速软件版本的变更时,只需要修改本地回路中转层,无需修改LSP,在维护成本极大降低的情况下,能保持良好的兼容性。

S630,中转回路层将第二应用层数据发送至基础服务提供层(BSP)。

在中转回路层将第一应用层数据修改为第二应用层数据之后,中转回路层将数据发送至基础服务提供层(BSP)。

S640,所述基础服务提供层(BSP)根据所述第二应用层数据所包含的代理协议信息将所述第二应用层数据推送至TCP/IP协议栈。

如前所述,第二应用层数据包含用于TCP/IP传输的头文件信息或者其他信息,BSP基于第二应用层数据包含的头文件信息或TCP/IP信息推送至TCP/IP协议栈。

如图7(a)所示,本发明的一个实施例提供一种透明代理方法,包括:

S700,初始化步骤,如图7(b)所示,该步骤包括如下子步骤:

S7001,初始化分层服务提供层(LSP);

S7002,创建所述中转回路层工作的子线程,所述子线程与LSP处于相同进程。

上述步骤中,本地回路中转回路层工作在LSP初始化后创建的子线程,并且LSP所处相同进程。远程网络回包后,使用进程内通信手段,即可在LSP层进行来源地址的修改。如此,应用程序接收到的网络数据包,其网络地址是本地修改后的地址,而不是真正的网络地址。LSP层进行来源地址修改,可以防止应用程序由于网络IP地址而认为接收到的数据包是非法数据包。

S710,分层服务提供层(LSP)将应用层数据发送地址修改为中转回路层地址,并将所述应用层数据发送至所述中转回路层。

在一个示例中,在LSP层的上层设置一个中转回路层,负责代理数据传输,中转回路层可以降低LSP层的复杂度。具体地,中转回路层设置在LSP层与BSP层之间,负责代理数据的传输、修改,LSP层只负责修改目标地址,而不负责修改应用层数据,据此,可以将LSP层与应用层数据修改功能解耦,这大大降低了LSP层的复杂程度。当然,与应用层数据修改无相关性、且不会提高LSP处理负责度的其它功能,仍然可以由LSP层执行。

在一个示例中,所述中转回路层地址包括中转回路层的网络IP地址和中转回路层的端口地址。例如,将中转回路层地址修改为127.0.0.1这样的本机地址,将中转服务器端口修改为指定的端口。

因此,在本步骤中,LSP层只需将应用层数据的发送地址修改为中转回路层地址。当然,更具体地,中转层是设置在本地回路中的本地回路中转层。

在一个示例中,如图7(c),将所述应用层数据发送至所述中转回路层包含如下自步骤:

S7101,分层服务提供层(LSP)将所述应用层数据发送至基础服务提供层(BSP)。

S7102,基础服务提供层(BSP)将所述应用层数据发送至TCP/IP协议栈。

S7103,所述TCP/IP协议栈将所述应用层数据发送至所述中转回路层地址。

通过上述步骤,实现了将与LSP处于同一进程中的中转回路层“服务器”化,基于TCP/IP规则进行访问,并在功能上将原LSP进行解耦。当然,除使用TCP/IP的方式外,还可以使用其他线程内可以执行协议进行LSP与中转回路层之间的通信。

S720,中转回路层接收来自LSP层的应用层数据,按照预设中转规则生成头文件。

按照解耦后的功能划分,LSP层只负责简单的网络调用转发,本地回路中转层工作在应用层级别,负责代理协议实现,可是视为公共底层和逻辑完全解耦独立,大大简化了LSP层的复杂度。中转回路层负责代理数据的传输、修改,其会接收LSP层发送的应用层数据,按照预设代理协议生成应用层数据的头文件,当需要进行代理版本升级,或者代理和加速软件版本的变更时,只需要修改本地回路中转层,无需修改LSP,在维护成本极大降低的情况下,能保持良好的兼容性。

在一个实施例中,本地中转回路层实际是一个本地服务器层(监听TCP服务端口,开放UDP服务端口),其工作在LSP的上层,即应用层。而LSP层只修改目标地址为本机(127.0.0.1)地址和中转回路层的端口,不修改应用层数据。因此应用层调用网络API后,数据会传输到本地回路中转层。再由本地回路中转层实现代理协议传输到远程,从而实现网络代理。

S730,中转回路层将包含所述头文件的应用层数据发送至基础服务提供层(BSP)。

在中转回路层将第一应用层数据修改为第二应用层数据之后,中转回路层将数据发送至基础服务提供层(BSP)。

S740,所述基础服务提供层根据所述头文件将包含所述头文件的应用层数据推送至TCP/IP协议栈;所述TCP/IP协议栈将所述应用层数据发送至远端设备。

如前所述,第二应用层数据包含用于TCP/IP传输的头文件信息或者其他信息,BSP基于第二应用层数据包含的头文件信息或TCP/IP信息推送至TCP/IP协议栈。TCP/IP协议栈会根据头文件基于TCP协议将应用层数据发送至远端设备。

750,中转回路层接收来自基础服务提供层(BSP)的远程网络回包,基于进程内通信将所述远程网络回包传递给所述LSP;所述LSP将所述网络回包地址修改为本地地址。

在一个实施例中,中转回路层在监听TCP服务端口的同时开放UDP服务端口。使用TCP服务端和UDP服务端在中转回路层的设计上有所不同。因为客户端中配有NIC(Network Interface Card,网络接口卡)数据传输设备。通过NIC向计算机内部传输数据时会用到IP。操作系统负责把传递到内部的数据适当分配给套接字,这时就利用端口号,也就是说,通过NIC接收的数据内有端口号,操作系统正式参考此端口号把数据传输给相应端口的套接字,而套接字的类型有分为TCP面向连接的套接字和UDP面向消息的套接字,两种套接字类型,操作系统是可以按接收到的数据按套接字类型传输给相应的端口号套接字,所以TCP套接字和UDP套接字可以共用相同端口。

在一个实施例中,基于TCP端口在层转换时需要设计不同组的套接字,本地回路中转层基于TCP协议接收来自LSP的应用层数据时使用第一组套接字,本地回路中转层修改本地回路中转层数据之后,将修改后的中转层数据发往BSP层使用第二组套接字,不同组套接字保证两套TCP协议使用不同的端口号,如此可以将中转回路层模拟为一个“本地服务层”从而更好地将实现LSP层功能的解耦,同时实现数据在功能上的隔离。而UDP端口是基于的直连进行,在转换过程中无需更改套接字,来自LSP的应用层数据可以基于UDP的方式在层间通信。当然,不排除远端数据通过TCP协议传递至中转回路层,中转回路层通过UDP的方式与LSP层进行数据交互。

如图8所示,本实施例提供一种透明代理装置,装置结构如下:

分层服务提供层(LSP),用于将第一应用层数据发送地址修改为中转回路层地址,并将所述应用层数据发送至所述中转回路层;

中转回路层,用于接收来自LSP层的第一应用层数据,并按照预设的代理协议将所述第一应用层数据修改为第二应用层数据;并将第二应用层数据发送至基础服务提供层(BSP);

基础服务提供层(BSP),用于根据所述第二应用层数据所包含的代理协议信息将所述第二应用层数据推送至TCP/IP协议栈。

上述装置可以用于实施S610-S630所对应的步骤。

如图9所示,本实施例提供一种透明代理装置,装置结构如下:

初始化步模块;

分层服务提供层(LSP),用于将应用层数据发送地址修改为中转回路层地址,并将所述应用层数据发送至所述中转回路层;

中转回路层,用于接收来自LSP层的应用层数据,按照预设中转规则生成头文件;在中转回路层将第一应用层数据修改为第二应用层数据之后,中转回路层将数据发送至基础服务提供层(BSP)。

基础服务提供层(BSP),用于根据所述头文件将包含所述头文件的应用层数据推送至TCP/IP协议栈;所述TCP/IP协议栈将所述应用层数据发送至远端设备。

中转回路层,还用于接收来自基础服务提供层(BSP)的远程网络回包,基于进程内通信将所述远程网络回包传递给所述LSP;所述LSP将所述网络回包地址修改为本地地址。

初始化模块包括如下子模块:

初始化模块,用于初始化分层服务提供层(LSP);

子线程创建模块,用于创建所述中转回路层工作的子线程,所述子线程与LSP处于相同进程。

上述模块中,本地回路中转回路层工作在LSP初始化后创建的子线程,并且LSP所处相同进程。远程网络回包后,使用进程内通信手段,即可在LSP层进行来源地址的修改。如此,应用程序接收到的网络数据包,其网络地址是本地修改后的地址,而不是真正的网络地址。LSP层进行来源地址修改,可以防止应用程序由于网络IP地址而认为接收到的数据包是非法数据包。

分层服务提供层(LSP)将应用层数据发送地址修改为中转回路层地址,并将所述应用层数据发送至所述中转回路层。

在一个示例中,在LSP层的上层设置一个中转回路层,负责代理数据传输,中转回路层可以降低LSP层的复杂度。具体地,中转回路层设置在LSP层与BSP层之间,负责代理数据的传输、修改,LSP层只负责修改目标地址,而不负责修改应用层数据,据此,可以将LSP层与应用层数据修改功能解耦,这大大降低了LSP层的复杂程度。当然,与应用层数据修改无相关性、且不会提高LSP处理负责度的其它功能,仍然可以由LSP层执行。

在一个示例中,所述中转回路层地址包括中转回路层的网络IP地址和中转回路层的端口地址。例如,将中转回路层地址修改为127.0.0.1这样的本机地址,将中转服务器端口修改为指定的端口。

在一个示例中,LSP层包含如下子模块:

第一发送模块,用于将所述应用层数据发送至基础服务提供层(BSP)。

第二发送模块,用于将所述应用层数据发送至TCP/IP协议栈。

第三发送模块,用于将所述应用层数据发送至所述中转回路层地址。

通过上述模块,实现了将与LSP处于同一进程中的中转回路层“服务器”化,基于TCP/IP规则进行访问,并在功能上将原LSP进行解耦。当然,除使用TCP/IP的方式外,还可以使用其他线程内可以执行协议进行LSP与中转回路层之间的通信。

上述模块可以用于实施步骤S710-S750的方法。

请参考图10,其示出了本发明一个实施例提供的终端的结构示意图。该终端用于实施上述实施例中提供的透明代理方法。具体来讲:

终端1000可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、视频传感器150、音频电路160、WiFi(wireless fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet RadioService,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。

存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端1000的使用所创建的数据(比如视频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。

输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括图像输入设备131以及其他输入设备132。图像输入设备131可以是摄像头,也可以是光电扫描设备。除了图像输入设备131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端1000的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,15有机发光二极管)等形式来配置显示面板141。

终端1000可包括至少一种视频传感器150,视频传感器用于获取用户的视频信息。终端1000还可以包括其它传感器(未示出),比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端1000移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端1000还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

视频电路160、扬声器161,传声器162可提供用户与终端1000之间的视频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路11以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端1000的通信。

WiFi属于短距离无线传输技术,终端1000通过WiFi模块70可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图1示出了WiFi模块170,但是可以理解的是,其并不属于终端1000的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器180是终端1000的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端1000的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。

可以理解的是,上述调制解调处理器也可以不集成到处理器180中。

终端1000还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

尽管未示出,终端1000还可以包括蓝牙模块等,在此不再赘述。

具体在本实施例中,终端1000还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于执行上述发送方客户端侧或者接收方客户端侧的方法的指令。所述指令用于在被处理器执行时实现如下步骤:分层服务提供层(LSP)将第一应用层数据发送地址修改为中转回路层地址,并将所述应用层数据发送至所述中转回路层;中转回路层接收来自LSP层的第一应用层数据,并按照预设的代理协议将所述第一应用层数据修改为第二应用层数据;中转回路层将第二应用层数据发送至基础服务提供层(BSP);所述基础服务提供层(BSP)根据所述第二应用层数据所包含的代理协议信息将所述第二应用层数据推送至TCP/IP协议栈。

进一步地,所述指令还用于执行如下步骤:初始化分层服务提供层(LSP);创建所述中转回路层工作的子线程,所述子线程与LSP处于相同进程。

进一步地,所述指令还用于执行如下步骤:中转回路层接收来自基础服务提供层(BSP)的远程网络回包,基于进程内通信将所述远程网络回包传递给所述LSP;所述LSP将所述远程网络回包的网络地址修改为中转回路层地址。

进一步地,所述指令还用于执行如下步骤:分层服务提供层(LSP)将所述应用层数据发送至基础服务提供层(BSP);基础服务提供层(BSP)将所述应用层数据发送至TCP/IP协议栈;所述TCP/IP协议栈将所述应用层数据发送至所述中转回路层的网络地址。

应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号