一种雷达数据可靠传输方法

文档序号:36834743发布日期:2024-01-26 16:51阅读:46来源:国知局
一种雷达数据可靠传输方法

本发明属于雷达数据传输,具体提供一种雷达数据可靠传输方法。


背景技术:

1、目前雷达数据传输通常是使用tcp协议或udp协议进行传输,tcp协议的传输速度较慢,不适用于实时性强的场景;而udp协议的传输可靠性较差,经常会发生数据丢包的现象。比如公开号为cn116074252a的专利文献中提出的一种udp数据传输方法、udp数据传输装置、存储介质及电子设备,其中,接收端从第二缓存区每读取m包数据向发送端发送一次丢包信息;但该方法没有对网络状况进行预测,在网络发生拥塞时会出现丢包过多的现象。又比如公开号为cn115695577a的专利文献中提出的一种udp数据传输的方法及其相关设备,该方法在udp数据包上封装一层tcp包头,将udp数据包进行封装后得到tcp数据包,然后利用建立好的tcp通道传输该tcp数据包;但该方法在出现丢包时无法进行数据重传,无法保证数据完整性。再比如公开号为cn116073957a的专利文献中提出的一种基于udp的可靠一对多数据传输方法,该方法中建立状态位图sbmp,由状态位图sbmp判断数据块是否发送完成;但该方法未考虑数据传输时的接收端接受能力和网络状态,会影响数据传输速度。


技术实现思路

1、本发明的目的在于提供一种雷达数据可靠传输方法,用以减少雷达数据传输过程中的传输等待时延,并在出现丢包现象时执行丢包重传功能。本发明在雷达数据帧数据可靠的基础上,降低雷达数据帧的传输时延,减少了传输过程中小包积累机制和延迟ack机制对传输等待时延的影响,缩短了数据传输时间。

2、为实现上述目的,本发明采用的技术方案为:

3、一种雷达数据可靠传输方法,包括:数据发送与数据接收,具体步骤如下:

4、步骤a.数据发送;

5、步骤a1.应用层交付数据进入数据分包模块,执行数据分包功能,并对每一个数据包增加可靠协议包头,然后根据远端窗口值判断是否放入发送队列,最后在发送队列中执行数据发送;

6、步骤a2.开启发送端网络监听线程,监听网络中接收到的报文包,根据可靠协议包头对报文包进行解析,判断报文包类型;

7、若报文包类型是ack报文包,则根据报文包信息更新ack队列,并在ack队列更新后更新发送队列,将已经确认的发送数据包移出snd_una链表;并根据ack报文包确认执行快速重传功能;

8、若报文包类型是窗口回复报文包,则根据收到的信息更新接收方窗口值;

9、步骤a3.开启发送端超时重传线程,发送队列中每发送一个数据包则开启一个定时器,定时器时间设置为rto,若在rto内未接收到此数据包的ack报文包,则执行超时重传功能,并将此数据包的rto参数更新为1.5倍;若在rto内接收到此数据包的ack报文包,则删除定时器,将此数据包从发送队列中移除;

10、步骤a4.每接收到一个ack报文包则执行拥塞控制功能;

11、步骤b.数据接收;

12、步骤b1.开启接收端网络监听线程,监听网络中接收到的报文包;根据可靠协议包头中的cmd参数对报文包进行解析,判断报文包类型;

13、若报文包类型是data报文包,则将接收到的数据包放入接收队列,进行数据合包功能,并且回复ack报文包;

14、若报文包类型是窗口探测报文包,则回复窗口回复报文包;

15、步骤b2.接收队列中接收到数据后,进行数据合包功能。

16、进一步的,步骤a1的数据分包模块中,首先计算数据块的字节数及分包数,然后进行倒序分包,并放入等待发送链表中;根据远端窗口值判断接收方窗口是否可用,当接收方窗口值大于等于发送需求时,判定接收方窗口可用,将数据块放入发送队列中,并执行发送,否则,执行等待。

17、进一步的,步骤a1中可靠协议包头包括:identi参数、cmd参数、frg参数、wnd参数、una参数、sn参数、ts参数、len参数;其中,identi参数代表本数据包为rudp专用数据包,当发送方与接收方的identi参数相等时数据包后续处理有效;cmd参数代表本数据包的类型,依次为:data数据包、ack数据包、窗口探测报文包、窗口回复报文包;frg参数代表分片包序号,wnd代表接收方窗口值,una代表待接收包序号,sn代表本数据包序号,ts代表本数据包时间戳,len参数代表本数据包长度;data段代表data数据。

18、进一步的,步骤a2中快速重传具体为:收到一个ack报文包后,为所有未接收ack的数据包的fastack参数加1,并遍历整个发送队列,对所有fastack参数等于3的未接收ack的数据包执行重传功能。

19、进一步的,步骤a3中,rto根据接收到的ack报文包计算得到的rtt参数进行更新,更新方法为:

20、采样rtt的时间并进行加权平均,计算得到平滑rtt值;根据每次接收到ack报文包的ts时间戳计算得到的往返时间rttn,再计算得到的平滑往返时间srttn与平滑方差devrttn;

21、第一次计算时,rto1更新如下:

22、srtt1=rtt1

23、devrtt1=rtt1/2

24、rto1=μ×srtt1+δ×devrtt1

25、根据新接收ack数据包时间戳得到最新rttn,后续计算rton为:

26、srttn=srttn-1+α×(rttn-srttn-1)

27、devrttn=(1-β)×devrttn-1+β×(|rttn-srttn|)

28、rton=μ×srttn+δ×devrttn

29、其中,α=0.125,β=0.25,μ=1,δ=4;rttn、srttn、devrttn分别表示第n个更新时刻的往返时间、平滑往返时间、平滑方差。

30、进一步的,步骤a4中拥塞控制功能为:

31、第n个更新时刻的拥塞窗口值记为cwndn,对应慢启动门限记为ssthreshn,发送方相邻两次接收到ack报文包期间接收方接收到的报文包数量记为ackcountn;

32、传输开始时启用慢启动模式,cwndn更新为:

33、cwndn=cwndn-1+ackcountn

34、当拥塞窗口值大于慢启动门限时,启用拥塞避免增长模式,cwndn更新为:

35、cwndn=cwndn-1+ackcountn/cwndn-1

36、当发生数据包重传时,启用拥塞发生算法:

37、当发生超时重传时,ssthreshn和cwndn更新为:

38、ssthreshn=cwndn-1/2

39、cwndn=1

40、当发生快速重传时,ssthreshn和cwndn更新为:

41、cwndn=cwndn-1/2

42、ssthreshn=cwndn

43、cwndn+1=ssthreshn+3。

44、基于上述技术方案,本发明的有益效果在于:

45、本发明提供一种雷达数据可靠传输方法,采用以太网中的udp协议,在此基础上设计了可靠协议包头以及分包功能,并结合多种重传机制、流量控制以及拥塞控制,使得发送端能发现丢包现象,并且传输效率高,保证了数据包的可靠性和传输的实时性;综上,本发明能够保证雷达数据帧的可靠性基础上降低总传输时间。

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