OCF源码分析

来源:互联网 发布:拳皇13知乎 编辑:程序博客网 时间:2024/05/16 14:39
一、简介
目前,VPN的应用越来越广泛。当VPN的接入用户数量较为庞大时,假设有1000用户同时在线,那么VPN网关需要有较大的数据处理能力。经过对VPN关键技术的研究(以OpenVPN为例),分别对虚拟网卡的吞吐速度和加解密处理两个方面进行了测试。
》》虚拟网卡:在千兆网络的环境下使用TCP协议对OpenVPN进行互联,加密和压缩选用了空算法,吞吐率为68Mbps。在此过程中对虚拟网卡的MTU进行了调优,避免协议栈对IP报文进行拆包和重组的消耗,同时不使用UDP,是避免OpenVPN实现可靠的UDP层协议层带来的消耗。从虚拟网卡的数据处理能力来说,已经可以满足绝大部分企业级的应用了。
》》加解密:选用了AES-SHA1来对数据进行处理,业务数据传输速度为44MBps。


因此,VPN的性能瓶颈是在与对数据加解密处理方面。国内的诸多VPN产品由于存在商密的要求,大多选用了硬件加密卡,来作为密码处理的部件。经过对国内PCI密码卡的了解,在实际的使用过程中,加解密的处理能力超过10MBps的都不多。一些官方出示的性能参数可能是针对大数据包进行的测试,当实际的应用数据包的长度较短时,处理能力会比预期更低。因为X86体系处理器采用了一个基于中断的一个处理模式,不管是处理长数据包还是处理短数据包,计算机触发和响应中断的代价是一致的。
VPN网关或者https代理的性能瓶颈正是在于这些硬件加密卡设备,那么更换PCI-E的密码卡,提升总线通信带宽也是一个解决办法,但是,成本也是会大大地提升。如果老板看见成本上涨不高兴了,我们这些程序猿就要挨批挨斗,或者卷铺盖回家了。


但是,伟大的程序猿一族的创造力是无穷的。下面,OCF隆重出场。(还是写blog爽,想怎么写就怎么写,前一段时间写技术文档,憋死我了,还被专家骂个狗血临头)。


OCF,OpenBSD Cryptographic Framwork。OCF是从OpenBSD上开发并衍生出来的一套加密框架,目前2.6.32之后的Linux已经可以很好的支持该框架。而且XFRM框架也能支持OCF,应用层上最近的openssl也可以使用OCF,看来OCF已经逐渐被各开源的安全软件所接纳。
下面对OCF进行简单的介绍:
1.两种调用方式:可以在应用层和内核层调用。
2.多种算法:支持对称加密算法、非对称加密算法和散列算法(DES,AES,Twofish、RSA、MD5、SHA-1等)。
3.多种I/O操作模式:能支持同步和异步模式。
4.多种调用接口:可以从应用层调用,也可以从内核中直接调用。
5.多种算法实现:可以通过内核crypto框架实现密码运算,也可以通过硬件实现密码运算。
6.硬件负载:可以同时支持多个PCI密码卡,并进行负载。


       在OCF官网的文档中描述,经过其测试,性能表现很棒,满足企业级应用是应该没有问题了,具体的数据请查看附件。
       既然OCF能解决密码运算的瓶颈问题,是不是很心动了呢?想马上用了呢?下一节从设计角度分析OCF的逻辑结构。
(未完待续…………)
原创粉丝点击