网络编码初步陆巍220080551摘要:网络编码是通信网络中信息处理和信息传输理论研究上的重大突玻,其核心思想是允许网络节点对传输信息进行编码处理。
运用网络编码能够提升网络吞吐量、均衡网络负载和提高网络带宽利用率等。
本文简单介绍网络编码的基本原理以及主要优缺点,归纳网络编码的主要实现算法和机制,并重点分析网络编码的在P2P网络中应用。
关键词:网络编码随机网络编码信息流多播1引言传统的多播传输很难使多播传输达到“最大流最小割”定理确定的最大理论传输容量。
这主要是因为现有通信网络中使用的路由机制认为网络中传输的信息是不能叠加的,只能进行存储和转发。
然而,香港中文大学R. Alshwede等在2000年的IEEE信息论会刊上发表的一篇论文,彻底推翻了这一结论。
该文首次提出了网络编码的概念并从理论上证明:如果允许网络信息按照合适的方式进行编码处理,则基于该方式的网络多播总能够实现理论上的最大传输容量。
网络节点对传输信息进行操作和处理的过程,就称为网络编码。
2网络编码的基本概念和优缺点2.1基本概念R. Alshwede等[1]以著名的“蝴蝶网络”(Butterfly Network)模型为例,阐述了网络编码的基本原理。
如图1所示的“单信源二信宿”蝴蝶网络,设各链路容量为1,S是信源节点,Y和Z是信宿节点,其余为中间节点,根据“最大流最小割”定理,该多播的最大理论传输容量为2,即理论上信宿Y和Z能够同时收到信源S发出的2个单位的信息,也就是说能同时收到b1和b2。
图1(a)表示的是传统的路由传输方式,节点W执行存储和转发操作,假定W转发信息b1,则链路WX、XY和XZ上传输的信息均为b1,虽然信宿Z收到b1和b2,但信宿Y却只能收到b1(同时收到一个多余的b1),因此信宿Y和Z无法同时收到b1和b2,该多播不能实现最大传输容量。
图1(b)表示的是网络编码方法,节点W对输入的信息进行模二加操作,然后将操作结果b1+b2发送至输出链路WX,然后又通过链路XY和XZ,最终达到信宿Y和Z。
Y收到b1和bl+b2后,通过译码操作b1+(b1+b2)就能解出b2,因此,信宿Y同时收到了b1和b2。
同理,信宿2也同时收到b1和b2。
由此,基于网络编码的多播实现了理论上的最大传输容量。
可见,网络编码的核心思想是:具备编码条件的网络节点(比如该节点的入度至少为2,如图1中的节点W就具备编码条件,节点X则不具备编码条件)对接收到的信息进行一定方式的处理(编码),然后传输给下一级的网络节点,收到消息的下一级节点如果具备编码条件,又对其接收的信息按照同样的方式进行处理和传输,如此反复,直到所有经过处理后的信息都汇聚到信宿节点为止。
最后,在信宿节点,通过逆过程的操作(译码),即可译出信源发送的原始信息。
网络编码是发生在域上的操作,如果域无限大,则运用网络编码的多播传输能达到理论上的最大传输容量等于各信宿节点的最大流的最小值,即。
b1, b2b1b1+b2, b2b1+b2,b1(a) (b)图1单信源二信宿蝴蝶网络2.2主要优缺点网络编码提出的初衷是为使多播传输达到理论上的最大传输容量,从而能取得较路由多播更好的网络吞吐量。
但随着研究的深入,网络编码其它方面的优点也体现出来,如均衡网络负载、提升带宽利用率等。
2.2.1提升网络吞吐量提升吞吐量是网络编码最主要的优点。
无论是均匀链路还是非均匀链路,网络编码均能够获得更高的多播容量,而且对于节点平均度数越大,网络编码在网络吞吐量上的优势越明显。
2.2.2均衡网络负载网络编码多播可有效利用除多播树路径外其它的网络链路,可将网络流量分布于更广泛的网络上,从而均衡网络负载。
图2(a)所示的通信网络,其各链路容量为2。
图2(b)表示的是基于多播树的路由多播,为使各个信宿节点达到最大传输容量,该多播共使用SU,UX,UY,SW 和WZ 等共5条链路,且每条链路上传输的可行流为2;图2(c)表示的是基于网络编码的多播,假定信源节点S 对发送至链路SV 的信息进行模二加操作,则链路SV,VX 和VZ 上传输的信息均为a+b ,最终信宿X 、Y 和Z 均能同时收到a 和b 。
容易看出,图2(c)所示的网络编码多播所用的传输链路为9条,比图2(b)的多播树传输要多4条链路,即利用了更广泛的通信链路,因此均衡了网络负载。
网络编码的这种特性,有助于解决网络拥塞等问题。
(a) (b) (c)图2单源三接收网络 2.2.3提高带宽利用率.提高网络带宽利用率是网络编码的另一个显著的优点。
在图2(b)中的路由多播中,为了使得信宿X,Y 和Z 能够同时收到2个单位的信息,共使用了5条通信链路,每条链路传输可行流为2,因此其消耗的总带宽为52=10。
在图3(c)表示的网络编码多播中,共使用了9条链路,每条链路传输可行流为1,其消耗总带宽为91=9,因此带宽消耗节省了10%,提高了网络带宽利用率。
但运用网络编码增加了计算的复杂性,而且网路节点需要缓存足够的输入信息,因此编码操作增加了传输时延和节点的额外的I/O ,CPU 消耗。
一些学者对网络编码的综合性能进行了初步的研究和探讨。
统计数据表明,即使应用最有效的随机网络编码,其编码和译码的时间也不容忽视。
此外,应用网络编码还存在同步问题,这主要是由于信宿节点必须等待收到足够的编码信息,才能开始译码。
同步问题给在实时系统中应用网络编码提出了挑战。
3网络编码的原理和模型如果网络节点对传输的信息进行线性操作,则称为线性网络编码(Linear Network Coding),否则称为非线性网络编码。
如果网络节点对信息进行操作的系数是随机选取的,则称为随机网络编码;如果是通过算法确定出来的,则称为确定性网络编码。
在有限域中,只要域足够大,则通过合适的线性网络编码,就能使多播传输达到最大的传输容量。
目前,网络编码研究均限于有限域中的线性网络编码。
3.1 线性网络编码设G = (V, E )表示无环有向网络图(Directed Acyclic Graph),其中V 为网络节点(顶点),E = V V 为通信链路(边)。
设S V 为信源节点,T V 为信宿节点的集合,任一信宿。
|V|表示节点的数目,|E|表示链路的数目。
链路l =(u ,v )表示链路l 的起点为u 终点为v ,记做o (l )=u ,d (l )=v 。
表示节点u 的输入链路的集合,其模量称为节点u 的入度,简记为;表示节点u 的输出链路的集合,其模量称 为节点u 的出度,简记为。
信源S 发 出的信息符号,链路传输的信息,信宿节点X,Y,Z 接收的信息,均以向量的形式取之于有限域,该向量称为信息流(Information Flow)。
线性编码多播:所谓线性编码多播(Linear Code Multicast ,简称LCM),就是给无环有向网络G= (V, E )中每个节点斌予一个向量空间v (X),给每条链路赋予一个编码向量x (XY),使得:1),为信源发出的足够大的域上维符号向量空间;2)对每条链路XY ,均有; 3)对任何非源节点集合\{S}满足Span{v(T)|T}=Span{v(XY)|X }。
LC M 提供了以信息流描述网络中信息传输和编码操作的统一方式。
本地编码向量:在LCM 中,如果将链路上传输的信息流当作是e 的输入链路上传输信息的线性组合,则该线性组合系数构成的向量称为链路e 的本地编码向量(Local Coding Vector) 。
全局编码向量:设表示LCM 中信源S 输出的上的h 维信息流向量,如果将链路上传输的信息流当作是信源向量b 各元素的线性组合,则该线性组合系数构成的向量称为链路e 的全局编码向量(Global Coding Vector)。
图3(a)表示的LCM ,信源发送的信息流为,各链路对应的本地编码向量和全局编码向量分别如图3(b)和图3(c)。
链路TW 传输信息流为b1,UW 传输信息流为b2,链路WX 上传输的信息流b1+b2可看作是TW 和UW 上信息的线性组合,其组合系数均为1,因此链路WX 的本地编码向量为[1,1],如图3(b)。
另外,WX 传输的信息bl+b2也可看作是信源S 发出信息流向量[b1,b2]的元素b1和b2的线性组合,其线性组合系数也均为1,因此其全局编码向量为也[l,1],如图3(c)。
b1,b1+b2(a)(b)(c)图3 本地编码向量和全局编码向量本地编码向量表示的是链路上传输的信息流与该链路的输入链路传输的信息流之间的映射关系;全局编码向量表示的是链路上传输的信息流与信源发送的信息流之间的映射关系。
通过这两种向量,均可以构造出链路上传输的信息流向量,而且它们之间能够相互转化。
若分别表示链路的全局编码向量,表示链路的局部编码向量,则有转化关系:3.2 数学模型设LCM的最大理论传输容量为h,信源节点S发出的符号向量为,则在信源S与每个信宿之间均能建立h条不相交的路径簇,该路径簇记为。
表示路径簇上各路径的最后一条链路上传送的信息流的集合。
是(各路径的最后一条链路组成及集合中的)第i条链路的全局编码向量,则该链路传输的信息流可表示为:故:即。
则信源发出的符号向量为。
如果满秩,则能正确译码。
系统转移矩阵:若表示信源发出的信息流向量,表示信宿节点收到的信息流向量,则LCM系统可用表示。
其中称为信宿t对应的系统转移矩阵,为阶单位矩阵,和的意义见文献[2]。
文献[2]运用离散随机过程的方法给出了LCM系统中转移矩阵从的构造过程,并证明,只要能够保证最终形成的转移矩阵满秩,则对应的信宿节点通过就能准确译出信源发送的原始信息。
可行网络编码:使所有信宿节点对应的转移矩阵均满秩(Full Rank)的网络编码称为可行网络编码(Feasible Network Coding)。
4. 网络编码的构造算法网络编码构造算法解决的主要问题是如何有效求得每条链路对应的编码向量,并运用该编码向量进行线性操作计算出链路上传输的信息向量.编码算法的复杂性是衡量网络编码能否有效实现的重要依据,典型的算法包括指数时间算法[3]、多项式时间算法[4]等,其中因多项式时间算法具有较低的复杂性,因此具有重要的理论和应用价值。
4.1指数时间算法设表示LCM种各个信宿节点对应的系统转移矩阵,如果则均满秩,即所有的信宿节点均能成功译码。
基于这种思想,文献[3]在给出线性网络编码代数框架的同时提出了一种指数时间的网络编码构造算法:设表示所有编码链路对应的编码向量,则必定存在函数关系:,并称使的点的集合称为被“函数分割出来的代数簇”,因而算法的目标就是求得一个不位于“函数户分割出来的代数簇”上的点。
对于“单信源二信宿”的无环有向网络,若LCM的最大理论传输容量为h,则在有限域中,其中,。