一种网络数据包重发方法及系统与流程

文档序号:22804054发布日期:2020-11-04 04:06阅读:153来源:国知局
一种网络数据包重发方法及系统与流程

本发明涉及移动互联网技术领域,具体为一种网络数据包重发方法及系统。



背景技术:

现有的无人系统(无人机集群,地面机器人集群)集群应用大多数选用基于wifi协议栈的网关作为无线通信链路,提供无人系统彼此之间以及无人系统与网关之间的信息交换。然而由于wifi网关提供的数据链路时延会随着网络内无人系统节点数量的增加急剧上升,因此,wifi协议栈mac层的信道访问机制性能出现瓶颈后并不适用于高密度集群的无人机系统应用;此外,wifi网关一般的工作频段在2.4ghz,由于此频段的设备很多,可能会造成很大信号干扰;网络中的wifi节点功耗大,不适合对功耗敏感的移动无人系统节点;wifi链路的传输距离容易受到障碍物等影响,不适合室外大范围内无人系统专网的部署。

因此,wifi网关并不适用于高密度集群的无人机系统应用。



技术实现要素:

本发明的目的在于提供一种网络数据包重发方法及系统,用以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:

一种网络数据包重发方法,包括如下步骤:

s110:客户端获取发送失败的信息;

s120:在所述信息的当前重发次数不为零时,所述客户端每隔预设时间间隔重发所述信息,并将所述当前重发次数减一;

s130:在判断所述信息重发失败且所述当前重发次数为零时,所述客户端认定所述信息发送失败,且丢弃所述信息。

优选的,所述客户端每隔预设时间间隔重发所述信息的过程包括:所述客户端每隔所述预设时间间隔进行空闲信道活动检测,判断无线信道是否空闲;若为是,所述客户端将所述信息通过所述无线信道发送所述信息,表征所述信息重发成功;若为否,表征所述信息重发失败。

优选的,所述客户端每隔所述预设时间间隔进行空闲信道活动检测,判断无线信道是否空闲的过程,包括所述客户端每隔所述预设时间间隔判断所述无线信道上是否存在前导码;若存在,所述客户端判断所述无线信道被占用;若不存在,所述客户端判断所述无线信道空闲。

优选的,步骤s1后,客户端判断发送失败缓冲区中是否存在所述信息;若存在,在所述信息的当前重发次数不为零时,所述客户端每隔预设时间间隔重发所述信息,并将所述信息预先设定的重发次数减一,并执行步骤s2;若不存在,所述客户端将所述信息保存到所述发送失败缓冲区。

优选的,所述无线信道为lora无线信道。

一种网络数据包重发系统,包括获取模块,用于获取发送失败的信息;重发模块,用于在所述信息的当前重发次数不为零时,每隔预设时间15间隔重发所述信息,并将所述当前重发次数减一;判断模块,用于在判断所述信息重发失败且所述当前重发次数为零时,认定所述信息发送失败,且丢弃所述信息。

优选的,所述重发模块,包括检测子模块,用于每隔所述预设时间间隔进行空闲信道活动检测,判断无线信道是否空闲;以及检测执行模块,用于在所述检测子模块判断为是时,将所述信息通过所述无线信道发送所述信息,表征所述信息重发成功,用于在所述检测子模块判断为否时,表征所述信息重发失败。

优选的,所述检测子模块,用于每隔所述预设时间间隔判断所述无线信道上是否存在前导码,若存在,判断所述无线信道被占用;若不存在,判断所述无线信道空闲。

优选的,还包括执行模块,用于在所述判断模块判断是时,且在所述信息的当前重发次数不为零时,每隔预设时间间隔重发所述信息,并将所述信息预先设定的重发次数减一,并执行后续步骤,在所述判断模块判断否时,将所述信息保存到所述发送失败缓冲区。

与现有技术相比,本发明的有益效果是:

本发明提供一种网络数据包重发方法及系统,本发明对发送信息时可能出现发送失败的情况做出了处理,通过将信息写入发送失败缓冲区的方式,在不干扰后续帧发送的情况下周期性的对发送失败缓冲区的数据进行重发,在信道情况较复杂,多个节点使用同一信道同时发送信息的情况下,网络状况和数据包的碰撞情况都得到了明显的改善。

附图说明

图1为本发明实施例提供的客户端的结构框图;

图2为本发明方法实施例1的流程图;

图3为本发明方法实施例2的流程图;

图4为本发明系统实施例1的框架结构示意图;

图5为本发明系统实施例2的框架结构示意图。

具体实施方式

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

实施例1

请参阅图1-5,本发明提供一种技术方案:

本申请客户端包括信息发送失败缓冲装置、存储器110、存储控制器120、处理器130、外设接口140、输入输出单元150、音频单元160、显示单元170。15所述存储器110、存储控制器120、处理器130、外设接口140、输入输出单元150、音频单元160以及显示单元170各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述信息发送失败缓冲装置包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中或固化在客户端设备的操作系统(operatingsystem,os)中的软件功能模块。所述处理器130用于执行存储器110中存储的可执行模块,例如所述信息发送失败缓冲装置包括的软件功能模块或计算机程序。其中,存储器110可以是,但不限于,随机存取存储器(randomaccess5memory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器110用于存储程序,所述处理器130在接收到执行指令后,执10行所述程序,前述本发明实施例任一实施例揭示的流程定义的方法可以应用于处理器130中,或者由处理器130实现。处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器130可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号15处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。所述外设接口140将各种输入/输出装置耦合至处理器130以及存储器。在一些实施例中,外设接口140,处理器130以及存储控制器120可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。输入输出单元150用于提供给用户输入数据实现用户与用户终端1005的交互。所述输入输出单元150可以是,但不限于,鼠标和键盘等。音频单元160向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。显示单元170在用户终端100与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示10单元170可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器130进行计算和处理。

一种网络数据包重发方法,包括如下步骤:

s110:客户端获取发送失败的信息;

当待发送的信息在通信协议栈中由于碰撞而导致无信道可用时,信息发送失败。此时,客户端可以获取所述发送失败的信息,以便可以将该信息保存在发送失败缓冲区中;

s120:在所述信息的当前重发次数不为零时,所述客户端每隔预设时间间隔重发所述信息,并将所述当前重发次数减一;

具体的,每一组信息在初始化时,都被设置了初始重发次数,如该初始重发次数可以是4次,当然该数值也可以根据实际情况进行调整。其中,信息每被重发一次,当前重发次数减一,得到更新后的当前重发次数。由于该信息可能不是第一次被重发,因此,若所述信息的当前重发次数为零,则说明经过多次重发,该信息仍旧重发失败,则可以将该信息丢弃。以初始重发次数是4次为例,当某一信息第一次被重发时,被检测到当前重发次数是4,重发后更新当前重发次数为3次,第二次被重发时,被检测到当前重发次数是3,重发后更新当前重发次数为2次,第三次被重发时,被检测到当前重发次数是2,重发后更新当前重发次数为1次,第四次被重发时,被检测到当前重发次数是1,重发后更新当前重发次数为0次,第五次准备重发时,被检测到当前重发次数是0次,不满足重发条件,该信息直接被丢弃。

针对该发送失败的信息,客户端基于本发明实施例所提及的方法进行缓冲重发。客户端首先检测所述信息的当前重发次数,当当前重发次数满足条件不为零时,才执行重发步骤;

s130:在判断所述信息重发失败且所述当前重发次数为零时,所述客户端认定所述信息发送失败,且丢弃所述信息。

具体的,客户端在所述信息的当前重发次数不为零时,所述客户端每隔所述预设时间间隔(例如1秒)对lora无线信道进行检测,判断无线信道是否空闲。进一步地,所述客户端可以每隔所述预设时间间隔判断所述无线信道上是否存在loratm数据包前导码。若存在,所述客户端判断该lora无线信道被其他设备占用,处于非空闲状态,不可用于发送数据或者信息。若不存在,所述客户端判断所述无线信道处于空闲状态,可以用于传输数据或者信息。在loratm通信中,由于采用了扩频调制技术,在存在低于接收机底噪声的信号在使用信道时,使用rssi值来判断信道是否空闲无疑是行不通的,为了解决这个问题,可使用信道活动检测器来检测其他loratm信号。信道活动检测(clearchannelassessment,cca)是以尽可能高的功耗效率检测无线信道上的loratm数据包前导码,在cca模式下,网关快速扫描频段,以检测loratm数据包前导码,它与rssi值无关,即使信号强度低于接收机底噪,仍然能够将loratm信号检测出来。所述客户端每隔预设时间间隔重发所述信息的过程包括:所述客户端每隔所述预设时间间隔进行空闲信道活动检测,判断无线信道是否空闲;若为是,所述客户端将所述信息通过所述无线信道发送所述信息,表征所述信息重发成功;若为否,表征所述信息重发失败。

不管本次信息的重发失败与否,该信息的当前重发次数都会减一。

所述无线信道为lora无线信道。

一种网络数据包重发系统,获取模块410,用于获取发送失败的信息;重发模块420,用于在所述信息的当前重发次数不为零时,每隔预设时间间隔重发所述信息,并将所述当前重发次数减一;判断模块430,用于在判断所述信息重发失败且所述当前重发次数为零时,认定所述信息发送失败,且丢弃所述信息。所述重发模块,包括检测子模块,用于每隔所述预设时间间隔进行空闲信道活动检测,判断无线信道是否空闲;以及检测执行模块,用于在所述检测子模块判断为是时,将所述信息通过所述无线信道发送所述信息,表征所述信息重发成功,用于在所述检测子模块判断为否时,表征所述信息重发失败,所述检测子模块,用于每隔所述预设时间间隔判断所述无线信道上是否存在前导码,若存在,判断所述无线信道被占用;若不存在,判断所述无线信道空闲。

实施例2

与实施例1的区别在于:步骤s1后,还包括步骤s111;所述客户端判断发送失败缓冲区中是否存在所述信息;

客户端判断发送失败缓冲区中是否存在所述信息;若存在,在所述信息的当前重发次数不为零时,所述客户端每隔预设时间间隔重发所述信息,并将所述信息预先设定的重发次数减一,并执行步骤s2;若不存在,执行步骤s112;所述客户端将所述信息保存到所述发送失败缓冲区。

还可以包括执行模块440;所述判断模块430,还用于判断发送失败缓冲区中是否存在所述信息;所述执行模块440,用于在所述判断模块判断是时,且在所述信息的当前重发次数不为零时,每隔预设时间间隔重发所述信息,并将所述信息预先设定的重发次数减一,并执行后续步骤,在所述判断模块判断否时,将所述信息保存到所述发送失败缓冲区。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

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