基于網絡編碼的多信源組播通信系統
系統實現的整體設計方案說明
本文引用地址:http://www.104case.com/article/118085.htm如圖2所示,是擬采用的組播通信網絡的拓撲圖。為了易于在工程上實現,將網絡編碼路由器分為編碼路由器EC和解碼路由器DC,分別專門負責編碼和解碼。具體講,如圖2所示,信源S1,S2,S3發送數據包,編碼路由器EC0和EC1負責將接收到的數據包以隨機的系數進行線性編碼后發送給組播路由器R,注意,這里的組播路由器更準確地說是轉發路由器,因為它的功能只是將收到的數據包轉發到其三個輸出端口,而沒有IGMP(組播管理)和相應的組播路由功能。當然,我們也可以直接在EC上實現轉發的功能,增加R的原因是考慮到NetFPGA端口數量的限制(每塊NetFPGA只有4個端口)。解碼路由器DC接收編碼的數據并解碼,并將它發送給下游的信宿主機。
編碼策略與方案
作為一種編碼結構的提出,我們將編碼只限于不同信源數據包之間,暫不考慮信源包內部編碼。相同信源的數據包之間分“代”,以便在解碼時區分信息先后順序[6]。不同信源的包之間不區分代的概念。
定義:為了討論的方便性和簡潔性,我們將信源S1的第1代記為S(1,1),信源S2的第3代記為S(2,3),??依此類推。依據包頭和緩存,每個信源的代的編號從0開始,至1023結束,即信源n的最大的代編號為S(n,1023)。
在編碼路由器EC上對不同信源的IP數據包進行編碼,編碼系數矢量隨機選擇,編碼方法是線性編碼。例如,在上圖中的編碼路由器EC0,設兩個鏈路的輸入的全局編碼向量為:

,由于只有兩個信源之間的編碼有且只有一條邊輸出,則本地編碼向量為(α β),依據文章[7]的公式:

out(e)=(α β)=αS(1,x)+βS(2,y)。編碼后的數據以NCP(network coding protocol)包頭封裝,然后再封裝在IP數據報中,如圖3所示。
為減小相應的編碼負擔和提高編碼效率,我們只對網絡中的IP數據報中的有效載荷進行編碼(已經編碼過的數據包可以再進行編碼),不對ARP等其他數據包編碼。在編碼路由器中,我們為不同的輸入通道開辟不同的FIFO以進行順序存取和編碼,編碼流程如圖4所示。
轉發(組播)路由器R工作流程
在實際的應用中,R應該是具有組播功能的路由器,即可以運行網際組播管理協議IGMP和多播路由選擇協議DVMRP等,從而它可以知道網絡的局部的拓撲和滿足組播成員的要求。為了初期容易實現,我們將其功能簡化為轉發功能(即廣播功能),具體工作流程如圖5。
評論