CN104980257B - 物联网通讯方法及装置 - Google Patents
物联网通讯方法及装置 Download PDFInfo
- Publication number
- CN104980257B CN104980257B CN201510289821.6A CN201510289821A CN104980257B CN 104980257 B CN104980257 B CN 104980257B CN 201510289821 A CN201510289821 A CN 201510289821A CN 104980257 B CN104980257 B CN 104980257B
- Authority
- CN
- China
- Prior art keywords
- packet
- instruction
- message
- terminal
- message packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明公开一种物联网通讯方法及装置,该方法包括:第一终端发送消息包,其中,消息包中包括指令类型以及指令包序号N;若第一终端在预定时间T内未收到第二终端根据消息包返回的确认消息ACK,则递增消息包中的指令包序号至N+1,发送递增过指令包序号的消息包,再次判断在预定时间内T是否收到ACK消息。本公开提供的方法及装置,使用指令类型和指令包序号这两个属性,在不可靠网络的丢包、乱序和重复包环境中,提供消息包的可靠性和更高效的重发机制,能够保证消息的可达性和顺序性,同时可以避免浪费过多的网络资源。
Description
技术领域
本发明涉及物联网领域,尤其涉及一种物联网通讯方法及装置。
背景技术
随着移动互联网的快速发展,物联网领域中的智能终端间的网络通讯越来越频繁,大量的网络消息占用了智能设备、家庭网络、互联网和移动互联网的计算资源和带宽。
现有技术中,服务器服务商提供的网络通讯通常使用TCP长连接或UDP连接。但是,现有技术中部分服务商为了提高服务器处理能力,在服务器中转消息包时,不保证消息的可达性和顺序性,并且UDP的不可靠特征在重发机制上也会有大量的网络浪费。
因此,有必要提出基于不可靠网络的高效的物联网通信方法以解决上述问题。
发明内容
本公开要解决的一个技术问题是如何基于不可靠网络的进行物联网通信,保证消息的可达性和顺序性,降低对网络资源的浪费。
本公开提供一种物联网通讯方法,包括:第一终端发送消息包,其中,消息包中包括指令类型以及指令包序号N;若第一终端在预定时间T内未收到第二终端根据消息包返回的确认消息ACK,则递增消息包中的指令包序号至N+1,发送递增过指令包序号的消息包,再次判断在预定时间内T是否收到ACK消息。
进一步地,指令类型包括状态指令类型和控制指令类型,其中,状态指令类型表示当前状态新消息包中的状态会覆盖旧消息中的状态,控制指令类型表示单次的控制内容中新的控制指令内容基于旧状态的指令内容,新的指令中的消息包内容顺序添加至已接收指令消息包内容的末尾,形成指令包内容序列。
进一步地,若第一终端在预定时间T内收到第二终端根据消息包返回的确认消息ACK,则本次消息包发送结束。
进一步地,第一终端发送消息包之前,还包括:第一终端通过服务器中转、局域网通信或基于UDP的P2P握手方式与第二终端建立会话,其中,第一终端在本地初始化两组包序号,第一组为本地已发出的包序号,第二组为已接收的远程包序号,每组包序号包括所有指令类型对应的指令包序号,初始值均为0。
进一步地,第二终端接收到消息包后,解析指令包的指令类型和指令包序号,指令包的序号为N;检查指令包是否存在已接收的指令包序号,若已经接收到指令包序号为N0,根据指令包序号N与N0的关系和/或指令类型判断是否发送ACK消息。
进一步地,根据指令包序号N与N0的关系判断是否发送ACK消息,包括:若N大于N0时,判断消息包为合法消息包,存储指令并发送确认消息ACK,ACK信息中包括指令的指令类型和指令包序号N,其中,若指令包序号为N的指令的指令类型为状态指令,则覆盖指令包序号为N0的指令,若指令包序号为N的指令的指令类型为控制指令类型,将指令包序号为N的指令的消息包内容添加至指令包序号为N0的指令消息包内容的末尾,形成指令包内容序列;若N小于N0,则判断指令类型的消息包为网络造成的乱序包,丢弃消息包结束处理;若N等于N0,则判断为其他异常情况,丢弃消息包。
本发明提供一种物联网通讯装置,包括:发送模块,用于发送消息包,其中,消息包中包括指令类型以及指令包序号N;处理模块,与发送模块相连接,用于若第一终端在预定时间T内未收到第二终端根据消息包返回的确认消息ACK,则递增消息包中的指令包序号至N+1,发送递增过指令包序号的消息包,再次判断在预定时间内T是否收到ACK消息。
进一步地,指令类型包括状态指令类型和控制指令类型,其中,状态指令类型表示当前状态新消息包中的状态会覆盖旧消息中的状态,控制指令类型表示单次的控制内容中新的控制指令内容基于旧状态的指令内容,新的指令中的消息包内容顺序添加至已接收指令消息包内容的末尾,形成指令包内容序列。
进一步地,处理模块还用于若在预定时间T内收到第二终端根据消息包返回的确认消息ACK,则本次消息包发送结束。
进一步地,处理模块用于通过服务器中转、局域网通信或基于UDP的P2P握手方式与第二终端建立会话,其中,第一终端在本地初始化两组包序号,第一组为本地已发出的包序号,第二组为已接收的远程包序号,每组包序号包括所有指令类型对应的指令包序号,初始值均为0。
进一步地,接收模块用于接收到消息包后,解析指令包的指令类型和指令包序号,指令包的序号为N;处理模块用于检查指令包是否存在已接收的指令包序号,若已经接收到指令包序号为N0,根据指令包序号N与N0的关系和/或指令类型判断是否发送ACK消息
进一步地,处理模块,用于若N大于N0时,判断消息包为合法消息包,存储指令并发送确认消息ACK,ACK信息中包括指令的指令类型和指令包序号N,其中,若指令包序号为N的指令的指令类型为状态指令,则覆盖指令包序号为N0的指令,若指令包序号为N的指令的指令类型为控制指令类型,将指令包序号为N的指令的消息包内容添加至指令包序号为N0的指令消息包内容的末尾,形成指令包内容序列;若N小于N0,则判断指令类型的消息包为网络造成的乱序包,丢弃消息包结束处理;若N等于N0,则判断为其他异常情况,丢弃消息包。
本公开提供的物联网通讯方法及装置,使用指令类型和指令包序号这两个属性,在不可靠网络的丢包、乱序和重复包环境中,提供消息包的可靠性和更高效的重发机制,能够保证消息的可达性和顺序性,同时可以避免浪费过多的网络资源。
附图说明
图1示出本发明一个实施例的物联网通讯方法的流程图。
图2示出本发明另一个实施例的物联网通讯方法的流程示意图。
图3示出本发明一个实施例的物联网通讯装置的结构框图。
图4示出本发明的另一个实施例的物联网通讯装置的结构框图。
具体实施方式
下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。
图1示出本发明一个实施例的物联网通讯方法的流程图。如图1所示,该方法主要包括:
步骤100,第一终端发送消息包,其中,消息包中包括指令类型以及指令包序号。
在一个实施例中,第一终端通过服务器中转、局域网通信或基于UDP的P2P握手方式与第二终端建立会话,其中,第一终端在本地初始化两组包序号,第一组为本地已发出的包序号,第二组为已接收的远程包序号,每组包序号包括所有指令类型对应的指令包序号,初始值可以设置为0或1。这样,利用终端间通讯的指令类型和指令包序号,划分为指令信道,各自进行独立的重发,减少不同指令交叉发送时的不必要的重发包以提高网络效率,同时包序号也可以解决不可靠网络的重复包问题。
在一个实施例中,第二终端接收到消息包后,解析指令包的指令类型和指令包序号,指令包的序号为N;检查指令包是否存在已接收的指令包序号,若已经接收到指令包序号为N0,根据指令包序号N与N0的关系判断是否发送ACK消息。
在一个实施例中,N和N0可以为正整数或自然数,可以将指令包需要从0或1开始排序,也可以从某一固定值如10001开始排序。
在一个实施例中,根据指令包序号N与N0的关系判断是否发送ACK消息,包括:若N大于N0时,判断该消息包为合法消息包,存储指令并发送确认消息ACK,该ACK信息中包括指令的指令类型和指令包序号N,其中,若指令包序号为N的指令的指令类型为状态指令,则覆盖指令包序号为N0的指令,若指令包序号为N的指令的指令类型为控制指令类型,将指令包序号为N的指令的消息包内容添加至指令包序号为N0的指令消息包内容的末尾,形成指令包内容序列,
在一个实施中,若N小于N0,则判断该指令类型的消息包为网络造成的乱序包,丢弃该消息包结束处理。
在一个实施例中,若N等于N0,则判断为其他异常情况,丢弃消息包。
步骤102,若第一终端在预定时间T内未收到第二终端根据消息包返回的确认消息ACK,则递增消息包中的指令包序号至N+1,发送递增过指令包序号的消息包,再次判断在预定时间内T是否收到ACK消息。
在一个实施例中,若第一终端在预定时间T内收到第二终端根据消息包返回的确认消息ACK,则本次消息包发送结束。
在一个实施例中,可以设定重传指令包的次数的最大值,例如,在进行过3或10次超时重传之后,若仍然未收到确认消息ACK,则判断接收方不在线,则停止进行超时重传并向终端设备发送反馈信号,这样可以减少不必要的浪费时间进行重传。
在一个实施例中,随着超时重传次数的增多,可以逐渐减少预定时间T的大小,这样可以避免不必要的时间的浪费。
本发明实施例的物联网通信方法,使用指令类型和指令包序号这两个属性,在不可靠网络的丢包、乱序和重复包环境中,提供消息包的可靠性和更高效的重发机制,能够保证消息的可达性和顺序性,同时可以避免浪费过多的网络资源。
图2示出本发明另一个实施例的物联网通讯方法的流程示意图。如图2所示,该方法主要包括:
步骤201,智能终端通过服务器中转、局域网通信或基于UDP的P2P方式握手并建立会话。
在一个实施例中,终端在本地初始化两组包序号,一组为本地已发出的包序号,另一组为已接收的远程包序号,每组包序号包括所有指令类型对应的指令包序号,初始值均为0;自此,终端间进入正常的通讯流程。
步骤201,任何一方发送任意消息时,将本次指令如C对应的指令包序号并将其加1得到如N,再将指令C和指令包序号N写入消息包;随后将该消息包通过网络接口发出,并等待对该消息包的确认消息(称为ACK),并设置一个超时时间T。
步骤203,判断在预定时间T内是否收到ACK消息,若在预定时间T内收到ACK消息,则执行步骤205,否则执行步骤204。
步骤205,若在时间T内收到ACK,则本次消息发送结束;
步骤204,若在时间T内未收到ACK,则再次递增指令包序号加1,原序号为N时,则现在的指令包序号为N+1,并再次指令步骤203,判断在预定时间内是否收到ACK信息。若没有收到,则再次进入循环超时、重传过程;直至收到ACK确认,或与对方终端的会话断开。
在一个实施例中,在收到ACK前,消息发送方需要发送指令C类型的新消息,则根据该指令类型的实际意义分为两种:状态指令和控制指令。状态指令表示当前状态,新消息中的状态会覆盖旧消息中的状态,旧消息可被丢弃,此时用指令C的新状态值更新重传消息中的状态值,然后保持该消息继续重传;控制指令表示单次的控制内容,新的控制指令内容可能基于旧状态的指令内容,所以不能丢弃旧指令消息的状态,所以自此将新的指令消息C中的内容添加至旧指令消息内容的末尾,形成指令内容序列,以便接收方收到消息后,按序按需执行所有指令内容。
在一个实施例中,接收方接收到消息后,解析指令类型C和指令包序号N,检查指令C的上次已接收的包序号N0,若N小于N0,则该指令的这条消息为网络造成的乱序包,丢弃该消息包结束处理;若N等于N0,则为其他异常情况,也丢弃该消息包结束处理;若N大于N0时,该消息包为合法消息包,将N覆盖N0,存储到指令C的上次已接收的指令包序号,随后根据消息内容按需处理,处理完成后,发送确认消息包ACK,该ACK中包含指令C和指令包序号N。
在一个实施例中,可以将所有指令细分为不同的包序号实例。各个指令的序号各自递增,互不干扰。例如,当指令C1先发出包序号10,然后指令C2发出包序号11,接收方收到消息顺序为C2的包序号11,随后收到包序号C1的10,因为这两条指令互相并不干扰,接收方可以独立的比较两条指令的包序号并全部处理,可以达到减少不必要的重发包和优化网络目的。
在一个实施例中,当控制设备和受控设备进行通信时数据包会经过多级路由从而导致数据包被网络层复制从而使接收放接收到多个相同的数据包。又由于通信基于UDP或其他不可靠通信方式所以数据包并不能在传输层进行处理,而此方法则可以根据判断包序号去处理重发问题。
另外当发送方发送一组控制指令时这组指令中某几个数据包因为网络原因并没有实际到达接收方。这时如果接收方顺利接受到最后一包控制指令并成功回复给发送方时,发送方可以判断接收方收到了最新的数据而不用重发,如果接收方没有收到最后一包数据或没能成功回复给发送方,发送方此时只需要重新发送最后一包数据而不需要重新发送所有丢失数据。
在一个实施例中,终端设备的媒体接入控制层(Media Access Control,MAC)接收到调度命令如上行授权以发送上行数据时,其MAC层可以采用同步混合自动重传请求机制以重传消息包。在该机制中,终端设备或物联网服务器可以为终端设备的MAC层配置一个最大传输次数。当终端的某超时重传进程首次发送某数据时,将标识当前传输次数的计数器置0,并将该序号作为指令的序号与指令一同写入消息包,终端超时重传进程对数据每执行一次传输,标识当前传输次数的计数器就会加1。发送方终端的MAC层传输某消息包后,如果接收到接收方NACK消息(Negative Acknowledgement,否定应答),该终端的MAC层在特定的时间间隔t1如0.1ms到500ms之间后,将计数器加1并将更新后的计数信息写入消息包中,再次重传消息包。当终端接收到接收方的ACK(Acknowledgement,确认消息或肯定应答)消息且传输次数小于接收方配置的最大传输次数时,终端可以不清空消息包对应的缓存。
在一个实施例中,由于设备实际执行的数据传输次数可能小于配置的最大传输次数从而影响数据传输的可靠性,因此,可以设计使终端的实际传输次数可以超过最大传输次数,以保证数据传输的可靠性。标识当前传输次数的计数器大于或等于接收方最大传输次数后,终端仍可以接收到接收方的重传调度命令,根据调度命令执行自适应重传。另外,在标识当前传输次数的计数器小于接收方配置的最大传输次数时,终端也可以根据接收方的重传调度命令执行自适应重传。这样,进一步保证数据传输的可靠性。
在一个实施例中,当终端的某进程如首次传输或者重传过程中没有实际执行传输,则与进程关联的标识当前传输次数的计数器不增加,这样指令包序号也不增加,这样可以保证终端实际传输次数可以达到接收方配置的最大传输次数,进而保证传输的可靠性。
图3示出本发明一个实施例的物联网通讯装置的结构框图。如图3所示,该装置主要包括:
发送模块301,用于发送消息包,其中,消息包中包括指令类型以及指令包序号N;
处理模块302,与发送模块301相连接,用于若第一终端在预定时间T内未收到第二终端根据消息包返回的确认消息ACK,则递增消息包中的指令包序号至N+1,发送递增过指令包序号的消息包,再次判断在预定时间内T是否收到ACK消息。
在一个实施例中,指令类型包括状态指令类型和控制指令类型,其中,状态指令类型表示当前状态新消息包中的状态会覆盖旧消息中的状态,控制指令类型表示单次的控制内容中新的控制指令内容基于旧状态的指令内容,新的指令中的消息包内容顺序添加至已接收指令消息包内容的末尾,形成指令包内容序列。
在一个实施例中,处理模块302还用于若在预定时间T内收到第二终端根据消息包返回的确认消息ACK,则本次消息包发送结束。
在一个实施例中,处理模块302用于通过服务器中转、局域网通信或基于UDP的P2P握手方式与第二终端建立会话,其中,第一终端在本地初始化两组包序号,第一组为本地已发出的包序号,第二组为已接收的远程包序号,每组包序号包括所有指令类型对应的指令包序号,初始值均为0。
在一个实施例中,该装置还包括接收模块303,用于第二终端接收到消息包后,解析指令包的指令类型和指令包序号,指令包的序号为N;处理模块302用于检查指令包是否存在已接收的指令包序号,若已经接收到指令包序号为N0,根据指令包序号N与N0的关系和/或指令类型判断是否发送ACK消息
在一个实施例中,处理模块302用于若N大于N0时,判断消息包为合法消息包,存储指令并发送确认消息ACK,ACK信息中包括指令的指令类型和指令包序号N,其中,若指令包序号为N的指令的指令类型为状态指令,则覆盖指令包序号为N0的指令,若指令包序号为N的指令的指令类型为控制指令类型,将指令包序号为N的指令的消息包内容添加至指令包序号为N0的指令消息包内容的末尾,形成指令包内容序列;若N小于N0,则判断指令类型的消息包为网络造成的乱序包,丢弃消息包结束处理;若N等于N0,则判断为其他异常情况,丢弃消息包。
图4示出本发明的另一个实施例的物联网通讯装置的结构框图。装置400可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算节点的具体实现做限定。
物联网通讯装置400包括处理器(processor)410、通信接口(CommunicationsInterface)420、存储器(memory)430和总线440。其中,处理器410、通信接口420、以及存储器430通过总线440完成相互间的通信。
通信接口420于与网络设备通信,其中网络设备包括例如虚拟机管理中心、共享存储等。
处理器410用于执行程序。处理器410可能是一个中央处理器CPU,或者是专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器430用于存放文件。存储器430可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器430也可以是存储器阵列。存储器430还可能被分块,并且块可按一定的规则组合成虚拟卷。
在一种可能的实施方式中,上述程序可为包括计算机操作指令的程序代码。该程序具体可用于:第一终端发送消息包,其中,消息包中包括指令类型以及指令包序号N;若第一终端在预定时间T内未收到第二终端根据消息包返回的确认消息ACK,则递增消息包中的指令包序号至N+1,发送递增过指令包序号的消息包,再次判断在预定时间内T是否收到ACK消息。
在一种实施方式中,指令类型包括状态指令类型和控制指令类型,其中,状态指令类型表示当前状态新消息包中的状态会覆盖旧消息中的状态,控制指令类型表示单次的控制内容中新的控制指令内容基于旧状态的指令内容,新的指令中的消息包内容顺序添加至已接收指令消息包内容的末尾,形成指令包内容序列。
在一种实施方式中,若第一终端在预定时间T内收到第二终端根据消息包返回的确认消息ACK,则本次消息包发送结束。
在一种实施方式中,第一终端发送消息包之前,还包括:第一终端通过服务器中转、局域网通信或基于UDP的P2P握手方式与第二终端建立会话,其中,第一终端在本地初始化两组包序号,第一组为本地已发出的包序号,第二组为已接收的远程包序号,每组包序号包括所有指令类型对应的指令包序号,初始值均为0。
在一种实施方式中,第二终端接收到消息包后,解析指令包的指令类型和指令包序号,指令包的序号为N;
检查指令包是否存在已接收的指令包序号,若已经接收到指令包序号为N0,根据指令包序号N与N0的关系和/或指令类型判断是否发送ACK消息。
在一种实施方式中,根据指令包序号N与N0的关系判断是否发送ACK消息,包括:若N大于N0时,判断消息包为合法消息包,存储指令并发送确认消息ACK,ACK信息中包括指令的指令类型和指令包序号N,其中,若指令包序号为N的指令的指令类型为状态指令,则覆盖指令包序号为N0的指令,若指令包序号为N的指令的指令类型为控制指令类型,将指令包序号为N的指令的消息包内容添加至指令包序号为N0的指令消息包内容的末尾,形成指令包内容序列,若N小于N0,则判断指令类型的消息包为网络造成的乱序包,丢弃消息包结束处理;若N等于N0,则判断为其他异常情况,丢弃消息包。
本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
如果以计算机软件的形式来实现功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的非易失性存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (2)
1.一种物联网通讯方法,其特征在于,包括:
第一终端发送消息包,其中,所述消息包中包括指令类型以及指令包序号N;第一终端通过服务器中转、局域网通信或基于UDP的P2P握手方式与第二终端建立会话,其中,第一终端在本地初始化两组包序号,第一组为本地已发出的包序号,第二组为已接收的远程包序号,每组包序号包括所有指令类型对应的指令包序号,初始值设置为0或1,这样,利用终端间通讯的指令类型和指令包序号,划分为指令信道,各自进行独立的重发,减少不同指令交叉发送时的不必要的重发包以提高网络效率,同时包序号也可以解决不可靠网络的重复包问题;
若第一终端在预定时间T内未收到第二终端根据所述消息包返回的确认消息ACK,则递增所述消息包中的指令包序号至N+1,发送递增过指令包序号的消息包,再次判断在预定时间内T是否收到ACK消息;
在收到ACK前,消息发送方需要发送指令C类型的新消息,则根据该指令类型的实际意义分为两种:状态指令和控制指令;状态指令表示当前状态,新消息中的状态会覆盖旧消息中的状态,旧消息可被丢弃,此时用指令C的新状态值更新重传消息中的状态值,然后保持该消息继续重传;控制指令表示单次的控制内容,新的控制指令内容可能基于旧状态的指令内容,所以不能丢弃旧指令消息的状态,所以自此将新的指令消息C中的内容添加至旧指令消息内容的末尾,形成指令内容序列,以便接收方收到消息后,按序按需执行所有指令内容;
若第一终端在预定时间T内收到第二终端根据所述消息包返回的确认消息ACK,则本次消息包发送结束;
第二终端接收到消息包后,解析所述消息包的指令类型和指令包序号,所述指令包序号为N;
检查所述消息包是否存在已接收的指令包序号,若已经接收到指令包序号为N0,根据指令包序号N与N0的关系和/或指令类型判断是否发送ACK消息;
根据指令包序号N与N0的关系判断是否发送ACK消息,包括:若N大于N0时,判断所述消息包为合法消息包,存储所述消息包中的指令并发送确认消息ACK,所述ACK消息中包括指令的指令类型和指令包序号N,其中,若所述指令包序号为N的指令的指令类型为状态指令,则覆盖指令包序号为N0的指令,若所述指令包序号为N的指令的指令类型为控制指令类型,将指令包序号为N的指令的消息包内容添加至指令包序号为N0的消息包内容的末尾,形成消息包内容序列,
若N小于N0,则判断所述指令类型的所述消息包为网络造成的乱序包,丢弃所述消息包结束处理;
若N等于N0,则判断为其他异常情况,丢弃所述消息包;
将所有指令细分为不同的包序号实例;各个指令的序号各自递增,互不干扰;
当控制设备和受控设备进行通信时数据包会经过多级路由从而导致数据包被网络层复制从而使接收方接收到多个相同的数据包;又由于通信基于UDP通信方式所以数据包并不能在传输层进行处理,而此方法则可以根据判断包序号去处理重发问题;
当发送方发送一组控制指令时这组指令中某几个数据包因为网络原因并没有实际到达接收方;这时如果接收方顺利接收到最后一包控制指令并成功回复给发送方时,发送方可以判断接收方收到了最新的数据而不用重发,如果接收方没有收到最后一包数据或没能成功回复给发送方,发送方此时只需要重新发送最后一包数据而不需要重新发送所有丢失数据;
由于设备实际执行的数据传输次数可能小于配置的最大传输次数从而影响数据传输的可靠性,因此,设计使终端的实际传输次数超过最大传输次数,以保证数据传输的可靠性;标识当前传输次数的计数器大于或等于接收方最大传输次数后,终端仍可以接收到接收方的重传调度命令,根据重传调度命令执行自适应重传;另外,在标识当前传输次数的计数器小于接收方配置的最大传输次数时,终端也可以根据接收方的重传调度命令执行自适应重传,这样,进一步保证数据传输的可靠性;
当终端的某进程的首次传输或者重传过程中没有实际执行传输,则与进程关联的标识当前传输次数的计数器不增加,这样指令包序号也不增加,这样可以保证终端实际传输次数可以达到接收方配置的最大传输次数,进而保证传输的可靠性。
2.一种物联网通讯装置,其特征在于,包括:
发送模块,用于发送消息包,其中,所述消息包中包括指令类型以及指令包序号N;
处理模块,与发送模块相连接,用于若第一终端在预定时间T内未收到第二终端根据所述消息包返回的确认消息ACK,则递增所述消息包中的指令包序号至N+1,发送递增过指令包序号的消息包,再次判断在预定时间内T是否收到ACK消息;
指令类型包括状态指令类型和控制指令类型,其中,状态指令类型表示当前状态新消息包中的状态会覆盖旧消息中的状态,控制指令类型表示单次的控制内容中新的控制指令内容基于旧状态的指令内容,新的指令中的消息包内容顺序添加至已接收指令消息包内容的末尾,形成消息包内容序列;
所述处理模块还用于若在预定时间T内收到所述第二终端根据所述消息包返回的确认消息ACK,则本次消息包发送结束;
处理模块,用于通过服务器中转、局域网通信或基于UDP的P2P握手方式与第二终端建立会话,其中,第一终端在本地初始化两组包序号,第一组为本地已发出的包序号,第二组为已接收的远程包序号,每组包序号包括所有指令类型对应的指令包序号,初始值均为0或1;
接收模块,用于接收到消息包后,解析所述消息包的指令类型和指令包序号,所述消息包的序号为N;
处理模块用于检查所述消息包是否存在已接收的指令包序号,若已经接收到指令包序号为N0,根据指令包序号N与N0的关系和/或指令类型判断是否发送ACK消息;
处理模块,用于若N大于N0时,判断所述消息包为合法消息包,存储所述消息包中的指令并发送确认消息ACK,所述ACK消息中包括指令的指令类型和指令包序号N,其中,若所述指令包序号为N的指令的指令类型为状态指令,则覆盖指令包序号为N0的指令,若所述指令包序号为N的指令的指令类型为控制指令类型,将指令包序号为N的指令的消息包内容添加至指令包序号为N0的指令消息包内容的末尾,形成消息包内容序列;
若N小于N0,则判断所述指令类型的所述消息包为网络造成的乱序包,丢弃所述消息包结束处理;
若N等于N0,则判断为其他异常情况,丢弃所述消息包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510289821.6A CN104980257B (zh) | 2015-05-29 | 2015-05-29 | 物联网通讯方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510289821.6A CN104980257B (zh) | 2015-05-29 | 2015-05-29 | 物联网通讯方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104980257A CN104980257A (zh) | 2015-10-14 |
CN104980257B true CN104980257B (zh) | 2020-08-25 |
Family
ID=54276398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510289821.6A Expired - Fee Related CN104980257B (zh) | 2015-05-29 | 2015-05-29 | 物联网通讯方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104980257B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106130693B (zh) * | 2016-07-08 | 2019-04-23 | 浙江工业大学 | 一种基于udp的可靠传输方法 |
CN106713124A (zh) * | 2017-01-24 | 2017-05-24 | 深圳市启仑智能科技有限公司 | 一种基于mqtt和mysql的消息推送方法和*** |
CN107404422A (zh) * | 2017-09-19 | 2017-11-28 | 深圳市深层互联科技有限公司 | 一种物联网远程控制命令过滤方法、被控制端以及存储介质 |
CN109035585A (zh) * | 2018-06-14 | 2018-12-18 | 北京旅居四方科技有限公司 | 水电桩、水电桩控制装置、方法和存储介质 |
CN109462638B (zh) * | 2018-10-24 | 2021-10-29 | 青岛海信智慧家居***股份有限公司 | 一种设备状态管理方法及*** |
CN112436918A (zh) * | 2020-10-13 | 2021-03-02 | 北京电子工程总体研究所 | 一种网络命令可靠应答方法、计算机设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7099273B2 (en) * | 2001-04-12 | 2006-08-29 | Bytemobile, Inc. | Data transport acceleration and management within a network communication system |
CN101345775B (zh) * | 2008-08-25 | 2011-12-28 | 中兴通讯股份有限公司 | 一种网管与网元间的人机命令脚本文件的同步方法及*** |
CN101668014B (zh) * | 2009-09-24 | 2012-07-18 | 桂林电子科技大学 | 制造网格服务中心与资源节点的通信方法 |
CN103052032B (zh) * | 2012-12-25 | 2016-01-27 | 上海桑锐电子科技股份有限公司 | 广播无线网络的组网和数据通讯方法 |
CN103368690B (zh) * | 2013-06-27 | 2019-05-14 | 厦门雅迅网络股份有限公司 | 车载设备的音视频信息的传输方法 |
-
2015
- 2015-05-29 CN CN201510289821.6A patent/CN104980257B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN104980257A (zh) | 2015-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104980257B (zh) | 物联网通讯方法及装置 | |
JP5816718B2 (ja) | 通信装置、通信システム、およびデータ通信の中継方法 | |
WO2013012604A1 (en) | System and method for reliable virtual bi-directional data stream communications with single socket point-to-multipoint capability | |
WO2012045049A1 (en) | Block acknowledgement with retransmission policy differentiation | |
JP2010507964A (ja) | 通信ネットワークにおいて無線リソースを効率よく利用する方法及び装置 | |
JP2014509483A (ja) | ワイヤレスネットワークにおけるトランスミッション・コントロール・プロトコルの性能を改善する機構 | |
EP3490293B1 (en) | Data receiving method, data sending method, receiving device and system | |
KR100714675B1 (ko) | 데이터 프레임 재전송 방법 및 상기 방법을 사용하는네트워크 장치 | |
CN113852445B (zh) | 一种提高数据传输可靠性的方法、***、设备和存储介质 | |
CN113259989B (zh) | 数据重传方法、装置及电子设备 | |
CN114500528A (zh) | 一种基于云平台的数据传输方法及装置 | |
CN112994851B (zh) | 一种支持差异化可协商的并行数据通信方法及装置 | |
CN113347681A (zh) | 数据传输方法、装置、存储介质及电子装置 | |
JP7210867B2 (ja) | 確認パケット伝送方法および通信デバイス | |
EP3031159B1 (en) | Retransmission control network node and related method | |
CN113259490B (zh) | 基于udp传输协议的多级节点网络数据传输方法 | |
CN112532358B (zh) | 根据反馈等待时间进行数据发送内容更改的方法和装置 | |
JP2019114947A (ja) | 通信装置、通信装置の制御方法およびプログラム | |
JP4882856B2 (ja) | 通信システム、通信装置、通信方法及び通信プログラム | |
JP2006148727A (ja) | アプリケーションモニタ装置 | |
JP2008199431A (ja) | 通信装置 | |
AU2014231331A1 (en) | System and method for reliable messaging between application sessions across volatile networking conditions | |
JP3148733B2 (ja) | 信号処理装置及び信号処理システム | |
JP6268027B2 (ja) | 通信システム、送信装置、及び通信方法 | |
CN117796010A (zh) | 无线感知网络堆栈 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200727 Address after: 100000, 2 / F, a7, block D, Xisanqi culture and Technology Park, No. 27, xixiaokou Road, Qinghe Xiaoying, Haidian District, Beijing, 2010 Applicant after: Beijing shengtesi Information Technology Co.,Ltd. Address before: 100084, Beijing, Haidian District on the road, No. 28, B (two floor), room -159 02B Applicant before: HEISESHUIJING (BEIJING) SCIENCE & TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200825 |
|
CF01 | Termination of patent right due to non-payment of annual fee |