一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于UDP协议的闭环网络通信方法及系统与流程

2022-12-20 22:55:40 来源:中国专利 TAG:

一种基于udp协议的闭环网络通信方法及系统
技术领域
1.本技术涉及网络通信技术领域,尤其是涉及一种基于udp协议的闭环网络通信方法及系统。


背景技术:

2.用户数据报协议(user datagram protocol,udp)与传输控制协议(transmission control protocol,tcp)都是用于处理网络数据包的。在osi模型中,udp协议及tcp协议位于第四层传输层,是ip协议的上一层。udp 协议不需要和 tcp协议一样在发送数据前进行三次握手建立连接,可以随时发送数据,不需要占用连接资源,并且也只是数据报文的搬运工,不会对数据报文进行任何拆分和拼接操作,实时性好;udp协议不仅支持一对一的传输方式,还支持一对多、多对多及多对一的传输方式。udp协议帧的首部开销小,只有8个字节,节省带宽,传输数据报文高效。
3.但是,udp协议也有很多缺点:由于udp协议的通信不需要建立连接,导致通信是无状态的,无法形成发送和回报的闭环通信,无法保证可靠性;udp协议不提供数据包分组、组装和数据包排序,并且也不会备份数据,发送数据后不会考虑接收方是否已经正确接收数据;发送方的udp协议层对应用层发送的报文,在报文添加首部后就向下交付ip层,对应用层发送的报文,既不合并,也不拆分,只是保留这些报文的边界,因此,必须选择大小合适的报文;udp协议没有拥塞控制,一直会以恒定的速度发送数据,不会对发送速率进行调整,在网络状况差时可能会丢包。因此,造成了已有的udp协议的数据传输无法保证传输质量。


技术实现要素:

4.为了解决已有的udp协议的数据传输无法保证传输质量的问题,本技术提供了一种基于udp协议的闭环网络通信方法及系统。
5.第一方面,本技术提供一种基于udp协议的闭环网络通信方法,采用如下的技术方案:发送端获取到业务数据,通过预设数据封装协议得到消息数据包;发送端通过udp方式将消息数据包发送给接收端,并设置第一计时器及第一响应超时重发策略;接收端接收到消息数据包,通过预设数据封装协议向发送端发送回应消息包;当未接收到回应消息包或接收回应消息包超过第一计时器的超时时间时,发送端根据第一响应超时重发策略重发消息数据包;当接收到回应消息包且未超过第一计时器的超时时间时,发送端根据回应消息包设置第二计时器及第二响应超时重发策略;接收端确定消息数据包对应的业务处理逻辑,得到执行业务处理逻辑的执行结果消息,通过预设数据封装协议向发送端发送执行结果消息包;当未接收到执行结果消息包或接收执行结果消息包超过第二计时器的超时时间
时,发送端根据第二响应超时重发策略重发消息数据包;当接收到执行结果消息包且未超过第二计时器的超时时间时,发送端确定业务处理逻辑执行完成。
6.第二方面,本技术提供一种基于udp协议的闭环网络通信系统,采用如下的技术方案:发送端及接收端;发送端,用于获取到业务数据,通过预设数据封装协议得到消息数据包;通过udp方式将消息数据包发送给接收端,并设置第一计时器及第一响应超时重发策略;接收端,用于接收到消息数据包,通过预设数据封装协议向发送端发送回应消息包;发送端,还用于当未接收到回应消息包或接收回应消息包超过第一计时器的超时时间时,根据第一响应超时重发策略重发消息数据包;发送端,还用于当发送端接收到回应消息包且未超过第一计时器的超时时间时,根据回应消息包设置第二计时器及第二响应超时重发策略;接收端,还用于确定消息数据包对应的业务处理逻辑,得到执行业务处理逻辑的执行结果消息,通过预设数据封装协议向发送端发送执行结果消息包;发送端,还用于当未接收到执行结果消息包或接收执行结果消息包超过第二计时器的超时时间时,根据第二响应超时重发策略重发消息数据包;发送端,还用于当接收到执行结果消息包且未超过第二计时器的超时时间时,确定业务处理逻辑执行完成。
7.综上描述,本技术包括以下有益技术效果:发送端获取到业务数据后,通过预设数据封装协议得到消息数据包,通过udp方式将消息数据包发送给接收端,并设置第一计时器及第一响应超时重发策略;接收端接收到消息数据包,通过预设数据封装协议向发送端发送回应消息包;当未接收到回应消息包或接收回应消息包超过第一计时器的超时时间时,发送端根据第一响应超时重发策略重发消息数据包;当接收到回应消息包且未超过第一计时器的超时时间时,发送端根据回应消息包设置第二计时器及第二响应超时重发策略;接收端确定消息数据包对应的业务处理逻辑,得到执行业务处理逻辑的执行结果消息,通过预设数据封装协议向发送端发送执行结果消息包;当未接收到执行结果消息包或接收执行结果消息包超过第二计时器的超时时间时,发送端根据第二响应超时重发策略重发消息数据包;当接收到执行结果消息包且未超过第二计时器的超时时间时,发送端确定业务处理逻辑执行完成。即保证了业务数据的发送状态的确定性,也保证了业务执行结果的回报闭环,响应超时重发策略的设置解决了由于网络不稳定导致的数据传输延时和丢包的问题,保证了udp协议的数据传输的可靠性。
附图说明
8.图1是本技术的基于udp协议的闭环网络通信方法的流程示意图。
9.图2是本技术根据第一响应超时重发策略重发消息数据包的过程示意图。
10.图3是本技术根据第二响应超时重发策略重发消息数据包的过程示意图。
11.图4是本技术执行结果消息包的获取过程的流程示意图;
图5是本技术的基于udp协议的闭环网络通信系统的交互示意图。
具体实施方式
12.为了使本技术的目的、技术方案及优点更加清楚明白,以下通过附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
13.本技术实施例公开一种基于udp协议的闭环网络通信方法,udp协议的网络通信中,包括了业务数据的发送端和接收并执行业务数据的接收端,发送端和接收端均为具有发送功能和接收功能的电子设备。
14.参照图1,该方法的执行步骤包括:s101,发送端获取到业务数据,通过预设数据封装协议得到消息数据包;其中,在执行步骤s101之前,本技术还需要进行预设数据封装协议的设置,在发送端与接收端建立通信之间,设置业务层的预设数据封装协议,预设数据封装协议针对不同的消息包设置不同的帧格式:针对业务数据的消息数据包的业务数据帧格式,如下表1所示,包括业务消息头及业务数据区,业务消息头包括业务消息号及业务消息类型,业务消息号为每次发送端与接收端通信成功的标号,业务消息号为累加次数,业务消息类型对应业务数据的类型,业务数据区用于存放业务数据;除此之外,业务消息头中还有用于表示业务数据区实际数据总长度的固定区间、备用的固定区间及校验位的固定区间。
15.表1消息数据包的业务数据帧格式针对回应消息包的回应消息数据帧格式,如下表2所示,包括回应消息头及回应数据区,回应消息头包括回应消息号及回应消息类型,回应消息号与当前接收到的业务消息号一致,业务消息类型与当前接收到的业务消息类型一致,回应数据区用于存放执行业务数据对应的业务处理逻辑需要的最大时间;除此之外,回应消息头中还有用于表示回应数据区长度的固定区间、备用的固定区间及校验位的固定区间;回应数据区还有用于表示是否收到消息的固定区间。
16.表2回应消息包的回应消息数据帧格式
针对执行结果消息包的执行结果消息数据帧格式,如下表3所示,包括执行结果消息头及执行结果数据区,执行结果消息头包括执行结果消息号及执行结果消息类型,执行结果消息号与当前接收到的业务消息号一致,执行结果消息类型与当前接收到的业务消息类型一致,执行结果数据区用于存放业务数据对应的业务处理逻辑执行完成之后的结果数据;除此之外,执行结果消息头中还有用于表示执行结果数据区长度的固定区间、备用的固定区间及校验位的固定区间;执行结果数据区还有用于表示业务处理逻辑是否执行成功的固定区间。
17.基于预设好的预设数据封装协议,发送端在接收到业务数据之后,对业务数据进行分析得到消息号及消息类型,通过预设数据封装协议的业务数据帧格式创建buffer包,将消息号、消息类型及业务数据放入buffer包,生成消息数据包。
18.表3执行结果消息包的执行结果消息数据帧格式s102,发送端通过udp方式将消息数据包发送给接收端,并设置第一计时器及第一响应超时重发策略;其中,发送端调用udp发送接口,确定接收端的ip地址和udp接收接口,从而将消息数据包发送至接收端,发送端将消息号及消息类型作为key值,根据key值创建第一计时器,并开始计时,发送端设置第一最大重发次数及第一计时器的第一超时时间,根据第一超时时间及第一最大重发次数得到第一响应超时重发策略。将key值和第一计时器关联并存储在特定的数据结构中,例如map结构。第一响应超时重发策略是:在发送端发送出消息数据包之后,第一计时器开始计时,如果在第一超时时间内没有收到接收端反馈的回应消息包,就表示需要进行重发,并且要满足重发次数不超过第一最大重发次数。
19.s103,接收端接收到消息数据包,通过预设数据封装协议向发送端发送回应消息包;s104,当未接收到回应消息包或接收回应消息包超过第一计时器的超时时间时,发送端根据第一响应超时重发策略重发消息数据包;
其中,在发送端未接收到回应消息包或接收回应消息包超过第一计时器的超时时间,表示存在丢包或者网络波动,发送端需要根据第一响应超时重发策略重发消息数据包,即返回到步骤s102。
20.s105,当接收到回应消息包且未超过第一计时器的超时时间时,发送端根据回应消息包设置第二计时器及第二响应超时重发策略;其中,在接收到回应消息包且未超过第一计时器的超时时间,表示不存在丢包或者网络波动,发送端根据回应消息包确定了接收端已经接收到消息数据包,按照回应消息包重新设置第二计时器及第二响应超时重发策略,具体过程为:发送端解析回应消息包进行解析,得到消息号、消息类型及最大时间;发送端将消息号及消息类型作为key值,根据key值创建第二计时器,并开始计时;发送端将最大时间作为第二计时器的第二超时时间,并设置第二最大重发次数;发送端根据第二超时时间及第二最大重发次数得到第二响应超时重发策略,第二响应超时重发策略是:在发送端接收到回应消息包之后,第二计时器开始计时,给业务处理逻辑执行的时间,如果在第二超时时间内没有收到接收端反馈的执行结果消息包,就表示需要重发消息数据包,并且要满足重发次数不超过第二最大重发次数。
21.s106,接收端确定消息数据包对应的业务处理逻辑,得到执行业务处理逻辑的执行结果消息,通过预设数据封装协议向发送端发送执行结果消息包;s107,当未接收到执行结果消息包或接收执行结果消息包超过第二计时器的超时时间时,发送端根据第二响应超时重发策略重发消息数据包;其中,在未接收到执行结果消息包或接收执行结果消息包超过第二计时器的超时时间,表示存在丢包或者网络波动,发送端需要根据第一响应超时重发策略重发消息数据包,即返回到步骤s102。
22.s108,当接收到执行结果消息包且未超过第二计时器的超时时间时,发送端确定业务处理逻辑执行完成。
23.其中,在接收到执行结果消息包且未超过第二计时器的超时时间,表示业务处理逻辑正常执行,并且不存在丢包和网络波动,发送端根据执行结果消息包就能确定业务处理逻辑执行完成。
24.本实施例的实施原理为:发送端获取到业务数据后,通过预设数据封装协议得到消息数据包,通过udp方式将消息数据包发送给接收端,并设置第一计时器及第一响应超时重发策略;接收端接收到消息数据包,通过预设数据封装协议向发送端发送回应消息包;当未接收到回应消息包或接收回应消息包超过第一计时器的超时时间时,发送端根据第一响应超时重发策略重发消息数据包;当接收到回应消息包且未超过第一计时器的超时时间时,发送端根据回应消息包设置第二计时器及第二响应超时重发策略;接收端确定消息数据包对应的业务处理逻辑,得到执行业务处理逻辑的执行结果消息,通过预设数据封装协议向发送端发送执行结果消息包;当未接收到执行结果消息包或接收执行结果消息包超过第二计时器的超时时间时,发送端根据第二响应超时重发策略重发消息数据包;当接收到执行结果消息包且未超过第二计时器的超时时间时,发送端确定业务处理逻辑执行完成。即保证了业务数据的发送状态的确定性,也保证了业务执行结果的回报闭环,响应超时重发策略的设置解决了由于网络不稳定导致的数据传输延时和丢包的问题,保证了udp协议
的数据传输的可靠性。
25.在以上图1的实施例中步骤s104根据第一响应超时重发策略重发消息数据包的具体过程如图2所示:s201,发送端获取消息数据包的累计重发次数;其中,发送端通过读取消息数据包的发送记录,就能确定消息数据包的累计重发次数。
26.s202,发送端判断累计重发次数是否超过第一响应超时重发策略的第一最大重发次数;其中,发送端判断累计重发次数是否超过第一响应超时重发策略的第一最大重发次数,例如第一最大重发次数为20次,如果累计重发次数18次,那么就执行步骤s203,如果累计重发次数21次,执行步骤s204。
27.s203,发送端重发消息数据包;其中,累计重发次数不超过第一最大重发次数,则还能进行重发,回到图1实施例中步骤s102。
28.s204,发送端删除第一计时器。
29.其中,累计重发次数超过第一最大重发次数,就不会再进行重发了,证明丢包或者网络波动比较严重,数据无法有效进行传输,需要删除第一计时器,结束此次udp通信。
30.在以上图1的实施例中步骤s107根据第二响应超时重发策略重发消息数据包的具体过程如图3所示:s301,发送端获取消息数据包的累计重发次数;其中,由于该步骤的执行顺序为第二计时器和第二响应超时重发策略生成之后,并且是由于未接收到执行结果消息包或接收执行结果消息包超过第二计时器的超时时间,那么发送端统计的消息数据包的累计重发次数,是从收到回应消息包开始的,本实施例中的累计重发次数与图2实施例中的累计重发次数是存在区别的。
31.s302,发送端判断累计重发次数是否超过第二响应超时重发策略的第二最大重发次数;其中,发送端判断累计重发次数是否超过第二响应超时重发策略的第二最大重发次数,例如第二最大重发次数为40次,如果累计重发次数18次,那么就执行步骤s303,如果累计重发次数41次,执行步骤s304。
32.s303,发送端重发消息数据包;其中,累计重发次数不超过第二最大重发次数,则还能进行重发,回到图1实施例中步骤s102。
33.s304,发送端删除第二计时器。
34.其中,累计重发次数超过第二最大重发次数,就不会再进行重发了,证明丢包、网络波动比较严重或者接收端没有执行业务处理逻辑,数据无法有效进行传输或者业务无法进行,需要删除第二计时器,结束此次udp通信。
35.在以上图1的实施例中步骤s106执行结果消息包的获取过程具体如图4所示:s401,接收端根据当前的消息数据包中的业务数据确定对应的业务处理逻辑;其中,在接收端接收到当前的消息数据包之后,解析消息数据包得到其中的业务
数据,从而确定对应的业务处理逻辑。
36.s402,接收端判断当前的消息数据包与上一次的消息数据包是否相同;其中,接收端通过消息数据包中的业务消息号和业务消息类型,就能确定每一个消息数据包,从判断当前的消息数据包与上一次的消息数据包是否相同,如果相同,表示当前的消息数据包是重发的,可能是由于执行结果消息包在传输过程中丢包了或者网络波动造成超时,执行步骤s403;如果不相同,表示当前的消息数据包不是重发的,执行步骤s404。
37.s403,接收端获取上一次的消息数据包对应的业务处理逻辑的执行结果消息,通过预设数据封装协议向发送端发送执行结果消息包;其中,当前的消息数据包与上一次的消息数据包相同,则获取上一次消息数据包对应的业务处理逻辑的执行结果消息,按照预设数据封装协议的执行结果数据帧格式形成执行结果消息包,发送给发送端。
38.s404,接收端执行当前的消息数据包对应的业务处理逻辑得到执行结果消息,通过预设数据封装协议向发送端发送执行结果消息包。
39.其中,当前的消息数据包与上一次的消息数据包不相同,则执行当前的消息数据包对应的业务处理逻辑,得到执行结果消息,按照预设数据封装协议的执行结果数据帧格式形成执行结果消息包,发送给发送端。
40.如图5所示,本技术实施例公开一种基于udp协议的闭环网络通信系统,包括:发送端501及接收端502;发送端501,用于获取到业务数据,通过预设数据封装协议得到消息数据包;通过udp方式将消息数据包发送给接收端502,并设置第一计时器及第一响应超时重发策略;接收端502,用于接收到消息数据包,通过预设数据封装协议向发送端501发送回应消息包;发送端501,还用于当未接收到回应消息包或接收回应消息包超过第一计时器的超时时间时,根据第一响应超时重发策略重发消息数据包;发送端501,还用于当接收到回应消息包且未超过第一计时器的超时时间时,根据回应消息包设置第二计时器及第二响应超时重发策略;接收端502,还用于确定消息数据包对应的业务处理逻辑,得到执行业务处理逻辑的执行结果消息,通过预设数据封装协议向发送端501发送执行结果消息包;发送端501,还用于当未接收到执行结果消息包或接收执行结果消息包超过第二计时器的超时时间时,根据第二响应超时重发策略重发消息数据包;发送端501,还用于当接收到执行结果消息包且未超过第二计时器的超时时间时,确定业务处理逻辑执行完成。
41.本实施例的实施原理为:基于udp协议的闭环网络通信系统中发送端501和接收端502之间的数据交互,即保证了业务数据的发送状态的确定性,也保证了业务执行结果的回报闭环,响应超时重发策略的设置解决了由于网络不稳定导致的数据传输延时和丢包的问题,保证了udp协议的数据传输的可靠性。
42.需要说明的是,基于udp协议的闭环网络通信系统中发送端和接收端还用于执行以上图1-图4的基于udp协议的闭环网络通信方法的实施例中所有的步骤。
43.以上均为本技术的较佳实施例,并非依此限制本技术的保护范围,本说明书(包括
摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献