一种数据包的错误检测和发送方法及装置与流程

文档序号:13888484阅读:669来源:国知局

本发明涉及通信技术领域,尤其涉及一种数据包的错误检测和发送方法及装置。



背景技术:

无线通信网络在数据传输过程中不可避免的出现丢包/错报的现象,尤其是在恶劣环境下(如无线通信网络与无人机相结合的动态通信网络),该问题更加突出。针对传输过程中数据包出现丢失或者错误的纠正,目前主要有三种解决方法:自动重传请求(英文全称:automaticrepeat-request,英文简称:arq)、前向纠错技术、包组合技术。

自动重传请求虽然可以提升网络性能;然而,这种方法开销很大。首先,在自动重传请求发出后,正确的数据位也会被重新发送,这是没有必要的浪费了资源;其次,对于一个很大的数据包,假如重新传输一次之后还有错误,就会导致前向纠错后续很多次的重新传输,需要很多数据的传输和能量消耗。方法可以减少重传次数。

前向纠错技术在每个数据包发送前加入前向冗余数据,这些前向冗余数据能够纠正一定程度的错误数据。冗余数据越多,则能够恢复整个数据包的概率越大。然而,问题的关键是,究竟需要加入多少的冗余数据无法定量,对于前向纠错技术在数据包中加入的冗余量一般是在应用部署前根据部署环境而得到的一个固定的编码率,这个编码率在网络运行中很少改变,这样带来的问题是,如果加入的冗余数据过少,那么在高错误率或链路质量糟糕的情境下,错误数据无法被完全恢复,从而导致多次重传才能完成通信;如果加入的冗余数据过多,那么在低错误率或环境良好的情境下则引入了额外的数据开销。

包组合技术结合了上述两种方法,重传的数据包含编码后的冗余数据用于帮助恢复错误数据。当传输过程中没有发生错误的时候,只需要一次单独的传输即可完成通信,并且不会引入额外的数据开销;在高错误率的情境下,接收者能够利用在重传过程中发送的冗余数据,相对前两种方法只需要更少的传输次数就可完成通信,但是,数据包中的错误程度还是会影响冗余数据量,进而影响重传次数。



技术实现要素:

本发明的目的是为了克服现有技术的不足,提供一种数据包的错误检测和发送方法及装置。

本发明提供一种数据包的错误检测和发送方法,应用在mac层与网络层之间的包组合技术中,所述方法包括:

步骤s1:装置对接收的数据包进行错误分析,得到信息错误率;

步骤s2:所述装置根据所述信息错误率在所述数据包末尾调整添加的冗余数据量;

步骤s3:所述装置通过自动重传方式发送数据包。

其中,所述步骤s1包括:

步骤s1-1:所述装置对接收的数据包的信号强度进行采集得到接收的信号强度指示序列;

步骤s1-2:所述装置通过统计分析所述接收的信号强度指示序列中的每个信号强度与信号强度最小值之间的差值和错误字节的比例关系,得到信息错误率。

其中,所述步骤s1-1具体为:所述装置对接收的数据包的信号强度进行采集得到应的接收的信号强度指示序列,将所述接收的信号强度指示序列中的最小值作为为信号强度最小值;

所述步骤s1-2具体为:设置错误比特数的初始值为0,并获取数据包的长度;

如果当前比特位的信号强度比信号强度最小值+第一固定信号强度值高,则所述装置标记该比特位信息为由于收到干扰而受到损坏,更新错误比特数自加1;

如果当前比特位的信号强度比信号强度最小值+第二固定信号强度值低,则所述装置标记该比特位信息为正确的数据;

如果当前比特位的信号强度在信号强度最小值+第二固定信号强度值与信号强度最小值+第三固定信号强度值之间的过度区域,则所述装置标记该比特位信息的发生错误概率为第一数值,更新错误比特数为自加所述第一数值;

如果当前比特位的信号强度在信号强度最小值+第三固定信号强度值与信号强度最小值+第一固定信号强度值之间的过度区域,则所述装置标记该比特位信息的发生错误概率为第二数值,更新错误比特数为自加所述第二数值;

在处理完所有接收的信号强度指示序列中的信号强度之后,所述装置根据标记的所述错误比特数和数据包的长度计算得到信息错误率;

所述步骤s2具体为:所述装置将要发送数据包的编码效率设置为:1-信息错误率,在数据包的尾部调整添加的冗余数据量为:数据包的长度×编码效率。

其中,所述步骤s3包括:

步骤a1:所述装置将数据包的第一比特位作为当前比特位;

步骤a2:所述装置向所述接收端发送当前比特位;

步骤a3:所述装置判断在预设时间内是否收到所述接收端的正确应答,是则执行步骤a5,否则执行步骤a4;

步骤a4:所述装置向所述接收端重新发送当前比特位,返回步骤a3;

步骤a5:所述装置判断所述数据包中的比特位是否发送完成,是则结束,否则执行步骤a6;

步骤a6:所述装置将下一比特位作为当前比特位,返回步骤a2。

其中,在所述步骤a3与所述步骤a4之间还包括:所述装置判断重新发送次数是否到达预设值,是则执行步骤a5,否则更新所述重新发送次数,执行步骤a4。

本发明又提供一种数据包的错误检测和发送装置,应用在mac层与网络层之间的包组合技术中,所述装置包括:

错误检测模块,用于对接收的数据包进行错误分析,得到信息错误率;

调整模块,用于根据所述信息错误率在所述数据包末尾调整添加的冗余数据量;

发送模块,用于通过自动重传方式发送数据包。

其中,所述错误检测模块包括:

采集子模块,用于对接收的数据包的信号强度进行采集得到接收的信号强度指示序列;

统计分析子模块,用于通过统计分析所述接收的信号强度指示序列中的每个信号强度与信号强度最小值之间的差值和错误字节的比例关系,得到信息错误率。

其中,所述采集子模块具体用于对接收的数据包的信号强度进行采集得到应的接收的信号强度指示序列,将所述接收的信号强度指示序列中的最小值作为为信号强度最小值;

统计分析子模块包括:

初始单元,用于设置错误比特数的初始值为0,获取接收到的数据包的长度;

第一标记单元,用于如果当前比特位的信号强度比信号强度最小值+第一固定信号强度值高,则所述装置标记该比特位信息为由于收到干扰而受到损坏,更新错误比特数自加1;

第二标记单元,用于如果当前比特位的信号强度比信号强度最小值+第二固定信号强度值低,则所述装置标记该比特位信息为正确的数据;

第三标记单元,用于如果当前比特位的信号强度在信号强度最小值+第二固定信号强度值与信号强度最小值+第三固定信号强度值之间的过度区域,则所述装置标记该比特位信息的发生错误概率为第一数值,更新错误比特数为自加所述第一数值;

第四标记单元,用于如果当前比特位的信号强度在信号强度最小值+第三固定信号强度值与信号强度最小值+第一固定信号强度值之间的过度区域,则所述装置标记该比特位信息的发生错误概率为第二数值,更新错误比特数为自加所述第二数值;

获得单元,用于在处理完所有接收的信号强度指示序列中的信号强度之后,根据标记的错误比特数和数据包长度计算得到信息错误率;

所述调整模块具体用于将要发送数据包的编码效率设置为:1-信息错误率,在数据包的尾部调整添加的冗余数据量为:数据包的长度×编码效率。

其中,所述发送模块包括:

第一当作子模块,用于将数据包的第一比特位作为当前比特位;

发送子模块,用于向所述接收端发送当前比特位;

第一判断子模块,用于判断在预设时间内是否收到所述接收端的正确应答,是则触发第二判断子模块,否则触发重发子模块;

所述重发子模块,用于向所述接收端重新发送当前比特位,触发所述第一判断子模块;

所述第二判断子模块,用于判断所述数据包中的比特位是否发送完成,当判断发送未完成时触发第二作为子模块;

所述第二作为子模块,用于将下一比特位作为当前比特位,触发所述发送子模块。

其中,所述发送模块还包括:第三判断子模块,用于在所述第一判断子模块判断为否时判断重新发送次数是否到达预设值,是则触发所述第二判断子模块,否则更新所述重新发送次数,触发触所述发重发子模块。

本发明与现有技术相比,具有以下优点:

本发明技术方案针对无人机无线通信网络系统中,数据包传输的不稳定性问题提出了一种应用在mac层与网络层之间的包组合技术中的数据包的错误检测和发送方法及装置,首先检测错误包中的错误程度(即信息错误率),根据错误程度去调整添加的冗余数据量,从而对对包组合技术进行优化,减小能量消耗和数据传输量。

附图说明

图1为本发明实施例一提供的一种数据包的错误检测和发送方法流程图;

图2为本发明实施例一提供的装置根据不同的信息错误率通过自动重传方式发送数据包中相应的比特位的实现流程图;

图3为本发明实施例二提供的一种数据包的错误检测和发送装置方框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本发明实施例一提供一种数据包的错误检测和发送方法,应用在mac(英文全称:multipleaccesscontrol,中文全称:多路访问控制)层与网络层之间的包组合技术中。

本实施例中要发送的数据包中在包尾部有一个2比特的crc(英文全称:cyclicredundancycheck,中文全称:循环冗余校验码),用于判断整个包是否发生了错误。

如图1所示,本实施例的方法包括:

步骤s1:装置对接收的数据包进行错误分析,得到信息错误率;

在本实施例中,步骤s1具体为:对接收的数据包的信号强度进行采集得到rssi(英文全称:eivedsignalstrengthindication,中文全称:接收的信号强度指示)序列,通过统计分析rssi序列中的每个信号强度与rssibase(接收的信号强度指示序列中的最小值,即信号强度最小值)之间的差值和错误字节的比例关系,得到信息错误率;

在本实施例中,信息错误率指一个数据包中错误比特数占总比特数的比例;

具体的,以一个数据包(长度为l)为例详述该步骤的实现过程。对接收的数据包的信号强度进行采集得到应的rssi序列,取其最小值为rssibase,设置错误比特数目初始值为0(即cb=0),预设的第一固定信号强度值(δhigh)为5dbm,预设的第二固定信号强度值(δlow1)为2dbm,预设的第三固定信号强度值(δlow2)为3dbm。如果当前比特位的信号强度比rssibase+δhigh高,则标记该比特位信息为由于收到干扰而受到损坏,更新错误比特数自加1(即cb=cb+1);如果当前比特位的信号强度比rssibase+δlow1低,则标记该比特位信息为正确的数据;如果当前比特位的信号强度在rssibase+δlow1与rssibase+δlow2之间的过度区域,则标记该比特位信息发生错误的概率为pr1,更新错误比特数为自加pr1(即cb=cb+pr1),如果当前比特位的信号强度在rssibase+δlow2与rssibase+δhigh之间的过度区域,则标记该比特位信息发生错误的概率为pr2,更新错误比特数为自加pr2(即cb=cb+pr2)。并且如果为了更加精确,可以多设置几个固定信号强度值,在处理完所有的rssi序列中的信号强度之后,得到该数据包的信息错误率,即信息错误率cl=cb/l;其中,pr1和pr2的值为概率值,小于1,pr1=(rssi[i]-rssibase-δlow1)/(δlow2-δlow1);pr2=(rssi[i]-rssibase-δlow2)/(δhigh-δlow2);

步骤s2:装置根据信息错误率在数据包末尾调整添加的冗余数据量;

具体的,在本实施例中,装置将要发送数据包的编码效率设置为1-cl值最接近的分数n/m,其中,1≤n≤9,2≤m≤10,n和m都取自然数,在数据包的尾部调整添加的冗余数据量为l×(n/m)位。

步骤s3:装置通过自动重传方式发送数据包。

在本实施例中,装置通过自动重传方式发送数据包,如图2所示,包括:

步骤a1:装置将数据包的第一比特位作为当前比特位;

步骤a2:装置向接收端发送当前比特位;

步骤a3:装置判断在预设时间内是否收到接收端的正确应答,是则执行步骤a5,否则执行步骤a4;

步骤a4:装置向接收端重新发送当前比特位,返回步骤a3;

优选的,在步骤a3与步骤a4之间还包括:装置判断重新发送次数是否到达预设值,是则执行步骤a5,否则更新重新发送次数,执行步骤a4;

步骤a5:装置判断数据包中的比特位是否发送完成,是则结束,否则执行步骤a6;

步骤a6:装置将下一比特位作为当前比特位,返回步骤a2;

具体的,本实施例中的步骤s3是通过前向纠错技术实现的,帮助接收端来恢复数据,减小了信息重传次数。

本实施例方法是在接收数据包的过程中,对接收信号的强度进行采集得到rssi序列,通过统计分析rssi序列中的每个信号强度与rssibase(接收的信号强度指示序列中的最小值)之间的差值和错误字节的比例关系,得出了rssi序列中相应的数据字节的信息错误率,然后根据信息错误率在数据包末尾调整添加的冗余数据量,最后通过自动重传方式发送数据包,从而对对包组合技术进行优化,减小能量消耗和数据传输量。

实施例二

本发明实施例二提供一种数据包的错误检测和发送装置,应用在mac(英文全称:multipleaccesscontrol,中文全称:多路访问控制)层与网络层之间的包组合技术中。如图3所示,本实施例的装置包括:

错误检测模块301,用于对接收的数据包进行错误分析,得到信息错误率;

在本实施例中,错误检测模块301包括:

采集子模块,用于对接收的数据包的信号强度进行采集得到接收的信号强度指示序列;

在本实施例中,采集子模块具体用于对接收的数据包的信号强度进行采集得到应的接收的信号强度指示序列,将所述接收的信号强度指示序列中的最小值作为为信号强度最小值;

统计分析子模块,用于通过统计分析所述接收的信号强度指示序列中的每个信号强度与信号强度最小值之间的差值和错误字节的比例关系,得到信息错误率。

在本实施例中,统计分析子模块具体包括:

初始单元:用于设置错误比特数(记为cb)的初始值为0,获取接收到的数据包的长度(记为l);

第一标记单元,用于如果当前比特位的信号强度比信号强度最小值+第一固定信号强度值高,则所述装置标记该比特位信息为由于收到干扰而受到损坏,更新错误比特数自加1(即cb=cb+i);

第二标记单元,用于如果当前比特位的信号强度比信号强度最小值+第二固定信号强度值低,则所述装置标记该比特位信息为正确的数据;

第三标记单元,用于如果当前比特位的信号强度在信号强度最小值+第二固定信号强度值与信号强度最小值+第三固定信号强度值之间的过度区域,则所述装置标记该比特位信息的发生错误概率为第一数值(记为pr1),更新错误比特数为自加pr1(即cb=cb+pr1);

第四标记单元,用于如果当前比特位的信号强度在信号强度最小值+第三固定信号强度值与信号强度最小值+第一固定信号强度值之间的过度区域,则所述装置标记该比特位信息的发生错误概率为第二数值(记为pr2),更新错误比特数为自加pr2(即cb=cb+pr2);

获得单元,用于在处理完所有接收的信号强度指示序列中的信号强度之后,根据标记的错误比特数和数据包长度计算得到信息错误率(记为cl);具体的,在本实施例中信息错误率cl=cb/l;

在本实施例中,可以预先设置更多的固定信号强度值,通过采用多级检测,实现了更精确的错误检测;

调整模块302,用于根据所述信息错误率在所述数据包末尾调整添加的冗余数据量;

具体的,本实施例中的调整模块用于将要发送数据包的编码效率设置为1-cl,在要发送的数据包尾调整添加的冗余数据量为l×(1-cl)位;

发送模块303,用于通过自动重传方式发送数据包。

在本实施例中,发送模块303包括:

第一当作子模块,用于将数据包的第一比特位作为当前比特位;

发送子模块,用于向所述接收端发送当前比特位;

第一判断子模块,用于判断在预设时间内是否收到所述接收端的正确应答,是则触发第二判断子模块,否则触发重发子模块;

具体的,在本实施例中,在本方案中,通过接收端错误信息量对发送端进行反馈,进而进行精确的冗余量控制,从而降低功耗;

所述重发子模块,用于向所述接收端重新发送当前比特位,触发所述第一判断子模块;

所述第二判断子模块,用于判断所述数据包中的比特位是否发送完成,当判断发送未完成时触发第二作为子模块;

所述第二作为子模块,用于将下一比特位作为当前比特位,触发所述发送子模块。

本实施例中的发送模块303还包括:第三判断子模块,用于在所述第一判断子模块判断为否时判断重新发送次数是否到达预设值,是则触发所述第二判断子模块,否则更新所述重新发送次数,触发触所述发重发子模块。

本实施例是针对目前无线信号的恢复问题,提出的一种在数据包的接收过程中对错误信息量进行检测的方案,进而可以为在发送过程中调整冗余信息时提供参考,降低了无线通信过程中错误信息纠正所需的能耗。如图3所示,mac层和网络层之间架构示意图,错误监测模块被设计在接收过程中,通过对mac层的发送的数据进行检测,进而为发送数据包时提供冗余信息的需要量,避免冗余信息过多造成能耗过多以及冗余信息过少信息难以恢复的问题。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1