发明名称 一种基于网络编码的无线协同广播/组播方法
摘要 本发明公开了一种基于网络编码的无线协同广播/组播方法,该方法利用网络编码方式从用户丢失的数据包中组合构造用以重传的网络编码数据包,并通过协同用户协助第一阶段未能正确接收到所有数据包的用户接收所有的数据包,该方法分三个阶段来实现:第一阶段为数据源发送数据包阶段,第二阶段为协同用户选择、指定请求与网络编码配置阶段,第三阶段为协同传输网络编码数据包阶段。利用网络编码和用户协同构造重传网络编码数据包能大大减少重传次数,提高系统效率。
申请公布号 CN102075311B 申请公布日期 2013.08.07
申请号 CN201010607024.5 申请日期 2010.12.27
申请人 中国人民解放军理工大学 发明人 余江;徐友云;谢威;宋留斌;田辉
分类号 H04L1/18(2006.01)I;H04L1/06(2006.01)I;H04W4/06(2009.01)I 主分类号 H04L1/18(2006.01)I
代理机构 江苏圣典律师事务所 32237 代理人 程化铭
主权项 1.一种基于网络编码的无线协同广播/组播方法,其特征在于:该方法分三个阶段实现:第一阶段为数据源发送数据包阶段,第二阶段为协同用户选择、指定请求与网络编码配置阶段,第三阶段为协同传输网络编码数据包阶段,所述数据源发送数据包阶段包括以下步骤:步骤1.1,用户开机时向数据源发送上线请求,数据源收到用户的上线请求后向用户发送附带用户编号的确认上线信息,所述用户编号为数据源根据用户上线的先后次序,从1至K编号,其中K为正整数,步骤1.2,数据源发送附有拟发送数据包个数N参数的开始信标信号,其中N表示正整数,所有用户检测开始信标信号,步骤1.3,数据源连续发送N个数据包,所有用户开始接收数据包,所述数据包包含数据包序号信息;所述协同用户选择、指定请求与网络编码配置阶段包括以下步骤:步骤2.1,用户按编号次序轮流发送含有丢包序号的丢包信息包,步骤2.2,协同用户及指定用户选择:将任一丢包最少的用户选为协同用户,其他丢包用户为被协同用户,选择已正确接收协同用户所丢数据包的任一用户作为指定用户,若协同用户没有丢包,则不需指定用户和指定请求,若有未选为协同用户的其他所有在第一阶段正确接收所有N个数据包的用户为不协同用户,步骤2.3,网络编码配置包计算与传输:协同用户根据网络编码配置包计算方法和所有用户的丢包矩阵计算得出网络编码配置包,所述网络编码配置包计算方法为:网络编码配置包中含有所有编码数据包的各自的编码序号集合,编码数据包的编码序号集合由以下算法得出:步骤2.3.1:根据所有用户丢包信息,协同用户构造丢包矩阵H,所述丢包矩阵为:<img file="FDA00003108548800011.GIF" wi="771" he="463" />所述H为丢包矩阵;i为H的行序号,表示数据包的序号;j为H的列序号,表示被协同用户的编号;元素h<sub>i,j</sub>表示用户j接收数据包i的情况,h<sub>i,j</sub>等于0表示正确接收,等于1表示丢包,初始化网络编码数据包序号m=0;步骤2.3.2:若矩阵H全为“0”元素,则网络编码配置结束,继续步骤2.4;若丢包矩阵存在至少一个“1”元素,令m=m+1,令编码序号集合C<sub>m</sub>=φ即为空集,并则继续步骤2.3.3,步骤2.3.3:寻找H中含“1”最多行,令q等于该行序号,并将第q行所有的“1”置为“-1”,步骤2.3.4:初始化j=1,j为列序号,步骤2.3.5:k=1,k为行序号,当j&gt;K时,跳至步骤2.3.8,步骤2.3.6:若h<sub>q,j</sub>=-1,则令j=j+1,跳至步骤2.3.5;若h<sub>q,j</sub>=0,则继续步骤2.3.7,步骤2.3.7:从第j列的第k行开始向最后一行进行“1”元素寻找,如果未找到“1”元素,则令j=j+1,跳至步骤2.3.5;如果找到元素“1”,令k等于该元素的行序号,并分别判断第k行中每个的“1”元素所在的列是否有元素“-1”:有,则令k=k+1并跳至步骤2.3.7;无,则将第k行中所有的“1”变为“-1”,令j=j+1,并跳至步骤2.3.5,步骤2.3.8:输出编码序号集合:将矩阵H中含“1”的所有行序号加入到第m个编码序号集合C<sub>m</sub>中;更新矩阵H,将矩阵中所有“-1”置为“0”;返回步骤2.3.2;步骤2.4,传输网络编码配置:协同用户将附有指定请求的网络编码配置包发送给其他所有用户,所述指定请求包括指定用户编号和需要发送的指定数据包,所述指定数据包为协同用户丢失的数据包,若有被协同用户或指定用户未能正确接收该传输网络编码配置数据包,则立即反馈错误确认信号,协同用户重传,直至所有的被协同用户和指定用户都正确接收,步骤2.5,指定用户依据指定数据包序号大小依次向协同用户发送指定数据包,协同用户接收,若协同用户未能正确接收,则立即反馈错误确认信号,指定用户立即重传直至协同用户正确接收,所述协同传输网络编码数据包阶段包括以下步骤:步骤3.1,协同用户编码,包括以下步骤:步骤3.1.1,初始化网络编码包序号t=0,步骤3.1.2,令t=t+1,当t大于m时,编码结束并进入步骤3.2,t小于等于m时继续步骤3.1.3,步骤3.1.3,初始化第t个网络编码数据包信息位为全0;步骤3.1.4,判断第t个编码序号集合C<sub>t</sub>是否为空,是,则输出第t个网络编码数据包并跳至步骤3.1.2;否,则继续步骤3.1.5,步骤3.1.5,从编码序号集合C<sub>t</sub>中取一个元素,令x等于该元素,并将x从编码序号集合C<sub>t</sub>中去除,步骤3.1.6,更新第t个网络编码数据包信息位为原第t个网络编码数据包信息位与序号为x的数据包信息位模二加结果,跳至步骤3.1.4,步骤3.2,网络编码数据包的传输:协同用户连续发送所有m个的网络编码数据包,各个被协同用户连续接收,若有被协同用户未能正确接收该包,则立即反馈错误确认信号,协同用户立即重传直至所有被协同用户正确接收到该包,步骤3.3,被协同用户译码,分为以下步骤:步骤3.3.1,判断是否存在未恢复的丢包,没有则译码结束,有则继续步骤3.3.2,步骤3.3.2,取任意一个未恢复的丢包的数据包序号a,步骤3.3.3,找出含有数据包序号为a的网络编码数据包b,步骤3.3.4,将网络编码数据包b信息位与被协同用户已接收到的网络编码数据包b对应的所有数据包信息位进行模二加,即可译码恢复出数据包a信息位,跳至步骤3.3.1。
地址 210007 江苏省南京市白下区海福巷1号