一种检测分组丢失的方法及终端技术

技术编号:20520002 阅读:40 留言:0更新日期:2019-03-06 03:46
本发明专利技术提供一种检测分组丢失的方法及终端,接收接收端反馈的信息,所述信息包括接收端未接收到分组的最小序号、接收端已接收到分组的最大序号以及所述最小序号对应的分组之后的连续N个分组的接收状态,所述N不大于所述最大序号与所述最小序号的差值;根据接收端反馈的信息,确定接收端未接收到的分组;对于每个未接收到的分组,根据所述接收端已接收到分组的最大序号与发送所述未接收到的分组时已发送分组的最大序号的差值判断所述未接收到的分组是否丢失,实现一次快速检测出多个分组的丢失,有效减少甚至避免SACK的产生。

【技术实现步骤摘要】
一种检测分组丢失的方法及终端
本专利技术涉及网络通信领域,尤其涉及一种检测分组丢失的方法及终端。
技术介绍
在网络通信中,发送端和接收端进行分组的传送时,会存在分组丢失的情况,如果发送端判断某个分组丢失了,会进行重传。目前,判断分组丢失的方法通常有如下几种:第一种是通过重传超时定时器RTO检测分组丢失,当接收端对某个分组的反馈超过RTO时间时,则判断该分组丢失,并且RTO会随着该分组重传次数的增加进行指数退避式的增大,这种检测算法在大多数情况下表现迟钝,影响传输的实时性以及网络的整体吞吐量;第二种是发送端连续收到三个对当前最小未确认序号分组的ACK时,则标记该分组丢失,并进行快速重传,这种方法在一定程度上优于RTO算法,缺点在于需要对端至少发送三个ACK分组,存在一定网络消耗,并且只能用于判断最小未确认序号分组的丢失,即一次只能判断一个分组丢失,当链路丢失率较高时,检测效率低下;第三种是通过接收端反馈SACK进行批量分组丢失检测,这种方法仅适用于特定场景,比如:接收端接收窗口堆积大量分组,或者分组接收状态呈现大量空洞,即分组间隔性的丢失,该方法无论从计算量还是网络流量上都需要较大的消耗,并且,当SACK丢失时,性能影响加剧,因此,不能作为常态检测方法。所以,上述检测网络通信中分组丢失的方法均存在明显的局限性,特别是在弱网络场景下,因为链路不稳定,无法及时检测分组丢失,直接影响网络传输的实时性以及吞吐量。
技术实现思路
本专利技术所要解决的技术问题是:提供一种检测分组丢失的方法及终端,可一次快速检测多个分组丢失,有效减少甚至避免SACK的产生,提高网络传输实时性和吞吐量。为了解决上述技术问题,本专利技术采用的一种技术方案为:一种检测分组丢失的方法,包括步骤:S1、接收接收端反馈的信息,所述信息包括接收端未接收到分组的最小序号、接收端已接收到分组的最大序号以及所述最小序号对应的分组之后的连续N个分组的接收状态,所述N不大于所述最大序号与所述最小序号的差值;S2、根据接收端反馈的信息,确定接收端未接收到的分组;S3、对于每个未接收到的分组,根据所述接收端已接收到分组的最大序号与发送所述未接收到的分组时已发送分组的最大序号的差值判断所述未接收到的分组是否丢失。为了解决上述技术问题,本专利技术采用的另一种技术方案为:一种检测分组丢失的终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:S1、接收接收端反馈的信息,所述信息包括接收端未接收到分组的最小序号、接收端已接收到分组的最大序号以及所述最小序号对应的分组之后的连续N个分组的接收状态,所述N不大于所述最大序号与所述最小序号的差值;S2、根据接收端反馈的信息,确定接收端未接收到的分组;S3、对于每个未接收到的分组,根据所述接收端已接收到分组的最大序号与发送所述未接收到的分组时已发送分组的最大序号的差值判断所述未接收到的分组是否丢失。本专利技术的有益效果在于:接收端反馈多个分组的接收状态以及已接收到分组的最大序号,发送端对于每个未接收到的分组,根据所述接收端已接收到分组的最大序号与发送所述未接收到的分组时已发送分组的最大序号的差值判断所述未接收到的分组是否丢失,实现一次快速检测出多个分组的丢失,使得现有技术中串行化的处理优化为并行化的处理,大大提升分组重传效率,从而使得接收端分组堆积的几率大大减少甚至长期保持在一个合理范围,因此,有效减少甚至避免SACK的产生。附图说明图1为本专利技术实施例的检测分组丢失的方法的流程图;图2为本专利技术实施例的检测分组丢失的终端的结构示意图;标号说明:1、检测分组丢失的终端;2、存储器;3、处理器。具体实施方式为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。本专利技术最关键的构思在于:接收端反馈多个分组的接收状态以及已接收到分组的最大序号,发送端对于每个未接收到的分组,根据所述接收端已接收到分组的最大序号与发送所述未接收到的分组时已发送分组的最大序号的差值判断所述未接收到的分组是否丢失。请参照图1,一种检测分组丢失的方法,包括步骤:S1、接收接收端反馈的信息,所述信息包括接收端未接收到分组的最小序号、接收端已接收到分组的最大序号以及所述最小序号对应的分组之后的连续N个分组的接收状态,所述N不大于所述最大序号与所述最小序号的差值;S2、根据接收端反馈的信息,确定接收端未接收到的分组;S3、对于每个未接收到的分组,根据所述接收端已接收到分组的最大序号与发送所述未接收到的分组时已发送分组的最大序号的差值判断所述未接收到的分组是否丢失。从上述描述可知,本专利技术的有益效果在于:接收端反馈多个分组的接收状态以及已接收到分组的最大序号,发送端对于每个未接收到的分组,根据所述接收端已接收到分组的最大序号与发送所述未接收到的分组时已发送分组的最大序号的差值判断所述未接收到的分组是否丢失,实现一次快速检测出多个分组的丢失,使得现有技术中串行化的处理优化为并行化的处理,大大提升分组重传效率,从而使得接收端分组堆积的几率大大减少甚至长期保持在一个合理范围,因此,有效减少甚至避免SACK的产生。进一步的,所述步骤S1中接收端反馈的信息为ACK报文,所述ACK报文包括一长度为N的位图,所述位图从左到右的N个bit分别表示所述最小序号对应的分组之后依次递增的N个分组的接收状态。由上述描述可知,在接收端反馈的ACK报文中增加长度为N的位图实现对多个分组的接收状态的反馈,增加了接收端一次能够反馈接收状态的分组的个数,并且位图占用空间小,能够保证ACK报文不占用太大的传输空间。进一步的,所述步骤S2具体包括:读取ACK报文中包含的接收端未接收到分组的最小序号和位图信息,根据位图信息中各bit的值确定接收端未接收到的分组。由上述描述可知,通过读取ACK报文中的接收端未接收到分组的最小序号和位图信息,能够一次性快速地确定出接收端未接收到的多个分组,效率高。进一步的,所述步骤S3具体包括:为每个未接收到的分组分别设置一计数器count,并设置初始值为0;令max_ack_seq表示接收端已接收到分组的最大序号,max_seq表示发送所述未接收到的分组时已发送分组的最大序号,计算X=max_ack_seq-max_seq;如果X>0,则令所述未接收到的分组的max_seq=max_ack_seq,所述未接收到的分组的count=count+X;如果count大于或者等于3,则判断所述未接收到的分组丢失。由上述描述可知,通过为每个未接收到的分组分别设置一初始值为0的计数器,并在每次接收到接收端的反馈时,对每个未接收到的分组对应的计数器进行更新,当所述计数器的值满足一经验值时,则判断对应的分组丢失,保证了分组丢失判断的高效准确性。进一步的,所述步骤S3还包括:如果X=0,则判断所述未接收到的分组是否为所述最小序号对应的分组,如果是,则令所述未接收到的分组的count=count+1;如果count大于或者等于3,则判断所述未接收到的分组丢失。由上述描述可知,当X=0时,表明进行的是分组重传,发送端并未增加新的分组的传输,采用加1的方式对count进行更新,并且是只对最小序号对应的分组的count进行本文档来自技高网
...

【技术保护点】
1.一种检测分组丢失的方法,其特征在于,包括步骤:S1、接收接收端反馈的信息,所述信息包括接收端未接收到分组的最小序号、接收端已接收到分组的最大序号以及所述最小序号对应的分组之后的连续N个分组的接收状态,所述N不大于所述最大序号与所述最小序号的差值;S2、根据接收端反馈的信息,确定接收端未接收到的分组;S3、对于每个未接收到的分组,根据所述接收端已接收到分组的最大序号与发送所述未接收到的分组时已发送分组的最大序号的差值判断所述未接收到的分组是否丢失。

【技术特征摘要】
1.一种检测分组丢失的方法,其特征在于,包括步骤:S1、接收接收端反馈的信息,所述信息包括接收端未接收到分组的最小序号、接收端已接收到分组的最大序号以及所述最小序号对应的分组之后的连续N个分组的接收状态,所述N不大于所述最大序号与所述最小序号的差值;S2、根据接收端反馈的信息,确定接收端未接收到的分组;S3、对于每个未接收到的分组,根据所述接收端已接收到分组的最大序号与发送所述未接收到的分组时已发送分组的最大序号的差值判断所述未接收到的分组是否丢失。2.根据权利要求1所述的检测分组丢失的方法,其特征在于,所述步骤S1中接收端反馈的信息为ACK报文,所述ACK报文包括一长度为N的位图,所述位图从左到右的N个bit分别表示所述最小序号对应的分组之后依次递增的N个分组的接收状态。3.根据权利要求2所述的检测分组丢失的方法,其特征在于,所述步骤S2具体包括:读取ACK报文中包含的接收端未接收到分组的最小序号和位图信息,根据位图信息中各bit的值确定接收端未接收到的分组。4.根据权利要求1所述的检测分组丢失的方法,其特征在于,所述步骤S3具体包括:为每个未接收到的分组分别设置一计数器count,并设置初始值为0;令max_ack_seq表示接收端已接收到分组的最大序号,max_seq表示发送所述未接收到的分组时已发送分组的最大序号,计算X=max_ack_seq-max_seq;如果X>0,则令所述未接收到的分组的max_seq=max_ack_seq,所述未接收到的分组的count=count+X;如果count大于或者等于3,则判断所述未接收到的分组丢失。5.根据权利要求4所述的检测分组丢失的方法,其特征在于,所述步骤S3还包括:如果X=0,则判断所述未接收到的分组是否为所述最小序号对应的分组,如果是,则令所述未接收到的分组的count=count+1;如果count大于或者等于3,则判断所述未接收到的分组丢失。6.一种检测分组丢失的终端,包括存储器、处理器及存...

【专利技术属性】
技术研发人员:刘德建杜建强范涛涛赖碧威王长兴张明辉郭玉湖
申请(专利权)人:福建省华渔教育科技有限公司
类型:发明
国别省市:福建,35

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

1