一种丢包重传方法技术

技术编号:37626178 阅读:19 留言:0更新日期:2023-05-18 12:17
本发明专利技术涉及网络通信技术领域,公开了一种丢包重传方法,包括:接收端收到数据包后,判断是否发生丢包;确定发生丢包的丢包编码,并在冗余通道中找到对应的丢包数据进行丢包恢复;当不能进行丢包恢复时,接收端向发送端发送NACK;发送端对不能进行丢包恢复的数据包进行丢包重传;发送端对不能进行丢包恢复的数据包进行丢包重传,包括:确定丢包数据的丢包编码;在发送端找到对应的数据包进行丢包重传。本发明专利技术能够减小重传带来的延时,缓解网络拥塞,降低重传效率。低重传效率。低重传效率。

【技术实现步骤摘要】
一种丢包重传方法


[0001]本专利技术涉及网络通信
,尤其涉及一种丢包重传方法。

技术介绍

[0002]随着网络数据传输技术的发展,数据传输的速度越来越快,但在数据传输的过程中,经常会出现数据包丢失即丢包的情况,现有技术中采用发送端重传丢失数据包的方法来恢复丢失数据。其具体方法是将丢失数据包的序号组成一个丢包数组,然后在预设间隔时间内将此丢包数组包含在丢包重传请求中发回给数据发送端,要求重新发送这些丢失的数据包。如果之后接收到了丢失的数据包,就将其从丢包数组中去掉。
[0003]丢包重传的实现步骤为:接收端收到RTP是实时传输协议(RTP)的一个姐妹协议。)包后,判断是否有丢包发生,如果有则向对端发送重传请求NACK(ACK:Acknowledgement,它是一种正向反馈,接收方收到数据后回复消息告知发送方。NACK:Negative Acknowledgement,则是一种负向反馈,接收方只有在没有收到数据的时候才通知发送方。)。它是一个基于RTCP(Real

time Transport Control Protocol或RTP Control Protocol或简写RTCP)的反馈包。其中,PID为第一个丢失包的序列号,BLP为其它丢失包的序列号相对于PID的信息。发送端在收到NACK后,从发送冗余通道中按所要求的序列号找到包,并发送出去。接收端收到重传包后,首先恢复其原始序列号,然后将其插入到接收队列。
[0004]上述方法的不足在于,若预设间隔时间小于网络延迟时间,就会使接收端在还未接收到数据发送端重传的数据包时就到了下一个预设间隔时间,接收端就会再一次要求发送端重传丢失的数据包,而实际上数据发送端已经重传了丢失的数据包,只是由于网络延迟等原因还没有到达接收端而已。由于重传的数据包也可能会丢失,所以数据发送端不能做任何智能判断和假设,对于每一个重传请求都要响应处理,这就会导致同一个重传的数据包多次重复发送,产生带宽浪费,降低重传效率。

技术实现思路

[0005]本专利技术提供了一种丢包重传方法,能够减小重传带来的延时,缓解网络拥塞,降低重传效率。
[0006]为实现上述目的,本专利技术提供了如下方案:本专利技术提供一种丢包重传方法,包括:接收端收到数据包后,判断是否发生丢包;确定发生丢包的丢包编码,并在冗余通道中找到对应的丢包数据进行丢包恢复;当不能进行丢包恢复时,接收端向发送端发送NACK;发送端对不能进行丢包恢复的数据包进行丢包重传;所述发送端对不能进行丢包恢复的数据包进行丢包重传,包括:确定丢包数据的丢包编码;在发送端找到对应的数据包进行丢包重传。
[0007]在其中一个实施例中,所述判断是否发生丢包,包括:
基于数据包的发送情况确定预设冗余ACK次数阈值;当冗余ACK次数超过预设冗余ACK次数阈值时,判定发生丢包。
[0008]在其中一个实施例中,所述基于数据包的发送情况确定预设冗余ACK次数阈值,包括:确定发送端发送的数据包的数量;基于所述数据包的数量预测接收端接收到的数据包的到达顺序情况;对所述接收端接收到的数据包的到达顺序情况进行分类,分类包括:数据包未丢失、数据包乱序到达未丢失和数据包丢失到达;确定不同类别出现冗余ACK的机率;将不同类别出现冗余ACK的机率输入预设关系模型中,获取预设冗余ACK次数阈值。
[0009]在其中一个实施例中,所述深度学习模型的建立包括:定义输入层和输出层,选取数据包未丢失时出现冗余ACK的机率、数据包乱序到达未丢失时出现冗余ACK的机率和数据包丢失到达时出现冗余ACK的机率作为输入变量,输入维数m=3;以预设冗余ACK次数阈值作为输出变量,输出维数n=1;选择隐层数和隐层单元数,采用单隐层,并确定隐层节点数为4。
[0010]在其中一个实施例中,发送端对不能进行丢包恢复的数据包进行丢包重传后,恢复重传丢包数据的原始序列号,并将重传丢包数据插入到接收队列中;所述接收队列为接收端对接受的数据包进行顺序排列队列。
[0011]在其中一个实施例中,所述发送端对不能进行丢包恢复的数据包进行丢包重传时,还包括:确定发送端收到的NACK的次数;在重传定时时间内,若发送端收到的NACK的次数大于预设次数时,基于快速重传机制重传丢包数据。
[0012]在其中一个实施例中,所述接收端周期性发送所述NACK。
[0013]在其中一个实施例中,还包括:获取实际丢包率;基于实际丢包率与预设丢包率的之间的关系设定预警信息。
[0014]在其中一个实施例中,预先设定预设丢包率矩阵P0,设定P0=(P1,P2,P3),其中,P1为第一预设丢包率,P2为第二预设丢包率,P3为第三预设丢包率,其中P1<P2<P3;预先设定预设预警信息矩阵G0,设定G0=(G1,G2,G3),其中,G1为第一预设预警信息,G2为第二预设预警信息,G3为第三预设预警信息;根据所述压力P与各预设丢包率之间的关系设定预警信息G:当P<P1时,选定所述第一预设预警信息G1作为预警信息G;当P1≤P<P2时,选定所述第二预设预警信息G2作为预警信息G;当P2≤P<P3时,选定所述第三预设预警信息G3作为预警信息G。
[0015]本专利技术的技术效果:对丢包数据先进行恢复再进行重传,减小重传带来的延时,避免产生带宽浪费。
[0016]通过编码在发送端找到对应的数据包进行丢包重传,提高重传效率。
附图说明
[0017]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0018]图1是本专利技术实施例提供的丢包重传方法的流程图;图2是本专利技术实施例提供的发送端对不能进行丢包恢复的数据包进行丢包重传的流程图;图3是本专利技术实施例提供的判断是否发生丢包的流程图;图4是本专利技术实施例提供的基于数据包的发送情况确定预设冗余ACK次数阈值的流程图。
具体实施方式
[0019]下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。以下实施例用于说明本专利技术,但不是用来限制本专利技术的范围。
[0020]在本申请的描述中,需要理解的是,术语“中心”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
[0021]术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。...

【技术保护点】

【技术特征摘要】
1.一种丢包重传方法,其特征在于,包括:接收端收到数据包后,判断是否发生丢包;确定发生丢包的丢包编码,并在冗余通道中找到对应的丢包数据进行丢包恢复;当不能进行丢包恢复时,接收端向发送端发送NACK;发送端对不能进行丢包恢复的数据包进行丢包重传;发送端对不能进行丢包恢复的数据包进行丢包重传,包括:确定丢包数据的丢包编码;在发送端找到对应的数据包进行丢包重传。2.根据权利要求1所述的丢包重传方法,其特征在于,所述判断是否发生丢包,包括:基于数据包的发送情况确定预设冗余ACK次数阈值;当冗余ACK次数超过预设冗余ACK次数阈值时,判定发生丢包。3.根据权利要求2所述的丢包重传方法,其特征在于,所述基于数据包的发送情况确定预设冗余ACK次数阈值,包括:确定发送端发送的数据包的数量;基于所述数据包的数量预测接收端接收到的数据包的到达顺序情况;对所述接收端接收到的数据包的到达顺序情况进行分类,分类包括:数据包未丢失、数据包乱序到达未丢失和数据包丢失到达;确定不同类别出现冗余ACK的机率;将不同类别出现冗余ACK的机率输入预设关系模型中,获取预设冗余ACK次数阈值。4.根据权利要求3所述的丢包重传方法,其特征在于,所述深度学习模型的建立包括:定义输入层和输出层,选取数据包未丢失时出现冗余ACK的机率、数据包乱序到达未丢失时出现冗余ACK的机率和数据包丢失到达时出现冗余ACK的机率作为输入变量,输入维数m=3;以预设冗余ACK次数阈值作为输出变量,输出维数n=1;选择隐层数和隐层单元数,采用单...

【专利技术属性】
技术研发人员:王晓莉邓澍王星汉徐丛丛邱娜杨庆健李国庆张凡锐
申请(专利权)人:华能信息技术有限公司
类型:发明
国别省市:

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

1