CN109936588B - 一种物联网数据传输方法、设备及系统 - Google Patents
一种物联网数据传输方法、设备及系统 Download PDFInfo
- Publication number
- CN109936588B CN109936588B CN201711349410.7A CN201711349410A CN109936588B CN 109936588 B CN109936588 B CN 109936588B CN 201711349410 A CN201711349410 A CN 201711349410A CN 109936588 B CN109936588 B CN 109936588B
- Authority
- CN
- China
- Prior art keywords
- data
- server
- terminal device
- data packet
- resource
- 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.)
- Active
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
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1864—ARQ related signaling
-
- 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
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1809—Selective-repeat protocols
-
- 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/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0079—Formats for control data
- H04L1/008—Formats for control data where the control data relates to payload of a different packet
-
- 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
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1835—Buffer management
- H04L1/1838—Buffer management for semi-reliable protocols, e.g. for less sensitive applications such as streaming video
-
- 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
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/188—Time-out mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/28—Timers or timing mechanisms used in protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例公开了一种物联网系统,用于提高物联网数据传输过程中的效率。终端设备用于向服务器发送第一数据请求,以通知服务器持续发送多个数据包,服务器根据第一数据请求向终端设备持续发送N个数据包,N个数据包中包括至少一个NON数据包。其中,N个数据包中连续两个数据包之间的发送时间间隔为时间间隔T,NON数据包指示终端设备无需向服务器发送接收响应,服务器向终端设备主动推送下一个数据包。从而通过持续发送多个数据包,减少数据块下载过程中的报文交互,达到提高物联网数据传输效率的目的。另外,本申请实施例还提供物联网系统中的数据发送方法和设备。
Description
技术领域
本申请实施例涉及物联网领域,尤其涉及一种物联网数据传输方法、设备及系统。
背景技术
物联网(internet of things,IoT)是新一代信息技术的重要组成部分,也是“信息化”时代的重要发展阶段。物联网就是物物相连的互联网,相对于互联网,物联网的主要特点有:1)节点数量特别多;2)很多物联网设备非常小,内存、CPU、电能等资源非常有限;3)网络环境波动大,丢包可能性比较大;4)UE设备端通常具有移动性,采用电池供电。
当前物联网设备中大块数据传输常用的一种方案是基于资源受限应用层协议(constrained application protocol,CoAP)的Block块传输方案,该方案成熟可靠,该Block块传输方案将数据分为多个Block数据块进行传输,终端与服务器间交互比较频繁,因此,数据传输的效率比较低下,且功耗较高。
发明内容
本申请实施例提供了一种提出一种新物联网中的数据传输方法,使得数据包分块的下载过程中,通过减少数据块下载过程中的报文交互能够提高物联网数据传输的效率,以及降低数据传输过程的功耗。
作为在本申请的一个概括的实施例,终端设备(或称为客户端)向服务器请求第1块数据时,携带一个新的选项(option),包含最大可并发接收的持续数据包数量N或数据包编序列,时间间隔T,服务器每隔这个时间间隔向终端设备主动推送一个数据块,数据块承载在数据包中,通过数据包的形式发送给终端设备,直到N个数据块全部推送完。因此不用对每一个数据块进行数据请求,可以通过减少发送数据请求的数量和频率,提高终端设备和服务器之间数据传输的效率。
第一方面,在本申请实施例给出的物联网系统中,包括终端设备和服务器,其中终端设备可以有多个,服务器可以为服务器集群。终端设备用于向所述服务器发送第一数据请求,该数据请求用于通知所述服务器持续发送多个数据包,该数据请求包括终端设备可持续接收数据包的数量N和两个持续数据包之间发送的时间间隔T。服务器用于,根据所述第一数据请求向所述终端设备持续发送N个数据包,N个数据包中包括至少一个不需要确认的资源受限应用层协议(NON confirmable CoAP message,NON)数据包,且N个数据包中连续两个数据包之间的发送时间间隔为所述时间间隔T,所述NON数据包为无需终端设备向服务器发送接收响应的数据包,即服务器无需接收到前一个数据包的响应消息就自动推送后一个数据包。
需要说明的是,连续两个数据包可以理解为服务器发送一个数据包,以及无需等待该数据包的响应就继续发送的又一个数据包,例如:N个数据包中的第M个和第M+1个数据包,M大于等于1,小于等于N-1。再例如,连续两个数据包也可以理解为服务器发送的两个相邻的数据包,该相邻可以是服务器的发送队列里相邻的数据包。,一种实现方式下。连续两个数据包可以理解为该两个数据包的编号是连续的。
在本申请实施例提供的物联网系统中,通过服务器和终端设备的消息交互,在终端设备发送一个数据请求的情况下,服务器可以持续发送多个数据包,减少了数据传输过程中的请求报文,从而达到提升物联网数据传输效率的效果,以及降低数据传输过程中的功耗。
可选的,服务器在向终端设备持续发送N个数据包时,前面N-1个数据包为NON数据包,最后一个数据包为需要确认的资源受限应用层协议(confirmable CoAP message,CON)数据包。终端设备还用于,根据所述CON数据包,向所述服务器发送响应消息,以通知服务器终端设备仍处于接收状态。发送CON数据包的目的是检测终端设备是否已经离线,若服务器接收不到终端设备的响应消息,则确认终端设备已经离线,停止继续推送数据块,避免浪费服务器资源。
可选的,第一数据请求还可以包括所述N个数据包的起始编号;服务器用于根据第一数据请求,从包括所述起始编号的数据包开始向终端设备依次持续发送N个数据包。
可选的,终端设备最大允许接收的数据包的数据量N是通过与服务器进行信息交互后得到的。终端设备还用于向服务器发送资源获取请求,该资源获取请求包括被请求的数据资源的标识;服务器还用于根据数据资源的标识,向终端设备发送数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量;终端设备还用于根据数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量确定所述数据包的数量N。
可选的,可以通过重传机制来保障了数据块传输过程中的可靠性。终端设备还用于,在接收到一个数据包后,启动对应于所述数据包的下一个数据包的定时器,在所述定时器超时而没有接收到所述下一个数据包的情况下,向所述服务器发送重传请求;服务器还用于,在接收到所述重传请求后,向终端设备重新发送所述下一个数据包。
可选的,有多个数据包丢失时,可以采用发送数据包编号序列的方式,让服务器对这些数据包编号序列对应的数据包逐个重发。终端设备还用于向服务器发送第二数据请求,第二数据请求包括数据包编号序列,数据包编号序列用于指示终端设备未接收到的数据包;服务器,还用于在接收到第二数据请求后,重传所述数据包编号序列对应的数据包;终端设备,还用于接收服务器发送的所述数据包编号序列对应的数据包。从而可以在多个数据包丢失的情况下,提高重传效率。
可选的,所述第一数据请求或所述第二数据请求都可以在资源受限应用层协议选项CoAP option中发送,也可以在资源受限应用层协议查询选项CoAP query option中发送,也可以在不需要回复的选项NONACK option中发送。
第二方面,本申请实施例还提供一种物联网数据传输方法,该方法包括:
终端设备向服务器发送第一数据请求,第一数据请求用于通知服务器持续发送多个数据包,第一数据请求中包括终端设备可持续接收数据包的数量N和发送两个持续数据包之间的时间间隔T,其中N大于1;之后,终端设备接收服务器发送的N个数据包,N个数据包中包括至少一个NON数据包,其中,N个数据包中连续两个数据包之间的发送时间间隔为所述时间间隔T,所述NON数据包为无需终端设备向服务器发送接收响应的数据包。
本实施例在终端设备发送一个数据请求的情况下,服务器可以持续发送多个数据包,而无需终端设备每次都向服务器请求发送数据块,从而减少了数据传输过程中的请求报文,达到提升物联网数据传输效率的效果。
可选的,所述N个数据包中的最后一个数据包为CON数据包,具体的,N个数据包中,前面N-1个数据包为NON数据包,最后一个数据包为CON数据包。所述方法还包括:终端设备在接收到所述CON数据包后,向服务器发送响应消息,以用于通知服务器终端设备仍处于接收状态,并未离线。
在一些实施例中,所述第一数据请求还包括所述N个数据包的起始编号,所述N个数据包为从所述起始编号起,编号递增的数据包。
可选的,在终端设备向服务器发送第一数据请求之前,终端设备还向服务器发送资源获取请求以获取数据资源,资源获取请求中包括被请求的数据资源的标识;之后,终端设备接收服务器发送的所述数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量;再根据所述数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量确定所述数据包的数量N。
在一些实施例中,终端设备在接收到一个数据包后,启动对应于所述数据包的下一个数据包的定时器,在所述定时器超时而没有接收到所述下一个数据包的情况下,向服务器发送重传请求,所述重传请求用于指示服务器重新发送所述下一个数据包。从而可以通过重传机制保障数据传输过程中的可靠性。
可选的,定时器的时间为根据终端设备接收和发送数据的平均往返时间,数据包到达速率和所述终端设备的剩余缓冲区大小计算得到的时间。
在一些实施例中,终端设备还向服务器发送第二数据请求,第二数据请求中包括数据包编号序列,这些数据包编号序列用于指示终端设备丢失的或未接收到的数据包;之后,终端设备会接收到服务器根据第二数据请求重传的所述数据包编号序列对应的数据包。如此,在终端设备丢失多个数据包时,不用请求一一重传,节省终端设备和服务器之间的信息交互。
可选的,所述第一数据请求或所述第二数据请求可以在CoAP option字段中发送,或在CoAP query option字段中发送,或在NONACK option字段中发送。
第三方面,本申请实施例还提供一种物联网数据传输方法,该方法包括:
服务器接收终端设备发送的第一数据请求,该第一数据请求包括终端设备可持续接收数据包的数量N和发送两个持续数据包之间的时间间隔T,N大于1;服务器根据第一数据请求向终端设备持续发送N个数据包,N个数据包中包括至少一个NON数据包,其中,N个数据包中连续两个数据包之间的发送时间间隔为所述时间间隔T,所述NON数据包为无需终端设备向服务器发送接收响应的数据包。
本实施例中,在终端设备发送一个数据请求的情况下,服务器可以持续发送多个数据包,而不需要终端设备每获取一个数据块,都给服务器发送一次数据块请求进行交互,从而可以减少了数据传输过程中的请求报文,达到提升物联网数据传输效率的效果,以及降低互联网传输过程中的设备的功耗。
可选的,所述N个数据包中的最后一个数据包为CON数据包,可以是N个数据包中,前面N-1个数据包为NON数据包,最后一个数据包为CON数据包。CON数据包用于指示终端设备向所述服务器发送响应消息,以使得服务器知道终端设备仍处于接收状态,并未离线。从而可以避免因终端设备离线,服务器仍在不断发送数据包,避免服务器资源的浪费。
在一些实施例中,第一数据请求还包括所述N个数据包的起始编号,服务器在发送N个数据包时,是从所述起始编号的数据包开始向终端设备依次持续发送N个数据包。
在一些实施例中,服务器在接收终端设备发送的第一数据请求之前,还接收终端设备发送的资源获取请求,该资源获取请求包括被请求的数据资源的标识;服务器根据数据资源的标识,向终端设备发送所述数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量,所述数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量用于所述终端设备确定所述数据包的数量N。
在一些实施例中,服务器还接收终端设备发送的第二数据请求,第二数据请求包括数据包编号序列,以指示终端设备未接收到的数据包;之后,服务器将所述数据包编号序列对应的数据包发送给终端设备。从而可以一次可以重传多个终端设备未接收到的数据包,节省数据传输过程的信息交互。
可选的,第一数据请求或第二数据请求可以在CoAP option字段中发送,也可以在CoAP query option字段中发送,也可以在NONACK option字段中发送。
第四方面,本申请实施例还提供一种物联网终端设备,具体实现对应于上述第二方面提供的物联网数据传输方法所实现的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件程序实现。硬件和软件包括一个或多个与上述功能相对应的单元模块,所述单元模块可以是软件和/或硬件。
一种可能的设计中,所述终端设备包括:
发送模块,用于向服务器发送第一数据请求,所述第一数据请求用于通知所述服务器持续发送多个数据包,所述第一数据请求包括所述终端设备可持续接收数据包的数量N和发送两个持续数据包之间的时间间隔,所述N大于1;
接收模块,用于接收服务器持续发送的N个数据包,所述N个数据包中包括至少一个NON数据包,其中,所述N个数据包中连续两个数据包之间的发送时间间隔为所述时间间隔,所述NON数据包为无需所述终端设备向所述服务器发送接收响应的数据包。
一种可能的设计中,所述终端设备包括:
包括存储器,一个或多个处理器,以及一个或多个程序;其中所述一个或多个程序被存储在所述存储器中;其特征在于,所述处理器执行所述一个或多个程序,以用于执行上述第二方面中的全部或部分步骤。
第五方面,本申请实施例还提供一种服务器,具体实现对应于上述第三方面提供的物联网数据传输方法所实现的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件程序实现。硬件和软件包括一个或多个与上述功能相对应的单元模块,所述单元模块可以是软件和/或硬件。
一种可能的设计中,所述服务器包括:
接收模块,用于接收终端设备发送的第一数据请求,所述第一数据请求包括所述终端设备可持续接收数据包的数量N和发送两个持续数据包之间的时间间隔,所述N大于1;
发送模块,用于根据所述第一数据请求向终端设备持续发送N个数据包,所述N个数据包中包括至少一个NON数据包,其中,所述N个NON数据包中连续两个数据包之间的发送时间间隔为所述时间间隔,所述NON数据包为无需终端设备向服务器发送接收响应的数据包。
一种可能的设计中,所述服务器包括:
包括存储器,一个或多个处理器,以及一个或多个程序;其中所述一个或多个程序被存储在所述存储器中;其特征在于,所述处理器执行所述一个或多个程序,以用于执行上述第三方面中的全部或部分步骤。
本申请的又一方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本申请的又一方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
根据本申请实施例提供的方案,相对标准的CoAP Block传输技术,减少了块传输过程中的请求报文,特别是在物联网这种终端设备数量巨大的情况下,能够有效的提升数据传输过程中的效率,以及降低物联网设备的功耗。
附图说明
图1为物联网应用中典型的物联网系统示意图;
图2为本申请实施例的一种应用场景示意图;
图3为本申请实施时的一种简化架构图;
图4为本申请实施例的一种方法流程示意图;
图5为本申请实施例终端设备与服务器的一种信息交互示意图;
图6为本申请实施例终端设备与服务器的一种协议交互示意图;
图7为NONACK option的字段定义示意图;
图8为option字段中的承载的信息示意图;
图9为本申请实施例的另一种方法流程示意图;
图10为本申请实施例中的终端设备的一种功能模块结构图;
图11为本申请实施例中的服务器的一种功能模块结构图;
图12本申请实施例中的终端设备的一种硬件结构示意图;
图13本申请实施例中的服务器的一种硬件结构示意图。
具体实施方式
以下结合附图对本申请实施例实施例进行进一步详细说明。
本申请实施例应用于物联网应用,例如用于基于蜂窝的窄带物联网(narrow bandinternet of things,NB-IoT)电表、NB-IOT水表、共享单车、家用电器等物联网应用中。物联网应用中常见的模式为终端设备(user equipment,UE)分散工作,云平台统一管理。图1所示为物联网应用的常见模式示意图,其中UE(UE1、UE2等)指终端设备,也可以称之为客户端,通常为物联网终端,例如智能电表、智能水表、共享单车、智能家电的通信模块等等;Server指服务端,通常为云平台,各种物联网终端通过物联网接入云平台。
本申请实施例可用于物联网中基于CoAP的大块数据传输。常见的场景有UE设备固件包远程升级,UE设备配置文件更新,UE设备日志上传等。例如,对于UE设备固件包远程升级这种典型的实施场景来说,该场景在当前物联网应用中广泛存在,尤其是面向消费者的产品,如共享单车,固件包远程升级将会更频繁。多数情况下,这类产品厂家通常会为了抢占先机,基础软件在没有重大问题的情况下会很快投入使用,然后在使用过程中不断进行优化。如图2所示,固件包远程升级一般涉及三个模块:终端设备UE、云平台服务器(IOTserver)、固件服务器(Package server)。通常云平台服务器进行UE设备管理,完成资源订阅,消息通知;固件服务器用来存放需要下载的固件包并提供给UE下载;UE完成下载和固件包更新。云平台服务器通知终端设备有新的固件包可以更新,终端设备从固件服务器下载新的固件包,下载完成后,云平台服务器指示终端设备进行更新。
当前网联网系统多采用标准RFC7959中的CoAP Block块传输方案的block2传输方式传输数据。标准的block2传输方式采用的是终端设备发送一个请求,服务端响应一串数据的串行传输的模式。每次由终端设备发送一个block2块请求,服务端在响应消息(例如CoAP消息的确认消息(acknowledge CoAP message,ACK))中携带block子块的传输内容,并且携带是否还有下一块内容信息。在一定时间内,如果没有正常收到服务端的回应,客户端则会请求超时重传。在上一块请求未正常收到之前,客户端不会发起下一块请求。当前RFC7959标准的CoAP Block传输方案能够解决物联网应用中的大块数据传输问题。但这种方案UE端每获取一个Block数据块,都需要给服务器发送一次数据块请求交互,导致开销大;且采用串行交互,N块数据至少需要N次的信息交互完成,导致时延高;在物联网设备量级大时会导致服务端压力大。
本申请实施例提出一种新的CoAP Block块传输方式,在终端设备向服务器请求数据块时,携带一个指示信息,该指示信息包含最大可并发接收的持续数据块数量N和时间间隔T,服务器每隔时间间隔T向终端设备主动推送一块数据,直到全部N块数据块发送完。本申请的各实施例中,终端设备与服务器之间传输的数据块是以数据包的形式承载,服务器每隔时间间隔T向终端设备主动推送一块数据,也即服务器每隔时间间隔T向中端设备主动推送一个数据包,数据包中承载数据块。本申请实施例减少了Block传输中请求信息的交互,一方面减少了多次请求的开销,提高了传输的效率,降低物联网UE设备的功耗;另一方面请求的减少也相应的减轻了服务端的压力。从而解决物联网设备的功耗高和效率低的问题。
为了阐述本申请的技术方案,通过实施例给出详细说明。本申请实施例的可以是在NB-IOT中基于原有的CoAP Block2大块数据包传输的基础上,修改为本申请实施例的数据传输方式。
图3为本申请实施的一种简化架构图。硬件、软件均指终端设备所涉及的部分,硬件通常包括处理器,NB-IOT收发模块,外部存储模块,供电电池等,其中外部存储模块可以是eflash等存储介质;软件部分包含内核(Kernel)、CoAP层、上层APP应用模块,其中,内核主要是指操作系统以及底层网络协议栈等,CoAP层为运行在操作系统上的CoAP协议处理层,上层APP应用模块是指运行的各种应用程序。本申请实施例涉及修改的部分为软件部分CoAP层和上层APP应用模块。
本申请实施例提供一种物联网系统,其中,包括如图1所示的终端设备(UE)和服务器,其中终端设备通过NB-IOT模块与服务器通信。
在本申请实施例的物联网系统中,终端设备向服务器发送第一数据请求,第一数据请求用于通知服务器可以采用无确认方式持续发送数据包,采用无确认方式持续发送数据包可以理解为无需终端设备每获取一个数据块,都给服务器发送一次数据块请求进行交互,而是服务器每隔一定时间间隔主动推送一个数据包给终端设备,且服务器每推送一个数据包后,无需等待终端设备发送接收响应消息,间隔一定时间后,主动推送下一个数据包。
该第一数据请求包括终端设备可持续接收数据包的数量N和发送两个持续数据包之间的时间间隔T。服务器根据第一数据请求,向终端设备持续发送N个数据包,N个数据包中包括至少一个NON数据包,例如:N个数据包全部都是NON数据包,又例如,N个数据包中前面N-1个数据包为NON数据包。此外,N个数据包中连续两个数据包之间的发送时间间隔为所述时间间隔T,需要说明的是,本申请各实施例中,连续两个数据包中可以理解为N个数据包中相邻的两个数据包,例如:第M个和第M+1个数据包,M大于等于1,小于等于N-1,即可以理解为两个数据包的编号是连续的。
在各实施例中,第一数据请求可以为承载在CON数据包(或CON消息)或NON数据包(或NON消息)中的指示信息,该指示信息可以为消息中的一个字段,可以通过CON消息或NON消息中的option字段来发送,例如可以在CoAP option中发送,也可以在CoAP queryoption中发送,或也可以自定义一个新的NONACK option来发送,NONACK opition为CoAP标准协议基础上增加新的option。
其中,NON数据包是指是NON类型的CoAP消息,即不需要确认的CoAP消息(NONconfirmable CoAP message),终端设备在接收到所述NON数据包后无需向服务器发送接收响应,服务器在时间间隔T后会主动向终端设备继续发送下一数据包,直到N个数据包全部发送完。因此无需终端设备每次都向服务器请求一数据包,服务器才发送一数据包,从而减少了Block传输中请求信息的交互。
进一步,服务器在向终端设备持续发送N个数据包时,前面N-1个数据包为NON数据包,最后一个数据包为CON数据包。CON数据包是指CON类型的CoAP消息,即为需要确认的CoAP消息(confirmable CoAP message),用于指示终端设备向服务器发送响应消息。终端设备在接收到CON数据包后,向服务器发送响应消息(例如:ACK消息),响应信息用于通知服务器该终端设备仍处于接收状态。
服务器在持续发送N-1个NON数据包后,再向终端设备发送一个CON数据包的目的是检测终端设备是否已经离线,如果服务器接收不到终端设备的响应消息,则确认终端设备已经离线,停止继续推送数据块,避免在大量数据传输时,终端设备已经离线了,而服务器还在执行发送任务,浪费服务器资源。
根据具体的实施情况,该CON数据包可以为采用CON类型发送的携带数据块的数据包,此种情况下,该CON数据包既向终端设备发送了一块数据块,又用于通知终端设备在接收到该数据包后需要反馈响应消息。在另一种实施方式中,该CON数据包也可以为采用CON类型发送的不携带数据块的数据包,仅用于通知终端设备在接收到该数据包后需要反馈响应消息。
在一些具体的实施例中,第一数据请求中还包括N个数据包的起始编号,该起始编号用于指示服务器发送所述N个NON数据包的起始的编号,服务器从所述起始编号的数据包开始向终端设备依次持续发送N个数据包,终端设备便可以接收服务器发送的数据包编号对应的数据包。从而可以解决发送数据包准确性的问题,同时可以使服务器向终端设备发送数据时能够准确的找到准备发送的数据包。
以第一数据请求通过NONACK option发送为例,数据包的起始编号可以与数据包的数量N和时间间隔T一起在NONACK option中发送;也可以是数据包的数量N和时间间隔T通过NONACK option中发送,数据包的起始编号通过CoAP标准协议中的其他option发送,例如通过block option发送。
进一步,第一数据请求中携带的终端设备可持续接收数据包的数量N和发送两个持续数据包之间的时间间隔T是终端设备与服务器进行信息交互后获得的。
可选的,终端设备确定可持续接收数据包的数量N的方法为:在终端设备向服务器发送第一数据请求之前,向服务器发送资源获取请求,资源获取请求中包含终端设备请求的数据资源的标识;服务器接收终端设备发送的资源获取请求后,向终端设备发送数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量,终端设备再根据数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量确定所述可持续接收数据包的数量N。
可选的,终端设备确定时间间隔T的方法为:终端设备根据与服务器之间的数据发和收的时间或者数据往返时间(round trip time,RTT)进而确定NONACK option中的时间间隔的值T,即根据终端设备向服务器发送请求,到接收服务器返回的数据的时间来确定时间间隔T。
进一步,在服务器和终端设备之间发送数据的过程中,终端设备在接收到每一个数据包后,启动对应于该数据包的下一个数据包的定时器,在定时器超时而没有接收到下一个数据包的情况下,向服务器发送重传请求;服务器在接收到重传请求后,向终端设备重新发送所述下一个数据包。通过定时器超时重传(retransmission timeout,RTO)的机制,可以防止丢包,从而保障了数据块传输过程中的可靠性。
超时重传时,设置RTO的时间的方式不限,例如:可以预先设置一个时间,也可以根据终端设备与服务器之间收发的平均往返时间,数据包到达速率和终端设备的剩余缓冲区大小确定一个时间。
进一步,在某些场景中,若终端设备检测到数据包中出现空洞,或有多个数据包丢失时,可以采用发送数据包编号序列的方式,让服务器对这些数据包编号序列对应的数据包逐个重发。因此,终端设备可以向服务器发送第二数据请求,该数据请求中包括丢失的数据包(即未接收到的数据包)对应的数据包编号序列,服务器在接收到所述第二数据请求后,重传所述数据包编号序列对应的数据包。从而可以保障数据块传输过程中的可靠性。
可选的,第二数据请求可以为承载在CON数据包(或CON消息)或NON数据包(或NON消息)中的指示信息,该指示信息可以为消息中的一个字段,可以通过CON消息或NON消息中的option字段来发送。例如可以在CoAP option中发送,也可以在CoAP query option中发送,或也可以自定义一个新的NONACK option来发送,NONACK opition为CoAP标准协议基础上增加新的option。
可选的,第一数据请求和第二数据请求可以承载在一个option字段中,以承载在NONACK option中为例,NONACK option字段中既可以包括终端设备可允许接收的持续数据包数量N、发送两个持续数据包之间的时间间隔T,还可以包括终端设备未接收到的数据包对应的数据包编号序列。
进一步,在数据传输过程中,可以通过位图(bitmap)对数据块进行记录,以保障数据传输过程中的可靠性。位图为用一个比特(bit)位来标记某个元素对应的值,采用bit为单位来存储数据。终端设备在确定数据包的数据量N后,生成对应的大小的位图,后面每收到一个数据块,则更新位图的状态,从而采用位图的方式来记录接收到的数据包的情况。例如:接收到了第1块数据块,则将第1块数据块对应的bit位从0更新为1。
根据上述实施例,通过服务器和终端设备的消息交互,在终端设备发送一个第一数据请求的情况下,服务器可以持续发送多个数据包,减少了块传输过程中的请求报文,从而提升了数据传输过程中的传输效率。
参阅图4,本申请实施例的方法流程包括:
401、终端设备向服务器发送第一数据请求;
第一数据请求用于通知服务器向终端设备持续发送多个数据包,第一数据请求包括终端设备可持续接收数据包的数量N和发送两个持续数据包之间的时间间隔T。
在某些特定的实施中,例如终端设备已经获取了部分数据,或者数据量特别大的情况下,第一数据请求还包括起始编号,起始编号用于指示服务器从哪个编号开始发送数据包。
402、服务器根据第一数据请求向终端设备持续发送N个数据包,终端设备接收服务器发送的N个数据包。
N个数据包中持续两个NON数据包的发送时间间隔为时间间隔T,N个数据包中包括至少一个NON数据包,例如:N个数据包全部都是NON数据包,又例如,N个数据包中前面N-1个数据包为NON数据包。NON数据包指示终端设备在接收到NON数据包后无需向服务器发送接收响应,服务器在时间间隔T后会主动向终端设备继续发送下一个数据包,直到N个数据包全部发送完。
一种实现方式下,服务器可以通过如下改进实现多个数据包的持续发送。服务器按照第一数据请求中的顺序,发送第1块数据,创建并启动定时器,定时器的超时时间为所述时间间隔T;服务器等待定时器超时,当定时器超时时,发送下一块数据;之后判断第一数据请求中所需要发送的N个数据包是否全部发送完,如果没有发送完,则重新启动定时器,当定时器超时时,再继续发送下一块数据,直到N个数据包发送完。
可选的,服务器判断当前待发送的数据是否是第一数据请求所指示的N个数据包中的最后一块数据,如果不是N个数据包中的最后一块数据,则继续以NON类型的CoAP消息发送数据包;如果是N个数据包中的最后一块数据,则以CON类型的CoAP消息发送N个数据包中的最后一块数据,等待终端设备对已发送的CoAP消息的响应消息(即ACK消息),以确认终端设备是否仍处于在线接收状态。
在接收到终端设备发送的ACK消息后,服务器确认终端设备仍然在线,则继续执行步骤402,继续发送N个数据包。可选的,每发送N个数据包时,N个数据包中的最后一个数据包以CON数据包的形式发送,以确认终端设备是否在线,直到终端设备请求的数据资源全部发送完。
终端设备保存所接收到的数据包,等待需要的数据包完成后,形成相应的完整数据文件。
下面对终端设备与服务器之间的数据块传输交互过程进行具体的介绍。第一数据请求可以在CoAP option中发送,也可以在已有的CoAP query option中发送,也可以自定义一个新的NONACK option来发送,NONACK opition为CoAP标准协议基础上增加新的option。本实施例以通过NONACK option发送第一数据请求与服务器进行协商为例进行举例说明。
如图5所示,本申请实施例的方法流程包括:
501、终端设备向服务器发送资源获取请求;
该资源获取请求用于向服务器请求数据资源,资源获取请求中包含被请求的数据资源的标识。
在一种实现方式中,资源获取请求可以通过Get消息承载,Get消息是指CoAP协议中请求消息的一种,是终端向服务器请求获得资源的一种消息类型。终端设备向服务器发送Get消息,服务器对该Get消息进行响应回复(例如通过ACK消息回复)。
数据块传输协议交互信息具体可以如图6所示。
“CON[MID=1234],GET,/package,2:0/0/64”为终端设备向服务器发送CON数据包,表示通过Get消息向服务器请求获取第0块数据,其中,2:0/0/64中的2是指以block2的传输方式,第一个0是指请求第0块数据,第二个0是指是否继续发送下一块数据,64是指终端设备允许接收的每个数据包的大小。其中,第0块数据中的0仅是一种数据块的编号示例,实际应用中,也可以以其他方式对数据块进行编号。
502、服务器向终端设备发送第0块数据;
服务器接收终端设备发送的资源获取请求后,确定向终端设备发送的数据资源的数据量,并根据所述终端设备允许接收的每个数据包的大小确定用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量,将数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量发送给终端设备。
服务器在接收到Get请求后,通过ACK消息进行响应。如图6所示的“ACK[MID=1234],2.05Content,2:0/1/64”中,Content为服务器回复的内容,64是指服务器根据Get请求中的终端设备允许接收的每个数据包的大小,以及自身的处理能力,确定后续传输的每个数据包的大小为64,即用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量大小为64。该ACK消息中还包括数据资源的数据量,若终端设备获取的数据资源是固件跟新包,则是整个固件更新包的总大小。
503、终端设备向服务器发送NONACK option进行协商;
终端设备在接收到第0块数据后,一方面,根据第0块数据中携带的数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量确定所述数据包的数量N,另一方面,根据Get消息发送到接收到ACK消息中的往返时间,计算得到时间间隔T。
之后,终端设备向服务器发送NONACK option进行协商,采用无确认方式持续发送数据,即服务器按照一定的时间间隔,持续的给终端设备发送数据块。服务器解析该option,如果同意,按协商的方式发送;如果不同意,则在回复的NONACK option中说明,后续按照标准方式发送。
本实施例中,以NONACK option为CON消息中的一个option字段为例,对NONACKoption的字段定义进行说明。可以约定如图7中所示的编号为“XX”的option为NONACKoption,且NONACK option包括以下属性:是关键字段(C),不安全的(U),不能缓存(N),保留的(R),名称为NONACK,格式是二进制数据(opaque),长度是8个字节(Length)。
一种option的具体格式如图8所示,其中,第一行的数字0~7用于表示一字节中的第0到第7位。选项编号(option delta)占用1个字节,选项编号扩展(option deltaextended)占用0-2个字节,选项编号和选项编号扩展中的信息为该option的编号,若编号对应于图7中定义的NONACK option的编号“XX”,则该option为NONACK option;选项长度(option length)占用1个字节,选项长度扩展(option length extended)占用0-2个字节;选项值(option value)可以占用多个字节,为该option中具体承载的信息,若该option为NONACK option,则选项值中的信息可以包含如下信息或其组合:
(1)终端设备可持续接收的数据包的数量N(MAX Number of NON-ACKed block,int);
(2)发送两个持续数据包之间的间隔时间T(Min interval between twosequential blocks,in ms),如果为时间间隔0,则表示可以并发。
另外,根据具体实施的需要,NONACK option还可以包括:数据包编号序列,该数据包编号序列用于可以是离散的,也可以是连续的,用于指示终端设备未接收到的数据块编号序列,并指示服务器重传该数据包编号序列对应的数据块。
可选的,根据实际需要,NONACK option中还可以包括指示服务器发送N个数据包的起始编号。
服务器根据自身的处理能力,确定是否可以按照所述终端设备可持续接收的数据包的数量N持续发送N个数据包,若可以,则将所述数据包的数量N确定为向终端设备持续发送的数据包的数量N;若不可以,则服务器根据所述数量N确定一个合适的持续发送数据包的数量N值。
同理,服务器可以直接确定所述时间间隔T为发送两个持续数据包之间的时间间隔T;另一种实现方式可以是服务器根据自身的发送能力确定一个发送时间间隔T,所述发送时间间隔T在终端设备的承受能力范围内即可,再按照确定的这个时间间隔T发送数据包。从物理含义上来说,所述发送时间间隔是终端设备的接收时间间隔。
如图6所示的“CON[MID=1235],GET,/package,2:1/0/64,option NONACK”表示终端设备发送NONACK option消息向服务器协商,采用无确认方式持续发送数据包,即在无需终端设备逐一请求每个数据包的情况下,持续向终端设备发送N个数据包,每两个持续数据包之间的发送时间间隔为时间间隔T,其中,所述N和所述T携带在NONACK option中。
504、服务器根据NONACK option向终端设备持续发送N-1个NON数据包,终端设备接收服务器发送的N-1个NON数据包。
所述N个数据包中,前面N-1个数据包为NON数据包。
如图6所示,N的取值为3,“NON[MID=1235],2.05Content,2:1/1/64”表示服务器向终端设备发送的第一块数据,其中64是指该块数据的大小为64;“NON[MID=1236],2.05Content,2:2/1/64”表示服务器向终端设备发送的第二块数据,其中64是指该块数据的大小为64。因此,服务器每次向终端设备发送两个持续的NON数据包。
505、服务器再向终端设备发送一个CON数据包;
为了检测终端设备是否在仍处于在线接收状态,服务器在发送N-1个NON数据包后,再向终端设备发送一个CON数据包,以使终端设备向服务器回复响应消息,即第N个数据包为CON数据包。如图6所示,“CON[MID=1237],2.05Content,2:3/1/64”表示服务器向终端设备发送的第三块数据,其中64是指该块数据的大小为64,该数据块采用CON类型的CoAP消息发送。
506、终端设备接收到该CON数据包后,向服务器发送响应消息(ACK消息)。
如图6所示,“ACK[MID=1237],2.05Content,2:3/0/64”为终端设备接收到CON数据包后,向服务器回复的响应消息,以通知服务器终端设备处于在线状态,可以继续发送数据包。
之后,服务器再继续执行步骤504和步骤505,直到终端设备请求的整个数据资源内容,例如固件更新包全部发送给终端设备。
如图6所示,“NON[MID=1238],2.05Content,2:4/1/64;|NON[MID=1239],2.05Content,2:5/0/64;|CON[MID=12310],2.05Content,2:5/0/64;|ACK[MID=12310],2.05Content,2:5/0/64”分别为继续采用NON消息发送两个数据包,再采用CON消息发送一个数据包的形式发送数据。
进一步,在图5所示的实施例的基础上,可以再结合重传机制,位图记录来保障数据传输过程中的可靠性。下面结合图9中的方法流程图对终端设备与服务器之间的数据传输流程进行介绍。
901、终端设备从服务器获取第0块数据;
其中,第0块数据中的0仅是一种数据块的编号示例,实际应用中,也可以以其他方式对数据块进行编号。
终端设备向服务器发送资源获取请求(例如:Get请求)获取第0块数据,资源获取请求中携带终端设备允许接收的每个数据包的大小,服务器向终端设备发送第0块数据,第0块数据中包括数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量。
902、计算超时重传(RTO)时间,可持续接收数据包的数量N和时间间隔T;
终端设备接收到第0块数据后,根据数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量确定终端设备最大可持续接收数据包的数量N。
另外,终端设备根据与服务器之间的发收的时间或者往返时间(RTT)进而确定NONACK option中的时间间隔的值T。
此外,终端设备根据平均RTT,数据包到达速率和终端设备的剩余缓冲区大小计算得到超时重传(RTO)的时间。具体的,RTO的计算需要考虑网络情况和终端设备的随机存取存储器(random-access memory,RAM)的情况,如果申请的缓存(buffer)中有乱序的报文,即有空洞,则不能批量写入持久性存储(read-only memory,ROM),如果等待时间过长,则影响RAM开销,需要及时请求重传;如果RTO时间过短,则会丧失成功接收到报文的机会。作为一个实施例,终端设备可以通过如下公式设置RTO,参考如下:
903、生成位图;
终端设备可以采用位图的方式对数据块进行记录。根据第0块数据中的数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量获取到总的块数,生成对应的大小的位图,后面每收到一个数据块,则更新位图的状态,从而采用位图的方式来记录接收到的数据包的情况。
可选的,终端设备可以维护一个表记录每个块是否收到,并且根据总的块数,也可以作为收到的数据块是否乱序的判断依据。
904、向服务器发起NONACK option协商;
NONACK option中携带终端设备最大可持续接收数据包的数量N和时间间隔T。终端设备向服务器发送NONACK option进行协商,采用无确认方式持续发送数据包,即服务器按照一定的时间间隔,持续的给终端设备发送数据包。服务器解析该option,如果同意,则按协商的方式发送;如果不同意,则在回复的NONACK option中说明,后续按照标准方式发送。
可选的,服务器按照NONACK option中携带的终端设备最大可持续接收数据包的数量N和时间间隔T向终端设备发送数据包。
可选的,也可以是服务器根据自身的处理能力,结合NONACK option中携带的终端设备最大可持续接收数据包的数量N和时间间隔T,确定一个合适的持续发送的数据包数量N和时间间隔T。
例如:当NONACK option中携带的终端设备最大可持续接收数据包的数量N为100,服务器根据自身的处理能力,确定合适的持续发送的数据包数量N为50,则后续按照持续发送的数据包数量N为50发送NON数据包。
905、收到服务器发送的一个数据包;
服务器向终端设备持续发送NON数据包,每两个持续发送的NON数据包之间的时间间隔为步骤904中服务器确定的合适的时间间隔T。
在无需向服务器发送请求的情况下,收到NON数据包后,无需向服务器再请求下一个数据包,服务器会自动发送下一个数据包。
906、将收到的数据写入缓存区;
终端设备每接收到一个数据包,将数据包中承载的数据块写入缓存区。
909、更新位图;
终端设备每接收到一个数据包,则更新步骤903中生成的位图的状态,用来记录每一个数据包的接收状态。
908、判断是否还有下一个数据包;
在每接收到一个数据包后,终端设备根据位图判断是否还会有下一个数据包,若有,则执行步骤909,若没有则执行步骤913。
909、若还有下一个数据包,则启动RTO定时器;
终端设备接收到每一个数据包后,都启动RTO定时器,等待下一个数据包,若RTO定时器超时,仍未收到下一个数据包时,执行步骤912,当RTO定时器超时之前,收到了下一个数据包,则取消当前的RTO定时器。
910、查看位图;
终端设备接收到每一个数据包后,都启动RTO定时器,等待下一个数据包,并查看位图,看下一个数据包是否收到。
911、判断是否已经收到下一个数据包;
912、若RTO定时器超时,仍未收到下一个数据包,则向服务器请求重传下一块数据。
例如:终端设备在收到block 1块后,启动第2块的RTO定时器,然后接着收到了第3块和第4块。直到第2块的RTO定时器超时,终端设备执行步骤912发起第2块数据的单独重传请求。
913、流程结束。
若位图中的全部数据都收到,则结束流程。
进一步,有可能在数据发送过程中出现乱序块。乱序块的产生可能是中间某的某个数据包丢包,或者UE端收到数据包先后乱序。当出现乱序块时,可以在NONACK option中携带需要重传的数据包编号序列,告知服务器重传所述数据包编号序列对应的数据包。
本发明实施例可以在标准的CoAP Block传输技术的基础上进行改进,涉及改动的逻辑单元主要是CoAP模块和上层应用处理部分以及服务端处理。新增NONACK option用于双端完成新的传输方式协商;然后终端设备采用RTO定时器的方式解决乱序和丢包问题。相对标准的CoAP Block传输技术,减少了块传输过程中的请求报文,从而达到功耗降低和效率提升的效果。
本实施实例能够提高数据传输场景下的效率,并降低数据传输过程中的功耗。针对提高效率方面,采取了减少请求报文发送,由服务器间隔时间段内主动推送数据块的方式,提高了终端设备和服务器之间的数据传输效率。例如:原本获取一个数据块需要1个RTT时间,采用新的机制,获取一个数据块的平均时延大概为1/2RTT,相对效率提升50%。针对降低功耗方面,以NB-IOT网络为例,通常发送数据时功耗是接收数据功耗的4倍,是终端设备空闲状态的30倍。
以上是对本申请实施例中的方法实施例的介绍,下面从功能模块角度以及硬件实现角度对本申请实施例中的终端设备及服务器进行介绍。
如图10所示,终端设备至少包括以下功能模块:
发送模块1001,用于向服务器发送第一数据请求,所述第一数据请求用于通知所述服务器持续发送多个数据包,所述第一数据请求包括所述终端设备可持续接收数据包的数量N和发送两个持续数据包之间的时间间隔,所述N大于1;
接收模块1002,用于接收所述服务器持续发送的N个数据包,所述N个数据包中包括至少一个NON数据包,其中,所述N个数据包中连续两个数据包之间的发送时间间隔为所述时间间隔,所述NON数据包为无需所述终端设备向所述服务器发送接收响应的数据包。
在一些具体的实施例中,接收模块1002接收的N个数据包中的最后一个数据包为CON数据包;发送模块1001,还用于在接收模块1002接收到CON数据包后,向服务器发送响应消息,响应消息用于通知服务器终端设备处于接收状态。
在一些具体的实施例中,发送模块1001发送的第一数据请求还包括N个数据包的起始编号,N个数据包为从起始编号起,编号递增的数据包。
在一些具体的实施例中,发送模块1001,还用于在向服务器发送第一数据请求之前,向服务器发送资源获取请求,资源获取请求包括被请求的数据资源的标识;接收模块1002,还用于接收服务器发送的数据资源的数据量和用于承载数据资源的每个数据包所携带的部分数据资源的数据量;终端设备还包括:处理模块1003,用于根据数据资源的数据量和用于承载数据资源的每个数据包所携带的部分数据资源的数据量确定数据包的数量N。
在一些具体的实施例中,处理模块1003,还用于在接收模块1002接收到一个数据包后,启动对应于数据包的下一个数据包的定时器;发送模块1001,还用于在定时器超时而没有接收到下一个数据包的情况下,向服务器发送重传请求,重传请求用于指示服务器重新发送下一个数据包。
在一些具体的实施例中,发送模块1001,还用于向服务器发送第二数据请求,第二数据请求包括数据包编号序列,数据包编号序列用于指示终端设备未接收到的数据包;接收模块1002,还用于接收服务器根据第二数据请求重传的数据包编号序列对应的数据包。
在一些具体的实施例中,发送模块1001发送的第一数据请求或第二数据请求在CoAP option中发送,或在CoAP query option中发送,或在NONACK option中发送。
如图11所示,终端设备至少包括以下功能模块:
接收模块1101,用于接收终端设备发送的第一数据请求,所述第一数据请求包括所述终端设备可持续接收数据包的数量N和发送两个持续数据包之间的时间间隔,所述N大于1;
发送模块1102,用于根据所述第一数据请求向所述终端设备持续发送N个数据包,所述N个数据包中包括至少一个NON数据包,其中,所述N个NON数据包中连续两个数据包之间的发送时间间隔为所述时间间隔,所述NON数据包为无需所述终端设备向所述服务器发送接收响应的数据包。
在一些具体的实施例中,发送模块1102发送的N个数据包中的最后一个数据包为CON数据包,CON数据包用于指示终端设备向服务器发送响应消息。
在一些具体的实施例中,接收模块1101接收的第一数据请求还包括N个数据包的起始编号;发送模块1102,具体用于从起始编号的数据包开始向终端设备依次持续发送N个数据包。
在一些具体的实施例中,接收模块1101,还用于在接收终端设备发送的第一数据请求之前,接收终端设备发送的资源获取请求,资源获取请求包括被请求的数据资源的标识;发送模块1102,还用于根据数据资源的标识,向终端设备发送数据资源的数据量和用于承载数据资源的每个数据包所携带的部分数据资源的数据量,数据资源的数据量和用于承载数据资源的每个数据包所携带的部分数据资源的数据量用于终端设备确定数据包的数量N。
在一些具体的实施例中,接收模块1101,还用于接收终端设备发送的第二数据请求,第二数据请求包括数据包编号序列,数据包编号序列用于指示终端设备未接收到的数据包;发送模块1102,还用于将数据包编号序列对应的数据包发送给终端设备。
在一些具体的实施例中,接收模块1101接收的第一数据请求或第二数据请求在CoAP option中发送,或在CoAP query option中发送,或在NONACK option中发送。
以上图10所示的终端设备以及图11所示的服务器中的各模块之间的信息交互可以参阅上述方法实施例(图1至图9所示的实施例),本申请实施例不做赘述。
在实际应用中,图10所示的终端设备中的功能模块所实现的功能或图11所示的服务器中的功能模块所实现的功能,可以通过专用集成电路(application-specificintegrated circuit,ASIC)实现,或可编程逻辑器件(programmable logicdevice,PLD)实现。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程门阵列(Field-Programmable Gate Array,FPGA),通用阵列逻辑(genericarray logic,GAL)或其任意组合。
终端设备在实际应用中可以是如图1中所示的各种物联网终端,下面结合图12对终端设备的一种硬件结构进行详细介绍。图12示出的是终端设备的部分硬件结构的框图,终端设备包括:射频(Radio Frequency,RF)电路1210、存储器1220、输入单元1230、显示单元1240、传感器1250、音频电路1260、无线保真(wireless fidelity,WiFi)模块1270、中央处理器1280、以及电源1290、USB接口1211等部件。本领域技术人员可以理解,图12中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图12对终端设备的各个构成部件进行具体的介绍:
RF电路1210可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给中央处理器1280处理;另外,将设计上行的数据发送给基站。通常,RF电路1210包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路1210还可以通过无线通信与网络和其他设备通信。
存储器1220可用于存储软件程序以及模块,中央处理器1280通过运行存储在存储器1220的软件程序以及模块,从而执行终端设备的各种功能应用以及数据处理。存储器1220可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端设备的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1220可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1230可用于接收输入的数字或字符信息,以及产生与终端设备的用户设置以及功能控制有关的键信号输入。具体地,输入单元1230可包括触控面板1231以及其他输入设备1232。触控面板1231,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1231上或在触控面板1231附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1231可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给中央处理器1280,并能接收中央处理器1280发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1231。除了触控面板1231,输入单元1230还可以包括其他输入设备1232。具体地,其他输入设备1232可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1240可用于显示由用户输入的信息或提供给用户的信息。显示单元1240可包括显示面板1241,可选的,可以采用液晶显示器(liquid crystal display,LCD)、有机发光二极管(organic light-emitting diode,OLED)等形式来配置显示面板1241。进一步的,触控面板1231可覆盖显示面板1241,当触控面板1231检测到在其上或附近的触摸操作后,传送给中央处理器1280以确定触摸事件的类型,随后中央处理器1280根据触摸事件的类型在显示面板1241上提供相应的视觉输出。虽然在图12中,触控面板1231与显示面板1241是作为两个独立的部件来实现终端设备的输入和输入功能,但是在某些实施例中,可以将触控面板1231与显示面板1241集成而实现终端设备的输入和输出功能。
终端设备还可包括至少一种传感器1250,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1241的亮度,接近传感器可在终端设备移动到耳边时,关闭显示面板1241和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别终端设备姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端设备还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1260、扬声器1261,传声器1262可提供用户与终端设备之间的音频接口。音频电路1260可将接收到的音频数据转换后的电信号,传输到扬声器1261,由扬声器1261转换为声音信号输出;另一方面,传声器1262将收集的声音信号转换为电信号,由音频电路1260接收后转换为音频数据,再将音频数据输出中央处理器1280处理后,经RF电路1210以发送给比如另一终端设备,或者将音频数据输出至存储器1220以便进一步处理。
WiFi属于短距离无线传输技术,它为终端设备提供了无线的宽带互联网访问。虽然图12示出了WiFi模块1270,但是可以理解的是,其并不属于终端设备的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
中央处理器1280是终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器1220内的软件程序和/或模块,以及调用存储在存储器1220内的数据,执行终端设备的各种功能和处理数据,从而对终端设备进行整体监控。可选的,中央处理器1280可包括一个或多个处理单元;可选的,中央处理器1280可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到中央处理器1280中。在本申请实施例中,中央处理器1280用于执行上述图1至7中的终端设备所执行的方法中的全部或部分步骤。
终端设备还包括给各个部件供电的电源1290(比如电池),优选的,电源可以通过电源管理系统与处理器1280逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,终端设备还可以包括摄像头、蓝牙模块等,在此不再赘述。
本申请实施例中的服务器在实际应用中可以是如图1中所示的物联网云平台中的服务器或服务器集群,下面结合图13对服务器的一种硬件结构进行详细介绍。
图13是本申请实施例提供的一种服务器硬件结构示意图,该服务器可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processingunits,CPU)1322和存储器1330。其中,存储器1330上存储有一个或一个以上应用程序1342、数据1344和一个或一个以上操作系统1341,存储在存储器1330的程序可以包括一个或一个以上模块,每个模块可以包括一系列的指令操作。
具体的,处理器1320运行存储器1330中存储的指令,用于实现上述方法实施例(图1至图9所示的实施例)中的全部或部分步骤。
服务器1322还可以包括一个或一个以上电源1326,一个或一个以上的通信接口1358,通信接口1358可以包括输入输出接口,或有线或无线网络接口。
需要说明的是,在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (35)
1.一种物联网系统,所述系统包括服务器和终端设备,其特征在于,
所述终端设备用于,向所述服务器发送第一数据请求,所述数据请求用于通知所述服务器持续发送多个数据包,所述数据请求包括所述终端设备可持续接收数据包的数量N和发送两个数据包之间的时间间隔,所述N大于1;
所述服务器用于,根据所述第一数据请求向所述终端设备持续发送N个数据包,所述N个数据包中包括至少一个不需要确认的资源受限应用层协议NON数据包,其中,所述N个数据包中连续两个数据包之间的发送时间间隔为所述时间间隔,所述NON数据包为无需所述终端设备向所述服务器发送接收响应的数据包;
所述终端设备用于持续接收来自所述服务器的所述N个数据包。
2.根据权利要求1所述的系统,其特征在于,
所述N个数据包中的最后一个数据包为需要确认的资源受限应用层协议CON数据包;
所述终端设备还用于,根据所述CON数据包,向所述服务器发送响应消息,所述响应消息用于通知所述服务器所述终端设备处于接收状态。
3.根据权利要求1或2所述的系统,其特征在于,
所述第一数据请求还包括所述N个数据包的起始编号;
在根据所述第一数据请求向所述终端设备持续发送N个数据包的方面,所述服务器用于根据所述第一数据请求,从包括所述起始编号的数据包开始向所述终端设备依次持续发送所述N个数据包。
4.根据权利要求3所述的系统,其特征在于,
所述终端设备还用于,向所述服务器发送资源获取请求,所述资源获取请求包括被请求的数据资源的标识;
所述服务器还用于根据所述数据资源的标识,向所述终端设备发送所述数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量;
所述终端设备还用于根据所述数据资源的数据量和所述用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量确定所述数据包的数量N。
5.根据权利要求4所述的系统,其特征在于,
所述终端设备还用于,在接收到一个数据包后,启动对应于所述数据包的下一个数据包的定时器,在所述定时器超时而没有接收到所述下一个数据包的情况下,向所述服务器发送重传请求;
所述服务器还用于,在接收到所述重传请求后,向所述终端设备重新发送所述下一个数据包。
6.根据权利要求5所述的系统,其特征在于,所述系统还包括:
所述终端设备,还用于向所述服务器发送第二数据请求,所述第二数据请求包括数据包编号序列,所述数据包编号序列用于指示所述终端设备未接收到的数据包;
所述服务器,还用于在接收到所述第二数据请求后,重传所述数据包编号序列对应的数据包;
所述终端设备,还用于接收所述服务器发送的所述数据包编号序列对应的数据包。
7.根据权利要求6所述的系统,其特征在于,
所述第一数据请求在资源受限应用层协议选项CoAP option中发送,或在资源受限应用层协议查询选项CoAP query option中发送,或在不需要回复的选项NONACK option中发送。
8.一种物联网数据传输方法,其特征在于,所述方法包括:
终端设备向服务器发送第一数据请求,所述第一数据请求用于通知所述服务器持续发送多个数据包,所述第一数据请求包括所述终端设备可持续接收数据包的数量N和发送两个持续数据包之间的时间间隔,所述N大于1;
所述终端设备持续接收所述服务器发送的N个数据包,所述N个数据包中包括至少一个不需要确认的资源受限应用层协议NON数据包,其中,所述N个数据包中连续两个数据包之间的发送时间间隔为所述时间间隔,所述NON数据包为无需所述终端设备向所述服务器发送接收响应的数据包。
9.根据权利要求8所述的方法,其特征在于,
所述N个数据包中的最后一个数据包为需要确认的资源受限应用层协议CON数据包;
所述方法还包括:
所述终端设备在接收到所述CON数据包后,向所述服务器发送响应消息,所述响应消息用于通知所述服务器所述终端设备处于接收状态。
10.根据权利要求8或9所述的方法,其特征在于,
所述第一数据请求还包括所述N个数据包的起始编号,所述N个数据包为从所述起始编号起,编号递增的数据包。
11.根据权利要求10所述的方法,其特征在于,在所述终端设备向服务器发送第一数据请求之前,所述方法还包括:
所述终端设备向所述服务器发送资源获取请求,所述资源获取请求包括被请求的数据资源的标识;
所述终端设备接收所述服务器发送的所述数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量;
所述终端设备根据所述数据资源的数据量和所述用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量确定所述数据包的数量N。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括,
所述终端设备在接收到一个数据包后,启动对应于所述数据包的下一个数据包的定时器,在所述定时器超时而没有接收到所述下一个数据包的情况下,向所述服务器发送重传请求,所述重传请求用于指示所述服务器重新发送所述下一个数据包。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
所述终端设备向所述服务器发送第二数据请求,所述第二数据请求包括数据包编号序列,所述数据包编号序列用于指示所述终端设备未接收到的数据包;
所述终端设备接收所述服务器根据所述第二数据请求重传的所述数据包编号序列对应的数据包。
14.根据权利要求13所述的方法,其特征在于,
所述第一数据请求在资源受限应用层协议选项CoAP option中发送,或在资源受限应用层协议查询选项CoAP query option中发送,或在不需要回复的选项NONACK option中发送。
15.一种物联网数据传输方法,其特征在于,所述方法包括:
服务器接收终端设备发送的第一数据请求,所述第一数据请求包括所述终端设备可持续接收数据包的数量N和发送两个持续数据包之间的时间间隔,所述N大于1;
所述服务器根据所述第一数据请求向所述终端设备持续发送N个数据包,所述N个数据包中包括至少一个不需要确认的资源受限应用层协议NON数据包,其中,所述N个数据包中连续两个数据包之间的发送时间间隔为所述时间间隔,所述NON数据包为无需所述终端设备向所述服务器发送接收响应的数据包。
16.根据权利要求15所述的方法,其特征在于,
所述N个数据包中的最后一个数据包为需要确认的资源受限应用层协议CON数据包,所述CON数据包用于指示所述终端设备向所述服务器发送响应消息。
17.根据权利要求15或16所述的方法,其特征在于,
所述第一数据请求还包括所述N个数据包的起始编号;
所述服务器从所述起始编号的数据包开始向所述终端设备依次持续发送所述N个数据包。
18.根据权利要求17所述的方法,其特征在于,所述方法还包括:
所述服务器在接收终端设备发送的第一数据请求之前,接收所述终端设备发送的资源获取请求,所述资源获取请求包括被请求的数据资源的标识;
所述服务器根据所述数据资源的标识,向所述终端设备发送所述数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量,所述数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量用于所述终端设备确定所述数据包的数量N。
19.根据权利要求18所述的方法,其特征在于,所述方法还包括:
所述服务器接收所述终端设备发送的第二数据请求,所述第二数据请求包括数据包编号序列,所述数据包编号序列用于指示所述终端设备未接收到的数据包;
所述服务器将所述数据包编号序列对应的数据包发送给所述终端设备。
20.根据权利要求19所述的方法,其特征在于,
所述第一数据请求在资源受限应用层协议选项CoAP option中发送,或在资源受限应用层协议查询选项CoAP query option中发送,或在不需要回复的选项NONACK option中发送。
21.一种物联网终端设备,其特征在于,所述终端设备包括:
发送模块,用于向服务器发送第一数据请求,所述第一数据请求用于通知所述服务器持续发送多个数据包,所述第一数据请求包括所述终端设备可持续接收数据包的数量N和发送两个持续数据包之间的时间间隔,所述N大于1;
接收模块,用于持续接收所述服务器持续发送的N个数据包,所述N个数据包中包括至少一个不需要确认的资源受限应用层协议NON数据包,其中,所述N个数据包中连续两个数据包之间的发送时间间隔为所述时间间隔,所述NON数据包为无需所述终端设备向所述服务器发送接收响应的数据包。
22.根据权利要求21所述的终端设备,其特征在于,
所述接收模块接收的所述N个数据包中的最后一个数据包为需要确认的资源受限应用层协议CON数据包;
所述发送模块,还用于在所述接收模块接收到所述CON数据包后,向所述服务器发送响应消息,所述响应消息用于通知所述服务器所述终端设备处于接收状态。
23.根据权利要求21或22所述的终端设备,其特征在于,
所述发送模块发送的所述第一数据请求还包括所述N个数据包的起始编号,所述N个数据包为从所述起始编号起,编号递增的数据包。
24.根据权利要求23所述的终端设备,其特征在于,
所述发送模块,还用于在向服务器发送第一数据请求之前,向所述服务器发送资源获取请求,所述资源获取请求包括被请求的数据资源的标识;
所述接收模块,还用于接收所述服务器发送的所述数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量;
所述终端设备还包括:
处理模块,用于根据所述数据资源的数据量和所述用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量确定所述数据包的数量N。
25.根据权利要求24所述的终端设备,其特征在于,
所述处理模块,还用于在所述接收模块接收到一个数据包后,启动对应于所述数据包的下一个数据包的定时器;
所述发送模块,还用于在所述定时器超时而没有接收到所述下一个数据包的情况下,向所述服务器发送重传请求,所述重传请求用于指示所述服务器重新发送所述下一个数据包。
26.根据权利要求25所述的终端设备,其特征在于,
所述发送模块,还用于向所述服务器发送第二数据请求,所述第二数据请求包括数据包编号序列,所述数据包编号序列用于指示所述终端设备未接收到的数据包;
所述接收模块,还用于接收所述服务器根据所述第二数据请求重传的所述数据包编号序列对应的数据包。
27.根据权利要求26所述的终端设备,其特征在于,
所述发送模块发送的所述第一数据请求在资源受限应用层协议选项CoAP option中发送,或在资源受限应用层协议查询选项CoAP query option中发送,或在不需要回复的选项NONACK option中发送。
28.一种服务器,其特征在于,所述服务器包括:
接收模块,用于接收终端设备发送的第一数据请求,所述第一数据请求包括所述终端设备可持续接收数据包的数量N和发送两个持续数据包之间的时间间隔,所述N大于1;
发送模块,用于根据所述第一数据请求向所述终端设备持续发送N个数据包,所述N个数据包中包括至少一个不需要确认的资源受限应用层协议NON数据包,其中,所述N个NON数据包中连续两个数据包之间的发送时间间隔为所述时间间隔,所述NON数据包为无需所述终端设备向所述服务器发送接收响应的数据包。
29.根据权利要求28所述的服务器,其特征在于,
所述发送模块发送的所述N个数据包中的最后一个数据包为需要确认的资源受限应用层协议CON数据包,所述CON数据包用于指示所述终端设备向所述服务器发送响应消息。
30.根据权利要求28或29所述的服务器,其特征在于,
所述接收模块接收的所述第一数据请求还包括所述N个数据包的起始编号;
所述发送模块,具体用于从所述起始编号的数据包开始向所述终端设备依次持续发送所述N个数据包。
31.根据权利要求30所述的服务器,其特征在于,
所述接收模块,还用于在接收所述终端设备发送的第一数据请求之前,接收所述终端设备发送的资源获取请求,所述资源获取请求包括被请求的数据资源的标识;
所述发送模块,还用于根据所述数据资源的标识,向所述终端设备发送所述数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量,所述数据资源的数据量和用于承载所述数据资源的每个数据包所携带的部分数据资源的数据量用于所述终端设备确定所述数据包的数量N。
32.根据权利要求31所述的服务器,其特征在于,
所述接收模块,还用于接收所述终端设备发送的第二数据请求,所述第二数据请求包括数据包编号序列,所述数据包编号序列用于指示所述终端设备未接收到的数据包;
所述发送模块,还用于将所述数据包编号序列对应的数据包发送给所述终端设备。
33.根据权利要求32所述的服务器,其特征在于,
所述接收模块接收的所述第一数据请求在资源受限应用层协议选项CoAP option中发送,或在资源受限应用层协议查询选项CoAP query option中发送,或在不需要回复的选项NONACK option中发送。
34.一种终端设备,包括存储器,一个或多个处理器,以及一个或多个程序;其中所述一个或多个程序被存储在所述存储器中;其特征在于,所述处理器执行所述一个或多个程序,以用于执行如权利要求8至14任一项所述的方法。
35.一种服务器,包括存储器,一个或多个处理器,以及一个或多个程序;其中所述一个或多个程序被存储在所述存储器中;其特征在于,所述处理器执行所述一个或多个程序,以用于执行如权利要求15至20任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711349410.7A CN109936588B (zh) | 2017-12-15 | 2017-12-15 | 一种物联网数据传输方法、设备及系统 |
PCT/CN2018/109014 WO2019114378A1 (zh) | 2017-12-15 | 2018-09-30 | 一种物联网数据传输方法、设备及系统 |
EP18888322.7A EP3720019B1 (en) | 2017-12-15 | 2018-09-30 | Internet of things data transmission method, device and system |
US16/899,046 US11146362B2 (en) | 2017-12-15 | 2020-06-11 | Internet of things data transmission method, device and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711349410.7A CN109936588B (zh) | 2017-12-15 | 2017-12-15 | 一种物联网数据传输方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109936588A CN109936588A (zh) | 2019-06-25 |
CN109936588B true CN109936588B (zh) | 2021-08-31 |
Family
ID=66819872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711349410.7A Active CN109936588B (zh) | 2017-12-15 | 2017-12-15 | 一种物联网数据传输方法、设备及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11146362B2 (zh) |
EP (1) | EP3720019B1 (zh) |
CN (1) | CN109936588B (zh) |
WO (1) | WO2019114378A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020185133A1 (en) * | 2019-03-14 | 2020-09-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Controlling timeout events for data packet transmissions |
CN111629391B (zh) * | 2020-05-12 | 2023-02-03 | 深圳市有方科技股份有限公司 | 数据传输方法及相关设备 |
CN111885564B (zh) * | 2020-07-03 | 2024-03-22 | 海尔优家智能科技(北京)有限公司 | 数据传输方法、设备升级方法、计算机可读的存储介质 |
CN112583923B (zh) * | 2020-12-16 | 2022-08-30 | 深圳数联天下智能科技有限公司 | 一种文件传输方法、设备和存储介质 |
CN113037642B (zh) * | 2021-02-25 | 2022-12-13 | 深圳技术大学 | 物联网数据传输方法及传输系统 |
CN112995319A (zh) * | 2021-03-02 | 2021-06-18 | 山东鲁能软件技术有限公司智能电气分公司 | 可视化监拍系统可靠升级的方法及系统 |
CN113157681B (zh) * | 2021-05-07 | 2023-06-02 | 中国农业科学院农业信息研究所 | 一种单机式数据交换方法及设备 |
CN113259881B (zh) * | 2021-05-07 | 2024-04-30 | 隆讯(徐州)智能科技有限公司 | 一种实现自适应业务模型的NB-IoT物联网终端系统与方法 |
CN113992307A (zh) * | 2021-10-28 | 2022-01-28 | 国网信息通信产业集团有限公司 | 数据报文的传输方法、装置、电子设备及计算机存储介质 |
CN115083136A (zh) * | 2022-06-22 | 2022-09-20 | 珠海格力电器股份有限公司 | 一种遥控信号的处理方法、装置、存储介质及控制器 |
CN115834002B (zh) * | 2022-11-16 | 2023-10-31 | 江苏为是科技有限公司 | 高速传输系统及方法 |
CN116431558B (zh) * | 2023-06-12 | 2023-09-29 | 太初(无锡)电子科技有限公司 | 一种基于axi协议的请求响应方法、装置、系统及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102685204A (zh) * | 2011-03-17 | 2012-09-19 | 华为技术有限公司 | 数据资源传输的方法和设备 |
CN106230882A (zh) * | 2016-07-14 | 2016-12-14 | 美的智慧家居科技有限公司 | 第一机器、第二机器及第一机器对第二机器的控制方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101197778B (zh) * | 2007-12-27 | 2010-08-18 | 腾讯科技(深圳)有限公司 | 数据包传输的方法、装置和系统 |
CN102932392B (zh) * | 2011-08-12 | 2015-07-08 | 上海移远通信技术有限公司 | 多终端系统的udp下载方法 |
IN2014DN06895A (zh) * | 2012-02-28 | 2015-05-15 | Ericsson Telefon Ab L M | |
JP5942706B2 (ja) * | 2012-08-29 | 2016-06-29 | 富士通株式会社 | 監視装置,監視プログラム,監視方法 |
KR20140071520A (ko) * | 2012-10-16 | 2014-06-12 | 한국전자통신연구원 | 무선 저전력 매체 접근 제어에서의 전송지연 완화를 위한 듀티 사이클 제어방법 및 그 장치 |
US10749711B2 (en) * | 2013-07-10 | 2020-08-18 | Nicira, Inc. | Network-link method useful for a last-mile connectivity in an edge-gateway multipath system |
US9468001B2 (en) * | 2014-05-13 | 2016-10-11 | Sony Corporation | Transmitting a packet via a wireless local area network after a delay |
CN105453659B (zh) * | 2014-07-24 | 2019-06-21 | 华为技术有限公司 | 数据收发方法、调制解调器及终端设备 |
US10225761B2 (en) * | 2014-11-06 | 2019-03-05 | At&T Intellectual Property I, L.P. | Enhanced network congestion application programming interface |
CN104852785A (zh) * | 2015-04-22 | 2015-08-19 | 深圳市元征科技股份有限公司 | 一种数据传输方法及装置 |
US11212334B2 (en) * | 2015-06-23 | 2021-12-28 | Convida Wireless, Llc | Mechanisms to support adaptive constrained application protocol (CoAP) streaming for Internet of Things (IoT) systems |
US20180183719A1 (en) * | 2015-06-25 | 2018-06-28 | Thomson Licensing | Method and device for data transmission |
WO2017040948A1 (en) | 2015-09-02 | 2017-03-09 | Convida Wireless, Llc | Enabling time flexibility for block transfer in coap protocol |
CN105634692A (zh) * | 2015-12-24 | 2016-06-01 | 天津交控科技有限公司 | 基于udp协议的数据包发送方法和接收方法 |
-
2017
- 2017-12-15 CN CN201711349410.7A patent/CN109936588B/zh active Active
-
2018
- 2018-09-30 EP EP18888322.7A patent/EP3720019B1/en active Active
- 2018-09-30 WO PCT/CN2018/109014 patent/WO2019114378A1/zh unknown
-
2020
- 2020-06-11 US US16/899,046 patent/US11146362B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102685204A (zh) * | 2011-03-17 | 2012-09-19 | 华为技术有限公司 | 数据资源传输的方法和设备 |
CN106230882A (zh) * | 2016-07-14 | 2016-12-14 | 美的智慧家居科技有限公司 | 第一机器、第二机器及第一机器对第二机器的控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200304240A1 (en) | 2020-09-24 |
CN109936588A (zh) | 2019-06-25 |
EP3720019A1 (en) | 2020-10-07 |
EP3720019B1 (en) | 2023-01-25 |
WO2019114378A1 (zh) | 2019-06-20 |
US11146362B2 (en) | 2021-10-12 |
EP3720019A4 (en) | 2021-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109936588B (zh) | 一种物联网数据传输方法、设备及系统 | |
US10225356B2 (en) | Method and terminal for receiving push information, storage medium | |
WO2016112728A1 (zh) | 一种数据传输的方法、网络服务器、用户终端及系统 | |
WO2015058613A1 (zh) | 一种检测数据包的方法、装置及存储介质 | |
US10244425B2 (en) | Electronic device and method for controlling transmission control protocol thereof | |
JP7030984B2 (ja) | ビデオ伝送方法、ビデオ伝送装置、およびビデオ伝送システム、ならびにコンピュータ可読記憶媒体 | |
WO2018036026A1 (zh) | 一种数据传输的方法、基站、目标终端、系统及存储介质 | |
CN113572836B (zh) | 一种数据传输方法、装置、服务器及存储介质 | |
US20170171255A1 (en) | Method and device for establishing a data connection and computer-readable medium | |
US11855926B2 (en) | Method for determining total number of bits of feedback response information and related product | |
CN115242805A (zh) | 基于gossip的分布式MQTT消息传递方法、传递系统及存储介质 | |
WO2019006742A1 (zh) | 数据指示方法及相关产品 | |
CN107104760B (zh) | 一种传输数据包的方法、客户端以及服务器 | |
WO2019036851A1 (zh) | 一种信道状态信息测量及反馈方法及相关产品 | |
WO2019080059A1 (zh) | 反馈应答信息传输方法及相关产品 | |
KR20220028107A (ko) | 사이드링크 정보의 전송 방법, 단말 및 제어 노드 | |
WO2016045062A1 (zh) | 数据包传输的装置、系统及方法 | |
EP3952182A1 (en) | Downlink assignment index determination method, terminal, and network device | |
WO2020024107A1 (zh) | 一种发送状态报告的方法及设备 | |
CN113867940B (zh) | 一种内存管理方法和相关装置 | |
CN115314555B (zh) | 一种基于数据传输确定数据分片的方法和相关装置 | |
CN112825495B (zh) | Harq-ack处理方法及相关设备 | |
KR102591360B1 (ko) | 데이터 전송 방법 및 단말 | |
CN111246517B (zh) | 数据反馈信息处理方法、装置、移动终端及存储介质 | |
WO2019029202A1 (zh) | 一种反馈应答信息的总比特数确定方法及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |