1.本发明涉及电子信息与网络通信技术领域,具体涉及一种基于分布式分批稀疏码的网络通信方法。
背景技术:2.传统的网络通信协议,如tcp/ip,是基于分层的网络结构,其中物理层为每一跳提供可靠的通信,当物理层中的包不能被正确解码时,该包被删除或者按照丢包处理。现有技术中,由于实际网络通信中的限制,例如缓冲区大小的限制,物理层中有限的数据块的编码不能保证没有丢包,而在链路层进行重传也不能完全消除丢包。
3.网络编码是基于提高端对端吞吐量这一目的而被提出,其中,中间节点可以产生并发送新的包而不仅是转发接收到的包。使用高效的网络编码方案,如分批稀疏编码。
4.分批稀疏码(batched sparse code,bats)是一种实现多跳无线网络端到端可靠传输的纠删码。bats码由外码和内码组成。外码可以生成任意数量的批次,其中每个批次由m个编码数据包组成。内码是随机线性网络编码,在传输批次的源节点和中间节点上对属于同一批次的数据包进行内码操作。bats码结合了喷泉码与网络编码的特性,具有无码率、低编译码复杂度、高吞吐量的特性。
5.bats码内码的设计重点是通过源节点和中间节点传输的数据包总数来最大化期望的批次转移矩阵的秩,即内码编码参数的选择需要获得全局信息(包括全局路由信息和丢包率)来确定,而确定内码编码参数的问题是一个非线性整数规划(nlip)问题,这类问题在一般情况下是np难的,这种问题的搜索空间很大,计算耗时很长。因此,亟需一种更好的编码方式以提高网络通信效率。
技术实现要素:6.为解决现有技术中存在的问题,本发明提供了一种基于分布式分批稀疏码的网络通信方法,在选择内码编码参数时,不再需要获得链路的全局信息,进而有效解决了上述背景技术中提到的nlip问题。
7.为实现上述目的,本发明提供如下技术方案:一种基于分布式分批稀疏码的网络通信方法,包括如下步骤:
8.s1、源节点根据度分布ψ=(ψ1,
…
,ψk),确定第i个批次的度值;
9.s2、源节点通过选定的度值di选择参与第i个批次编码的原始数据包bi;
10.s3、源节点将选择好的di个原始数据包bi进行本批次的外码编码;
11.s4、源节点进一步将外码编码得到的编码数据包通过随机线性编码将该批次重新编码为若干数量的编码数据包,并将得到的编码数据包发送至下一跳中间节点;
12.s5、中间节点接收到编码数据包后,节点网络层将当前数据包存入编码存储器;
13.s6、节点网络层对编码存储器中的数据包进行网络编码,通过随机线性编码将该批次重新编码为若干数量的编码数据包,生成本批次的内码编码数据包;
14.s7、节点网络层将内码编码数据包存入发送缓存器,将数据包发送至下一跳中间节点,重复步骤s4至步骤s6,直到目的节点接收到编码数据包。
15.进一步的,所述步骤s4和步骤s6中的编码数据包的数量是根据分布式分批稀疏码编码方法获得。
16.进一步的,所述的分布式分批稀疏码编码方法具体包括如下步骤:
17.在文件传输过程中,源节点使用批次大小为m的bats码对k个输入包进行外码编码,对于外码生成的每个批次,源节点进一步通过随机线性编码将该批次重新编码为t1(>0)个包,源节点在第t1次使用链路(v1,v2)时发送批次的t1个包;
18.在中间节点处,考虑节点vk,2≤k≤l,一个批次至少收到一个数据包,中间节点使用随机线性编码生成tk个包,并在tk次使用链路(vk,v
k+1
)时传输数据包;
19.节点v使用内码码率优化公式来确定批次中编码生成的数据包的数量t。
20.进一步的,所述的内码码率优化公式是:
[0021][0022]
其中,k=1,
…
,l,∈为输出链路上节点v的丢包率,对于给定的有限域,l,∈为输出链路上节点v的丢包率,对于给定的有限域有如下定义:
[0023][0024]
e=[0,1,...,m],h1=[0,0,...,0,1],h1q=[α0,α1,...,αm],q-1
e=[0,β1,β2,...,βm]
t
。
[0025]
q=[q
i,j
]
1≤i,j≤m+1
是一个(m+1)
×
(m+1)下三角矩阵:
[0026][0027]
进一步的,所述的目的节点对接收到编码数据包进行译码,恢复出原始数据包。
[0028]
本发明的有益效果是:本发明通过采用分布式分批稀疏码编码方法,在选择内码编码参数时,不再需要获得链路的全局信息,只使用了链路信息和路径长度信息,进而有效解决nlip问题,缩小了nlip问题的搜索空间,实现了网络通信速率以及网络通信质量的提高。
附图说明
[0029]
图1为本发明实施例中单播流网络图;
[0030]
图2为本发明方法步骤流程示意图。
具体实施方式
[0031]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0032]
bats码由外码和内码组成,假设源节点需要通过无线网络向目的节点发送k个数据包,数据包中的每个符号都是包含q个元素的有限域fq中的元素。令整数m≥1为批次数。外码编码可以如下面的规则生成批次序列xi,i=1,2...,xi=b
igi
,其中bi表示由dgi个列组成的矩阵,其中每一列都表示一个随机选择的原始数据包,gi表示一个dgi×
m维的完全随机矩阵,其中矩阵中的每一个元素都是独立同分布的选自有限域fq。内码编码是对批次内的数据包进行线性编码,对于第i个批次,编码数据包yi可以通过下式获得:yi=x
ihi
=b
igihi
,其中hi被称为批次转移矩阵。
[0033]
现有技术中,bats码内码的设计重点是通过源节点和中间节点传输的数据包总数来最大化期望的批次转移矩阵的秩,即内码编码参数的选择需要获得全局信息(包括全局路由信息和丢包率)来确定,而确定内码编码参数的问题是一个非线性整数规划(nlip)问题,这类问题在一般情况下是np难的,这种问题的搜索空间很大,计算耗时很长。
[0034]
本发明中的通信方法中提出了一种分布式分批稀疏码编码方法,在选择内码编码参数时,不再需要获得链路的全局信息,进而有效解决nlip问题,克服了上述现有技术的缺点。本发明整体技术方案:一种基于分布式分批稀疏码的网络通信方法,如图2所示,包括如下步骤:
[0035]
s1、源节点根据度分布ψ=(ψ1,
…
,ψk),确定第i个批次的度值;
[0036]
s2、源节点通过选定的度值di选择参与第i个批次编码的原始数据包bi;
[0037]
s3、源节点将选择好的di个原始数据包bi进行本批次的外码编码;
[0038]
s4、源节点进一步将外码编码得到的编码数据包通过随机线性编码将该批次重新编码为若干数量的编码数据包,编码数据包的数量根据分布式分批稀疏码编码方法获得,并将得到的编码数据包发送至下一跳中间节点;
[0039]
s5、中间节点接收到编码数据包后,节点网络层将当前数据包存入编码存储器;
[0040]
s6、节点网络层对编码存储器中的数据包进行网络编码,通过随机线性编码将该批次重新编码为若干数量的编码数据包,编码数据包的数量根据分布式分批稀疏码编码方法获得,生成本批次的内码编码数据包;
[0041]
s7、节点网络层将内码编码数据包存入发送缓存器,将数据包发送至下一跳中间节点,重复步骤s4至步骤s6,直到目的节点接收到编码数据包;
[0042]
目的节点对接收到的数据包进行译码,恢复出原始数据包。
[0043]
步骤s4和步骤s6中分布式分批稀疏码编码方法的具体实现方式如下:
[0044]
考虑在l跳(l≥2)的单个传输路径上的单播流,如图1所示。该路径由l+1个节点组成,用vk表示,其中k=1,2,...l+1,v1是源节点,v
l+1
是目标节点。直接通信链路只存在于两个连续的节点之间。因此从源节点到目的节点的通信需要中间节点v2,v3,...,v
l
。假设每次使用链路可以传输一个数据包,并且链路上传输的数据包的丢失独立。令
òk为链路(vk,v
k+1
)上的丢包率。假设路径已经建立,并且在传输期间可用。
[0045]
在文件传输过程中,源节点使用批次大小为m的bats码对k个输入包进行编码,对于外码生成的每个批次,源节点进一步通过随机线性编码将该批次重新编码为t1(>0)个包。然后,源节点在第t1次使用链路(v1,v2)时发送批次的t1个包。
[0046]
中间节点处的重编码可以做如下的归纳。考虑节点vk,2≤k≤l,如果一个批次至少收到一个数据包,中间节点使用随机线性编码生成tk个包,并且在tk次使用链路(vk,v
k+1
)时传输这些数据包。否则,该节点不对该批次做处理。
[0047]
由于每个批次上的网络操作是独立的,因此我们使用一个通用批次来表示重编码操作。设x
in
为有限域fq上的矩阵,其中的每一列都是节点vk接收到的一个批次中的包,其中1≤k≤l,对于节点v1,x
in
为外码生成的批次。那么在vk处的重编码可以表示为x
out
=x
in
φk,其中φk是fq上的一个tk列的完全随机矩阵,由于丢包是独立的,因此在节点v
k+1
接收的包的数量遵循二项分布b(tk,1
‑òk)。
[0048]
令hk=[h
k,0
,h
k,1
,...,h
k,m
]为节点vk处批次转移矩阵的秩分布,其中h
k,m
是批次在节点vk处转移矩阵的秩为m的概率。初始状态下,h1=[0,
…
,0,1]。对于k=1,2,...,l,h
k+1
=hkpk,其中是一个下三角矩阵,
[0049][0050]
其中,对于给定的有限域fq,有如下定义:
[0051][0052][0053]
对于目的节点上给定的秩分布h
l+1
,外码可以实现一个速率,该速率非常接近预期的秩
[0054][0055]
其中,n是在源节点上传输的批次数量。在本文中,我们考虑内码参数t1,t2,...,t
l
,使得由一批传输分组的预期总数归一化的最大化。令tk,k=1,2,...,l表是链路(vk,v
k+1
)上传输的一个批次的数据包的数量。
[0056]
一批传输的数据包总数测量在所有网络链路中传输一批数据包的总通信成本。因此,是单位通信成本内码的效率,称为能量效率,通过选
择合适的t1,t2,...,t
l
使得能量效率最大化。由于可以构造如下优化问题:
[0057][0058]
subject totk>0,k=1,...,l
[0059]
该问题是一个非线性整数规划(nlip)问题,通常是np难的。
[0060]
对于k=1,2,...,l,秩分布h
k+1
和期望秩可用下列式子表示:
[0061][0062][0063]
其中,λk是特征值如下的(m+1)
×
(m+1)对角矩阵:
[0064][0065]
q=[q
i,j
]
1≤i,j≤m+1
是一个(m+1)
×
(m+1)下三角矩阵:
[0066][0067]
e=[0,1,...,m],h1=[0,0,...,0,1]。
[0068]
对于1≤k≤l,0≤n≤tk,令令h1q=[α0,α1,...,αm],q-1
e=[0,β1,β2,...,βm]
t
,优化问题可以简化为如下形式:
[0069][0070]
subject totk>0,k=1,...,l
[0071]
其中,k=1,
…
,l,∈为输出链路上节点v的丢包率,对于给定的有限域,l,∈为输出链路上节点v的丢包率,对于给定的有限域有如
下定义:
[0072][0073]
e=[0,1,...,m],h1=[0,0,...,0,1],h1q=[α0,α1,...,αm],q-1
e=[0,β1,β2,...,βm]
t
。
[0074]
q=[q
i,j
]
1≤i,j≤m+1
是一个(m+1)
×
(m+1)下三角矩阵:
[0075][0076]
本发明中提出的分布式分批稀疏码优化方法,其中每个节点vk仅使用本地信息和计算来优化tk。假设每个节点只能知道其两个相邻链路的链路信息,而网络信息和bats码的其他信息,每个节点都是已知的。假设输出链路上节点v的丢包率
ò
可以基于下一跳上的节点反馈信息获得。节点v使用以下优化(内码码率)来优化其批次中传输的数据包的数量t:
[0077][0078]
本发明通过采用分布式分批稀疏码编码方法,在选择内码编码参数时,不再需要获得链路的全局信息,只使用了链路信息和路径长度信息,进而有效的缩小了nlip问题的搜索空间。
[0079]
尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。