曹騫 程軍
(巢湖學(xué)院計(jì)算機(jī)與信息工程學(xué)院,安徽 巢湖 238000)
為了提高組播中傳輸效率,香港中文大學(xué)的R.Alshwede等人[1]提出并證明如果網(wǎng)絡(luò)節(jié)點(diǎn)不只是簡(jiǎn)單的對(duì)傳輸?shù)男畔⑦M(jìn)行存儲(chǔ)和轉(zhuǎn)發(fā),而且可以利用線性編碼方式對(duì)信息進(jìn)行處理,可以讓網(wǎng)絡(luò)組播實(shí)現(xiàn)理論上的最大傳輸流量,我們將這種方法稱為網(wǎng)絡(luò)編碼。網(wǎng)絡(luò)編碼方法可以按照網(wǎng)絡(luò)中節(jié)點(diǎn)對(duì)消息的處理方式分為線性和非線性兩種,也可以按照網(wǎng)絡(luò)編碼系數(shù)的生成方式劃分為隨機(jī)網(wǎng)絡(luò)編碼和確定型網(wǎng)絡(luò)編碼。目前網(wǎng)絡(luò)中有三種通訊模式:?jiǎn)尾?、廣播和組播,其中組播同時(shí)具有單播和廣播的優(yōu)點(diǎn),組播是通過(guò)在發(fā)送者和每一接收者之間實(shí)現(xiàn)點(diǎn)對(duì)多點(diǎn)的網(wǎng)絡(luò)鏈接,加入到同一個(gè)組的主機(jī)可以接收到此組內(nèi)的所有數(shù)據(jù),發(fā)送者同時(shí)給多個(gè)接受者傳輸?shù)臄?shù)據(jù)相同,只復(fù)制一份相同的數(shù)據(jù)包組播的數(shù)據(jù)傳送效率較高,能夠有效地減少網(wǎng)絡(luò)擁塞的出現(xiàn)。傳統(tǒng)的組播通過(guò)構(gòu)造多播樹實(shí)現(xiàn),其構(gòu)造過(guò)程一般是NP完全問(wèn)題。而且傳統(tǒng)網(wǎng)絡(luò)中的中繼節(jié)點(diǎn)只能對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)和轉(zhuǎn)發(fā),不能夠?qū)?shù)據(jù)進(jìn)行編碼處理,在傳輸過(guò)程中不能通過(guò)編碼技術(shù)對(duì)信息進(jìn)行疊加,因此大多數(shù)算法都不能達(dá)到”最大流、最小割”定理確定的理論流量值[2]。下面我們通過(guò)一些例子簡(jiǎn)單說(shuō)明網(wǎng)絡(luò)編碼的原理極其特點(diǎn):
在組播樹中我們可以利用Ford and Fulkerson標(biāo)號(hào)法,通過(guò)尋找源節(jié)點(diǎn)和信宿節(jié)點(diǎn)之間的增廣鏈并進(jìn)行調(diào)整,可以尋找到最大流。對(duì)于單信源多接收的網(wǎng)絡(luò),第一個(gè)查找的信宿節(jié)點(diǎn)可以通過(guò)這種標(biāo)記方法查找到與信源節(jié)點(diǎn)之間的最大流,但是從第二個(gè)信宿節(jié)點(diǎn)開始,在查找開始前需要把第一個(gè)信宿節(jié)點(diǎn)與信源節(jié)點(diǎn)之間用掉的容量從網(wǎng)絡(luò)中去除,因?yàn)閭鹘y(tǒng)網(wǎng)絡(luò)中的節(jié)點(diǎn)只能夠?qū)π畔⑦M(jìn)行簡(jiǎn)單的存儲(chǔ)和轉(zhuǎn)發(fā),并不能夠?qū)π畔⑦M(jìn)行疊加處理和傳輸,所以用組播樹的方式構(gòu)建的最大流方法,只有第一個(gè)信宿節(jié)與信源節(jié)點(diǎn)之間能夠以最大流進(jìn)行傳輸,其他的信宿節(jié)點(diǎn)都不能夠達(dá)到最大流,最終實(shí)際的組播傳輸容量達(dá)不到理論上的最大流最小割定理確定的理論容量上限,所以我們希望網(wǎng)絡(luò)中的節(jié)點(diǎn)不僅僅能夠?qū)π畔⑦M(jìn)行存儲(chǔ)和轉(zhuǎn)發(fā),如果中繼節(jié)點(diǎn)能夠?qū)π枰獋鞑サ亩鄺l信息進(jìn)行處理,將信息進(jìn)行疊加之后進(jìn)行傳輸,在不增加網(wǎng)絡(luò)流量的情況下擴(kuò)充網(wǎng)絡(luò)傳輸?shù)哪芰?。圖1(a)是一個(gè)經(jīng)典的“單信源二信宿”蝴蝶網(wǎng)絡(luò),其中s是信源,t1,t2是信宿,w,u,v1,v2是中繼節(jié)點(diǎn),a和b是信源s發(fā)出的信息,此圖中的最小割為2即組播的最大理論容量為2,信宿t1,t2能夠同時(shí)接收到信源s發(fā)出的2個(gè)單位的信息,但是傳統(tǒng)的路由傳輸方式中,圖中的w節(jié)點(diǎn)只能對(duì)收到的信息進(jìn)行存儲(chǔ)和轉(zhuǎn)發(fā),并不能對(duì)信息進(jìn)行處理或者編碼,在一個(gè)時(shí)間段節(jié)點(diǎn)w只能轉(zhuǎn)發(fā)一種信息,所以與w相鄰的節(jié)點(diǎn)只能接收到一種信息,假定w轉(zhuǎn)發(fā)信息a,則鏈路(w,u),(u,t1)和(u,t2)中傳輸?shù)男畔⒍际?a,此時(shí)信宿t2接收到信息a,并且通過(guò)鏈路(v2,t2)接收到b,但是信宿t1只能接收到信息a,無(wú)法接收到信息b,在此圖中組播不能達(dá)到追到理論傳輸容量。圖1(b)中采用網(wǎng)絡(luò)編碼方式,對(duì)輸入的信息進(jìn)行模二加運(yùn)算,將結(jié)果a+b發(fā)送至節(jié)點(diǎn)w,此時(shí)鏈路(w,u),(u,t1)和(u,t2)中傳輸?shù)男畔⒍际莂+b,信宿t1,t2都能夠接收到a+b,而且信宿t1通過(guò)鏈路(v1,t1)接收到信息 a,通過(guò)信息 a和信息a+b,能夠解出信息b,同理信宿t2也能夠收到信息a和b,采用網(wǎng)絡(luò)編碼的方式,提高了網(wǎng)絡(luò)組播信息的傳輸效率,當(dāng)網(wǎng)絡(luò)編碼的域無(wú)限大,則運(yùn)用網(wǎng)絡(luò)編碼的組播傳輸能夠達(dá)到理論上最大傳輸容量。
圖1 蝴蝶網(wǎng)絡(luò)
傳統(tǒng)的組播中,信息有可能過(guò)度集中在某些節(jié)點(diǎn),或者造成某一鏈路的流量過(guò)大,使得網(wǎng)絡(luò)鏈路的負(fù)載不均衡,利用網(wǎng)絡(luò)編碼技術(shù),能夠提高網(wǎng)絡(luò)的負(fù)載均衡,平均的使用網(wǎng)絡(luò)鏈路的容量,避免網(wǎng)絡(luò)擁塞,在節(jié)點(diǎn)平均讀書較大時(shí),效果更加明顯。圖2(a)是一個(gè)單源三接收網(wǎng)絡(luò),每條鏈路的容量為2,圖2(b)中表示的是利用基于多播樹的路由多播,圖中用到了5條鏈路,每條鏈路上的可行流為2,消耗總帶寬為5*2=10,在圖2(c)中采用網(wǎng)絡(luò)編碼進(jìn)行多播,為了平均鏈路流量的使用,盡量使用了網(wǎng)絡(luò)中的可能鏈路,本例中一共9條傳輸鏈路,相比傳統(tǒng)多播技術(shù)多使用了4條鏈路,每條鏈路的可行流為1,消耗的總帶寬為9*1=9,相比于傳統(tǒng)的多播方法,節(jié)省了10%的帶寬消耗,每條鏈路的平均流量下降到1,鏈路的使用更加合理,均衡了網(wǎng)絡(luò)負(fù)載,提高了帶寬利用率。
圖2 單源三接收網(wǎng)絡(luò)
利用網(wǎng)絡(luò)編碼進(jìn)行數(shù)據(jù)傳輸在一定程度上可以提高數(shù)據(jù)的安全性,在傳統(tǒng)的網(wǎng)絡(luò)傳輸中,數(shù)據(jù)有可能被竊聽,受到被動(dòng)攻擊,例如在圖3(a)表示的結(jié)構(gòu)中,竊聽者可以竊聽網(wǎng)絡(luò)中的任意一條信道,獲取傳輸內(nèi)容。圖3(b)中我們利用網(wǎng)絡(luò)編碼方式進(jìn)行組播,信源不再直接發(fā)送a和b而是發(fā)送a+b和a+2b對(duì)消息進(jìn)行混合,在單獨(dú)的每一條路徑上都不會(huì)出現(xiàn)原始的信源消息a或者b,此時(shí)竊聽者在竊聽網(wǎng)絡(luò)中的任一信道(假設(shè)竊聽者只能竊聽一個(gè)信道)獲得的傳輸數(shù)據(jù)是難以破一出信源消息a和b的,信宿只有在接收到足夠多的消息后,從中譯出信源消息。而且在網(wǎng)絡(luò)編碼技術(shù)中可以引入數(shù)據(jù)加密技術(shù),對(duì)部分消息數(shù)據(jù)進(jìn)行加密,并且將加密后的消息數(shù)據(jù)和未加密的消息數(shù)據(jù)充分混合,此時(shí)只要竊聽者竊聽的信道數(shù)量小于信源消息的總數(shù),竊聽者就很難破譯出信源消息,信宿接收到足夠的消息數(shù)據(jù)時(shí),同時(shí)得到加密的消息數(shù)據(jù)和未加密的消息數(shù)據(jù),可以直接譯出未加密的信源消息,并且可以譯出加密的信源消息,利用解密算法對(duì)其解密,得到信源要傳遞的全部消息。通過(guò)數(shù)據(jù)編碼的方法在沒(méi)有增加網(wǎng)絡(luò)容量的情況下提高了數(shù)據(jù)傳輸?shù)陌踩?。圖3(c)中采用這種技術(shù),將信源要傳遞的消息b經(jīng)過(guò)數(shù)據(jù)加密技術(shù)轉(zhuǎn)換層密文k,此時(shí)竊聽者在單一信道上不能竊聽到信源消息a,只能竊聽到消息k,但是無(wú)法破解密文k,在信宿節(jié)點(diǎn)通過(guò)足夠多的消息可以譯出消息a和k,再采用解密技術(shù)將k解密成明文b,這種方法提高了網(wǎng)絡(luò)的安全性,而且沒(méi)有網(wǎng)絡(luò)鏈路的開銷,但是這種技術(shù)增加了加密和解密的計(jì)算量,在實(shí)際的使用過(guò)程,對(duì)消息全部加密成本太高,所以可以選擇對(duì)發(fā)送的消息進(jìn)行部分加密,附加在發(fā)送的消息后面,減少加密和解密運(yùn)算的成本。
圖3 線性網(wǎng)絡(luò)編碼
在無(wú)線網(wǎng)絡(luò)中通過(guò)對(duì)傳輸?shù)男畔⑦M(jìn)行編碼,將信息疊加之后進(jìn)行傳輸,這樣傳輸單位信息所需要的發(fā)射功率就會(huì)減少,無(wú)線網(wǎng)絡(luò)的能量消耗會(huì)下降。無(wú)線網(wǎng)絡(luò)很多節(jié)點(diǎn)都是依靠電池供電,功率的降低能夠延長(zhǎng)無(wú)線設(shè)備的續(xù)航時(shí)間。無(wú)線網(wǎng)絡(luò)中還可以采用網(wǎng)絡(luò)編碼的方法增強(qiáng)網(wǎng)絡(luò)的安全性,在無(wú)線網(wǎng)絡(luò)中數(shù)據(jù)的傳輸容易被竊聽和攻擊,在安全級(jí)別要求較高時(shí)我們可以結(jié)合密碼學(xué)對(duì)數(shù)據(jù)進(jìn)行加密處理再進(jìn)行傳輸。數(shù)據(jù)加密技術(shù)計(jì)算復(fù)雜度較大,帶來(lái)的數(shù)據(jù)冗余也較多,從而影響數(shù)據(jù)的傳輸效率,并且數(shù)據(jù)在解碼的時(shí)候?qū)邮展?jié)點(diǎn)的計(jì)算能力和存儲(chǔ)能力也有較高的要求,整個(gè)的傳輸成本比較高,不適合普通信息和數(shù)據(jù)的傳輸中使用。
網(wǎng)絡(luò)編碼能夠在一定程度上提高無(wú)線網(wǎng)絡(luò)傳輸?shù)陌踩阅?。相比于傳統(tǒng)傳輸方法,在引入了數(shù)據(jù)編碼技術(shù)之后,無(wú)線網(wǎng)絡(luò)中傳輸?shù)氖钳B加之后的數(shù)據(jù)而不是原始數(shù)據(jù),數(shù)據(jù)的防竊聽能力加強(qiáng)了。即使有人試圖從采用了網(wǎng)絡(luò)編碼技術(shù)的網(wǎng)絡(luò)中竊聽數(shù)據(jù),只要監(jiān)聽者沒(méi)有竊聽到足夠多的數(shù)據(jù)或者沒(méi)有足夠強(qiáng)大的運(yùn)算能力,就不能譯出信源傳輸?shù)脑夹畔ⅲm然安全的級(jí)別不能夠達(dá)到利用數(shù)據(jù)加密或者哈希函數(shù)的方法運(yùn)算的等級(jí),但是低安全級(jí)別的數(shù)據(jù)傳輸中還是有很廣的應(yīng)用前景。
進(jìn)行網(wǎng)絡(luò)編碼需要網(wǎng)絡(luò)中的節(jié)點(diǎn),需要具有運(yùn)算和編碼的能力,傳統(tǒng)的節(jié)點(diǎn)設(shè)備可能不具備這些功能,而且網(wǎng)絡(luò)編碼涉及到大量的編碼運(yùn)算,而且運(yùn)算復(fù)雜度和編碼規(guī)則相關(guān),在增加通信能力的同時(shí)也增加了網(wǎng)絡(luò)中節(jié)點(diǎn)計(jì)算的復(fù)雜性,在某些情況下還需要在編碼前進(jìn)行信號(hào)的轉(zhuǎn)換,這些都可能造成網(wǎng)絡(luò)編碼對(duì)網(wǎng)絡(luò)帶來(lái)更高的計(jì)算成本,也提高網(wǎng)絡(luò)節(jié)點(diǎn)的制造成本,而且目前主要針對(duì)單信源多信宿的網(wǎng)絡(luò)情況進(jìn)行網(wǎng)絡(luò)編碼研究,對(duì)于實(shí)際的網(wǎng)絡(luò)組播情況中多信源的多源網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)編碼還是具有相當(dāng)?shù)碾y度。如果傳輸?shù)男畔⑦M(jìn)行了編碼,信宿節(jié)點(diǎn)接收到的某些信息并不能直接解碼,只有在接收到足夠的信源發(fā)出的信息后,才能夠解碼得到源信息,對(duì)網(wǎng)絡(luò)傳輸?shù)耐教岢隽烁叩囊蟆6以谟行┚W(wǎng)絡(luò)中并不是所有具有多輸入鏈路的節(jié)點(diǎn)都需要網(wǎng)絡(luò)編碼,如果對(duì)所有具有多條鏈路的節(jié)點(diǎn)都進(jìn)行網(wǎng)絡(luò)編碼,同樣會(huì)產(chǎn)生冗余,因?yàn)榫W(wǎng)絡(luò)編碼的主題是輸出鏈路而不是節(jié)點(diǎn)。例如在圖4中,由于節(jié)點(diǎn)v3的存在使得在不用給節(jié)點(diǎn)w進(jìn)行網(wǎng)絡(luò)編碼的情況下也可以讓信宿節(jié)點(diǎn)同時(shí)收到信源節(jié)點(diǎn)發(fā)送的信息a和b,所以在一些網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)上保證組播速率達(dá)到最大理論值的前提下,只在必須的網(wǎng)絡(luò)鏈路上使用網(wǎng)絡(luò)編碼技術(shù),優(yōu)化網(wǎng)絡(luò)編碼減少網(wǎng)絡(luò)中的開銷。
圖4 不需要編碼的網(wǎng)絡(luò)
網(wǎng)絡(luò)編碼是網(wǎng)絡(luò)通信研究中的重大突破,是下一代網(wǎng)絡(luò)的關(guān)鍵技術(shù),有著很好的應(yīng)用前景。目前對(duì)于網(wǎng)絡(luò)編碼的研究和驗(yàn)證都基于理想化的模型,很多的網(wǎng)絡(luò)編碼技術(shù)需要在實(shí)際的網(wǎng)絡(luò)環(huán)境中進(jìn)行檢驗(yàn)。而且隨著網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的增大,網(wǎng)絡(luò)編碼的速度就會(huì)變慢,對(duì)于資源的消耗變大,一些研究中已經(jīng)引入遺傳算法對(duì)網(wǎng)絡(luò)編碼進(jìn)行優(yōu)化。網(wǎng)絡(luò)編碼和糾錯(cuò)碼、數(shù)字簽名技術(shù)之間的聯(lián)系,非線性網(wǎng)絡(luò)編碼與安全網(wǎng)絡(luò)構(gòu)建之間的聯(lián)系,這些都是以后網(wǎng)絡(luò)編碼研究新的方向。綜上所述,網(wǎng)絡(luò)編碼技術(shù)在未來(lái)網(wǎng)絡(luò)技術(shù)的發(fā)展中有著很重要的地位,網(wǎng)絡(luò)編碼技術(shù)會(huì)有更好的應(yīng)用前景,對(duì)網(wǎng)絡(luò)的組播傳輸效率、網(wǎng)絡(luò)安全、數(shù)據(jù)糾錯(cuò)都會(huì)帶來(lái)新的發(fā)展。
[1]AHLSWEDER,CAIN,LISY-R.etal Network information flow[J].IEEE Transactions on Information Theory,2000,(4):1204-1206.
[2]黃佳慶.網(wǎng)絡(luò)編碼原理[M].北京:國(guó)防工業(yè)出版社,2012.