物联网通讯方法及装置的制造方法

文档序号:9263290阅读:435来源:国知局
物联网通讯方法及装置的制造方法
【技术领域】
[0001]本发明涉及物联网领域,尤其涉及一种物联网通讯方法及装置。
【背景技术】
[0002]随着移动互联网的快速发展,物联网领域中的智能终端间的网络通讯越来越频繁,大量的网络消息占用了智能设备、家庭网络、互联网和移动互联网的计算资源和带宽。
[0003]现有技术中,服务器服务商提供的网络通讯通常使用TCP长连接或UDP连接。但是,现有技术中部分服务商为了提高服务器处理能力,在服务器中转消息包时,不保证消息的可达性和顺序性,并且UDP的不可靠特征在重发机制上也会有大量的网络浪费。
[0004]因此,有必要提出基于不可靠网络的高效的物联网通信方法以解决上述问题。

【发明内容】

[0005]本公开要解决的一个技术问题是如何基于不可靠网络的进行物联网通信,保证消息的可达性和顺序性,降低对网络资源的浪费。
[0006]本公开提供一种物联网通讯方法,包括:第一终端发送消息包,其中,消息包中包括指令类型以及指令包序号N ;若第一终端在预定时间T内未收到第二终端根据消息包返回的确认消息ACK,则递增消息包中的指令包序号至N+1,发送递增过指令包序号的消息包,再次判断在预定时间内T是否收到ACK消息。
[0007]进一步地,指令类型包括状态指令类型和控制指令类型,其中,状态指令类型表示当前状态新消息包中的状态会覆盖旧消息中的状态,控制指令类型表示单次的控制内容中新的控制指令内容基于旧状态的指令内容,新的指令中的消息包内容顺序添加至已接收指令消息包内容的末尾,形成指令包内容序列。
[0008]进一步地,若第一终端在预定时间T内收到第二终端根据消息包返回的确认消息ACK,则本次消息包发送结束。
[0009]进一步地,第一终端发送消息包之前,还包括:第一终端通过服务器中转、局域网通信或基于UDP的P2P握手方式与第二终端建立会话,其中,第一终端在本地初始化两组包序号,第一组为本地已发出的包序号,第二组为已接收的远程包序号,每组包序号包括所有指令类型对应的指令包序号,初始值均为O。
[0010]进一步地,第二终端接收到消息包后,解析指令包的指令类型和指令包序号,指令包的序号为N ;检查指令包是否存在已接收的指令包序号,若已经接收到指令包序号为NO,根据指令包序号N与NO的关系和/或指令类型判断是否发送ACK消息。
[0011]进一步地,根据指令包序号N与NO的关系判断是否发送ACK消息,包括:若N大于NO时,判断消息包为合法消息包,存储指令并发送确认消息ACK,ACK信息中包括指令的指令类型和指令包序号N,其中,若指令包序号为N的指令的指令类型为状态指令,则覆盖指令包序号为NO的指令,若指令包序号为N的指令的指令类型为控制指令类型,将指令包序号为N的指令的消息包内容添加至指令包序号为NO的指令消息包内容的末尾,形成指令包内容序列;若N小于NO,则判断指令类型的消息包为网络造成的乱序包,丢弃消息包结束处理;若N等于NO,则判断为其他异常情况,丢弃消息包。
[0012]本发明提供一种物联网通讯装置,包括:发送模块,用于发送消息包,其中,消息包中包括指令类型以及指令包序号N ;处理模块,与发送模块相连接,用于若第一终端在预定时间T内未收到第二终端根据消息包返回的确认消息ACK,则递增消息包中的指令包序号至N+1,发送递增过指令包序号的消息包,再次判断在预定时间内T是否收到ACK消息。
[0013]进一步地,指令类型包括状态指令类型和控制指令类型,其中,状态指令类型表示当前状态新消息包中的状态会覆盖旧消息中的状态,控制指令类型表示单次的控制内容中新的控制指令内容基于旧状态的指令内容,新的指令中的消息包内容顺序添加至已接收指令消息包内容的末尾,形成指令包内容序列。
[0014]进一步地,处理模块还用于若在预定时间T内收到第二终端根据消息包返回的确认消息ACK,则本次消息包发送结束。
[0015]进一步地,处理模块用于通过服务器中转、局域网通信或基于UDP的P2P握手方式与第二终端建立会话,其中,第一终端在本地初始化两组包序号,第一组为本地已发出的包序号,第二组为已接收的远程包序号,每组包序号包括所有指令类型对应的指令包序号,初始值均为O。
[0016]进一步地,接收模块用于接收到消息包后,解析指令包的指令类型和指令包序号,指令包的序号为N ;处理模块用于检查指令包是否存在已接收的指令包序号,若已经接收到指令包序号为NO,根据指令包序号N与NO的关系和/或指令类型判断是否发送ACK消息
[0017]进一步地,处理模块,用于若N大于NO时,判断消息包为合法消息包,存储指令并发送确认消息ACK,ACK信息中包括指令的指令类型和指令包序号N,其中,若指令包序号为N的指令的指令类型为状态指令,则覆盖指令包序号为NO的指令,若指令包序号为N的指令的指令类型为控制指令类型,将指令包序号为N的指令的消息包内容添加至指令包序号为NO的指令消息包内容的末尾,形成指令包内容序列;gN小于NO,则判断指令类型的消息包为网络造成的乱序包,丢弃消息包结束处理;若N等于NO,则判断为其他异常情况,丢弃消息包。
[0018]本公开提供的物联网通讯方法及装置,使用指令类型和指令包序号这两个属性,在不可靠网络的丢包、乱序和重复包环境中,提供消息包的可靠性和更高效的重发机制,能够保证消息的可达性和顺序性,同时可以避免浪费过多的网络资源。
【附图说明】
[0019]图1示出本发明一个实施例的物联网通讯方法的流程图。
[0020]图2示出本发明另一个实施例的物联网通讯方法的流程示意图。
[0021]图3示出本发明一个实施例的物联网通讯装置的结构框图。
[0022]图4示出本发明的另一个实施例的物联网通讯装置的结构框图。
【具体实施方式】
[0023]下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。
[0024]图1示出本发明一个实施例的物联网通讯方法的流程图。如图1所示,该方法主要包括:
[0025]步骤100,第一终端发送消息包,其中,消息包中包括指令类型以及指令包序号。
[0026]在一个实施例中,第一终端通过服务器中转、局域网通信或基于UDP的P2P握手方式与第二终端建立会话,其中,第一终端在本地初始化两组包序号,第一组为本地已发出的包序号,第二组为已接收的远程包序号,每组包序号包括所有指令类型对应的指令包序号,初始值可以设置为O或I。这样,利用终端间通讯的指令类型和指令包序号,划分为指令信道,各自进行独立的重发,减少不同指令交叉发送时的不必要的重发包以提高网络效率,同时包序号也可以解决不可靠网络的重复包问题。
[0027]在一个实施例中,第二终端接收到消息包后,解析指令包的
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1