[发明专利]一种高性能Kernel-Bypass透明代理系统在审
申请号: | 202110331100.2 | 申请日: | 2021-03-26 |
公开(公告)号: | CN113079209A | 公开(公告)日: | 2021-07-06 |
发明(设计)人: | 朱贺军 | 申请(专利权)人: | 北京八角科技有限责任公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/06;H04L29/12 |
代理公司: | 北京世誉鑫诚专利代理有限公司 11368 | 代理人: | 孙国栋 |
地址: | 100191 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 性能 kernel bypass 透明 代理 系统 | ||
本发明涉及计算机网络的技术领域,特别是涉及一种高性能Kernel‑Bypass透明代理系统,其通过提升硬件性能线性的提升代理系统的性能;包括多进程模式下的数据分流和使用用户态协议栈的透明代理。
技术领域
本发明涉及计算机网络的技术领域,特别是涉及一种高性能 Kernel-Bypass透明代理系统。
背景技术
随着SSL/TLS协议的普及,网络DLP系统需要全面接管数据流量,才能对数据进行检查。目前传统透明中间人使用内核协议栈来实现TCP连接的代理。但由于内核协议栈的使用存在锁冲突,以及用户态和内核态之间的切换带来的性能损耗,性能很难得到提升,包括局部修改算法还是增加硬件的规格。
所以需要一种代理系统,可以通过增加硬件的规格来线性的增加性能。
发明内容
为解决上述技术问题,本发明提供一种通过提升硬件性能线性的提升代理系统的性能的高性能Kernel-Bypass透明代理系统。
本发明的一种高性能Kernel-Bypass透明代理系统,包括多进程模式下的数据分流和使用用户态协议栈的透明代理;
所述多进程模式下的数据分流分为分流进程和工作进程,分流进程通过网卡的收队列收取数据包,通过分流算法将数据包分流到不同的工作进程中;
所述使用用户态协议栈的透明代理通过用户态协议栈创建一个虚拟网卡,所述虚拟网卡上设置一个虚拟IP地址,一个TCP代理会话分为四个方向,这四个方向分别对应四个转换,所述四个转换分别为:c2p,目的地址替换成代理IP;p2c,源地址替换成Server IP;p2s,源地址替换成Client IP和s2p目的地址替换成代理IP。
本发明的一种高性能Kernel-Bypass透明代理系统,TCP连接建立包括以下步骤:
S1、客户端发起TCP连接,数据包为:客户端到服务端,SYN;
S2、透明代理模块判断为SYN包,查询ACL表,判断此连接需要代理,则根据数据包中的四元组信息和ACL表中的信息创建c2p,p2c 表;
S3、透明代理在接受客户端的连接后,根据客户端返回的地址信息,还有服务端地址信息创建p2s,s2p表;
S4、然后透明代理向服务器发起连接,此时的地址信息为:代理地址到服务端地址;
S5、透明代理根据之前建立的p2s表项修改数据包中的数据,修改为:客户端地址到服务端地址,发送到服务器。
本发明的一种高性能Kernel-Bypass透明代理系统,其中TCP数据传输包括以下步骤:
客户端到服务端流程:
1)、客户端发往服务端的数据,数据包中的地址为:客户端地址到服务端地址;
2)、网桥查询c2p表,将数据包中的地址替换为:客户端地址到代理地址,然后将数据发送到代理;
3)、数据自底向上依次通过各协议模块进行处理,然后自顶向下依次通过各协议模块处理,通过系统协议栈发送到网桥,此时数据包中的地址为:代理地址到服务端地址;
4)、网桥查询p2s表,将数据包中的地址替换为:客户端地址到服务端地址;
服务端到客户端流程:
a)、服务端发往客户端的数据,数据包中的地址为:服务端地址到客户端地址;
b)、网桥查询s2p表,将数据包中的地址替换为:服务端地址到代理地址,然后将数据发送到代理;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京八角科技有限责任公司,未经北京八角科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110331100.2/2.html,转载请声明来源钻瓜专利网。