论文部分内容阅读
透明代理(Transparentproxy)技术广泛用于应用层安全网关,在客户端和服务器之间充当中间人的角色,以实现对流量应用层内容的检测和灵活处理。面对高速网络的应用层安全实时处理需求,传统的透明代理技术在性能上存在瓶颈。
本文对透明代理性能问题进行了深入分析研究,在调研相关工作成果的基础上,结合应用层安全需求,针对流量重定向、内核空间与用户空间之间数据交换、套接字接口设计和多核并行等方面,提出了以下优化方法:
1、对系统网络协议栈和套接字进行了扩展,将流量直接重定向至本地代理程序进行处理。与基于网络地址转换(NAT)的流量重定向相比,该方法具有以下优势:显著地提升了系统的性能;保持了客户端和服务器之间端对端的语义特性;系统的处理容量(最大并发连接数)不再受本地端口资源限制。
2、提出了一种混杂连接粘合(hybridconnectionsplicing)方法,使得透明代理能够在内核中直接进行套接字间的数据包传递,并对流量进行细粒度的控制(丢弃、置换、转发),从而降低了用户空间到内核空间的数据复制以及协议栈构建数据包的开销。
3、提出了一种在多核平台上的并行优化方法,通过将流量分流至不同处理器核上的代理程序进行并行处理,进一步提升了系统的性能。
基于以上研究工作,作者在Linux平台上实现了一个透明代理原型系统。测试结果表明,上述研究成果显著提升了透明代理在新建连接速率、吞吐率等方面的性能指标,并优化了CPU的负载。本文中的部分研究成果已成功实际应用于自主研制的千兆高性能网关防病毒系统中。