[发明专利]一种透明代理及其实现方法有效
申请号: | 201210196512.0 | 申请日: | 2012-06-14 |
公开(公告)号: | CN103491065B | 公开(公告)日: | 2018-08-14 |
发明(设计)人: | 董广跃 | 申请(专利权)人: | 南京中兴软件有限责任公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/12;H04L1/16 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 吴艳;龙洪 |
地址: | 210012 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 透明 代理 及其 实现 方法 | ||
本发明公开了一种透明代理及其实现方法,透明代理与客户端之间建立TCP链路;透明代理通过链路层网卡获取客户端发往目的服务端的业务数据包,并根据业务数据包的应用层协议类型选择相应的粘合服务端;透明代理与粘合服务端之间建立TCP链路;透明代理修改客户端的业务数据包的目的地址,将修改后的业务数据包通过链路层网卡直接发往粘合服务端进行处理。采用本发明,能够实现数据的按应用层协议类型高性能转发。
技术领域
本发明涉及移动互联网技术领域,尤其涉及一种透明代理及其实现方法。
背景技术
随着移动互联网的飞速发展,形形色色的业务流量(http/ftp/rtsp/p2p…)在网络中传输,伴随而生的就是各种个性化的特色需求,需要对各种业务流量进行分拣,并发送到各种专用服务器进行信息加工与处理。
透明代理是实现截获终端发送原始数据并转发送至各个专用服务器的关键桥梁,tcp粘合技术是实现透明代理的关键技术,使用tcp底层链路管理与数据交换技术,使客户端和专用服务器在感觉不到其存在的情况下建立通信链路。
发明内容
本发明解决的技术问题是提供一种透明代理及其实现方法,能够实现数据的按应用层协议类型高性能转发。
为解决上述技术问题,本发明提供了一种透明代理实现方法,
透明代理与客户端之间建立TCP链路;
所述透明代理通过链路层网卡获取所述客户端发往目的服务端的业务数据包,并根据所述业务数据包的应用层协议类型选择相应的粘合服务端;
所述透明代理与所述粘合服务端之间建立TCP链路;
所述透明代理修改所述客户端的业务数据包的目的地址,将修改后的业务数据包通过链路层网卡直接发往所述粘合服务端进行处理。
进一步地,所述透明代理与所述客户端建立TCP链路的过程,包括:
所述客户端发起syn建链请求,所述syn建链请求中携带随机产生的第一初始序列号,且源地址和源端口为所述客户端的IP和端口号,目的地址和目的端口为所述服务端的IP和端口号;
所述透明代理获取所述客户端发起的所述syn建链请求,向所述客户端发起第二次握手syn_ack,所述syn_ack中携带随机产生的第二初始序列号,且源地址和源端口为所述目的服务端的IP和端口号,目的地址和目的端口为所述客户端的IP和端口号;
所述客户端发起第三次握手ack,所述透明代理与所述客户端的TCP链路建立完成。
进一步地,所述方法还包括:
所述透明代理与所述客户端建立TCP链路时,所述透明代理保存所述客户端发起的第三次握手ack包,以及所述ack包后续的一个或几个数据包。
进一步地,所述透明代理与所述粘合服务端建立TCP链路的过程,包括:
所述透明代理选择所述粘合服务端,并向所述粘合服务端发起syn建链请求,所述syn建链请求中携带的目的地址和端口为所述粘合服务端的IP和端口号;
所述粘合服务端回应syn_ack,所述syn_ack携带随机产生的序列号;
所述透明代理对序列号进行同步后,将保存的所述客户端发起的第三次握手ack包和后续的一个或几个数据包发送给所述粘合服务端,所述透明代理与所述粘合服务端的TCP链路建立完成。
进一步地,其特征在于,所述方法还包括:
所述链路层网卡维护缓存的数据包内存块,并将内存块索引通知应用层;
应用层根据所述内存块索引对链路层的内存数据包进行收发控制。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京中兴软件有限责任公司,未经南京中兴软件有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210196512.0/2.html,转载请声明来源钻瓜专利网。