一种应用层透明代理技术的通信实现方法

文档序号:7887296阅读:236来源:国知局
专利名称:一种应用层透明代理技术的通信实现方法
技术领域
本发明涉及网络通信转发技术领域,具体涉及基于应用代理技术的设计方案及产品应用系统。本发明是一种新型的通信主机隐藏及数据转发实现方案。
背景技术
传统及当前的代理技术,在应用层方面,主要基于正向代理和反向代理技术。常见的网络代理技术拓扑图如图1所示。代理服务的功能主要作为客户端和服务端之间的转发平台。代理服务又异于纯网络数据包转发的交换设备,代理服务需要与通信的两端独立建立TCP连接,即代理服务既要与访问客户端建立TCP连接,又要与服务端建立 TCP连接,然后进行数据的交互转发。正向代理和反向代理技术都需要对代理服务配置IP地址,且该IP地址必须能直接或间接的与访问客户端和服务端进行连接通信。对于正向代理技术来说,客户端发送一个请求给代理服务器,并指定要访问的服务端,然后由代理服务来访问服务端。这里可以看到,正向代理实际上对客户端是不透明的,典型的如客户端通过设置浏览器选项,来制定代理服务器IP地址,从而通过代理服务来实现对目的服务端的访问。这是一种对客户端非透明的代理实现方式。对于反向代理技术来说,客户端直接访问代理服务的IP地址,代理服务进行相关的代理转发配置,然后对服务端进行访问。在服务端,看到的访问全部来自于代理服务的IP 地址,因此,这是一种对服务端不透明的代理技术。

发明内容
本发明要解决的技术问题是,克服传统的正向代理和反向代理技术的不足,提供一种应用层透明代理技术的通信实现方法,实现全透明的代理技术突破。在需要通过代理技术解决方案的系统及产品中,不需要调整客户端和服务端的任何配置,即可实现较为完美的解决方案。为解决其技术问题,本发明的解决方案是提供一种应用层透明代理技术的通信实现方法,包括(一 )客户端与代理服务的通信实现,包括(1)客户端向服务端发起通信连接请求;(2)代理服务主机通过数据链路层截获该连接,并把该连接转向代理定向关联模块;(3)代理定向关联模块将数据包接收为本地数据包,并将其与代理服务所监听的虚拟服务进行连接关联处理;(4)代理服务虚拟服务确认为与自身关联的数据包,通知TCP/IP协议栈与客户端回应建立连接,并以服务端IP地址作为回应的源IP地址进行绑定;(5)回应包通过数据链路层转发,通向客户端;
3
(6)客户端接收回应包,并发送连接确认;(7)代理服务回应该确认包的确认包给客户端;至此,客户端与代理服务的连接建立过程结束;( 二)代理服务与服务端的通信实现,包括(1)代理服务在于客户端建立完整TCP连接以后,将客户端IP地址作为源IP地址进行本地绑定,通过TCP/IP协议栈向服务端发送连接建立请求;(2)连接请求数据包通过数据链路层转发传输到服务端;(3)服务端接收到连接请求以后,进行回应处理,然后发送连接回应包;(4)服务端的连接回应包到达代理服务主机的数据链路层,数据链路层将该回应包转向代理定向关联模块处理;(5)代理定向关联模块将数据包接收为本地数据包,并把它关联到代理服务所发出连接请求的连接进行关联处理;(6)代理服务虚拟服务进行连接回应包的应答,发送给服务端;至此,代理服务与服务端的连接过程建立完毕;(三)在代理服务通过上述两条连接的建立成功以后,后续只需要通过完善的连接,进行数据包的往返转发,即可实现基于透明代理的各种业务服务需求。本发明中,只对需要实行代理的业务数据执行透明代理服务,而对其他业务数据采用网络协议栈二层转发的方式。本发明中,对代理转发以及网络协议栈二层转发的业务数据包,不改变其内容,直接执行透明代理服务或网络协议栈二层转发原始的客户端和服务端数据包。相对于现有技术,本发明的有益效果在于在透明代理技术模型下,透明代理只需要关注需要提供代理服务的应用层业务, 如只服务FTP,则其他服务可以通过网络二层透明转发的方式到达服务端,透明代理只处理 FTP的透明代理转发。这样极大的满足了业务相关处理的灵活性,更体现了透明代理服务方式的独立性与先进性。


图1为代理技术拓扑图;图2为透明代理转发模型实现框架。
具体实施例方式首先需要说明的是,本发明是计算机软件在通信技术领域的一种应用。在本发明的实现过程中,会涉及到多个软件功能模块的应用。申请人认为,如在仔细阅读申请文件、 准确理解本发明的实现原理和发明目的以后,在结合现有公知技术的情况下,本领域技术人员完全可以运用其掌握的软件编程技能实现本发明。前述软件功能模块包括但不限于 代理服务、代理定向关联模块等,凡本发明申请文件提及的均属此范畴,申请人不再一一列举。为确保理解准确、避免产生歧义或不清楚,首先对本发明涉及的部分术语进行解释如下
虚拟服务指在代理技术中,本地TCP连接模拟真实服务端进行监听提供的连接服务,他同时模拟服务端处理客户端的请求服务,又要以客户端的身份,向服务端发送请求服务代理服务在通信连接与数据传输的过程中,作为通信连接建立及数据传输的中间媒介实体,参与连接的独立建立,并对通信连接与数据传输的两端实现连接建立的隔离 (即不直接建立通信连接)下面结合附图,对本发明的实现过程进行详细描述。以附图1所示的典型的客户端与服务端通信的简单模型为例,透明代理服务的实施嵌入客户端和服务端通信链路的任何位置。(1)根据业务及实际运维需求,选择一个合适的链路点接入透明代理服务主机;(2)代理服务主机须具备两个网络接口卡,用于与客户端和服务端的通信,该两个接口卡之间配置为网桥模式;(3)通过附图2所示的透明代理定向关联模块,配置需要进行透明代理的业务,通常为服务端IP地址加上连接端口 ;(4)进行通信连接测试。同时可以基于透明代理的虚拟服务,实现各种业务需求的安全检测,增值业务需求等。透明转发模型的实现框架见附图2所示。应用层透明代理技术的通信实现方法,包括(一 )客户端与代理服务的通信实现,包括(1)客户端向服务端发起通信连接请求;(2)代理服务主机通过数据链路层截获该连接,并把该连接转向代理定向关联模块;(3)代理定向关联模块将数据包接收为本地数据包,并将其与代理服务所监听的虚拟服务进行连接关联处理;(4)代理服务虚拟服务确认为与自身关联的数据包,通知TCP/IP协议栈与客户端回应建立连接,并以服务端IP地址作为回应的源IP地址进行绑定;(5)回应包通过数据链路层转发,通向客户端;(6)客户端接收回应包,并发送连接确认;(7)代理服务回应该确认包的确认包给客户端;至此,客户端与代理服务的连接建立过程结束;( 二)代理服务与服务端的通信实现,包括(1)代理服务在于客户端建立完整TCP连接以后,将客户端IP地址作为源IP地址进行本地绑定,通过TCP/IP协议栈向服务端发送连接建立请求;(2)连接请求数据包通过数据链路层转发传输到服务端;(3)服务端接收到连接请求以后,进行回应处理,然后发送连接回应包;(4)服务端的连接回应包到达代理服务主机的数据链路层,数据链路层将该回应包转向代理定向关联模块处理;(5)代理定向关联模块将数据包接收为本地数据包,并把它关联到代理服务所发出连接请求的连接进行关联处理;
(6)代理服务虚拟服务进行连接回应包的应答,发送给服务端;至此,代理服务与服务端的连接过程建立完毕;(三)在代理服务通过上述两条连接的建立成功以后,后续只需要通过完善的连接,进行数据包的往返转发,即可实现基于透明代理的各种业务服务需求。本发明中,只对需要实行代理的业务数据执行透明代理服务,而对其他业务数据采用网络协议栈二层转发的方式。对代理转发以及网络协议栈二层转发的业务数据包, 不改变其内容,直接执行透明代理服务或网络协议栈二层转发原始的客户端和服务端数据包。本发明与其他代理方案的不同之处在于1、在应用层实现透明代理转发机制在传统的网络数据包转发实现方式中,要么是纯粹数据包的转发,典型如交换机、 路由器的数据包路由转发实现方式,虽然做到了透明性,但并没有进行代理,即并没有分别与通信的两端建立TCP连接,仅仅是网络协议栈数据链路层和网络层的包转发。在传统的代理机制中,无论是应用层还是网络协议栈底层的代理转发,都无法做到透明性。不管是正向代理还是反向代理,代理服务都需要有独立的IP地址,以此作为与客户端和服务端建立TCP连接以及进行有效的数据包传输通信。此两种方式,要么对于客户端不透明,要么对于服务端不透明,如果在原有的客户端与服务端通信架构的基础上部署代理服务,则无法做到无缝插入,而需要对客户端或者服务端进行相关的配置,才能成功实施代理服务。本发明的透明代理机制,则充分体现了客户端与服务端的双向透明特性,不仅能独立的与两端建立TCP连接,实现数据包的透明转发,而且在原有成熟客户端与服务端通信的网络拓扑环境中,能够像增加网络二层交换设备一样,无缝得插入透明代理服务。该发明极大的支持了复杂网络环境中增加各种业务的可维护性与可伸缩性方案。2、独特的创新实现机制透明代理主机不需要具备与客户端和服务端通信的IP地址,看起来就像网络二层交换转发设备。众所周知,目的IP地址不是本主机IP地址的网络通信数据包,无法通过网络传输层到达应用层,因为本地没有提供服务TCP服务端口和连接。反向代理和正向代理技术,他们需要配置进行业务通信的IP地址,所以可以顺理成章进行常规的TCP连接和通信;同样,对于网络二层和三层的转发设备,不需要建立TCP连接,仅仅转发网络数据包, 也不需要违背任何TCP/IP协议栈的规则。透明代理技术,需要突破接收IP地址为非主机本地IP地址的数据包的限制,并建立虚拟的TCP连接监听服务端口。当客户端访问的数据包到达代理服务主机数据链路层时,将数据包的连接定向关联到本地的监听服务端口,本地监听服务端口此时采用服务端的IP地址作为源地址,与客户端建立TCP连接,这样客户端与代理服务之间的TCP连接便建立完毕。同理,代理服务与客户端建立完TCP连接以后,需要与服务端建立TCP连接,此时,代理服务以客户端的原始IP地址作为源IP地址,与服务端建立TCP连接。双向的连接建立结束以后,客户端和服务端就可以通过代理服务进行中转,实现基于TCP连接的数据
ififn。对于UDP通信来书,无须建立可靠的连接,因此在通信传输的过程中,就省却了上述描述的TCP连接的建立过程,而仅通过IP地址的互换借用来达到透明传输的目的。3、只关心需要代理的数据业务传统的基于应用层的正向代理和反向代理技术,由于配置了直接通信的IP地址, IP地址作为通信的直接目标,因此其占据了一个独立的通信实体。当服务端提供了多个应用服务时,如及提供了 HTTP服务,还包括FTP,SSH服务等,则在传统的代理框架下,代理服务器的配置,不仅需要支持HTTP,还得支持FTP,SSH等,否则,服务端提供的服务就无法得到正常的通信访问。透明代理技术,主要是基于正向代理和反向代理技术的缺点,进行一种全新的改进实现方案,从而实现对客户端和服务端都透明的方式。在透明代理技术下,客户端访问的目的IP地址为服务端的直接IP地址,进过透明代理服务以后,服务端看到的原始访问IP 地址仍未客户端的IP地址。在这样一种技术实现方案下,在部署透明代理服务的网络拓扑结构中,无须改变任何的网络结构,就可实现透明代理服务的应用部署。
权利要求
1.一种应用层透明代理技术的通信实现方法,其特征在于,包括(一)客户端与代理服务的通信实现,包括(1)客户端向服务端发起通信连接请求;(2)代理服务主机通过数据链路层截获该连接,并把该连接转向代理定向关联模块;(3)代理定向关联模块将数据包接收为本地数据包,并将其与代理服务所监听的虚拟服务进行连接关联处理;(4)代理服务虚拟服务确认为与自身关联的数据包,通知TCP/IP协议栈与客户端回应建立连接,并以服务端IP地址作为回应的源IP地址进行绑定;(5)回应包通过数据链路层转发,通向客户端;(6)客户端接收回应包,并发送连接确认;(7)代理服务回应该确认包的确认包给客户端;至此,客户端与代理服务的连接建立过程结束;(二)代理服务与服务端的通信实现,包括(1)代理服务在于客户端建立完整TCP连接以后,将客户端IP地址作为源IP地址进行本地绑定,通过TCP/IP协议栈向服务端发送连接建立请求;(2)连接请求数据包通过数据链路层转发传输到服务端;(3)服务端接收到连接请求以后,进行回应处理,然后发送连接回应包;(4)服务端的连接回应包到达代理服务主机的数据链路层,数据链路层将该回应包转向代理定向关联模块处理;(5)代理定向关联模块将数据包接收为本地数据包,并把它关联到代理服务所发出连接请求的连接进行关联处理;(6)代理服务虚拟服务进行连接回应包的应答,发送给服务端;至此,代理服务与服务端的连接过程建立完毕;(三)在代理服务通过上述两条连接的建立成功以后,后续只需要通过完善的连接,进行数据包的往返转发,即可实现基于透明代理的各种业务服务需求。
2.根据权利要求1所述的方法,其特征在于,只对需要实行代理的业务数据执行透明代理服务,而对其他业务数据采用网络协议栈二层转发的方式。
3.根据权利要求2所述的方法,其特征在于,对代理转发以及网络协议栈二层转发的业务数据包,不改变其内容,直接执行透明代理服务或网络协议栈二层转发原始的客户端和服务端数据包。
全文摘要
本发明涉及网络通信转发技术,旨在提供一种应用层透明代理技术的通信实现方法。该方法中,代理服务将客户端或服务端的IP地址作为源IP地址进行本地绑定,通过TCP/IP协议栈向服务端或客户端发送连接建立请求;数据链路层将数据回应包转向代理定向关联模块处理并由其关联到代理服务所发出连接请求的连接进行关联处理,据此,实现客户端与代理服务的通信实现或代理服务与服务端的通信实现。在透明代理技术模型下,透明代理只需要关注需要提供代理服务的应用层业务,如只服务FTP,则其他服务可以通过网络二层透明转发的方式到达服务端,透明代理只处理FTP的透明代理转发;极大的满足了业务相关处理的灵活性,更体现了透明代理服务方式的独立性与先进性。
文档编号H04L29/06GK102447708SQ201210012058
公开日2012年5月9日 申请日期2012年1月14日 优先权日2012年1月14日
发明者杨永清, 江均勇, 范渊 申请人:杭州安恒信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1