一种基于网络编码的传输层控制方法技术

技术编号:15651853 阅读:120 留言:0更新日期:2017-06-17 05:06
本发明专利技术公开了一种基于网络编码的传输层控制方法。其实现方案是:发送端将要传输的数据流进行分组分块,每个块包含blksize个分组,blksize为带宽乘以网络时延的值,再对分组进行编码后发送,接收端接收到分组后,对每个块初始化一个编码系数矩阵C

【技术实现步骤摘要】
一种基于网络编码的传输层控制方法
本专利技术属于通信
,尤其涉及一种基于网络编码的传输层控制方法,可用于提升受干扰情况下无线通信设备的数据传输性能。技术背景无线通信作为当今通信发展的重要领域之一,已经成为通信的主要方式。使用合适的方法去提高无线通信的数据传输效率,提高无线通信在受到公用开放频段的干扰时数据传输的各项性能。常见的开放频段的干扰来源有隐藏终端,采用了异构技术或者非网络的无线设备等。目前,传输层控制TCP方法在无线通信中的应用十分广泛。这是一种面向连接的、可靠的、基于字节流的通信方法,利用传输层控制TCP方法进行数据传输时,通过对分组进行序号标识来保证不发生接收端丢失分组的情况,同时序号也保证了发送到接收端的分组按序接收。接收端需要对已成功收到的分组发回一个相应的确认ACK;如果发送端在合理的往返时间RTT内未收到确认ACK,那么对应的数据包就被假设为已丢失,将会被进行重新发送。同时,传输层控制TCP方法用一个校验和函数来检验数据是否有错误。但是,在两个无线设备间使用传输层控制TCP方法进行数据传输时,会不可避免的受到公用开放频段的干扰,数据传输性能会受到很大的影响,比如吞吐量减小,网络时延增加。
技术实现思路
本专利技术的目的是提出一种基于网络编码的传输层控制方法,以解决无线通信设备在存在干扰的公用开放频段下,数据传输性能受到严重影响的问题,减少数据分组的丢失,提高吞吐量和减小网络时延。为实现上述目的,本专利技术的技术方案包括如下:一种基于网络编码的传输层控制方法,发送端将要传输的数据流进行分组分块,每个块包含若干个分组,所述分组数为带宽乘以网络时延的值,再对分组进行编码后发送,接收端接收到分组后,对每个块初始化一个编码系数矩阵和一个相应的载荷矩阵,并且用分组中的参数进行矩阵的填充;发送对应分组的ACK,当发送端接收到ACK后,获取其中的反馈信息,以此来调度分组的发送和网络参数的更新,若编码系数矩阵和载荷矩阵都满秩,并且块的自由度足够时,对块解码并将数据传输给应用。进一步根据所述基于网络编码的传输层控制方法,包括以下步骤:步骤一:参数的初始化,包括当前往返时间、最小往返时间及丢失分组数;步骤二:发送端进行数据分组、分块与编码;步骤三:发送端发送分组并接收由接收端发送的确认信息;步骤四:若块号blkno不在区间interval_2的范围内,或者(1-p)×onfly[currblk]<blksize不成立,则发送端更新网络参数;步骤五:接收端接收分组并生成编码系数和载荷矩阵;步骤六:接收端更新参数,对数据块进行解码,并对发送端的反馈,完成数据传输。进一步根据所述基于网络编码的传输层控制方法,步骤一中参数的初始化,包括当前往返时间、最小往返时间及丢失分组数;接收端与发送端同时初始化参数,当前往返时间RTT、最小往返时间RTTmin及丢失的分组数losses都初始化为0,要被发送的下一个分组的序列号seqno_nxt初始化为1,所述往返时间为分组由发送端发出,接收端收到分组后再发送确认信息ACK,并被发送端接收到的时间。进一步根据所述基于网络编码的传输层控制方法,步骤二中发送端进行数据分组、分块与编码;发送端先将要发送的数据流或文件分块,每个块包含blksize个分组,blksize大小为带宽乘以网络时延的值,每个分组为固定字节长度,所述blksize初始化为当前带宽与网络时延之积;若数据流或文件的其余部分不足以成为一个完整的分组,则用零填充,确保所有分组的长度相同;所述块不必是完全被分组填满,同时块任一i应该是在块i+1之前被填充;分组与分块完成后,对分组进行编码,编码系数占用一个字节,一个编码分组的产生依赖于该块中的随机编码的所有分组,用于发生错误时的校验;所述发送端在每个要发送的分组中包括:块号、编码系数、序列号seqno、载荷,所述编码系数由一个伪随机数的种子产生器生成,所述载荷为编码或非编码。进一步根据所述基于网络编码的传输层控制方法,步骤三中发送端发送分组并接收由接收端发送的确认信息,发送端完成编码后,将数据分组发送到接收端,再由接收端发送确认信息ACK给发送端;所述接收端对于接收的数据包,发送确认信息ACK,所述ACK中包括:可以解码的块的自由度ack_currdof、接收端已经确认的当前块中的块号ack_currblk、已经得到确认的分组序列号ack_seqno,所述可以解码的块的自由度ack_currdof即块中已收到的编码分组数;若当前时间与最近分组的发送时间time_lastack的差值超过了重发超时时间RTO,则将令牌数tokens重置为最近分组发送前的值,令牌数为发送端含有的令牌个数,一个令牌允许CTCP发送端发送一个数据分组,令牌数以步长1递减一次,同时启动慢启动模式,所述慢启动模式即以步长1递增令牌数tokens;若当前时间与最近分组的发送时间time_lastack的差值未超过重发超时时间RTO,且发送节点收到接收端发送的确认信息ACK,判断是否处于慢启动过程:若已经处于慢启动模式,慢启动模式即以步长1递增令牌数tokens,则将令牌数以步长1递增一次,令牌数为发送端含有的令牌个数,一个令牌允许CTCP发送端发送一个数据分组,同时若当前的令牌数大于慢启动阈值,即发送端允许处于慢启动模式时的最大令牌数,则切换到拥塞避免模式,即通过将tokens的值每次减小一半的速度,来达到控制链路流量的目的;所述CTCP为CodedTCP,即编码TCP;若没有处于慢启动模式,则判断从接受端反馈的ACK信息的序列号是否大于最新的未确认分组的序列号,若是,则可以由得到最新的令牌数tokens的值,若不是,则可以由得到最新的令牌数tokens的值;若当前时间与最近分组的发送时间time_lastack的差值未超过重发超时时间RTO,但发送节点没有收到接收端发送的确认信息ACK,发送端可以得到最新的令牌数tokens,利用最新的令牌数tokens做块的调度,以更好的发送要传输的分组;发送端先初始化一个名为onfly的全零数组,发送端定义一个区间interval_1,将最新的未确认分组的序列号作为该区间的上界,将要被发送的下一个分组的序列号减1后的值作为该区间的下界,若序列号seqno在区间interval_1范围内,且当前时间小于有序列号的分组被发送时的时间戳与1.5倍的当前往返时间RTT之和,则将数组下标为B(seqno)值的元素以步长1递增一次;若序列号seqno不在区间interval_1范围内,发送端定义一个区间interval_2,将当前发送端最小的未确认的块号currblk作为该区间的上界,将当前发送端最小的未确认的块号currblk和发送端要发送的块的数目numblks减去1后的值的和作为该区间的下界,若块号blkno在区间interval_2的范围内,且块号blkno与当前发送端最小的未确认的块号currblk相等,并且满足(1-p)×onfly[currblk]<blksize-currdof的关系,p为短期平均丢包率,则发送一个带有序列号的分组,然后将从块号为blkno中获取的要被发送的下一个分组的序列号seqno_nxt以步长1递增一次;若块号blkno与当前本文档来自技高网...
一种基于网络编码的传输层控制方法

【技术保护点】
一种基于网络编码的传输层控制方法,其特征在于,发送端将要传输的数据流进行分组分块,每个块包含若干个分组,所述分组数为带宽乘以网络时延的值,再对分组进行编码后发送,接收端接收到分组后,对每个块初始化一个编码系数矩阵和一个相应的载荷矩阵,并且用分组中的参数进行矩阵的填充;发送对应分组的ACK,当发送端接收到ACK后,获取其中的反馈信息,以此来调度分组的发送和网络参数的更新,若编码系数矩阵和载荷矩阵都满秩,并且块的自由度足够时,对块解码并将数据传输给应用。

【技术特征摘要】
1.一种基于网络编码的传输层控制方法,其特征在于,发送端将要传输的数据流进行分组分块,每个块包含若干个分组,所述分组数为带宽乘以网络时延的值,再对分组进行编码后发送,接收端接收到分组后,对每个块初始化一个编码系数矩阵和一个相应的载荷矩阵,并且用分组中的参数进行矩阵的填充;发送对应分组的ACK,当发送端接收到ACK后,获取其中的反馈信息,以此来调度分组的发送和网络参数的更新,若编码系数矩阵和载荷矩阵都满秩,并且块的自由度足够时,对块解码并将数据传输给应用。2.根据权利要求1所述基于网络编码的传输层控制方法,其特征在于,包括以下步骤:步骤一:参数的初始化,包括当前往返时间、最小往返时间及丢失分组数;步骤二:发送端进行数据分组、分块与编码;步骤三:发送端发送分组并接收由接收端发送的确认信息;步骤四:若块号blkno不在区间interval_2的范围内,或者(1-p)×onfly[currblk]<blksize不成立,则发送端更新网络参数;步骤五:接收端接收分组并生成编码系数和载荷矩阵;步骤六:接收端更新参数,对数据块进行解码,并对发送端的反馈,完成数据传输。3.根据权利要求2所述基于网络编码的传输层控制方法,其特征在于,步骤一中参数的初始化,包括当前往返时间、最小往返时间及丢失分组数;接收端与发送端同时初始化参数,当前往返时间RTT、最小往返时间RTTmin及丢失的分组数losses都初始化为0,要被发送的下一个分组的序列号seqno_nxt初始化为1,所述往返时间为分组由发送端发出,接收端收到分组后再发送确认信息ACK,并被发送端接收到的时间。4.根据权利要求2或3所述基于网络编码的传输层控制方法,其特征在于,步骤二中发送端进行数据分组、分块与编码;发送端先将要发送的数据流或文件分块,每个块包含blksize个分组,blksize大小为带宽乘以网络时延的值,每个分组为固定字节长度,所述blksize初始化为当前带宽与网络时延之积;若数据流或文件的其余部分不足以成为一个完整的分组,则用零填充,确保所有分组的长度相同;所述块不必是完全被分组填满,同时块任一i应该是在块i+1之前被填充;分组与分块完成后,对分组进行编码,编码系数占用一个字节,一个编码分组的产生依赖于该块中的随机编码的所有分组,用于发生错误时的校验;所述发送端在每个要发送的分组中包括:块号、编码系数、序列号seqno、载荷,所述编码系数由一个伪随机数的种子产生器生成,所述载荷为编码或非编码。5.根据权利要求2-4任一项所述基于网络编码的传输层控制方法,其特征在于,步骤三中发送端发送分组并接收由接收端发送的确认信息,发送端完成编码后,将数据分组发送到接收端,再由接收端发送确认信息ACK给发送端;所述接收端对于接收的数据包,发送确认信息ACK,所述ACK中包括:可以解码的块的自由度ack_currdof、接收端已经确认的当前块中的块号ack_currblk、已经得到确认的分组序列号ack_seqno,所述可以解码的块的自由度ack_currdof即块中已收到的编码分组数;若当前时间与最近分组的发送时间time_lastack的差值超过了重发超时时间RTO,则将令牌数tokens重置为最近分组发送前的值,令牌数为发送端含有的令牌个数,一个令牌允许CTCP发送端发送一个数据分组,令牌数以步长1递减一次,同时启动慢启动模式,所述慢启动模式即以步长1递增令牌数tokens;若当前时间与最近分组的发送时间time_lastack的差值未超过重发超时时间RTO,且发送节点收到接收端发送的确认信息ACK,判断是否处于慢启动过程:若已经处于慢启动模式,慢启动模式即以步长1递增令牌数tokens,则将令牌数以步长1递增一次,令牌数为发送端含有的令牌个数,一个令牌允许CTCP发送端发送一个数据分组,同时若当前的令牌数大于慢启动阈值,即发送端允许处于慢启动模式时的最大令牌数,则切换到拥塞避免模式,即通过将tokens的值每次减小一半的速度,来达到控制链路流量的目的;所述CTCP为CodedTCP,即编码TCP;若没有处于慢启动模式,则判断从接受端反馈的ACK信息的序列号是否大于最新的未确认分组的序列号,若是,则可以由得到最新的令牌数tokens的值,若不是,则可以由得到最新的令牌数tokens的值;若当前时间与最近分组的发送时间time_lastack的差值未超过重发超时时间RTO,但发送节点没有收到接收端发送的确认信息ACK,发送端可以得到最新的令牌数tokens,利用最新的令牌数tokens做块的调度,以更好的发送要传输的分组;发送端先初始化一个名为onfly的全零数组,发送端定义一个区间interval_1,将最新的未确认分组的序列号作为该区间的上界,将要被发送的下一个分组的序列号减1后的值作为该区间的下界,若序列号seqno在区间interval_1范围内,且当前时间小...

【专利技术属性】
技术研发人员:徐洋刘涛刘轩
申请(专利权)人:陕西尚品信息科技有限公司
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1