利用DPDK和CCK实现高速加解密 瑞斯康达云平台助网络功能虚拟化

  • 来源:通信产业报
  • 关键字:云计算,电信云,解密功能
  • 发布时间:2015-09-30 17:06

  云计算技术的发展越来越快,应用也越来越广泛。NFV即网络功能虚拟化,就是在电信云的基础上,实现传统和创新的网络功能。

  为了实现网络功能的虚拟化,在电信云里如何实现高速流量转发,以及加解密功能就十分必要。瑞斯康达在云平台里利用DPDK和CCK如何实现高速加解密功能。

  技术介绍

  ●DPDK。DPDK是X86平台报文快速处理的库和驱动的集合,使用UIO机制使网卡驱动程序运行在用户态,并采用轮询和零拷贝方式从网卡收取报文,提高收发报文的性能,并且使用hugepage和cpu affinity机制提高应用程序处理报文的性能。

  ●CCK。Intel Cave Creek(CCK)是Intel推出的带有加解密功能的高性能处理芯片,最高处理性能可达50Gbps。

  ●高性能虚拟网络接口。高性能虚拟网络接口(AVP)是云平台使用DPDK技术提供的高性能数据收发接口,其具有双向20Gbps的线速收发能力。

  基于DPDK的数据处理方案

  数据收发。每个I/O core处理一个NIC的数据收发,I/O lcore与Worker lcore之间采用ring buffer通信,每个IO RX/TX core会与各个Worker lcore之间创建一个无锁的单生产者单消费者ring队列,用于报文的传递。

  I/O core采用轮询的方式从网卡收包,收到报文后,直接将报文的内存地址放入Worker core的RX队列中;同样采用轮询的方式从Worker core的TX队列中收取要发送的报文,再通过网卡将数据发出。数据的整个处理过程中传递的都是内存指针,减少了内存拷贝带来的性能损失。

  数据分流。对于上述方案,每个网卡对应一个I/O core,但Worker core可能有多个,这就需要I/O core具备loadbalance功能,根据分流原则将收到的数据分发到不同的Worker core中。

  数据收发过程。I/O RX core从网卡收包,将报文放入内存中,并对数据包进行解包,解析出源目的ip地址、源目的port等信息。I/O RX core根据分流原则将报文所在的内存地址放入对应Worker core的RX ring队列,Worker core从RX ring队列收包;Worker core对数据进行加解密处理;I/O TX core从Worker core的TX队列中取出报文,经过路由查找等操作后从相应网卡发出。

  基于CCK的加解密处理

  CCK加速卡使用QuickAssist技术提供高速的加解密功能。QuickAssist专为基于数据平面的加解密提供一套API,以提高加解密的性能。为提高数据的存取效率,报文和操作参数都是以物理地址的方式传送到CCK加速引擎中。

  CCK的加解密过程。加解密预处理,如报文头修改、重建等;建立会话instance并构建操作参数;调用CCK驱动接口,将报文和操作参数交由CCK加速引擎执行加解密操作;加解密完成后,CCK调用回调函数对报文进行加解密后处理,如计算checksum。

  基于DPDK和CCK的IPsec加解密方案

  方案描述。I/O core收到包后对数据包进行解析、分流,并将报文送到相应的Worker core队列;Worker core收到报文后进行CCK参数配置,并将报文交由CCK进行加解密处理。加解密采用异步模式,Worker core将报文交给CCK后立即返回重新从网卡收包,待CCK执行完加解密操作后将加解密后的数据放入ring中,Worker core下次轮询时将ring中的报文读出,再继续进行路由等处理。

  Demo测试。在云平台中使用4个core(频率2.5GHz,两个用于I/O,两个处理加解密),两个10G的AVP接口,一块CCK卡(DH8950)进行测试。从结果分析,对于512字节以下的报文最多可以达到50%的线速转发和40%线速的加解密处理,但对于1400字节以上的大包可以做到线速转发和加解密处理。

  瑞斯康达

……
关注读览天下微信, 100万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: