一种基于组播技术的CoAP协议通知优化方法技术

技术编号:19783092 阅读:33 留言:0更新日期:2018-12-15 12:50
本发明专利技术公开了一种基于组播技术的CoAP协议通知优化方法,包括:步骤S100:客户端向服务器发送注册感兴趣的资源URL的请求;步骤S200:服务器收到请求后将客户端添加到所述资源URL的观察者列表中;步骤S300:服务器创建资源URL的多播组;步骤S400:服务器监测到所述资源URL的状态发生改变后,通过广播方式通知多播组成员。本发明专利技术通过在服务器使用组播技术通知客户端的请求或者感兴趣的资源后,可以大大的提高客户端‑服务器的通信能力,降低网络拥塞的风险。可以通过注册请求和取消注册请求管理多播组成员,通过监控对资源的请求,服务器可以确定资源何时应该多播或单播通知客户端。

【技术实现步骤摘要】
一种基于组播技术的CoAP协议通知优化方法
本专利技术涉及物联网通信
,具体的说,是一种基于组播技术的CoAP协议通知优化方法。
技术介绍
现有使用CoAP协议的客户端-服务器模型采用一种订阅-通知的通信机制,大概可以表述为,客户端可以订阅服务器上自己感兴趣的资源,服务器将保存对该资源感兴趣的客户端信息,然后在当某个时刻,该资源的状态发生变化后,通过单播的方式主动地发送消息通知给通知感兴趣的客户端。如果在单播通知的过程中出现了超时重传等现象,那么服务器发送单播的次数将大大高于实际预期的次数,这样很可能会增加网络拥塞,且也降低了服务器的性能,同时也浪费了流量,因为在超时重传的时候,客户端可能已经收到前一次的请求的回复ACK了。显然,这种逐个通知的方式,效率较为低下。
技术实现思路
本专利技术的目的在于提供一种基于组播技术的CoAP协议通知优化方法,用于解决现有技术中单播方式容易增加网络拥塞,降低服务器性能的问题。本专利技术通过下述技术方案解决上述问题:一种基于组播技术的CoAP协议通知优化方法,包括:步骤S100:客户端向服务器发送注册感兴趣的资源URL的请求;步骤S200:服务器收到请求后将客户端添加到所述资源URL的观察者列表中;步骤S300:服务器创建资源URL的多播组;步骤S400:服务器监测到所述资源URL的状态发生改变后,通过广播方式通知多播组成员。服务器收到注册请求后,会把客户端消息中带的组播信息加入到自身维护的多播组中;服务器收到取消注册请求后,会把客户端消息中带的组播信息从自身维护的多播组中移除。通过监控客户端对资源的请求,服务器可以确定资源何时应该多播或单播通知客户端,并且可以通过注册请求和取消注册请求管理多播组成员。对于资源的状态可能频繁发生改变的服务器来说,服务器可以跟踪有多少个客户端正在观察每个可用的资源,并管理一个组来优化通知,它可以根据对可用资源的观察数量来创建、更新和删除组,可以确定通过创建多播组来更有效地管理和更新动资源的动态信息,而不是仅仅通过单播来通知已经订阅该资源的客户端。进一步地,所述步骤S300中服务器创建资源URL的多播组的流程包括:步骤A1:服务器监测客户端向资源URL发出了观察注册,则进入步骤A2;步骤A2:节点检查是否已经存在用于资源URL的多播组,如果不存在,进入步骤A3,否则,进入步骤A4;在步骤A3中,节点创建多播组,其成员是对资源URL进行主动观察的客户端,节点为多播组分配一个组播地址,且为触发组播通知资源URL分配组播地址,然后,服务器通知多播组成员;在步骤A4中,资源URL的观察注册的客户端数量超过设定阈值,则创建一个新的多播组,否则,节点将客户端作为新成员添加到现有的多播组中,并通知其它的多播组成员。进一步地,所述步骤S100具体包括:步骤S110:管理实体向服务器发送有资格创建多播组的资源列表;步骤S120:客户端向服务器发送注册感兴趣的资源URL的请求;步骤S130:服务器向客户端发送状态通知,所述状态通知消息头中携带的Token将状态通知与请求关联。本专利技术与现有技术相比,具有以下优点及有益效果:(1)本专利技术通过在服务器使用组播技术通知客户端的请求或者感兴趣的资源后,可以大大的提高客户端-服务器的通信能力,降低网络拥塞的风险。(2)可以通过注册请求和取消注册请求管理多播组成员,通过监控对资源的请求,服务器可以确定资源何时应该多播或单播通知客户端。附图说明图1为本专利技术的客户端与服务器的资源请求示意图;图2为服务器为客户端建立多播组的流程图;图3为服务器向客户端发送多播信息的流程图。具体实施方式下面结合实施例对本专利技术作进一步地详细说明,但本专利技术的实施方式不限于此。实施例1:结合附图1所示,一种基于组播技术的CoAP协议通知优化方法,基于CoAP协议的客户端注册了一个对服务器中资源为“/温度”感兴趣的请求,客户端收到服务器的状态通知后,通过响应消息头中携带的Token将通知与原始请求相关联;同理,如果多个客户端都对服务器上的某个资源感兴趣,那么它们也可以在第一请求的时候就注册,服务器收到它们的请求后,会把所有对该资源感兴趣的客户端加入到一个资源列表中,创建组播组,这样当该资源的状态发生改变后,服务器会采用组播的方式通知组播组成员中的客户端。结合图2所示,管理实体(ME)通过Message1向服务器发送有资格创建多播组的资源列表和多播组创建相关的参数,例如,可以在多播组中写入它可以最小或者最大监听多少个多播组的数量,ME还可以提供创建多播阀值,该阈值是观察者列表中对某个资源的客户端数量。客户端使用POST方法发送到服务器路径“observe-group”来创建新的观察组,其中服务器返回的内容包含合格资源的列表和观察组的配置参数(比如索引)。例如,Message1包含“POST/observe-group”的请求,返回的内容包括用于observe-group的配置参数和监视用于潜在组观察的资源列表,例如:“OBSERVE_MULTICAST_CREATE_THRESHOLD”:“2”,“OBSERVE_MULTICAST_DELETE_THRESHOLD”:“1”“URL-1”,“URL-2”此时服务器可能以下列消息响应,它包含:Result:2.01CreatedLocation-Path:/observe_group/12可选地,为触发多播组创建和/或组删除设置的阈值可以是URL特定的。也就是说,每个有效的URL可以有自己的多播组创建和删除值。在步骤2中,服务器开始监视包括有效资源的观察组中的资源,在步骤3中,客户端1发出请求消息3以观察合格资源URL-1。在请求消息3中,客户端1指定它愿意接收组通知作为选项,此时它可以被服务器通过观察选项发出信号来告知某资源状态改变的具体信息。例如,Message3包含下列信息:Observe-GoupNotification=YesObserve-GoupNotification这个选项允许客户端告诉服务器它是否愿意并且能够接收组通知,设定为Yes,表明它愿意接受组通知。为了响应Message3,服务器将Client1添加到针对资源URL-1的观察者列表中,并向Client1发送响应4。由于资源URL-1是有效的资源,如Message1中配置的,服务器检查观察者的数量现在是否足以触发多播组的自主创建,配置的阈值是2,目前Client1是唯一的观察者,所以小于配置的阈值,服务器不设置任何多播组。在时刻5,服务器检测到资源URL-1的状态发生改变,然后向Client1发送单播响应通知Message5a。接下来,Client2发出Request6以观察有效的资源URL-1。Request6指定Client2不愿意接受组观察通知作为选项。例如,Request6可以包括:Observe-GoupNotification=No服务器将Client2添加到资源URL-1的观察者列表中,并用Message7响应来自Client2的观察请求。消息7包含Request6所请求的资源的具体信息。由于资源URL-1是一个有效的资源,服务器可以再次检查观察者的数量是否足以触发多播组的自主创建,配置的阈值是两个,并且当前Cli本文档来自技高网...

【技术保护点】
1.一种基于组播技术的CoAP协议通知优化方法,其特征在于,包括:步骤S100:客户端向服务器发送注册感兴趣的资源URL的请求;步骤S200:服务器收到请求后将客户端添加到所述资源URL的观察者列表中;步骤S300:服务器创建资源URL的多播组;步骤S400:服务器监测到所述资源URL的状态发生改变后,通过广播方式通知多播组成员。

【技术特征摘要】
1.一种基于组播技术的CoAP协议通知优化方法,其特征在于,包括:步骤S100:客户端向服务器发送注册感兴趣的资源URL的请求;步骤S200:服务器收到请求后将客户端添加到所述资源URL的观察者列表中;步骤S300:服务器创建资源URL的多播组;步骤S400:服务器监测到所述资源URL的状态发生改变后,通过广播方式通知多播组成员。2.根据权利要求1所述的一种基于组播技术的CoAP协议通知优化方法,其特征在于,所述步骤S300中服务器创建资源URL的多播组的流程包括:步骤A1:服务器监测客户端向资源URL发出了观察注册,则进入步骤A2;步骤A2:节点检查是否已经存在用于资源URL的多播组,如果不存在,进入步骤A3,否则,进入步骤A4;在步骤A...

【专利技术属性】
技术研发人员:范英川何川陈梁陈勇洁杨海龙
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1