《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 一種基于網(wǎng)絡(luò)編碼的應(yīng)用層多播算法
一種基于網(wǎng)絡(luò)編碼的應(yīng)用層多播算法
史玉琢1,郝 琨2
摘要: 研究了對(duì)多播網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)編碼的方法,提出了一種基于網(wǎng)絡(luò)編碼的應(yīng)用層多播算法。該算法在計(jì)算網(wǎng)絡(luò)拓?fù)鋾r(shí)考慮了鏈路的花費(fèi)。源端和中間節(jié)點(diǎn)使用隨機(jī)線性編碼方法進(jìn)行編碼,在目的端進(jìn)行解碼操作使得目的端能從亂序的信息和部分丟失的信息中恢復(fù)出原始數(shù)據(jù),提高了網(wǎng)絡(luò)的可靠性。通過對(duì)ns-2的擴(kuò)展并進(jìn)行仿真實(shí)驗(yàn),結(jié)果證明了基于網(wǎng)絡(luò)編碼的應(yīng)用層多播算法是可以提高網(wǎng)絡(luò)的吞吐量,并且和網(wǎng)絡(luò)中最大的吞吐量比較接近。在信息塊不是很大的情況下,編碼延遲率的增長(zhǎng)是在一定的范圍內(nèi)的。
關(guān)鍵詞: 網(wǎng)絡(luò)編碼 吞吐量
Abstract:
Key words :

  摘  要: 研究了對(duì)多播網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)編碼的方法,提出了一種基于網(wǎng)絡(luò)編碼的應(yīng)用層多播算法。該算法在計(jì)算網(wǎng)絡(luò)拓?fù)鋾r(shí)考慮了鏈路的花費(fèi)。源端和中間節(jié)點(diǎn)使用隨機(jī)線性編碼方法進(jìn)行編碼,在目的端進(jìn)行解碼操作使得目的端能從亂序的信息和部分丟失的信息中恢復(fù)出原始數(shù)據(jù),提高了網(wǎng)絡(luò)的可靠性。通過對(duì)ns-2的擴(kuò)展并進(jìn)行仿真實(shí)驗(yàn),結(jié)果證明了基于網(wǎng)絡(luò)編碼的應(yīng)用層多播算法是可以提高網(wǎng)絡(luò)的吞吐量,并且和網(wǎng)絡(luò)中最大的吞吐量比較接近。在信息塊不是很大的情況下,編碼延遲率的增長(zhǎng)是在一定的范圍內(nèi)的。
    關(guān)鍵詞: 多播;網(wǎng)絡(luò)編碼;吞吐量

    隨著信息技術(shù)的不斷發(fā)展,各種通信網(wǎng)絡(luò)與人們工作生活的各個(gè)方面結(jié)合得越來越緊密。網(wǎng)絡(luò)服務(wù)的多樣化以及針對(duì)網(wǎng)絡(luò)傳輸質(zhì)量要求的不斷提高,如何提高現(xiàn)有網(wǎng)絡(luò)資源的利用率,優(yōu)化網(wǎng)絡(luò),已成為當(dāng)今網(wǎng)絡(luò)通信研究的重要課題之一。傳統(tǒng)的網(wǎng)絡(luò)多播中,網(wǎng)絡(luò)節(jié)點(diǎn)只對(duì)數(shù)據(jù)分組進(jìn)行路由或復(fù)制,很難達(dá)到網(wǎng)絡(luò)多播的最大傳播容量。而且多播組上的所有接收者以相同的吞吐量接收數(shù)據(jù)。這樣如果從源到特定的接收者之間的通道上有一個(gè)瓶頸鏈路,則吞吐量將會(huì)被這個(gè)瓶頸鏈路的容量所限制。
  2000年,AHLSWEDE R[1]等人提出了網(wǎng)絡(luò)編碼,其核心思想是在網(wǎng)絡(luò)中的節(jié)點(diǎn)采用不加冗余的編碼。利用網(wǎng)絡(luò)編碼,網(wǎng)絡(luò)節(jié)點(diǎn)可以把收到的多個(gè)數(shù)據(jù)包通過一定的編碼手段重新組包再發(fā)送到下一節(jié)點(diǎn),接收端收到一定數(shù)量的包后通過解碼獲得數(shù)據(jù)。要對(duì)一個(gè)任意給定的多播網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)編碼,目前已有的方法有2種:一種是由Ralf Koeter等人提出的基于代數(shù)結(jié)構(gòu)的網(wǎng)絡(luò)編碼方法[2],這種方法是一種指數(shù)時(shí)間算法。另外一種重要的網(wǎng)絡(luò)編碼方法是由Peter Sanders等人提出的一種多項(xiàng)式時(shí)間算法的網(wǎng)絡(luò)編碼方法[3],這種方法相對(duì)第一種方法而言不僅算法復(fù)雜度簡(jiǎn)化了,而且有一個(gè)很大的優(yōu)點(diǎn),就是在進(jìn)行從源節(jié)點(diǎn)到各個(gè)終端節(jié)點(diǎn)進(jìn)行傳輸信息之前,先選好從源節(jié)點(diǎn)到各個(gè)終端節(jié)點(diǎn)的傳輸路徑。因此,在同樣的信息傳輸速率下減小了對(duì)網(wǎng)絡(luò)資源的占用,同時(shí)使網(wǎng)絡(luò)編碼變得更簡(jiǎn)單。
1 網(wǎng)絡(luò)編碼概念
  網(wǎng)絡(luò)中的節(jié)點(diǎn)對(duì)信息比特流進(jìn)行一定的操作,如模2加、“與”、“或”等,而不僅僅是對(duì)其進(jìn)行復(fù)制轉(zhuǎn)發(fā),稱之為網(wǎng)絡(luò)編碼。在參考文獻(xiàn)[1]中,作者給出了一個(gè)多播網(wǎng)絡(luò)的例子,采用網(wǎng)絡(luò)編碼時(shí),傳輸速率比僅使用路由、轉(zhuǎn)發(fā)時(shí)的要快,并且達(dá)到了多播網(wǎng)絡(luò)的速率上限C=min{ci}(ci從信源s到接收節(jié)點(diǎn)ri的最小割最大流值)。LI S Y R[4]等人隨后表明采用線性的網(wǎng)絡(luò)編碼在有限大的域中能夠達(dá)到速率上限C。圖1(a)為一個(gè)單源二接收多播傳輸網(wǎng)絡(luò)圖,網(wǎng)絡(luò)中邊上標(biāo)的是鏈路的容量,即1 bit/單位時(shí)間。實(shí)際網(wǎng)絡(luò)中容量為K bit/單位時(shí)間的鏈路可拆開成K條容量為1 bit/單位時(shí)間的并行鏈路,因此為簡(jiǎn)單起見,圖1中的所有鏈路的容量都為1 bit/單位時(shí)間。
    假如網(wǎng)絡(luò)中的節(jié)點(diǎn)只對(duì)其收到的信息進(jìn)行復(fù)制轉(zhuǎn)發(fā),則此網(wǎng)絡(luò)多播速率無法達(dá)到2 bit/單位時(shí)間。因?yàn)榻邮展?jié)點(diǎn)3在1個(gè)單位時(shí)間內(nèi)只能轉(zhuǎn)發(fā)從節(jié)點(diǎn)1和2過來的2個(gè)bit中的1個(gè),如果3轉(zhuǎn)發(fā)從1節(jié)點(diǎn)過來的信息,則接收節(jié)點(diǎn)t1,可以收到2 bit/單位時(shí)間,但是接收節(jié)點(diǎn)t2,只能收到1 bit/單位時(shí)間。假設(shè)從源發(fā)向節(jié)點(diǎn)1的信息bit為b1,從源發(fā)向節(jié)點(diǎn)2的信息bit為b2。圖1(b)中的節(jié)點(diǎn)3將分別從節(jié)點(diǎn)1和2過來的信息b1和b2進(jìn)行模2加,然后發(fā)向節(jié)點(diǎn)4,于是接收節(jié)點(diǎn)t1在1個(gè)單位時(shí)間內(nèi)收到了b1和b1+b2,于是可以通過b1+(b1+b2)=b2運(yùn)算來得到b2,也就是說,接收節(jié)點(diǎn)t1,在1個(gè)單位時(shí)間內(nèi)相當(dāng)于收到了b1和b2。同理可以知道接收節(jié)點(diǎn)t2在1個(gè)單位時(shí)間內(nèi)也相當(dāng)于收到了b1和b2于是圖1(b)的傳送方法達(dá)到了多播速率(2 bit/單位時(shí)間)。

 


2 一種基于網(wǎng)絡(luò)編碼的應(yīng)用層多播算法
  從當(dāng)前主要的基于網(wǎng)絡(luò)編碼的應(yīng)用層多播算法的比較分析當(dāng)中可以看到,網(wǎng)絡(luò)編碼應(yīng)用到應(yīng)用層多播需要知道網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)?,F(xiàn)有的幾種機(jī)制都是基于已知的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),基于代數(shù)的構(gòu)造方式提供了網(wǎng)絡(luò)編碼與應(yīng)用層多播融合的最基本的模型,它引入了轉(zhuǎn)移矩陣來描述輸入變量與輸出變量之間的關(guān)系,使得對(duì)于網(wǎng)絡(luò)編碼是怎樣應(yīng)用到應(yīng)用層多播這種機(jī)制有了更加清晰的概念,但是這種模型對(duì)于具體的網(wǎng)絡(luò)拓?fù)錄]有展開。而基于多項(xiàng)式時(shí)間算法,它運(yùn)用最小割最大流算法構(gòu)造網(wǎng)絡(luò)拓?fù)?,使得這種拓?fù)浣Y(jié)構(gòu)能更加有效地傳輸編碼信息。然而,它要求拓?fù)浣Y(jié)構(gòu)是一個(gè)無延時(shí)的理想狀態(tài),因此,這種算法求得的網(wǎng)絡(luò)最大吞吐量可能是理想狀態(tài)的。正是基于以上分析,本文提出了一種基于隨機(jī)方式的網(wǎng)絡(luò)編碼的應(yīng)用層多播算法,在考慮鏈路花費(fèi)的情況下,提高網(wǎng)絡(luò)的吞吐率。
2.1 編碼理論
    源端將原始的m個(gè)信息流編為一組并編碼成n(n≥m)個(gè)大小相等的新信息流;中繼節(jié)點(diǎn)對(duì)隸屬同組的源端編碼信息流進(jìn)行重編碼并轉(zhuǎn)發(fā);目的端收到足夠多的編碼信息流后利用解碼算法恢復(fù)出原始信息流。
2.1.1 源端編碼
    采用隨機(jī)線性碼[5-6]作為網(wǎng)絡(luò)編碼方案,按照產(chǎn)生的先后順序,源端將每m個(gè)信息編為一組,記為x1,x2,…xm,并賦予相同的組標(biāo)識(shí),組標(biāo)識(shí)從0開始遞增,直到增加到某個(gè)上限后重新歸零。當(dāng)源端要發(fā)送該組信息時(shí),從有限域F28[7]中選取m個(gè)隨機(jī)數(shù)作為編碼系數(shù)g1,g2,…gm,并按照式(1)進(jìn)行線性編碼,同時(shí)將編碼系數(shù)和組標(biāo)識(shí)添加到信息頭部。若要產(chǎn)生n個(gè)編碼信息Y共需進(jìn)行n次相同的編碼操作,n 的大小根據(jù)網(wǎng)絡(luò)狀態(tài)決定。
   
2.1.2 中間節(jié)點(diǎn)重編碼
    中間節(jié)點(diǎn)對(duì)一定時(shí)間間隔內(nèi)接收的編碼報(bào)文進(jìn)行存儲(chǔ),并對(duì)具有相同組標(biāo)識(shí)的編碼報(bào)文進(jìn)行重編碼,這樣可以進(jìn)一步降低編碼信息間的線性相關(guān)性,可提高解碼成功概率。假設(shè)中間節(jié)點(diǎn)R收到k個(gè)來自編碼信息Y1,Y2,…, 每個(gè)信息Yi對(duì)應(yīng)的編碼系數(shù)為gi1,gi2,…gim,其中i=1,2,…k。則中間節(jié)點(diǎn)R按照式(2)和式(3)重新產(chǎn)生k個(gè)新的編碼信息及編碼系數(shù)hi1,hi2,…hik并繼續(xù)轉(zhuǎn)發(fā),其中h是針對(duì)從有限域中產(chǎn)生的新的編碼向量kil與原始向量gij的內(nèi)積。
   
2.1.3 目的端解碼
    當(dāng)目的端接收到m(或大于m)組編碼數(shù)據(jù),就可以采用矩陣轉(zhuǎn)換的方式恢復(fù)出原始的m個(gè)信息。假設(shè)接收節(jié)點(diǎn)接收到的m組數(shù)據(jù)分別是Y1,Y2,…Ym,則接收節(jié)點(diǎn)進(jìn)一步判斷這m組數(shù)據(jù)的編碼系數(shù)gi1,gi2,…gim,i=1,2,…m的線性相關(guān)性,若這m組編碼系數(shù)組成的m×m維矩陣滿秩,則可通過公式(4)恢復(fù)出原始的m個(gè)信息。當(dāng)目的端接收的編碼數(shù)據(jù)小于m時(shí),可通過消息反饋機(jī)制通知上游節(jié)點(diǎn)對(duì)緩存的同組編碼數(shù)據(jù)進(jìn)行重編碼操作并轉(zhuǎn)發(fā),直至目的端能恢復(fù)出m個(gè)原始信息為止。
   
2.2 網(wǎng)絡(luò)拓?fù)涞臉?gòu)造
    本文考慮每個(gè)結(jié)點(diǎn)的最小花費(fèi),采用最小費(fèi)用最大流方法來構(gòu)造傳輸拓?fù)渚W(wǎng)。最小費(fèi)用最大流的基本思想:對(duì)于通信網(wǎng)絡(luò)G(V,E),節(jié)點(diǎn)s,t∈V,從s到t的最大流max flow(s,t)。設(shè)有鏈路(i,j)∈E,鏈路容量為bij,cij是通過鏈路(i,j)傳輸1個(gè)單位信息流的費(fèi)用,求從i到j(luò)的最大流f,使得流量的總費(fèi)用C(f)為最小,即:
   
    最小費(fèi)用最大流的求解原理綜合了求最大流的原理和求最短路徑的原理,主要依據(jù)為:若f是流值為W的所有可行流中費(fèi)用最小者,而P是關(guān)于f的所有可擴(kuò)充鏈中費(fèi)用最小的可擴(kuò)充鏈,則沿P以ε調(diào)整f得到的可行流f′是流值為W+ε的所有可行流中費(fèi)用最小的可行流。如果已知f是流值為W的最小費(fèi)用流,關(guān)鍵是要求出關(guān)于f的最小費(fèi)用的可擴(kuò)充鏈。所以本算法在原網(wǎng)絡(luò)圖G的基礎(chǔ)上構(gòu)造一個(gè)新的賦權(quán)有向圖G′(V,E′),使其頂點(diǎn)與G的相同,并將G中的每條弧變成兩個(gè)相反方向的弧。在網(wǎng)絡(luò)G′中尋求可行流f的最小費(fèi)用可擴(kuò)充鏈,即找到節(jié)點(diǎn)i到j(luò)的最短路。算法描述:

3 性能評(píng)價(jià)
    在本實(shí)驗(yàn)中采用最小費(fèi)用最大流方法來構(gòu)造傳輸拓?fù)渚W(wǎng),生成由80個(gè)節(jié)點(diǎn)組成的拓?fù)浣Y(jié)構(gòu)。每個(gè)鏈路的帶寬范圍(1 MB~2 MB)。交換應(yīng)用層數(shù)據(jù)信息的大小(1 KB~35 KB)。網(wǎng)絡(luò)編碼采用有限域F28范圍內(nèi)的隨機(jī)線性碼,源端和中間節(jié)點(diǎn)進(jìn)行編碼和重編碼操作,目的端進(jìn)行解碼操作。所有的仿真實(shí)驗(yàn)在擴(kuò)展的ns-2平臺(tái)上進(jìn)行,仿真時(shí)間為500 s。
    主要從吞吐量和編碼延遲率兩方面考慮該算法的性能。編碼延遲率是所有節(jié)點(diǎn)的編碼時(shí)間總和與端到端的延遲的比率。不同的信息塊的大小對(duì)編碼延遲率的影響也不同,信息塊大小分別是1 KB、10 KB、15 KB。如圖2所示,信息塊越大,每個(gè)節(jié)點(diǎn)的編碼時(shí)間越高,編碼延遲率也相應(yīng)地偏高,但增加的幅度是有限的,平穩(wěn)的。網(wǎng)絡(luò)編碼的目的是為了達(dá)到網(wǎng)絡(luò)的最大吞吐量。如圖3所示,與基于多項(xiàng)式時(shí)間的網(wǎng)絡(luò)編碼的算法比較,二者都比較接近最大吞吐量,但最小費(fèi)用最大流的吞吐量要小于基于多項(xiàng)式算法達(dá)到的吞吐量,因?yàn)楸痉桨赣?jì)算了鏈路的花費(fèi),增大了延遲。但通過實(shí)驗(yàn)證明了網(wǎng)絡(luò)編碼確實(shí)能夠提高網(wǎng)絡(luò)的吞吐量。

 


    網(wǎng)絡(luò)編碼的提出從本質(zhì)上打破了通信網(wǎng)絡(luò)中傳統(tǒng)的信息處理方式,目前已是通信網(wǎng)絡(luò)研究領(lǐng)域中的一個(gè)新的研究熱點(diǎn)。本文提出一種新的基于隨機(jī)方式的網(wǎng)絡(luò)編碼的應(yīng)用層多播算法,在計(jì)算網(wǎng)絡(luò)拓?fù)淇紤]了鏈路的花費(fèi),源端和中間節(jié)點(diǎn)使用隨機(jī)線性編碼方法,在目的端進(jìn)行解碼操作使得目的端能從亂序的信息和部分丟失的信息中恢復(fù)出原始數(shù)據(jù),提高了網(wǎng)絡(luò)的可靠性。通過對(duì)ns-2的擴(kuò)展并進(jìn)行仿真實(shí)驗(yàn),結(jié)果證明了本文提出的算法可以提高網(wǎng)絡(luò)的吞吐量,與網(wǎng)絡(luò)中最大的吞吐量比較接近。在信息塊不是很大的情況下,編碼延遲率的增長(zhǎng)是在一定的范圍內(nèi)的。
參考文獻(xiàn)
[1] AHLSWEDE R, CAI N, LI S Y R,et al. Network information flow[J]. IEEE Transactions on Information Theory, 2000,
46:1204-1216.
[2] KOETER R, MEDARD M. Beyond Routing: An algebraic approach to network coding[C]. 2002 IEEE INFOCOM, 2002.
[3] SANDERS P, EGNER S, TOLHUIZEN L. Polynomial time algorithms for network information flow[C]. In 15th ACM Symposium on Parallel Algorithms and Architectures, 2003:286-294.
[4] LI S Y R, YEUNG R W, CAL N. Linear network coding[J]. IEEE Transactions on Information Theory, 2003,49:371-381.
[5] HO T, KARGER D R, MEDARD M, et a1. The benefits of coding over routing in a randomized setting[C]. IEEE International Symposium on Information Theory-Proceedings, 2003:442.
[6] 楊林.一種集成網(wǎng)絡(luò)編碼的低軌衛(wèi)星網(wǎng)絡(luò)多徑路由方法[J].中南大學(xué)學(xué)報(bào)(自然科學(xué)版),2007,38(5):950-955.
[7] WANG Dan, ZHANG Qian, LIU Jiang Chuan. Partial network coding: theory and application for continuous sensor data collection[C]. 2006 14th International Workshop on Quality of Service(IEEE Cat. No. 06EX1425), 2006:93-101.
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。