利用GPU实现实用的随机线性网络编码
1. 引言
近年来,点对点(P2P)内容分发应用(如BitTorrent)和视频流应用(如ppLive)变得流行起来,占据了当今互联网流量的30%以上。随机线性网络编码这一新技术被P2P应用采用,带来了更简单的通信协议、更高的吞吐量、更好的网络稳定性等诸多好处。
在网络编码中,源节点将待分发的内容分割成n个大小相等的数据块。每个节点(包括源节点)发送编码后的数据块,这些编码块是原始数据块的线性组合。当一个节点收到n个线性无关的编码数据块后,就可以通过求解n个线性方程来解码出原始数据块。
然而,由于难以验证编码数据的完整性,这类系统容易受到污染攻击。恶意节点可以发送包含虚假数据的编码块,这些虚假数据会以指数级速度在网络中传播。为了抵御这种攻击,同态哈希函数(HHFs)被提出用于验证从网络接收到的编码数据块的完整性。
不过,HHF本身计算成本高,并且要求网络编码在GF(q)(q是一个大素数)中进行,这大大增加了网络编码的计算成本,在CPU上几乎不可行。现代GPU和CUDA编程模型为解决这一问题提供了可能。本文提出利用GPU加速随机线性网络编码和同态哈希,通过精心设计和优化,在当代GPU上实现了显著的性能提升,使网络编码和HHF成为P2P系统中抵御污染攻击的实用解决方案。
2. 背景和相关工作
2.1 网络编码
网络编码最初在信息论中被提出,用于在多播会话中实现最佳吞吐量。此后,它被应用于各种通信网络,以提高吞吐量和对网络动态的鲁棒性。
网络编码的本质是允许在源节点和接收节点之间的中间节点进行编码。随机网络编码的框架使得网络编码理论能够应用于