论文阅读:FlowBlaze Stateful Packet Processing in Hardware

1、背景

随着网络规模的日益增长,网络的基础设施需要不断发展的网络功能(Network Function)才能使得网络安全可靠的运行,这些网络功能例如:NAT(Network Address Translation,网络地址转换),负载均衡,流量整形,防火墙等等。

论文阅读:FlowBlaze Stateful Packet Processing in Hardware

但由于网络功能由纯软件实现,这便来带了时延的开销,如下图所示。

论文阅读:FlowBlaze Stateful Packet Processing in Hardware

2、要解决的问题

微软提出了基于FPGA的Smart NIC,可以节省CPU使用率并且减少PCIe总线上的流量,但这必须需要专门的团队来负责,这对于大公司没有问题,但对于其他绝大多数公司并没有这个能力。

论文阅读:FlowBlaze Stateful Packet Processing in Hardware

Nick McKeown 等人提出了可编程协议无关报文处理语言 P4 以及相应的转发模型,Match-Action Pipline

论文阅读:FlowBlaze Stateful Packet Processing in Hardware

3、FlowBlaze

FlowBlaze,一种拓展了类似P4或者Microsoft的GFT之类Match-Action语言的抽象,简化L2-L4一系列状态功能集,同时在基于FPGA的Smart NIC上实现。

论文阅读:FlowBlaze Stateful Packet Processing in Hardware

4、关键挑战

  • 1.在flow table中插入新流,由于Cuckoo hash,导致插入时间是不确定的。

论文阅读:FlowBlaze Stateful Packet Processing in Hardware

论文阅读:FlowBlaze Stateful Packet Processing in Hardware

论文阅读:FlowBlaze Stateful Packet Processing in Hardware

  • 2.状态更新时延问题

论文阅读:FlowBlaze Stateful Packet Processing in Hardware

论文阅读:FlowBlaze Stateful Packet Processing in Hardware

5、解决思路

  • 挑战一:通过利用Stash,来弥补插入时间不确定的问题。额外来开辟一个空间处理需要插入时间过多的Flow。

论文阅读:FlowBlaze Stateful Packet Processing in Hardware

  • 挑战二:更新流状态中,给需要更新的流进行加锁,来解决更新流状态的时延问题,确保每条流的状态是正确的。但可能会对性能造成影响。

论文阅读:FlowBlaze Stateful Packet Processing in Hardware

附录

论文地址:https://www.usenix.org/conference/nsdi19/presentation/pontarelli
github地址:https://github.com/axbryd/FlowBlaze

上一篇:Image Processing - Hough Transform


下一篇:Processing教程:如何使用Kinect V2做交互设计 - Hello World