网络编码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网络编码初步
陆巍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, b2b1
b1+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,则在有限域中,其中,。
通过指数时间算法总能求得各链路对应的编码向量,从而使各信宿节点能成功译码。
然而该算法参变量的校验次数随着网络规模成指数增加。
因此,该算法对于大规模的网络不够实用。
4.2 多项式时间算法
P. Sander等人提出另一个能够保证转移矩阵满秩的集中式算法:多项式时间算法[4]。
该算法是线性网络编码的快速实现,其目标是在尽可能小的有限域上快速地寻找编码向量。
该算法首次将计算复杂性局限在多项式时间范围内,极大提高了网络编码的实用性。
如果LC M的最大理论传输容量为h,将信源S和信宿之间建立的h条无
重合链路构成的路径簇记为,对上的链路按照拓扑排序,排序后的链路可表示为然后依次求解各链路对应的线性操作系数向量,即全局编码向量。
在求解系数向量时,必须保证对任意接收节点存在一个包含h条链路的集合,即是中h条路径上的最新构造出全局编码向量的h条链路,一条路径上一条链路,且这h条链路的全局编码向量是的一个基。
因此,当计算完成时,,形成的就是转移矩阵,则信宿通过就能译出信源发出的信息向量。
多项式时间算法的步骤:
1) 构造信源S至各个信宿节点的路径簇;
2) 将路径簇上的链路按照拓扑排序;
3) 依次寻找各个链路的全局编码向量,使得各路径簇上最新链路的编码向量能够形成一个基,以此确保最终形成的转移矩阵满秩。
此步为多项式时间算法的核心和重点。
多项式时间网络编码算法的时间复杂度为,最坏情况下为。
5 网络编码的分布式实现:随机网络编码
虽然多项式时间算法能够有效地构造编码向量,确保信宿节点成功译码,但由于它是集中式算法,需对网络拓扑结构有全面的了解。
因此,从实用的角度来看,多项式时间算法对拓扑结构动态变化或规模很大的网络,实用性并不强。
M. Medard提出了一种更一般的分布式网络编码的实现方法:随机网络编码(Random Network Coding,简称RNC)[5],该方法基于一种随机选择编码向量的策略:对于除了信宿节点外的所有中间节点,只要在一个足够大的有限域上随机选择它们输入链路到输出链路
的映射,而且各节点映射关系的选取是相互独立的,就能以较高概率使各个信宿节点对应的系统转移矩阵满秩,即各信宿节点能以较高的概率成功译码。
图4表示的是随机网络编码,各个链路上的系数向量(全局编码向量)和信源发送的信息进行同步传输,各个系数向量在有限域中随机选取,在通过编码节点时,系数向量根据随机选取的映射关系进行更新,最终的各信宿节点收到的输入信息将包含输入链路对应的全局编码向量和信源发送
的信息流。
图 4 随机网络编码
RNC译码成功率:对于信源相互独立或线性相关的LCM,所有节点的全局编码向量都在有限域上独立均匀选取(某些节点的编码向量可固定,只要这些固定向量对整个系统的
网络编码是可行的),则接收节点能以最小概率译出信源发送的信息,其中q>d为编
码符号域的大小,d是信宿节点的数目,是随机选取编码系数的链路的数目。
在RNC 中,只要当编码符号域q足够大,总可保证接收节点以较高概率成功译出信源
发送的信息理论上可证明:当符号域大小为时,任何接收节点均可以至少以概率99.6%成功译码。
在采用RNC的线性编码多播中,多个信源可以是独立的,也可以是线性相关的。
对于线性相关的信源,RNC可以起到信息压缩的作用。
此外,RNC是网络编码的分布式实现,无需事先获知整个网络的拓扑信息,尤其适用于拓扑结构动态变化或者大规模的网络。
对于存在网络节点和链路失效的网络,RNC可以利用整个网络的剩余容量来获得网络的最佳容量,从而提高多播传输的鲁棒性。
与时间多项式算法总能保证成功译码不同,在RNC中,虽然不能确保最终形成的系统转移矩阵满秩,但由于是随机选择编码向量,其复杂性与确定性算法相比要低得多,易
于实现,而且99%以上的译码成功率在一般情况也足以满足需求。
因此,随机网络编码具有重要的理论价值和应用价值,得到了广泛的关注和应用,如微软提出的P2P文件共享系统Avalanche 便是基于RNC的典型应用。
6 网络编码的应用
网络编码虽然起源于多播传输,主要是为解决多播传输中的最大流间题,但是随着研究的不断深入,网络编码与其它技术的结合也越来越受到人们的关注。
下面将以P2P文件共享为例,总结网络编码的几种典型应用。
据估计,目前P2P应用占据了互联网上70%以上的网络流量。
特别是BT (BitTorrent)的出现,使得P2P应用越来越广泛。
但是由于人们对信息共享效率与下载速度的无止境追求,使得现有P2P越来越难以满足人们的需求,特别是由于BT容易造成带宽吞噬,使得网络环境变得拥塞不堪,导致传输质量的下降。
网络编码的出现,有助于从内部机制上改善P2P的传输效率,提升其性能。
微软公司开发的基于网络编码的P2P文件共享系统Avalanche表现出了较好的综合性能,最具代表性。
Server File
Client A
E
Client B
E
图 5 Avalanche的原理
图5表示的是Avalanche的工作原理。
假设Server需要传输信息给Client A,则首先将Server上的信息分解成,个信息块,即,然后应用随机网络编码,随机选择系数,将线性网络编码后的信息传送给Client A,Client A同时又
会又收到另外一个信息,该信息来自其它Peers或者Server。
然后Client A又随机选择编码系数对进行线性操作,将操作的结果发送给Client B,如此则Client B又传送给其它的Peers。
只要每一个Peer收到足够的信息,就可以通过解线性方程组译出原始信息。
文献[6]证实,如果所有的Peers都运用网络编码,则P2P系统的平均下载速率较仅仅在Server进行网络编码提高了20%~30%,较不用网络编码时提高了2~3倍。
而且,网络编码能够适应P2P系统的动态变化,如节点动态加入或离开等,使得Peers下载“死档”的概率大大降低。
但M . Wa ng[7]认为:依据Avalanche给出的结论并没有足够的说服力,因为其忽略了网络编码运算对于CPU和1/O的消耗,而且没考虑有环链路带来的传输时延等问题。
在Avalanche的基础上,文献[7]通过构建一个基于C++真实P2P应用系统并反复试验说明:网络编码过程中的编码和译码时间不容忽视,实际情况下,运用网络编码并不能让P2P在传输性能上取得很大的提升.即便如此,Avalanche是第一次将网络编码应用于P2P的原型系统,开创了将网络编码与P2P应用相结合的先河,具有很高的参考价值。
参考文献
[1] Li S-Y R, Yeung R W. Linear network coding [J]. IEEE Trans. Inform. Theory, 2000
[2] Koeter R, Medard M. Beyond routing, an algebraic approach to network coding [C]. In 2002 IEEE Infocom, 2002
[3] Koeter R, Medard M. An algebraic approach to network coding[J] . IEEE/ACM Trans. Networking, 2003, 11(5): 782-795
[4] Sanders P, Egner S, Tolhuizen L. Polynomial time algorithms for network information flow[C]. In: Proc. 15th ACM Symposium on Parallel Algorithms and Architectures, 2003.
[5] Ho T, Karger D, Medard M, et al. The benefits of coding over routing in a randomized setting [C]. IEEE International Symposium on Information Theory, Yokohama, Japan p.442, June, 2003
[6] Gkantsidis C, Rodriguez P R. Network coding for large scale content distribution[Z]. Microsoft Research, 2004.
[7] Mea Wang, Baochun Li. How practical is network coding[EB/OL]. /~bli/papers, 2006, 10。