返回顶部
网络编码(Network )提出的核心目的是提高网络通信效率和可靠性。
网络编码提升通讯效率的方法是,通过允许网络中的中继节点(而不仅仅是源节点和目的节点)执行数据包的编码和解码操作来实现这一目的。它的出现改变了传统的网络数据处理方式,传统的网络通信主要依靠“存储-转发”机制,即中间网络节点接收数据后,简单地将数据存储并转发至下一个节点或目的地。
而网络编码引入了在网络节点处将传入的数据流进行新的编码处理,生成新的编码数据流再转发出去。
当网络中有多个目的节点时,源节点能否同时为这些汇聚节点提供最大流的速度则是网络编码所讨论的问题,以经典的蝴蝶模型为例。
在上图中,源节点到目标节点的最大流均为2,而节点有两个输入链路,却只有一个输出链路,这成为了网络的瓶颈,使得节点无法同时达到网络的最大流。这一问题在引入网络编码后得到解决。如上图所示,在中间节点对数据流和进行异或运算后,使得节点和能够同时以2的速率接收数据。
【什么是流(flow)】
在一个有向图中,只有出去的边,没有进来的边的节点叫源(source),只有进来的边没有出去的边的节点叫汇(sink),其他节点进来的边和出去的边应该是平衡的。
【什么是割】
对于图中的两个节点来说,如果把图中的一些边去掉,刚好让它们之间无法连通的话,这些被去掉的边组成的集合叫割,最小割是指所有割中权重最小的一个割。
网络编码在数据传输的过程中将不同的数据包进行合并,并生成新的数据包,这样可以提高数据传输的效率和可靠性,并在一些情况下显著提高网络的吞吐量。例如,在广播或多播应用中,通过将多个数据包组合在一起发送,可以减少总体网络中的传输次数,从而减少带宽的使用和网络的拥堵。
领存实验室主要研究随机线性网络编码(RLNC)
在RLNC中,每个数据包被视作一个向量,转发节点不仅仅简单地转发接收到的数据包,而是将多个收到的数据包进行随机的线性组合后再进行转发,这种方法可以大幅度地提高网络的吞吐量,可靠性和鲁棒性。随机线性网络编码的出现是网络编码领域内重要突破,RLNC采用随机策略在中间节点进行再编码,中间节点在编码时随机地从有限域中选择编码系数对输入的数据进行编码,然后将编码后的数据发送出去。研究表明,只要有限域的尺寸足够大,便能保证汇聚节点以很高的概率解码。
RLNC的优点主要有如下:
RLNC方法的缺点如下:
需要在较大的域尺寸上进行编解码,这样才能得到相对满意的解码效率,采用较大的有限域带来的问题是编码过程中计算的开销会相应地增加。
理论上来说,所需的编码域越小,计算的开销越小,另外,在一个较大的有限域上,也不能保证目的节点能够100%解码。
因此,采用确定性的算法设计网络编码方案能够改善这一问题,但是确定编码方法的缺点在于需要知道全局的网络拓扑结构,确定性算法的理论意义要远大于实际意义,在实际中,很少看到某个网络编码方案采用这个确定性算法。网络的整体拓扑不变时,此类算法获取网络整体拓扑信息,然后计算出网络编码方案,最后将方案用于数据传输。
总结:网络编码的关键优点包括: