CN106713515B - 一种物联网数据传输方法 - Google Patents

一种物联网数据传输方法 Download PDF

Info

Publication number
CN106713515B
CN106713515B CN201710200507.5A CN201710200507A CN106713515B CN 106713515 B CN106713515 B CN 106713515B CN 201710200507 A CN201710200507 A CN 201710200507A CN 106713515 B CN106713515 B CN 106713515B
Authority
CN
China
Prior art keywords
name
data
message
node
thresholding
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
Application number
CN201710200507.5A
Other languages
English (en)
Other versions
CN106713515A (zh
Inventor
王晓喃
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Industrial University Micro Intelligence Technology Co ltd
Huijiawang Tianjin Technology Co ltd
Original Assignee
Changshu Institute of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Changshu Institute of Technology filed Critical Changshu Institute of Technology
Priority to CN201710200507.5A priority Critical patent/CN106713515B/zh
Publication of CN106713515A publication Critical patent/CN106713515A/zh
Application granted granted Critical
Publication of CN106713515B publication Critical patent/CN106713515B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种物联网数据传输方法,所述物联网中包含四类节点:数据路由器、用户设备、传感节点和执行节点;数据路由器用于路由转发,用户设备为数据消费者,用于获取传感节点感知的数据或者向执行节点发布命令从而实现远程控制,传感节点和数据节点为数据提供者;用户通过该方法可实时查询目标对象节点所处环境的参数,并根据目标对象节点的状态及时向传感器节点发送命令实现对目标对象节点的实时控制和调节,本发明可广泛用于农业环境监测和远程控制等领域。

Description

一种物联网数据传输方法
技术领域
本发明涉及一种数据传输方法,尤其涉及的是一种物联网数据传输方法。
背景技术
在典型的物联网构架中,一个电子标签具有全球唯一的电子编码,将其附着在物品上标识目标对象。在物品的生存期间,读写器利用射频识别技术(RFID,Radio-frequencyidentification)读取附着在目标对象的电子标签并将电子编码发送给物联网中间件,物联网中间件将电子编码所标识的目标对象信息数据传输到远程数据库服务器进行存储或者更新。用户通过向物联网中间件发送物品的电子编码来查询目标对象的相关信息,物联网中间件将目标对象的电子编码发送到对象名解析服务器(ONS,Object Name Service)进行解析从而获取目标对象信息所在数据库服务器的统一资源标识(URI,UniversalResource Identifier),即目标对象信息所在数据库服务器的IP地址,然后通过数据库服务器获取目标对象的相关信息数据,并将此数据返回给用户。目前典型的物联网解决方案包括美国的EPC(Electronic Product Code)系统和日本的UID(Ubiquitous ID)系统。
目前的物联网架构能够很好地跟踪目标对象,但仍存在以下不足:
1)用户只能通过数据库服务器来获取目标对象信息,无法实现与目标对象直接地点到点通信;
2)用户只能查询目标对象的信息,无法直接控制目标对象的状态;
3)目标对象信息只能通过读写器被动地读取,目标对象无法根据当前的状态主动请求数据更新或发出警报信息。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种物联网数据传输方法。
技术方案:本发明公开了一种物联网数据传输方法,所述物联网中包含四类节点:数据路由器、用户设备、传感节点和执行节点;数据路由器用于路由转发,用户设备为数据消费者,用于获取传感节点感知的数据或者向执行节点发布命令从而实现远程控制,例如自动关灯,传感节点和数据节点为数据提供者;
一个数据路由器与一跳范围内的用户设备、传感节点和执行节点构建成一个簇,数据路由器为簇首节点,用户设备、传感节点和执行节点为簇内节点;簇内节点不执行路由转发功能;用户设备、传感节点和执行节点有一个无线接口,并通过该无线接口与所在簇簇首节点进行通信;数据路由器具有一个无线接口和两个以上的有线接口,通过无线接口域本簇簇内节点进行通信,通过有线接口与其他数据路由器进行通信;
数据路由器由一个路由器ID唯一标识,传感节点和执行节点由一个名字唯一标识,传感节点的名字由名字前缀和名字ID组成;执行节点的名字由名字前缀、名字ID和命令域构成;
消息结构由四部分构成:名字集合域、消息类型值、跳数和负载;其中名字集合域为定义目标数据的数据名字的集合,跳数定义该消息被转发的最大距离;
消息类型值如下所示:
消息类型 消息类型值
信标消息 0
发布消息 1
数据推送消息 2
数据请求消息 3
数据响应消息 4
命令请求消息 5
命令响应消息 6
数据路由器维护一个转发表,每个转发表项包括三个域:源路由器ID域值、接口域值和名字前缀集合;
传感节点的名字预先设定,例如Temp,执行节点的名字前缀和名字ID预先设定,例如名字前缀为Light,名字ID为On,具有网络唯一性;执行节点的名字前缀和名字ID具有唯一性;
数据路由器维护一个本簇名字前缀集合,该本簇名字前缀集合为本簇所有传感节点和执行节点的名字前缀的集合,数据路由器通过无线接口定期广播信标消息,该信标消息的名字集合域域值为名字前缀集合,消息类型为0,跳数域值为1,负载为自己的路由器ID;用户设备、传感节点和执行节点启动后,侦听数据路由器广播的信标消息,选择发送信号最强的信标帧的数据路由器为簇首节点,记录簇首节点的路由器ID,将自己标记为簇内节点;用户设备、传感节点和执行节点开始从无线接口定期广播信标消息,传感节点和执行节点广播的信标消息的名字集合域值为自己名字的名字前缀,消息类型为0,跳数域值为1,负载为簇首节点的路由器ID;用户设备广播的信标消息的名字集合域值为空,消息类型为0,跳数域值为1,负载为簇首节点的路由器ID;簇首节点收到信标消息后,如果信标消息中的路由器ID等于自己的路由器ID,则将信标消息中的名字集合域值加入到维护的名字前缀集合;
簇首节点收到所有簇内节点的信标帧后,获取并保存本簇名字前缀集合;对于该集合中的每个元素设置一个定时器,如果簇首节点在一个元素的定时器过期之前收到了该元素的信标消息,即该元素属于该信标消息的名字集合,那么簇首节点重新设置定时器,否则从本簇名字前缀集合中删除该元素;
然后执行下述步骤建立转发表:
步骤101:开始;
步骤102:簇首节点构建一个发布消息,发布消息的名字集合域为本簇名字前缀集合,消息类型为1,跳数为d/r,d为网络直径,r为传输半径,负载为自己的路由器ID;簇首节点从每一个与数据路由器相连的有线接口发送该发布消息;
步骤103:邻居数据路由器从接口f接收到该发布消息后,将发布消息中的跳数值递减1,在转发表中创建一个转发表项,该转发表项的源路由器ID为发布消息负载中的路由器ID,接口域值为f,名字前缀集合为发布消息中的名字集合域值;
步骤104:邻居数据路由器判断发布消息中的跳数值是否为0,如果是,执行步骤106,否则执行步骤105;
步骤105:邻居数据路由器从除了接口f之外的所有与其他数据路由器相连的有线接口发送该发布消息,执行步骤103;
步骤106:结束。
上述过程可以快速建立转发表从而实现数据通信。
本发明所述方法中,在簇CL1的簇首节点为CH1,簇CL2的簇首节点CH2,传感节点或者执行节点M1的名字前缀为NP1的条件下,如果节点M1从簇CL1移动到CL2,那么节点M1收到簇首节点CH2的信标消息后保存簇首节点CH2的路由器ID,然后执行下述过程:
步骤201:开始;
步骤202:节点M1从无线接口发送一个信标消息,该信标消息的名字集合为它名字的名字前缀,消息类型为0,跳数为1,负载为簇首节点CH2的路由器ID;
步骤203:簇首节点CH2接收到信标消息后,查看自己的本簇名字前缀集合,如果本簇名字前缀集合不包含信标消息中的名字集合中的名字前缀,那么执行步骤204,否则执行步骤207;
步骤204:簇首节点CH2将信标消息中名字集合中的名字前缀加入到自己的本簇名字前缀集合中,然后构建一个发布消息,发布消息的名字集合域为本簇名字前缀集合,消息类型为1,跳数为d/r,d为网络直径,r为传输半径,负载为自己的路由器ID;簇首节点CH2从每一个与数据路由器相连的有线接口发送该发布消息;
步骤205:邻居数据路由器从自己的接口f1接收到该发布消息后,将发布消息中的跳数值递减1,在转发表中查找源路由器ID值等于发布消息负载中的路由器ID的转发表项,将该转发表项的接口域值更新为f1,名字前缀集合更新为发布消息中的名字集合域值;
步骤206:邻居数据路由器判断发布消息中的跳数值是否为0,如果是,执行步骤208,否则执行步骤207;
步骤207:邻居数据路由器从除了接口f1之外的所有与其他数据路由器相连的有线接口发送该发布消息,执行步骤205;
步骤208:结束。
本发明所述方法中,在簇CL1的簇首节点为CH1,簇CL2的簇首节点CH2,传感节点或者执行节点M1的名字前缀为NP1,节点M1为簇CL1的簇内节点且簇CL1中只有传感节点或者执行节点M1的名字前缀为NP1条件下,如果节点M1从簇CL1移动到CL2,那么簇首节点CH1执行下述过程:
步骤301:开始;
步骤302:如果簇首节点CH1检测到名字前缀NP1的定时器过期,则从本簇名字前缀集合将名字前缀NP1删除;簇首节点CH1构建一个发布消息,发布消息的名字集合域为本簇名字前缀集合,消息类型为1,跳数为d/r,d为网络直径,r为传输半径,负载为自己的路由器ID;簇首节点CH1从每一个与数据路由器相连的有线接口发送该发布消息;
步骤303:邻居数据路由器从自己的接口f2接收到该发布消息后,将发布消息中的跳数值递减1,在转发表中查找源路由器ID值等于发布消息负载中的路由器ID的转发表项,然后将该转发表项的接口域值更新为f2,名字前缀集合更新为发布消息中的名字集合域值;
步骤304:邻居数据路由器判断发布消息中的跳数值是否为0,如果是,执行步骤306,否则执行步骤305;
步骤305:邻居数据路由器从除了接口f2之外的所有与其他数据路由器相连的有线接口发送该发布消息,执行步骤303;
步骤306:结束;
每个簇首节点维护一个数据表,每个数据表项由名字域,数据域和生命周期域;
传感节点定期收集感知到的数据,然后执行下述数据推送操作:
步骤401:开始;
步骤402:传感节点构建数据推送消息,该数据推送消息的名字集合由该传感节点的名字构成,消息类型为2,跳数为1,负载为感知到的数据,然后从无线接口发送该数据推送消息;
步骤403:与传感节点位于相同簇的簇首节点接收到数据推送消息后,在数据表中创建一个数据表项,该数据表项的名字域值为数据推送消息中名字集合的名字,数据域为数据推送消息负载中的数据,生命周期为最大值,例如10min;
步骤404:结束;
如果簇首节点检测到一个数据表项的生命周期衰减到0,那么删除该数据表项。
上述过程能够实现数据推送过程,从而用户可以快速获取所需数据。
本发明所述方法中,每个数据路由器保存一个聚合表,一个聚合表项包括名字集合域和接口域;
用户设备U1为簇CL3的簇内节点,簇CL3的簇首节点为CH3;如果用户节点U1需要获取名字集合S1定义的数据,名字集合S1的名字前缀集合为NPS1,那么用户设备U1执行下述过程:
步骤501:开始;
步骤502:用户设备U1构建一个数据请求消息,该数据请求消息的名字集合为S1,消息类型为3,跳数为d/r+2,d为网络直径,r为传输半径,负载为簇首节点CH3的路由器ID;用户设备U1从无线接口发送该数据请求消息;
步骤503:簇首节点CH3从接口f3接收到该数据请求消息后,将数据请求消息中的跳数递减1,然后判断数据表中是否存在满足条件1的数据表项,如果是,执行步骤504,否则执行步骤506;
条件1:数据表项的名字域值属于数据请求消息中的名字集合;
步骤504:簇首节点CH3构建一个数据响应消息,该数据响应消息的名字集合为符合条件1的数据表项的名字域集合,消息类型为4,跳数为1,负载为符合条件1的数据表项中的数据域值;簇首节点CH3从接口f3发送数据响应消息;
步骤505:簇首节点CH3从数据请求消息的名字集合中减去数据响应消息中的名字集合;如果数据响应消息的名字集合等于数据请求消息中的名字集合,那么执行步骤518,否则执行步骤506;
步骤506:如果簇首节点CH3检测到存在一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为数据请求消息的名字集合域值的超集,那么执行步骤518,否则执行步骤507;
步骤507:如果簇首节点CH3检测到存在一个聚合表项,该聚合表项的名字集合域值为数据请求消息的名字集合域值的超集,那么执行步骤508,否则执行步骤509;
步骤508:簇首节点CH3创建一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为数据请求消息的名字集合,执行步骤518;
步骤509:簇首节点CH3创建一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为数据请求消息的名字集合;簇首节点CH3构建一个名字集合S2,其值为数据请求消息的名字集合,名字集合S2的名字前缀集合为NPS2,然后对于集合NPS2中的任一个名字前缀P,簇首节点CH3进行如下操作:
簇首节点从集合S2中选择名字前缀为P的所有名字并用这些名字构建成名字集合S3,从转发表中选择名字前缀集合包含名字前缀P的所有转发表项,对于每一个名字前缀集合包含名字前缀P的转发表项,簇首节点CH3构建一个数据请求消息,该数据请求消息的名字集合为集合S3,消息类型为3,跳数为d/r+2,负载为空;簇首节点从该转发表项的接口域发送构建的数据请求消息;
步骤510:邻居数据路由器从接口f4接收到该数据请求消息后,将数据请求消息中的跳数递减1,判断数据表中是否存在满足条件1的数据表项,如果是,执行步骤511,否则执行步骤513;
步骤511:邻居数据路由器构建一个数据响应消息,该数据响应消息的名字集合为符合条件1的数据表项的名字域集合,消息类型为4,跳数为d/r+2,负载为符合条件1的数据表项中的数据域值,然后从接口f4发送数据响应消息;
步骤512:邻居数据路由器从数据请求消息的名字集合中减去数据响应消息中的名字集合,如果数据响应消息的名字集合等于数据请求消息中的名字集合,那么执行步骤518,否则执行步骤513;
步骤513:如果邻居数据路由器检测到存在一个聚合表项,该聚合表项的接口域值为f4,名字集合域值为数据请求消息的名字集合域值的超集,那么执行步骤518,否则执行步骤514;
步骤514:如果邻居数据路由器检测到存在一个聚合表项,该聚合表项的名字集合域值为数据请求消息的名字集合域值的超集,那么执行步骤515,否则执行步骤516;
步骤515:邻居数据路由器创建一个聚合表项,该聚合表项的接口域值为f4,名字集合域值为数据请求消息的名字集合,执行步骤518;
步骤516:邻居数据路由器创建一个聚合表项,该聚合表项的接口域值为f4,名字集合域值为数据请求消息的名字集合,如果数据请求消息中的跳数为0,则执行步骤518,否则执行步骤517;
步骤517:邻居数据路由器从转发表中选择名字前缀集合包含数据请求消息名字集合的名字前缀的所有转发表项,对于每一个接口域值不等于f4且名字前缀集合包含数据请求消息名字集合的名字前缀的转发表项,邻居数据路由器从该转发表项的接口域发送接收到的数据请求消息,执行步骤510;
步骤518:如果用户设备U1接收到数据响应消息,执行步骤520,否则执行步骤519;
步骤519:对于数据响应消息名字集合中的每一个名字N,数据路由器创建一个数据表项,该数据表项的名字域值为名字N,数据域为名字N定义的数据,生命周期设置为最大值;对于每个名字集合为数据响应消息名字集合的超集的聚合表项,数据路由器从该聚合表项的接口域转发接收到的数据响应消息,然后从该聚合表项的名字集合中减去数据响应消息的名字集合;如果该聚合表项的名字集合为空,则删除该聚合表项;执行步骤518;
步骤520:用户设备U1收到所有数据响应消息后,保存数据响应消息中的数据从而获取名字集合S1定义的数据;
步骤521:结束。
上述过程能够确保用户可以快速获取所需数据。
本发明所述方法中,用户设备U1为簇CL3的簇内节点,簇CL3的簇首节点为CH3;如果用户节点U1想要执行节点执行一种操作,例如关灯,所述执行节点的名字集合为SA1,名字集合SA1的名字前缀集合为NPSA1,那么用户设备U1执行下述过程:
步骤601:开始;
步骤602:用户设备U1构建一个命令请求消息,该命令请求消息的名字集合为SA1,消息类型为5,跳数为d/r+2,d为网络直径,r为传输半径,负载为簇首节点CH3的路由器ID;用户设备U1从无线接口发送该命令请求消息;
步骤603:簇首节点CH3从接口f3接收到该命令请求消息后,将命令请求消息中的跳数递减1,然后判断自己维护的本簇名字前缀集合与命令请求消息名字集合的名字前缀集合是否为空,如果是,执行步骤606,否则执行步骤604;
步骤604:簇首节点CH3从接口f3转发命令请求消息,如果接收到命令请求消息的执行节点的名字前缀和名字ID等于命令请求消息的名字集合的一个元素E的名字前缀和名字ID,则执行元素E的命令域值,例如关灯,然后从无线接口发送一个命令响应消息,该命令响应消息名字集合为元素E的名字,消息类型为6,跳数为2,负载为簇首节点CH3的路由器ID;
步骤605:簇首节点CH3接收到命令响应消息后,从命令请求消息的名字集合中减去所有收到的命令响应消息中的名字集合,如果簇首节点CH3收到的命令响应消息个数等于命令请求消息名字集合的元素个数,那么执行步骤618,否则执行步骤606;
步骤606:如果簇首节点CH3检测到存在一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为命令请求消息的名字集合域值的超集,那么执行步骤618,否则执行步骤607;
步骤607:如果簇首节点CH3检测到存在一个聚合表项,该聚合表项的名字集合域值为命令请求消息的名字集合域值的超集,那么执行步骤608,否则执行步骤609;
步骤608:簇首节点CH3创建一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为命令请求消息的名字集合,执行步骤618;
步骤609:簇首节点CH3创建一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为命令请求消息的名字集合;簇首节点CH3构建一个名字集合SA2,其值为命令请求消息的名字集合,名字集合SA2的名字前缀集合为NPSA2,然后对于集合NPSA2中的任一个名字前缀PA,簇首节点CH3进行如下操作:
簇首节点从集合SA2中选择名字前缀为PA的所有名字并用这些名字构建成名字集合SA3,然后从转发表中选择名字前缀集合包含名字前缀PA的所有转发表项,对于每一个名字前缀集合包含名字前缀PA的转发表项,簇首节点CH3构建一个命令请求消息,该命令请求消息的名字集合为集合SA3,消息类型为5,跳数为d/r+2,负载为空,然后从该转发表项的接口域发送构建的命令请求消息;
步骤610:邻居数据路由器从接口f4接收到该命令请求消息后,将命令请求消息中的跳数递减1,然后判断自己维护的本簇名字前缀集合与命令请求消息名字集合的名字前缀集合是否为空,如果是,执行步骤613,否则执行步骤611;
步骤611:邻居数据路由器从无线接口转发命令请求消息,如果接收到命令请求消息的执行节点的名字前缀和名字ID等于命令请求消息的名字集合的一个元素E1的名字前缀和名字ID,则执行元素E1的命令域值,例如关灯,;邻居数据路由器从无线接口发送一个命令响应消息,该命令响应消息名字集合为元素E1的名字,消息类型为6,跳数为d/r+1,负载为邻居数据路由器的路由器ID;
步骤612:邻居数据路由器接收到命令响应消息后,从命令请求消息的名字集合中减去所有收到的命令响应消息中的名字集合,如果邻居数据路由器收到的命令响应消息个数等于命令请求消息名字集合的元素个数,那么执行步骤618,否则执行步骤613;
步骤613:如果邻居数据路由器检测到存在一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为命令请求消息的名字集合域值的超集,那么执行步骤618,否则执行步骤614;
步骤614:如果邻居数据路由器检测到存在一个聚合表项,该聚合表项的名字集合域值为命令请求消息的名字集合域值的超集,那么执行步骤615,否则执行步骤616;
步骤615:邻居数据路由器创建一个聚合表项,该聚合表项的接口域值为f4,名字集合域值为命令请求消息的名字集合,执行步骤618;
步骤616:邻居数据路由器创建一个聚合表项,该聚合表项的接口域值为f4,名字集合域值为命令请求消息的名字集合,如果命令请求消息中的跳数为0,则执行步骤618,否则执行步骤617;
步骤617:邻居数据路由器从转发表中选择名字前缀集合包含命令请求消息名字集合的名字前缀集合的所有转发表项,对于每一个接口域值不等于f4且名字前缀集合包含命令请求消息名字集合的名字前缀集合的转发表项,邻居数据路由器从该转发表项的接口域发送接收到的命令请求消息,执行步骤610;
步骤618:如果用户设备U1接收到命令响应消息,执行步骤620,否则执行步骤619;
步骤619:对于每个名字集合为命令响应消息名字集合的超集的聚合表项,数据路由器从该聚合表项的接口域转发接收到的命令响应消息,从该聚合表项的名字集合中减去命令响应消息的名字集合;如果该聚合表项的名字集合为空,则删除该聚合表项;执行步骤618;
步骤620:用户设备U1收到所有命令响应消息以确认执行节点已经收到命令请求消息并执行了响应操作;
步骤621。
用户通过上述过程能够让执行节点快速准确地执行远程命令。
有益效果:本发明提供了一种物联网数据传输方法,用户通过该方法可实时查询目标对象节点所处环境的参数,并根据目标对象节点的状态及时向传感器节点发送命令实现对目标对象节点的实时控制和调节,本发明可广泛用于农业环境监测和远程控制等领域。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明所述的建立转发表流程示意图。
图2为本发明所述的移动流程示意图。
图3为本发明所述的移动切换流程示意图。
图4为本发明所述的数据推动流程示意图。
图5为本发明所述的获取数据流程示意图。
图6为本发明所述的执行命令流程示意图。
具体实施方式:
本发明提供了一种物联网数据传输方法,用户通过该方法可实时查询目标对象节点所处环境的参数,并根据目标对象节点的状态及时向传感器节点发送命令实现对目标对象节点的实时控制和调节,本发明可广泛用于农业环境监测和远程控制等领域。
图1为本发明所述的建立转发表流程示意图。所述物联网中包含四类节点:数据路由器、用户设备、传感节点和执行节点;数据路由器用于路由转发,用户设备为数据消费者,用于获取传感节点感知的数据或者向执行节点发布命令从而实现远程控制,例如自动关灯,传感节点和数据节点为数据提供者;
一个数据路由器与一跳范围内的用户设备、传感节点和执行节点构建成一个簇,数据路由器为簇首节点,用户设备、传感节点和执行节点为簇内节点;簇内节点不执行路由转发功能;用户设备、传感节点和执行节点有一个无线接口,并通过该无线接口与所在簇簇首节点进行通信;数据路由器具有一个无线接口和两个以上的有线接口,通过无线接口域本簇簇内节点进行通信,通过有线接口与其他数据路由器进行通信;
数据路由器由一个路由器ID唯一标识,传感节点和执行节点由一个名字唯一标识,传感节点的名字由名字前缀和名字ID组成;执行节点的名字由名字前缀、名字ID和命令域构成;
消息结构由四部分构成:名字集合域、消息类型值、跳数和负载;其中名字集合域为定义目标数据的数据名字的集合,跳数定义该消息被转发的最大距离;
消息类型值如下所示:
消息类型 消息类型值
信标消息 0
发布消息 1
数据推送消息 2
数据请求消息 3
数据响应消息 4
命令请求消息 5
命令响应消息 6
数据路由器维护一个转发表,每个转发表项包括三个域:源路由器ID域值、接口域值和名字前缀集合;
传感节点的名字预先设定,例如Temp,执行节点的名字前缀和名字ID预先设定,例如名字前缀为Light,名字ID为On,具有网络唯一性;执行节点的名字前缀和名字ID具有唯一性;
数据路由器维护一个本簇名字前缀集合,该本簇名字前缀集合为本簇所有传感节点和执行节点的名字前缀的集合,数据路由器通过无线接口定期广播信标消息,该信标消息的名字集合域域值为名字前缀集合,消息类型为0,跳数域值为1,负载为自己的路由器ID;用户设备、传感节点和执行节点启动后,侦听数据路由器广播的信标消息,选择发送信号最强的信标帧的数据路由器为簇首节点,记录簇首节点的路由器ID,将自己标记为簇内节点;用户设备、传感节点和执行节点开始从无线接口定期广播信标消息,传感节点和执行节点广播的信标消息的名字集合域值为自己名字的名字前缀,消息类型为0,跳数域值为1,负载为簇首节点的路由器ID;用户设备广播的信标消息的名字集合域值为空,消息类型为0,跳数域值为1,负载为簇首节点的路由器ID;簇首节点收到信标消息后,如果信标消息中的路由器ID等于自己的路由器ID,则将信标消息中的名字集合域值加入到维护的名字前缀集合;
簇首节点收到所有簇内节点的信标帧后,获取并保存本簇名字前缀集合;对于该集合中的每个元素设置一个定时器,如果簇首节点在一个元素的定时器过期之前收到了该元素的信标消息,即该元素属于该信标消息的名字集合,那么簇首节点重新设置定时器,否则从本簇名字前缀集合中删除该元素;
然后执行下述步骤建立转发表:
步骤101:开始;
步骤102:簇首节点构建一个发布消息,发布消息的名字集合域为本簇名字前缀集合,消息类型为1,跳数为d/r,d为网络直径,r为传输半径,负载为自己的路由器ID;簇首节点从每一个与数据路由器相连的有线接口发送该发布消息;
步骤103:邻居数据路由器从接口f接收到该发布消息后,将发布消息中的跳数值递减1,在转发表中创建一个转发表项,该转发表项的源路由器ID为发布消息负载中的路由器ID,接口域值为f,名字前缀集合为发布消息中的名字集合域值;
步骤104:邻居数据路由器判断发布消息中的跳数值是否为0,如果是,执行步骤106,否则执行步骤105;
步骤105:邻居数据路由器从除了接口f之外的所有与其他数据路由器相连的有线接口发送该发布消息,执行步骤103;
步骤106:结束。
上述过程可以快速建立转发表从而实现数据通信。
图2为本发明所述的移动流程示意图。在簇CL1的簇首节点为CH1,簇CL2的簇首节点CH2,传感节点或者执行节点M1的名字前缀为NP1的条件下,如果节点M1从簇CL1移动到CL2,那么节点M1收到簇首节点CH2的信标消息后保存簇首节点CH2的路由器ID,然后执行下述过程:
步骤201:开始;
步骤202:节点M1从无线接口发送一个信标消息,该信标消息的名字集合为它名字的名字前缀,消息类型为0,跳数为1,负载为簇首节点CH2的路由器ID;
步骤203:簇首节点CH2接收到信标消息后,查看自己的本簇名字前缀集合,如果本簇名字前缀集合不包含信标消息中的名字集合中的名字前缀,那么执行步骤204,否则执行步骤207;
步骤204:簇首节点CH2将信标消息中名字集合中的名字前缀加入到自己的本簇名字前缀集合中,然后构建一个发布消息,发布消息的名字集合域为本簇名字前缀集合,消息类型为1,跳数为d/r,d为网络直径,r为传输半径,负载为自己的路由器ID;簇首节点CH2从每一个与数据路由器相连的有线接口发送该发布消息;
步骤205:邻居数据路由器从自己的接口f1接收到该发布消息后,将发布消息中的跳数值递减1,在转发表中查找源路由器ID值等于发布消息负载中的路由器ID的转发表项,将该转发表项的接口域值更新为f1,名字前缀集合更新为发布消息中的名字集合域值;
步骤206:邻居数据路由器判断发布消息中的跳数值是否为0,如果是,执行步骤208,否则执行步骤207;
步骤207:邻居数据路由器从除了接口f1之外的所有与其他数据路由器相连的有线接口发送该发布消息,执行步骤205;
步骤208:结束。
图3为本发明所述的移动切换流程示意图。在簇CL1的簇首节点为CH1,簇CL2的簇首节点CH2,传感节点或者执行节点M1的名字前缀为NP1,节点M1为簇CL1的簇内节点且簇CL1中只有传感节点或者执行节点M1的名字前缀为NP1条件下,如果节点M1从簇CL1移动到CL2,那么簇首节点CH1执行下述过程:
步骤301:开始;
步骤302:如果簇首节点CH1检测到名字前缀NP1的定时器过期,则从本簇名字前缀集合将名字前缀NP1删除;簇首节点CH1构建一个发布消息,发布消息的名字集合域为本簇名字前缀集合,消息类型为1,跳数为d/r,d为网络直径,r为传输半径,负载为自己的路由器ID;簇首节点CH1从每一个与数据路由器相连的有线接口发送该发布消息;
步骤303:邻居数据路由器从自己的接口f2接收到该发布消息后,将发布消息中的跳数值递减1,在转发表中查找源路由器ID值等于发布消息负载中的路由器ID的转发表项,然后将该转发表项的接口域值更新为f2,名字前缀集合更新为发布消息中的名字集合域值;
步骤304:邻居数据路由器判断发布消息中的跳数值是否为0,如果是,执行步骤306,否则执行步骤305;
步骤305:邻居数据路由器从除了接口f2之外的所有与其他数据路由器相连的有线接口发送该发布消息,执行步骤303;
步骤306:结束;
每个簇首节点维护一个数据表,每个数据表项由名字域,数据域和生命周期域。
图4为本发明所述的数据推动流程示意图。传感节点定期收集感知到的数据,然后执行下述数据推送操作:
步骤401:开始;
步骤402:传感节点构建数据推送消息,该数据推送消息的名字集合由该传感节点的名字构成,消息类型为2,跳数为1,负载为感知到的数据,然后从无线接口发送该数据推送消息;
步骤403:与传感节点位于相同簇的簇首节点接收到数据推送消息后,在数据表中创建一个数据表项,该数据表项的名字域值为数据推送消息中名字集合的名字,数据域为数据推送消息负载中的数据,生命周期为最大值,例如10min;
步骤404:结束;
如果簇首节点检测到一个数据表项的生命周期衰减到0,那么删除该数据表项。
上述过程能够实现数据推送过程,从而用户可以快速获取所需数据。
图5为本发明所述的获取数据流程示意图。每个数据路由器保存一个聚合表,一个聚合表项包括名字集合域和接口域;
用户设备U1为簇CL3的簇内节点,簇CL3的簇首节点为CH3;如果用户节点U1需要获取名字集合S1定义的数据,名字集合S1的名字前缀集合为NPS1,那么用户设备U1执行下述过程:
步骤501:开始;
步骤502:用户设备U1构建一个数据请求消息,该数据请求消息的名字集合为S1,消息类型为3,跳数为d/r+2,d为网络直径,r为传输半径,负载为簇首节点CH3的路由器ID;用户设备U1从无线接口发送该数据请求消息;
步骤503:簇首节点CH3从接口f3接收到该数据请求消息后,将数据请求消息中的跳数递减1,然后判断数据表中是否存在满足条件1的数据表项,如果是,执行步骤504,否则执行步骤506;
条件1:数据表项的名字域值属于数据请求消息中的名字集合;
步骤504:簇首节点CH3构建一个数据响应消息,该数据响应消息的名字集合为符合条件1的数据表项的名字域集合,消息类型为4,跳数为1,负载为符合条件1的数据表项中的数据域值;簇首节点CH3从接口f3发送数据响应消息;
步骤505:簇首节点CH3从数据请求消息的名字集合中减去数据响应消息中的名字集合;如果数据响应消息的名字集合等于数据请求消息中的名字集合,那么执行步骤518,否则执行步骤506;
步骤506:如果簇首节点CH3检测到存在一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为数据请求消息的名字集合域值的超集,那么执行步骤518,否则执行步骤507;
步骤507:如果簇首节点CH3检测到存在一个聚合表项,该聚合表项的名字集合域值为数据请求消息的名字集合域值的超集,那么执行步骤508,否则执行步骤509;
步骤508:簇首节点CH3创建一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为数据请求消息的名字集合,执行步骤518;
步骤509:簇首节点CH3创建一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为数据请求消息的名字集合;簇首节点CH3构建一个名字集合S2,其值为数据请求消息的名字集合,名字集合S2的名字前缀集合为NPS2,然后对于集合NPS2中的任一个名字前缀P,簇首节点CH3进行如下操作:
簇首节点从集合S2中选择名字前缀为P的所有名字并用这些名字构建成名字集合S3,从转发表中选择名字前缀集合包含名字前缀P的所有转发表项,对于每一个名字前缀集合包含名字前缀P的转发表项,簇首节点CH3构建一个数据请求消息,该数据请求消息的名字集合为集合S3,消息类型为3,跳数为d/r+2,负载为空;簇首节点从该转发表项的接口域发送构建的数据请求消息;
步骤510:邻居数据路由器从接口f4接收到该数据请求消息后,将数据请求消息中的跳数递减1,判断数据表中是否存在满足条件1的数据表项,如果是,执行步骤511,否则执行步骤513;
步骤511:邻居数据路由器构建一个数据响应消息,该数据响应消息的名字集合为符合条件1的数据表项的名字域集合,消息类型为4,跳数为d/r+2,负载为符合条件1的数据表项中的数据域值,然后从接口f4发送数据响应消息;
步骤512:邻居数据路由器从数据请求消息的名字集合中减去数据响应消息中的名字集合,如果数据响应消息的名字集合等于数据请求消息中的名字集合,那么执行步骤518,否则执行步骤513;
步骤513:如果邻居数据路由器检测到存在一个聚合表项,该聚合表项的接口域值为f4,名字集合域值为数据请求消息的名字集合域值的超集,那么执行步骤518,否则执行步骤514;
步骤514:如果邻居数据路由器检测到存在一个聚合表项,该聚合表项的名字集合域值为数据请求消息的名字集合域值的超集,那么执行步骤515,否则执行步骤516;
步骤515:邻居数据路由器创建一个聚合表项,该聚合表项的接口域值为f4,名字集合域值为数据请求消息的名字集合,执行步骤518;
步骤516:邻居数据路由器创建一个聚合表项,该聚合表项的接口域值为f4,名字集合域值为数据请求消息的名字集合,如果数据请求消息中的跳数为0,则执行步骤518,否则执行步骤517;
步骤517:邻居数据路由器从转发表中选择名字前缀集合包含数据请求消息名字集合的名字前缀的所有转发表项,对于每一个接口域值不等于f4且名字前缀集合包含数据请求消息名字集合的名字前缀的转发表项,邻居数据路由器从该转发表项的接口域发送接收到的数据请求消息,执行步骤510;
步骤518:如果用户设备U1接收到数据响应消息,执行步骤520,否则执行步骤519;
步骤519:对于数据响应消息名字集合中的每一个名字N,数据路由器创建一个数据表项,该数据表项的名字域值为名字N,数据域为名字N定义的数据,生命周期设置为最大值;对于每个名字集合为数据响应消息名字集合的超集的聚合表项,数据路由器从该聚合表项的接口域转发接收到的数据响应消息,然后从该聚合表项的名字集合中减去数据响应消息的名字集合;如果该聚合表项的名字集合为空,则删除该聚合表项;执行步骤518;
步骤520:用户设备U1收到所有数据响应消息后,保存数据响应消息中的数据从而获取名字集合S1定义的数据;
步骤521:结束。
上述过程能够确保用户可以快速获取所需数据。
图6为本发明所述的执行命令流程示意图。用户设备U1为簇CL3的簇内节点,簇CL3的簇首节点为CH3;如果用户节点U1想要执行节点执行一种操作,例如关灯,所述执行节点的名字集合为SA1,名字集合SA1的名字前缀集合为NPSA1,那么用户设备U1执行下述过程:
步骤601:开始;
步骤602:用户设备U1构建一个命令请求消息,该命令请求消息的名字集合为SA1,消息类型为5,跳数为d/r+2,d为网络直径,r为传输半径,负载为簇首节点CH3的路由器ID;用户设备U1从无线接口发送该命令请求消息;
步骤603:簇首节点CH3从接口f3接收到该命令请求消息后,将命令请求消息中的跳数递减1,然后判断自己维护的本簇名字前缀集合与命令请求消息名字集合的名字前缀集合是否为空,如果是,执行步骤606,否则执行步骤604;
步骤604:簇首节点CH3从接口f3转发命令请求消息,如果接收到命令请求消息的执行节点的名字前缀和名字ID等于命令请求消息的名字集合的一个元素E的名字前缀和名字ID,则执行元素E的命令域值,例如关灯,然后从无线接口发送一个命令响应消息,该命令响应消息名字集合为元素E的名字,消息类型为6,跳数为2,负载为簇首节点CH3的路由器ID;
步骤605:簇首节点CH3接收到命令响应消息后,从命令请求消息的名字集合中减去所有收到的命令响应消息中的名字集合,如果簇首节点CH3收到的命令响应消息个数等于命令请求消息名字集合的元素个数,那么执行步骤618,否则执行步骤606;
步骤606:如果簇首节点CH3检测到存在一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为命令请求消息的名字集合域值的超集,那么执行步骤618,否则执行步骤607;
步骤607:如果簇首节点CH3检测到存在一个聚合表项,该聚合表项的名字集合域值为命令请求消息的名字集合域值的超集,那么执行步骤608,否则执行步骤609;
步骤608:簇首节点CH3创建一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为命令请求消息的名字集合,执行步骤618;
步骤609:簇首节点CH3创建一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为命令请求消息的名字集合;簇首节点CH3构建一个名字集合SA2,其值为命令请求消息的名字集合,名字集合SA2的名字前缀集合为NPSA2,然后对于集合NPSA2中的任一个名字前缀PA,簇首节点CH3进行如下操作:
簇首节点从集合SA2中选择名字前缀为PA的所有名字并用这些名字构建成名字集合SA3,然后从转发表中选择名字前缀集合包含名字前缀PA的所有转发表项,对于每一个名字前缀集合包含名字前缀PA的转发表项,簇首节点CH3构建一个命令请求消息,该命令请求消息的名字集合为集合SA3,消息类型为5,跳数为d/r+2,负载为空,然后从该转发表项的接口域发送构建的命令请求消息;
步骤610:邻居数据路由器从接口f4接收到该命令请求消息后,将命令请求消息中的跳数递减1,然后判断自己维护的本簇名字前缀集合与命令请求消息名字集合的名字前缀集合是否为空,如果是,执行步骤613,否则执行步骤611;
步骤611:邻居数据路由器从无线接口转发命令请求消息,如果接收到命令请求消息的执行节点的名字前缀和名字ID等于命令请求消息的名字集合的一个元素E1的名字前缀和名字ID,则执行元素E1的命令域值,例如关灯,;邻居数据路由器从无线接口发送一个命令响应消息,该命令响应消息名字集合为元素E1的名字,消息类型为6,跳数为d/r+1,负载为邻居数据路由器的路由器ID;
步骤612:邻居数据路由器接收到命令响应消息后,从命令请求消息的名字集合中减去所有收到的命令响应消息中的名字集合,如果邻居数据路由器收到的命令响应消息个数等于命令请求消息名字集合的元素个数,那么执行步骤618,否则执行步骤613;
步骤613:如果邻居数据路由器检测到存在一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为命令请求消息的名字集合域值的超集,那么执行步骤618,否则执行步骤614;
步骤614:如果邻居数据路由器检测到存在一个聚合表项,该聚合表项的名字集合域值为命令请求消息的名字集合域值的超集,那么执行步骤615,否则执行步骤616;
步骤615:邻居数据路由器创建一个聚合表项,该聚合表项的接口域值为f4,名字集合域值为命令请求消息的名字集合,执行步骤618;
步骤616:邻居数据路由器创建一个聚合表项,该聚合表项的接口域值为f4,名字集合域值为命令请求消息的名字集合,如果命令请求消息中的跳数为0,则执行步骤618,否则执行步骤617;
步骤617:邻居数据路由器从转发表中选择名字前缀集合包含命令请求消息名字集合的名字前缀集合的所有转发表项,对于每一个接口域值不等于f4且名字前缀集合包含命令请求消息名字集合的名字前缀集合的转发表项,邻居数据路由器从该转发表项的接口域发送接收到的命令请求消息,执行步骤610;
步骤618:如果用户设备U1接收到命令响应消息,执行步骤620,否则执行步骤619;
步骤619:对于每个名字集合为命令响应消息名字集合的超集的聚合表项,数据路由器从该聚合表项的接口域转发接收到的命令响应消息,从该聚合表项的名字集合中减去命令响应消息的名字集合;如果该聚合表项的名字集合为空,则删除该聚合表项;执行步骤618;
步骤620:用户设备U1收到所有命令响应消息以确认执行节点已经收到命令请求消息并执行了响应操作;
步骤621。
用户通过上述过程能够让执行节点快速准确地执行远程命令。
实施例1
基于表1的仿真参数,本实施例模拟了本发明中的物联网数据传输方法,性能分析如下:当用户与目的节点距离较远时,平均通信代价和延迟也随之增加,通信半径增加时,平均通信代价和延迟也随之降低。平均通信代价为8,路由延迟为80ms。
表1仿真参数
本发明提供了一种物联网数据传输方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。

Claims (5)

1.一种物联网数据传输方法,其特征在于,所述物联网中包含四类节点:数据路由器、用户设备、传感节点和执行节点;数据路由器用于路由转发,用户设备为数据消费者,用于获取传感节点感知的数据或者向执行节点发布命令从而实现远程控制,传感节点和数据节点为数据提供者;
一个数据路由器与一跳范围内的用户设备、传感节点和执行节点构建成一个簇,数据路由器为簇首节点,用户设备、传感节点和执行节点为簇内节点;簇内节点不执行路由转发功能;用户设备、传感节点和执行节点有一个无线接口,并通过该无线接口与所在簇簇首节点进行通信;数据路由器具有一个无线接口和两个以上的有线接口,通过无线接口与本簇簇内节点进行通信,通过有线接口与其他数据路由器进行通信;
数据路由器有一个路由器ID唯一标识,传感节点和执行节点有一个名字唯一标识,传感节点的名字由名字前缀和名字ID组成;执行节点的名字由名字前缀、名字ID和命令域构成;
消息结构由四部分构成:名字集合域、消息类型值、跳数和负载;其中名字集合域为定义目标数据的数据名字的集合,跳数定义该消息被转发的最大距离;
消息类型值如下所示:
信标消息的消息类型值为0,
发布消息的消息类型值为1,
数据推送消息的消息类型值为2,
数据请求消息的消息类型值为3,
数据响应消息的消息类型值为4,
命令请求消息的消息类型值为5,
命令响应消息的消息类型值为6,
数据路由器维护一个转发表,每个转发表项包括三个域:源路由器ID域值、接口域值和名字前缀集合;
传感节点的名字预先设定,执行节点的名字前缀和名字ID预先设定,具有网络唯一性;执行节点的名字前缀和名字ID具有唯一性;
数据路由器维护一个本簇名字前缀集合,该本簇名字前缀集合为本簇所有传感节点和执行节点的名字前缀的集合,数据路由器通过无线接口定期广播信标消息,该信标消息的名字集合域域值为名字前缀集合,消息类型为0,跳数域值为1,负载为自己的路由器ID;用户设备、传感节点和执行节点启动后,侦听数据路由器广播的信标消息,选择发送信号最强的信标帧的数据路由器为簇首节点,记录簇首节点的路由器ID,将自己标记为簇内节点;用户设备、传感节点和执行节点开始从无线接口定期广播信标消息,传感节点和执行节点广播的信标消息的名字集合域值为自己名字的名字前缀,消息类型为0,跳数域值为1,负载为簇首节点的路由器ID;用户设备广播的信标消息的名字集合域值为空,消息类型为0,跳数域值为1,负载为簇首节点的路由器ID;簇首节点收到信标消息后,如果信标消息中的路由器ID等于自己的路由器ID,则将信标消息中的名字集合域值加入到维护的名字前缀集合;
簇首节点收到所有簇内节点的信标帧后,获取并保存本簇名字前缀集合;对于该集合中的每个元素设置一个定时器,如果簇首节点在一个元素的定时器过期之前收到了该元素的信标消息,即该元素属于该信标消息的名字集合,那么簇首节点重新设置定时器,否则从本簇名字前缀集合中删除该元素;
然后执行下述步骤建立转发表:
步骤101:开始;
步骤102:簇首节点构建一个发布消息,发布消息的名字集合域为本簇名字前缀集合,消息类型为1,跳数为d/r,d为网络直径,r为传输半径,负载为自己的路由器ID;簇首节点从每一个与数据路由器相连的有线接口发送该发布消息;
步骤103:邻居数据路由器从接口f接收到该发布消息后,将发布消息中的跳数值递减1,在转发表中创建一个转发表项,该转发表项的源路由器ID为发布消息负载中的路由器ID,接口域值为f,名字前缀集合为发布消息中的名字集合域值;
步骤104:邻居数据路由器判断发布消息中的跳数值是否为0,如果是,执行步骤106,否则执行步骤105;
步骤105:邻居数据路由器从除了接口f之外的所有与其他数据路由器相连的有线接口发送该发布消息,执行步骤103;
步骤106:结束。
2.根据权利要求1所述的一种物联网数据传输方法,其特征在于,在簇CL1的簇首节点为CH1,簇CL2的簇首节点CH2,传感节点或者执行节点M1的名字前缀为NP1的条件下,如果节点M1从簇CL1移动到CL2,那么节点M1收到簇首节点CH2的信标消息后保存簇首节点CH2的路由器ID,然后执行下述过程:
步骤201:开始;
步骤202:节点M1从无线接口发送一个信标消息,该信标消息的名字集合为它名字的名字前缀,消息类型为0,跳数为1,负载为簇首节点CH2的路由器ID;
步骤203:簇首节点CH2接收到信标消息后,查看自己的本簇名字前缀集合,如果本簇名字前缀集合不包含信标消息中的名字集合中的名字前缀,那么执行步骤204,否则执行步骤207;
步骤204:簇首节点CH2将信标消息中名字集合中的名字前缀加入到自己的本簇名字前缀集合中,然后构建一个发布消息,发布消息的名字集合域为本簇名字前缀集合,消息类型为1,跳数为d/r,d为网络直径,r为传输半径,负载为自己的路由器ID;簇首节点CH2从每一个与数据路由器相连的有线接口发送该发布消息;
步骤205:邻居数据路由器从自己的接口f1接收到该发布消息后,将发布消息中的跳数值递减1,在转发表中查找源路由器ID值等于发布消息负载中的路由器ID的转发表项,将该转发表项的接口域值更新为f1,名字前缀集合更新为发布消息中的名字集合域值;
步骤206:邻居数据路由器判断发布消息中的跳数值是否为0,如果是,执行步骤208,否则执行步骤207;
步骤207:邻居数据路由器从除了接口f1之外的所有与其他数据路由器相连的有线接口发送该发布消息,执行步骤205;
步骤208:结束。
3.根据权利要求2所述的一种物联网数据传输方法,其特征在于,在簇CL1的簇首节点为CH1,簇CL2的簇首节点CH2,传感节点或者执行节点M1的名字前缀为NP1,传感节点或者执行节点M1为簇CL1的簇内节点且簇CL1中只有传感节点或者执行节点M1的名字前缀为NP1条件下,如果传感节点或者执行节点M1从簇CL1移动到CL2,那么簇首节点CH1执行下述过程:
步骤301:开始;
步骤302:如果簇首节点CH1检测到名字前缀NP1的定时器过期,则从本簇名字前缀集合将名字前缀NP1删除;簇首节点CH1构建一个发布消息,发布消息的名字集合域为本簇名字前缀集合,消息类型为1,跳数为d/r,d为网络直径,r为传输半径,负载为自己的路由器ID;簇首节点CH1从每一个与数据路由器相连的有线接口发送该发布消息;
步骤303:邻居数据路由器从自己的接口f2接收到该发布消息后,将发布消息中的跳数值递减1,在转发表中查找源路由器ID值等于发布消息负载中的路由器ID的转发表项,然后将该转发表项的接口域值更新为f2,名字前缀集合更新为发布消息中的名字集合域值;
步骤304:邻居数据路由器判断发布消息中的跳数值是否为0,如果是,执行步骤306,否则执行步骤305;
步骤305:邻居数据路由器从除了接口f2之外的所有与其他数据路由器相连的有线接口发送该发布消息,执行步骤303;
步骤306:结束;
每个簇首节点维护一个数据表,每个数据表项由名字域,数据域和生命周期域;
传感节点定期收集感知到的数据,然后执行下述数据推送操作:
步骤401:开始;
步骤402:传感节点构建数据推送消息,该数据推送消息的名字集合由该传感节点的名字构成,消息类型为2,跳数为1,负载为感知到的数据,然后从无线接口发送该数据推送消息;
步骤403:与传感节点位于相同簇的簇首节点接收到数据推送消息后,在数据表中创建一个数据表项,该数据表项的名字域值为数据推送消息中名字集合的名字,数据域为数据推送消息负载中的数据,生命周期为最大值;
步骤404:结束;
如果簇首节点检测到一个数据表项的生命周期衰减到0,那么删除该数据表项。
4.根据权利要求3所述的一种物联网数据传输方法,其特征在于,每个数据路由器保存一个聚合表,一个聚合表项包括名字集合域和接口域;
用户设备U1为簇CL3的簇内节点,簇CL3的簇首节点为CH3;如果用户节点U1需要获取名字集合S1定义的数据,名字集合S1的名字前缀集合为NPS1,那么用户设备U1执行下述过程:
步骤501:开始;
步骤502:用户设备U1构建一个数据请求消息,该数据请求消息的名字集合为S1,消息类型为3,跳数为d/r+2,d为网络直径,r为传输半径,负载为簇首节点CH3的路由器ID;用户设备U1从无线接口发送该数据请求消息;
步骤503:簇首节点CH3从接口f3接收到该数据请求消息后,将数据请求消息中的跳数递减1,然后判断数据表中是否存在满足条件1的数据表项,如果是,执行步骤504,否则执行步骤506;
条件1:数据表项的名字域值属于数据请求消息中的名字集合;
步骤504:簇首节点CH3构建一个数据响应消息,该数据响应消息的名字集合为符合条件1的数据表项的名字域集合,消息类型为4,跳数为1,负载为符合条件1的数据表项中的数据域值;簇首节点CH3从接口f3发送数据响应消息;
步骤505:簇首节点CH3从数据请求消息的名字集合中减去数据响应消息中的名字集合;如果数据响应消息的名字集合等于数据请求消息中的名字集合,那么执行步骤518,否则执行步骤506;
步骤506:如果簇首节点CH3检测到存在一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为数据请求消息的名字集合域值的超集,那么执行步骤518,否则执行步骤507;
步骤507:如果簇首节点CH3检测到存在一个聚合表项,该聚合表项的名字集合域值为数据请求消息的名字集合域值的超集,那么执行步骤508,否则执行步骤509;
步骤508:簇首节点CH3创建一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为数据请求消息的名字集合,执行步骤518;
步骤509:簇首节点CH3创建一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为数据请求消息的名字集合;簇首节点CH3构建一个名字集合S2,其值为数据请求消息的名字集合,名字集合S2的名字前缀集合为NPS2,然后对于集合NPS2中的任一个名字前缀P,簇首节点CH3进行如下操作:
簇首节点从集合S2中选择名字前缀为P的所有名字并用这些名字构建成名字集合S3,从转发表中选择名字前缀集合包含名字前缀P的所有转发表项,对于每一个名字前缀集合包含名字前缀P的转发表项,簇首节点CH3构建一个数据请求消息,该数据请求消息的名字集合为集合S3,消息类型为3,跳数为d/r+2,负载为空;簇首节点从该转发表项的接口域发送构建的数据请求消息;
步骤510:邻居数据路由器从接口f4接收到该数据请求消息后,将数据请求消息中的跳数递减1,判断数据表中是否存在满足条件1的数据表项,如果是,执行步骤511,否则执行步骤513;
步骤511:邻居数据路由器构建一个数据响应消息,该数据响应消息的名字集合为符合条件1的数据表项的名字域集合,消息类型为4,跳数为d/r+2,负载为符合条件1的数据表项中的数据域值,然后从接口f4发送数据响应消息;
步骤512:邻居数据路由器从数据请求消息的名字集合中减去数据响应消息中的名字集合,如果数据响应消息的名字集合等于数据请求消息中的名字集合,那么执行步骤518,否则执行步骤513;
步骤513:如果邻居数据路由器检测到存在一个聚合表项,该聚合表项的接口域值为f4,名字集合域值为数据请求消息的名字集合域值的超集,那么执行步骤518,否则执行步骤514;
步骤514:如果邻居数据路由器检测到存在一个聚合表项,该聚合表项的名字集合域值为数据请求消息的名字集合域值的超集,那么执行步骤515,否则执行步骤516;
步骤515:邻居数据路由器创建一个聚合表项,该聚合表项的接口域值为f4,名字集合域值为数据请求消息的名字集合,执行步骤518;
步骤516:邻居数据路由器创建一个聚合表项,该聚合表项的接口域值为f4,名字集合域值为数据请求消息的名字集合,如果数据请求消息中的跳数为0,则执行步骤518,否则执行步骤517;
步骤517:邻居数据路由器从转发表中选择名字前缀集合包含数据请求消息名字集合的名字前缀的所有转发表项,对于每一个接口域值不等于f4且名字前缀集合包含数据请求消息名字集合的名字前缀的转发表项,邻居数据路由器从该转发表项的接口域发送接收到的数据请求消息,执行步骤510;
步骤518:如果用户设备U1接收到数据响应消息,执行步骤520,否则执行步骤519;
步骤519:对于数据响应消息名字集合中的每一个名字N,数据路由器创建一个数据表项,该数据表项的名字域值为名字N,数据域为名字N定义的数据,生命周期设置为最大值;对于每个名字集合为数据响应消息名字集合的超集的聚合表项,数据路由器从该聚合表项的接口域转发接收到的数据响应消息,然后从该聚合表项的名字集合中减去数据响应消息的名字集合;如果该聚合表项的名字集合为空,则删除该聚合表项;执行步骤518;
步骤520:用户设备U1收到所有数据响应消息后,保存数据响应消息中的数据从而获取名字集合S1定义的数据;
步骤521:结束。
5.根据权利要求4所述的一种物联网数据传输方法,其特征在于,用户设备U1为簇CL3的簇内节点,簇CL3的簇首节点为CH3;如果用户节点U1想要执行节点执行一种操作,所述执行节点的名字集合为SA1,名字集合SA1的名字前缀集合为NPSA1,那么用户设备U1执行下述过程:
步骤601:开始;
步骤602:用户设备U1构建一个命令请求消息,该命令请求消息的名字集合为SA1,消息类型为5,跳数为d/r+2,d为网络直径,r为传输半径,负载为簇首节点CH3的路由器ID;用户设备U1从无线接口发送该命令请求消息;
步骤603:簇首节点CH3从接口f3接收到该命令请求消息后,将命令请求消息中的跳数递减1,然后判断自己维护的本簇名字前缀集合与命令请求消息名字集合的名字前缀集合是否为空,如果是,执行步骤606,否则执行步骤604;
步骤604:簇首节点CH3从接口f3转发命令请求消息,如果接收到命令请求消息的执行节点的名字前缀和名字ID等于命令请求消息的名字集合的一个元素E的名字前缀和名字ID,则执行元素E的命令域值,然后从无线接口发送一个命令响应消息,该命令响应消息名字集合为元素E的名字,消息类型为6,跳数为2,负载为簇首节点CH3的路由器ID;
步骤605:簇首节点CH3接收到命令响应消息后,从命令请求消息的名字集合中减去所有收到的命令响应消息中的名字集合,如果簇首节点CH3收到的命令响应消息个数等于命令请求消息名字集合的元素个数,那么执行步骤618,否则执行步骤606;
步骤606:如果簇首节点CH3检测到存在一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为命令请求消息的名字集合域值的超集,那么执行步骤618,否则执行步骤607;
步骤607:如果簇首节点CH3检测到存在一个聚合表项,该聚合表项的名字集合域值为命令请求消息的名字集合域值的超集,那么执行步骤608,否则执行步骤609;
步骤608:簇首节点CH3创建一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为命令请求消息的名字集合,执行步骤618;
步骤609:簇首节点CH3创建一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为命令请求消息的名字集合;簇首节点CH3构建一个名字集合SA2,其值为命令请求消息的名字集合,名字集合SA2的名字前缀集合为NPSA2,然后对于集合NPSA2中的任一个名字前缀PA,簇首节点CH3进行如下操作:
簇首节点从集合SA2中选择名字前缀为PA的所有名字并用这些名字构建成名字集合SA3,然后从转发表中选择名字前缀集合包含名字前缀PA的所有转发表项,对于每一个名字前缀集合包含名字前缀PA的转发表项,簇首节点CH3构建一个命令请求消息,该命令请求消息的名字集合为集合SA3,消息类型为5,跳数为d/r+2,负载为空,然后从该转发表项的接口域发送构建的命令请求消息;
步骤610:邻居数据路由器从接口f4接收到该命令请求消息后,将命令请求消息中的跳数递减1,然后判断自己维护的本簇名字前缀集合与命令请求消息名字集合的名字前缀集合是否为空,如果是,执行步骤613,否则执行步骤611;
步骤611:邻居数据路由器从无线接口转发命令请求消息,如果接收到命令请求消息的执行节点的名字前缀和名字ID等于命令请求消息的名字集合的一个元素E1的名字前缀和名字ID,则执行元素E1的命令域值;邻居数据路由器从无线接口发送一个命令响应消息,该命令响应消息名字集合为元素E1的名字,消息类型为6,跳数为d/r+1,负载为邻居数据路由器的路由器ID;
步骤612:邻居数据路由器接收到命令响应消息后,从命令请求消息的名字集合中减去所有收到的命令响应消息中的名字集合,如果邻居数据路由器收到的命令响应消息个数等于命令请求消息名字集合的元素个数,那么执行步骤618,否则执行步骤613;
步骤613:如果邻居数据路由器检测到存在一个聚合表项,该聚合表项的接口域值为f3,名字集合域值为命令请求消息的名字集合域值的超集,那么执行步骤618,否则执行步骤614;
步骤614:如果邻居数据路由器检测到存在一个聚合表项,该聚合表项的名字集合域值为命令请求消息的名字集合域值的超集,那么执行步骤615,否则执行步骤616;
步骤615:邻居数据路由器创建一个聚合表项,该聚合表项的接口域值为f4,名字集合域值为命令请求消息的名字集合,执行步骤618;
步骤616:邻居数据路由器创建一个聚合表项,该聚合表项的接口域值为f4,名字集合域值为命令请求消息的名字集合,如果命令请求消息中的跳数为0,则执行步骤618,否则执行步骤617;
步骤617:邻居数据路由器从转发表中选择名字前缀集合包含命令请求消息名字集合的名字前缀集合的所有转发表项,对于每一个接口域值不等于f4且名字前缀集合包含命令请求消息名字集合的名字前缀集合的转发表项,邻居数据路由器从该转发表项的接口域发送接收到的命令请求消息,执行步骤610;
步骤618:如果用户设备U1接收到命令响应消息,执行步骤620,否则执行步骤619;
步骤619:对于每个名字集合为命令响应消息名字集合的超集的聚合表项,数据路由器从该聚合表项的接口域转发接收到的命令响应消息,从该聚合表项的名字集合中减去命令响应消息的名字集合;如果该聚合表项的名字集合为空,则删除该聚合表项;执行步骤618;
步骤620:用户设备U1收到所有命令响应消息以确认执行节点已经收到命令请求消息并执行了响应操作;
步骤621,结束。
CN201710200507.5A 2017-03-29 2017-03-29 一种物联网数据传输方法 Active CN106713515B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710200507.5A CN106713515B (zh) 2017-03-29 2017-03-29 一种物联网数据传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710200507.5A CN106713515B (zh) 2017-03-29 2017-03-29 一种物联网数据传输方法

Publications (2)

Publication Number Publication Date
CN106713515A CN106713515A (zh) 2017-05-24
CN106713515B true CN106713515B (zh) 2019-05-03

Family

ID=58887338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710200507.5A Active CN106713515B (zh) 2017-03-29 2017-03-29 一种物联网数据传输方法

Country Status (1)

Country Link
CN (1) CN106713515B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395509B (zh) * 2017-08-28 2019-08-30 常熟理工学院 一种基于物联网的数据通信方法
CN108429673B (zh) * 2018-03-21 2019-11-05 常熟理工学院 一种快速的未来数据网络实现方法
CN108600393B (zh) * 2018-05-30 2020-08-18 常熟理工学院 一种基于命名数据的物联网数据通信方法
CN111669722B (zh) * 2020-06-16 2021-10-01 常熟理工学院 一种基于多路径的物联网智能环境监测系统实现方法
CN111642376A (zh) * 2020-06-16 2020-09-11 常熟理工学院 一种基于物联网的智能灌溉系统实现方法
CN112040008B (zh) * 2020-09-15 2021-09-28 常熟理工学院 一种基于物联网的远程医疗监护系统的实现方法
CN112073529B (zh) * 2020-09-15 2021-09-21 常熟理工学院 一种基于边缘计算的智能医疗系统的实现方法
CN112073528B (zh) * 2020-09-15 2021-09-28 常熟理工学院 一种基于物联网的医疗监测预警系统的实现方法
CN112888017A (zh) * 2021-01-12 2021-06-01 杨飞 一种数据快速传输方法
CN115904937A (zh) * 2022-10-24 2023-04-04 青岛丰拓力行科技服务有限公司 一种基于人工智能与物联网的可视化编程工具系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104767791A (zh) * 2015-03-04 2015-07-08 甘肃农业大学 基于无线传感器网络的农产品储运控制系统
CN104767805A (zh) * 2015-03-30 2015-07-08 河海大学 基于物联网架构和WebGIS的城市火灾监控系统
CN105100301A (zh) * 2015-08-31 2015-11-25 中国电力科学研究院 一种无线传感网络的传输方法和无线传感网络
WO2016142338A1 (en) * 2015-03-09 2016-09-15 Koninklijke Philips N.V. Wearable health interface for controlling internet of things devices
CN106210152A (zh) * 2016-09-27 2016-12-07 桂林电子科技大学 一种基于物联网的车载云系统及资源获取方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104767791A (zh) * 2015-03-04 2015-07-08 甘肃农业大学 基于无线传感器网络的农产品储运控制系统
WO2016142338A1 (en) * 2015-03-09 2016-09-15 Koninklijke Philips N.V. Wearable health interface for controlling internet of things devices
CN104767805A (zh) * 2015-03-30 2015-07-08 河海大学 基于物联网架构和WebGIS的城市火灾监控系统
CN105100301A (zh) * 2015-08-31 2015-11-25 中国电力科学研究院 一种无线传感网络的传输方法和无线传感网络
CN106210152A (zh) * 2016-09-27 2016-12-07 桂林电子科技大学 一种基于物联网的车载云系统及资源获取方法

Also Published As

Publication number Publication date
CN106713515A (zh) 2017-05-24

Similar Documents

Publication Publication Date Title
CN106713515B (zh) 一种物联网数据传输方法
Kim et al. On the design of beacon based wireless sensor network for agricultural emergency monitoring systems
US7663481B2 (en) Method for sensor node roaming in wireless sensor network environment
CN107395509B (zh) 一种基于物联网的数据通信方法
CN105515853A (zh) 无线网络的节点及其状态更新方法
US8937879B2 (en) System and method for changing network topology based on energy consumption
CN109246785A (zh) 一种未来移动网络的实现方法
CN109257834B (zh) 基于Thread协议的网状无线传感器网络的组网方法
CN104770020A (zh) 用于hessid中的公共属性以及关联查询的系统和方法
US20170135019A1 (en) Context aware wireless local area network connection
CN103759393A (zh) 空调器、空调无线控制器、系统及其控制方法
CN102855571A (zh) 一种资源信息处理方法及装置
CN110336729A (zh) 星形网络均衡组网方法、装置及物联网设备
CN107071010B (zh) 一种基于车载云的网络数据通信方法
US10341830B2 (en) Method and apparatus for sending or forwarding information
CN107979645B (zh) 一种物联网实现方法
Tan Lam et al. Wireless sensing modules for rural monitoring and precision agriculture applications
CN107508927A (zh) 一种基于云的未来车联网数据通信方法
US20160112838A1 (en) Beacons to advertise presence of nearby objects to stations in a wireless communication network
CN107317890A (zh) 一种智能车载网的数据传输实现方法
WO2019071549A1 (zh) 一种用于rfid标签的定位方法及定位系统
CN108429673B (zh) 一种快速的未来数据网络实现方法
CN106102133A (zh) 一种基于移动终端的动态无线网络的实现方法及系统
CN108881021B (zh) 一种高效可靠的物联网实现方法
KR20180022174A (ko) Id 통신 기반 사물 인터넷 서비스 지원 시스템 및 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230316

Address after: 1-1-505-1, Xindu building, southwest of the intersection of Weijin road and wandezhuang street, Nankai District, Tianjin

Patentee after: HUIJIAWANG (TIANJIN) TECHNOLOGY CO.,LTD.

Address before: 215500 School of computer science and engineering, Changshu Institute of Technology (southeast campus), Changshu City, Suzhou City, Jiangsu Province

Patentee before: CHANGSHU INSTITUTE OF TECHNOLOGY

Effective date of registration: 20230316

Address after: Room 416-1, Unit 1, Building 9, Enterprise Accelerator, Science and Technology Innovation City, High-tech Industrial Development Zone, Harbin, Heilongjiang Province, 150000

Patentee after: Harbin Industrial University micro Intelligence Technology Co.,Ltd.

Address before: 1-1-505-1, Xindu building, southwest of the intersection of Weijin road and wandezhuang street, Nankai District, Tianjin

Patentee before: HUIJIAWANG (TIANJIN) TECHNOLOGY CO.,LTD.

PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A Method of IoT Data Transmission

Effective date of registration: 20230713

Granted publication date: 20190503

Pledgee: Harbin Kechuang Financing Guarantee Co.,Ltd.

Pledgor: Harbin Industrial University micro Intelligence Technology Co.,Ltd.

Registration number: Y2023230000064

PC01 Cancellation of the registration of the contract for pledge of patent right

Granted publication date: 20190503

Pledgee: Harbin Kechuang Financing Guarantee Co.,Ltd.

Pledgor: Harbin Industrial University micro Intelligence Technology Co.,Ltd.

Registration number: Y2023230000064