一种基于节点休眠和路由维护的CoAP协议代理缓存方法

文档序号:9202736阅读:761来源:国知局
一种基于节点休眠和路由维护的CoAP协议代理缓存方法
【技术领域】
[0001]本发明属于网络应用层技术领域,具体涉及一种基于节点休眠和路由维护的CoAP协议代理缓存方法。
【背景技术】
[0002]CoAP (受限制的应用协议)协议由IETF的CORE工作组制定,是为资源受限的IP网络制定的基于REST架构的应用层协议标准,,具有报文头部开销小、格式灵活、便于扩展、解析复杂度低等优势。
[0003]无线传感器网络是物联网感知层的关键技术,由数量众多、分布式部署、体积微型化的嵌入式无线通信设备组成,具有低成本、低功耗、存储计算资源受限等特点。无线传感器网络适合环境条件苛刻、人类难以涉足的应用场景,节点具备低功耗特性,大多采用电池供电。在这种场景中为节点更换电池会带来成本增加与安全隐患等问题。因此,降低节点的能量消耗是无线传感器网络技术的重要研宄课题。目前,无线传感器网络节点支持休眠功能以降低能量消耗,满足实际应用中的需要。
[0004]对于应用层运行CoAP协议的无线传感器网络而言,节点作为资源服务器负责监听客户端(运行浏览器或CoAP公共客户端等软件的用户终端设备)的请求,并向客户端返回响应。客户端作为数据交互的发起方,在未知资源服务器当前所处状态的情况下发送请求时,可能因其休眠而得不到响应。因此,资源服务器休眠的网络必须支持代理缓存机制。
[0005]CoAP协议现有的反向代理机制和缓存机制在应用于节点周期性休眠且路由定期维护的无线网络中时,还存在一些不足:没有充分考虑路由维护引起拓扑关系变动的情景,缺乏能够对路由器吞吐量和网络时延进行有效控制的维护机制;没有充分考虑用户操作浏览器所消耗的时间,为用户直接操作周期性休眠的服务器带来不便;代理服务器反映存储资源的变化趋势消耗的存储空间较多。

【发明内容】

[0006]针对现有技术的CoAP协议现有反向代理机制和缓存机制中存在的不足,提出一种便捷用户对周期性休眠服务器的操作,能够对路由器吞吐量和网络时延进行有效控制的基于节点休眠和路由维护的CoAP协议代理缓存方法,本发明的技术方案如下:一种基于节点休眠和路由维护的CoAP协议代理缓存方法,其包括以下步骤:
[0007]101、待节点入网完毕,在网络路由表项中选择供电方式为非电池供电的设备作为候选代理服务器,跳至步骤102 ;
[0008]102、根据实际需求综合考虑跳数、链路质量等因素,资源服务器从跳数最少的设备中选取链路质量最优的候选代理服务器为最优代理服务器作为其代理服务器,跳至步骤103 ;
[0009]103、任意节点作为CoAP协议资源服务器端,如果连续收到代理关系建立失败的响应个数未超过最大值M,则在下一个发送周期到来时,向代理服务器发送代理关系建立请求,跳至步骤104 ;如果CoAP资源服务器连续收到代理关系建立失败的响应个数超过最大值M,则该代理服务器不能再代理更多CoAP资源服务器,该资源服务器需要保持工作状态,在下一个发送周期到来时,判断最优代理服务器是否更新,如果最优代理服务器更新,计数器清零,跳至步骤102,重新选取代理服务器;否则,重复步骤103 ;
[0010]104、代理服务器接收到资源服务器端发送来的代理关系建立请求后,进行资源存储区域的创建操作,如果创建资源存储区域失败,则进行一次缓存资源信息库的维护,创建资源存储区域,并返回代理关系建立响应,描述创建结果,跳至步骤105 ;如果创建资源存储区域成功,则返回代理关系建立响应,并描述创建结果,跳至步骤105,每个资源服务器每次最多只能与一个代理服务器建立代理关系,每一个代理服务器可以同时与多个不同的资源服务器建立代理关系。
[0011]105、如果收到的代理关系建立响应描述代理关系建立成功,跳至步骤106 ;如果收到的代理关系建立响应描述代理关系建立失败,判断当前最优代理服务器是否更新,如果最优代理服务器更新,跳至步骤102 ;否则,跳至步骤103 ;
[0012]106、资源服务器周期性地在休眠状态和工作状态中切换,并在每次结束休眠状态转入工作状态时,判断当前的最优代理服务器是否发生改变,如果发生改变,跳至步骤102 ;否则,跳至步骤107;
[0013]107、资源服务器向代理服务器发送更新请求,跳至步骤108 ;
[0014]108、代理服务器接收到更新请求后,在缓存资源信息库中搜寻到匹配的资源存储区域,如果无法定位到目标资源存储区域,则进行一次缓存资源信息库的维护,并向资源服务器返回更新响应,描述更新结果,跳至步骤109 ;如果定位到目标资源存储区域,则向资源服务器返回更新响应,描述更新操作的结果,跳至步骤109 ;
[0015]109、如果资源服务器收到描述更新成功的更新响应,跳至步骤110 ;如果资源服务器收到描述定位失败的更新响应,跳至步骤103 ;
[0016]110、代理服务器监听用户发送的缓存资源信息库查询请求。如果收到用户查询请求,跳至步骤111;否则继续监听,重复步骤110 ;
[0017]111、代理服务器根据筛选条件查询缓存资源信息库,定位到符合条件的资源存储区域,运用过期检验模型,通过比较资源缓存时间和资源的生命期判断资源的新鲜度(如果缓存时间超过了资源的生命期,认为资源不可靠;否则,认为资源可靠),再运用临近过期检验方法判断资源的变化趋势,并将符合条件的可靠信息连同其变化趋势信息返回给用户。
[0018]进一步的,所述步骤104和步骤108中缓存资源信息库的维护方法具体如下:
[0019]201、依次扫描缓存资源信息库的各个资源存储区域,读取资源存储区域中存储的服务器编号,并进行运算得出服务器对应的IP地址,跳至步骤202 ;
[0020]202、代理服务器根据运算得出的资源服务器IP地址,查找路由表中子节点的表项,如果在路由表中定位不到对应的表项,则将之删除;如果在路由表中定位到对应的表项,则将之保留。
[0021]进一步的,所述步骤111中所述临近过期检验方法如下:
[0022]301、代理服务器收到用户的条件查询请求时,运用CoAP协议的过期检验模式,定位到缓存资源信息库中符合条件且可靠的资源存储区域,跳至步骤302 ;
[0023]302、在已经定位的可靠资源存储区域运用临近过期检验方法进行资源变化趋势的判断,跳至步骤303,截止到完成未来一次浏览器操作时,资源的变化趋势计算公式如下:
[0024]R = Max_age+Update_timer-Setup_wait-Request_timer (I)
[0025]其中,R表示资源的变化趋势,Max_age表示最后一次更新的数据的有效时长,Update_timer表示最后一次数据的更新时刻,Setup_wait表示用户完成一次浏览器操作所消耗的平均时间,Request_timer表示代理服务器收到用户请求的时刻;
[0026]303、如果R大于零,则目标资源在用户完成未来一次浏览器操作的时间内无变化趋势,在返回的查询结果中无需特殊标注;如果R小于等于零,则目标资源在用户完成未来一次浏览器操作的时间内有变化趋势,在返回的查询结果中需要特殊标注,跳至步骤304。
[0027]304、向用户返回符合条件且可靠的资源信息,并根据临近过期检验方法的判断结果进行标注。
[0028]本发明的优点及有益效果如下:
[0029]步骤103中判断连续收到代理关系建立失败响应的个数是否超过最大值M、步骤106中判断当前的最优代理服务器是否发生变化、步骤104中判断资源存储区域的创建结果以及步骤108中判断资源存储区域的更新结果所触发的资源服务器代理关系维护方法和缓存资源信息库维护方法能够增强CoAP协议对节点休眠和路由维护网络情景的支持,能够对路由器吞吐量和网络时延进行有效控制。步骤111中判断资源变化趋势的临近过期检验方法能够减小代理服务器消耗的存储资源,同时便捷用户对周期性休眠服务器的操作。
【附图说明】
[0030]图1是本发明优选实施例代理缓存机制工作流程图;
[0031]图2代理缓存机制报文交互图;
[0032]图3代理关系维护方法工作流程图;
[0033]图4缓存资源信息库维护方法工作流程图;
[0034]图5代理关系建立请求报文格式;
[0035]图6更新请求报文格式;
[0036]图7代理关系建立响应报文格式;
[0037]图8更新响应报文格式。
【具体实施方式】
[0038]以下结合附图,对本发明作进一步说明:
[0039]首先,结合图1的代理缓存机制工作流程图、图2的代理缓存机制报文交互图和图3的代理关系维护方法工作流程图,对资源服务器的【具体实施方式】进行详细描述。
[0040]Stepl:待节点入网完毕,查询其路由表项中非电池供电且不休眠的父节点,获取其链路质量信息(RSSI),跳至St印2。
[0041]Step2:选取链路质量最优(RSSI值最大)的父节点作为该节点的代理服务器,跳至 Step3。
[0042]St印3:节点即可作为CoAP协议资源服务器端。如果连续收到报文代号为“4.01Unauthorized”的代理关系建立响应的个数不超过3,则在下一个发送周期到来时向代理服务器发送代理关系建立请求,代理关系建立请求的报文格式如图5所示,跳至Step4 ;如果资源服务器连续收到报文代号为“4.01 Unauthorized”的代理关系建立响应的个数超过3,则资源服务器保持工作状态,在下一个发送周期到来时,判断最优父节点是否发生变化。如果最优父节点发生改变,计数器清零,跳至St印2;否则,重复St印3。
[0043]St印4:资源服务器收到代理服务器返回的代理关系建立响应。如果该响应的报文代号为“2.01 Created”说明代理关系建立成功,资源服务器被允许周期性地向代理服务器发送数据,也被允许进入休眠状态,跳至Step5;如果该响应的报文代号为“4.01Unaut
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1