CN109246015A - 一种可靠的多媒体传感网数据通信实现方法 - Google Patents

一种可靠的多媒体传感网数据通信实现方法 Download PDF

Info

Publication number
CN109246015A
CN109246015A CN201811075154.1A CN201811075154A CN109246015A CN 109246015 A CN109246015 A CN 109246015A CN 201811075154 A CN201811075154 A CN 201811075154A CN 109246015 A CN109246015 A CN 109246015A
Authority
CN
China
Prior art keywords
interface
title
thresholding
equal
query messages
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.)
Granted
Application number
CN201811075154.1A
Other languages
English (en)
Other versions
CN109246015B (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.)
Changshu Institute of Technology
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 CN201811075154.1A priority Critical patent/CN109246015B/zh
Publication of CN109246015A publication Critical patent/CN109246015A/zh
Application granted granted Critical
Publication of CN109246015B publication Critical patent/CN109246015B/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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种可靠的多媒体传感网数据通信实现方法,所述网络包括两个以上的路由器和两个以上的多媒体传感节点;多媒体传感节点称为传感节点,每个传感节点配置能够产生多媒体数据的设备,一种类型的多媒体数据由一个名称唯一标识;在本发明中,传感节点能够快速获取数据,大幅度降低了数据通信延迟,提高了数据通信质量。本发明可应用于交通路况检控及农业工程化等诸多领域,具有广泛的应用前景。

Description

一种可靠的多媒体传感网数据通信实现方法
技术领域
本发明涉及一种实现方法,尤其涉及的是一种可靠的多媒体传感网数据通信实现方法。
背景技术
多媒体传感网中的节点之间通信通过中间节点的转发和路由来实现,因此,实现多媒体传感网需要解决的关键技术之一就是降低数据传输延迟,以便使用户能够快速获取网络服务。随着多媒体传感网技术的发展,多媒体传感网会成为未来网络提供服务的一种模式。
目前,多媒体传感网的实现模式是通过广播来实现,因此延迟和代价都比较大,降低了网络服务性能。因此,如何降低多媒体传感网提供服务的延迟和代价成为近年来研究的热点问题。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种可靠的多媒体传感网数据通信实现方法。
技术方案:本发明公开了一种可靠的多媒体传感网数据通信实现方法,所述网络包括两个以上的路由器和两个以上的多媒体传感节点;多媒体传感节点称为传感节点,每个传感节点配置能够产生多媒体数据的设备,例如摄像头;一种类型的多媒体数据由一个名称唯一标识;每个路由器配置两个以上的上游接口和两个以上的下游接口,每个上游接口与一个路由器相连,一个路由器的下游接口与一个多媒体传感节点相连;一个多媒体传感节点配置一个接口,该接口与路由器的下游接口相连;
每个接口由一个接口ID唯一标识,接口ID为i的接口记为接口i,i为大于0的正整数;一个消息由名称、消息类型和负载构成;消息类型值如下所示:
消息类型名称 消息类型值
传感节点发布消息 1
数据发布消息 2
查询消息 3
数据消息 4
失败消息 5
二次查询消息 6
二次响应消息 7
每个路由器维护一个传感节点表,每个传感节点表项包含名称域、接口ID域和生命周期域;
传感节点N1与路由器R1相连,数据D1由名称NA1唯一标识,如果传感节点N1产生或者获取了数据D1,则执行下述操作建立传感节点表:
步骤101:开始;
步骤102:传感节点N1发送传感节点发布消息,该传感节点发布消息的名称为NA1,消息类型值为1,负载为空;
步骤103:路由器R1从接口d1接收到该传感节点发布消息后,查看传感节点表,如果存在一个传感节点表项,该传感节点表项的名称等于该传感节点发布消息的名称,接口ID等于d1,则执行步骤104,否则执行步骤105;
步骤104:从接口d1接收到该传感节点发布消息的路由器R1选择一个传感节点表项,该传感节点表项的名称等于该传感节点发布消息的名称,接口ID等于d1,将该传感节点表项的生命周期设置为最大值,例如500ms,执行步骤106;
步骤105:从接口d1接收到该传感节点发布消息的路由器R1创建一个传感节点表项,该传感节点表项的名称等于该传感节点发布消息的名称,接口ID等于d1,将该传感节点表项的生命周期设置为最大值;
步骤106:结束;
如果路由器检测到一个传感节点表项的生命周期衰减为0,则删除该传感节点表项。
传感节点通过上述过程建立传感节点表,这样,与传感节点关联的路由器可以获取每个传感节点所提供的数据,并通过正确的接口实现消息的正确转发,从而确保数据通信的正确性和实时性。
本发明所述方法中,每个路由器维护一个转发表,一个转发表项包含接口ID、名称和生命周期;路由器R1定期执行下述操作建立转发表:
步骤201:开始;
步骤202:路由器R1创建一个名称集合变量P1,变量P1的初始值为空,路由器R1查看传感节点表,针对每个传感节点表项,路由器R1执行下述操作:如果该传感节点表项的名称域值不包含在变量P1中,路由器R1将该传感节点表项的名称域值添加到变量P1中,否则,路由器R1不执行任何操作;
步骤203:对于变量P1中的每个元素,路由器R1执行下述操作:路由器R1发送数据发布消息,该数据发布消息的名称等于该元素,消息类型值为2,负载为空;
步骤204:路由器从接口u1接收到数据发布消息后查看转发表,如果存在一个转发表项,该转发表项的名称等于该数据发布消息的名称,接口ID等于u1,且生命周期大于T0-T1,T0为生命周期最大值,例如500ms,T1为调节系数,T1远小于T0,例如20ms,T1越小,转发表项的更新频率越高,则执行步骤209,否则执行步骤205;
步骤205:从接口u1接收到数据发布消息的路由器查看转发表,如果存在一个转发表项,该转发表项的名称等于该数据发布消息的名称,接口ID等于u1,则执行步骤206,否则执行步骤207;
步骤206:从接口u1接收到数据发布消息的路由器选择一个转发表项,该转发表项的名称等于该数据发布消息的名称,接口ID等于u1,该路由器将该转发表项的生命周期设置为T0,执行步骤208;
步骤207:从接口u1接收到数据发布消息的路由器创建一个转发表项,该转发表项的名称等于该数据发布消息的名称,接口ID等于u1,该路由器将该转发表项的生命周期设置为T0;
步骤208:从接口u1接收到数据发布消息的路由器从除了接口u1之外的每个上游接口转发该数据发布消息,执行步骤204;
步骤209:结束;
如果路由器检测到一个转发表项的生命周期衰减为0,则删除该转发表项。
路由器通过上述过程建立转发表,路由器可以根据转发表建立最优路由路径,并通过正确的接口实现消息的正确转发,转发表通过生命周期确保转发表项的正确性和实时性,从而确保数据通信的正确性。
本发明所述方法中,每个路由器和传感节点保存一个数据表,一个数据表项包含名称域、数据域和时间戳;如果一个路由器或者传感节点检测到一个数据表项的时间戳与当前时间之差的绝对值小于阈值TS1,例如120mins,则删除该数据表项;
一个路由器保存一个查询表,每个查询表项包含名称域和接口ID域;一个路由器保存一个接口表,每个接口表项包含接口ID域、名称域和时间戳;传感节点N2与路由器R2相连,数据D1由名称NA1唯一标识,传感节点N2通过下述过程获取数据D1:
步骤301:开始;
步骤302:传感节点N2发送一个查询消息,该查询消息的名称域值为NA1,消息类型值为3,负载为空;
步骤303:路由器R2从接口x1接收到该查询消息,如果存在一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,接口ID等于x1,则执行步骤330,否则执行步骤304;
步骤304:从接口x1接收到该查询消息的路由器R2查看查询表,如果存在一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,则执行步骤305,否则执行步骤306;
步骤305:从接口x1接收到该查询消息的路由器R2创建一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,接口ID等于x1,执行步骤330;
步骤306:从接口x1接收到该查询消息的路由器R2查看数据表,如果存在一个数据表项,该数据表项的名称域值等于该查询消息的名称域值,则执行步骤307,否则执行步骤308;
步骤307:从接口x1接收到该查询消息的路由器R2选择一个数据表项,该数据表项的名称域值等于该查询消息的名称域值,将该数据表项的时间戳设置为当前时间,从接口x1发送一个数据消息,该数据消息的名称域值等于该查询消息的名称域值,消息类型值为4,负载为该数据表项的数据域值,执行步骤330;
步骤308:从接口x1接收到该查询消息的路由器R2创建一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,接口ID等于x1;如果路由器R2存在一个传感节点表项,该传感节点表项的名称域值等于该查询消息的名称域值,则执行步骤309,否则执行步骤310;
步骤309:从接口x1接收到该查询消息的路由器R2选择一个传感节点表项,该传感节点表项的名称域值等于该查询消息的名称域值,从该传感节点表项的接口ID所标识的接口转发该查询消息,执行步骤312;
步骤310:从接口x1接收到该查询消息的路由器R2选择所有名称域值等于该查询消息名称域值的转发表项,针对每一个选中的转发表项,路由器R2选择一个接口表项,该接口表项的名称域值和接口ID域值等于该转发表项的名称域值和接口ID域值;
步骤311:从接口x1接收到该查询消息的路由器R2从所有选中的接口表项中随机选取一个接口表项E1,接口表项E1的时间戳距离当前时间最近;选择一个转发表项E2,转发表项E2的名称域值和接口ID域值分别等于接口表项E1的名称域值和接口ID域值,从转发表项E2的接口ID所标识的接口转发该查询消息;
步骤312:判断是传感节点还是路由器从接口x2接收到该查询消息,如果是传感节点则执行步骤322,否则执行步骤313;
步骤313:路由器从接口x2接收到该查询消息,如果存在一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,接口ID等于x2,则执行步骤330,否则执行步骤314;
步骤314:从接口x2接收到该查询消息的路由器查看查询表,如果存在一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,则执行步骤315,否则执行步骤316;
步骤315:从接口x2接收到该查询消息的路由器创建一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,接口ID等于x2,执行步骤330;
步骤316:从接口x2接收到该查询消息的路由器查看数据表,如果存在一个数据表项,该数据表项的名称域值等于该查询消息的名称域值,则执行步骤317,否则执行步骤318;
步骤317:从接口x2接收到该查询消息的路由器选择一个数据表项,该数据表项的名称域值等于该查询消息的名称域值,将该数据表项的时间戳设置为当前时间,从接口x2发送一个数据消息,该数据消息的名称域值等于该查询消息的名称域值,消息类型值为4,负载为该数据表项的数据域值,执行步骤330;
步骤318:从接口x2接收到该查询消息的路由器创建一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,接口ID等于x2,如果该路由器存在一个传感节点表项,该传感节点表项的名称域值等于该查询消息的名称域值,则执行步骤319,否则执行步骤320;
步骤319:从接口x2接收到该查询消息的路由器选择一个传感节点表项,该传感节点表项的名称域值等于该查询消息的名称域值,从该传感节点表项的接口ID所标识的接口转发该查询消息,执行步骤312;
步骤320:从接口x2接收到该查询消息的路由器选择所有名称域值等于该查询消息名称域值的转发表项,针对每一个选中的转发表项,该路由器选择一个接口表项,该接口表项的名称域值和接口ID域值等于该转发表项的名称域值和接口ID域值;
步骤321:从接口x2接收到该查询消息的路由器从所有选中的接口表项中随机选取一个接口表项E3,接口表项E3的时间戳距离当前时间最近,从接口x2接收到该查询消息的路由器选择一个转发表项E4,转发表项E4的名称域值和接口ID域值分别等于接口表项E3的名称域值和接口ID域值,从转发表项E4的接口ID所标识的接口转发该查询消息,执行步骤312;
步骤322:传感节点接收到该请求消息后,查看数据表,如果存在一个数据表项,该数据表项的名称域值等于该查询消息的名称域值,则执行步骤323,否则执行步骤325;
步骤323:接收到该查询消息的传感节点选择一个数据表项,该数据表项的名称域值等于该查询消息的名称域值,将该数据表项的时间戳设置为当前时间;
步骤324:接收到该查询消息的传感节点发送一个数据消息,该数据消息的名称域值等于该查询消息的名称域值,消息类型值为4,负载为选中的数据表项的数据域值,执行步骤330;
步骤325:接收到该查询消息的传感节点发送一个失败消息,该失败消息的名称域值等于该查询消息的名称域值,消息类型值为5,负载为空;
步骤326:判断是传感节点还是路由器从接口x3接收到失败消息,如果是传感节点则执行步骤333,否则执行步骤327;
步骤327:路由器从接口x3接收到失败消息后,查看转发表,如果至少存在一个转发表项,该转发表项的名称域值等于该失败消息的名称域值且接口ID不等于x3,则执行步骤328,否则执行步骤329;
步骤328:从接口x3接收到失败消息的路由器查看转发表,选择所有名称域值等于该失败消息的名称域值且接口ID不等于x3的转发表项,针对每个选中的转发表项,该路由器创建一个查询消息,该查询消息的名称域值等于该失败消息的名称域值,消息类型值为3,负载为空,从该转发表项的接口ID所标识的接口转发该查询消息,执行步骤312;
步骤329:从接口x3接收到失败消息的路由器查看查询表,选择所有名称域值等于该失败消息的名称域值的查询表项,针对每个选中的查询表项,该路由器从该查询表项的接口ID所标识的接口转发该失败消息,删除该查询表项,执行步骤326;
步骤330:判断是传感节点还是路由器从接口x4接收到响应消息,如果是传感节点则执行步骤332,否则执行步骤331;
步骤331:路由器从接口x4接收到响应消息后,选择所有名称域值等于该响应消息名称域值的查询表项,针对每个选中的查询表项,该路由器从该查询表项的接口ID域值所标识的接口转发该响应消息,如果该路由器有足够的存储空间存在该响应消息负载中的响应数据,则创建一个数据表项,该数据表项的名称域值等于该响应消息的名称域值,数据域值等于该响应消息负载中的响应数据,时间戳为当前的时间,该路由器选择一个接口表项,该接口表项的名称域值等于该响应消息的名称域值,接口ID域值等于x4,将该接口表项的时间戳设置为当前的时间,执行步骤330;
步骤332:传感节点接收到响应消息后,创建一个数据表项,该数据表项的名称域值等于该响应消息的名称域值,数据域值等于该响应消息负载中的响应数据,时间戳为当前的时间;
步骤333:结束。
传感节点通过上述过程实现数据通信,从而获取所需数据,上述过程通过查询表实现请求聚合,这样多个传感节点可以通过一次数据通信即可获取数据,从而大幅度降低了数据通信代价和延迟。
本发明所述方法中,每个传感节点保存一个消息表,每个消息表项包含名称域和时钟域,如果一个传感节点检测到一个消息表项的时钟过期,即衰减为0,则删除该消息表项;传感节点N2与路由器R2相连,数据D1由名称NA1唯一标识,如果传感节点N2通过步骤301-333没有获取数据D1,则执行下述过程获取数据D1:
步骤401:开始;
步骤402:传感节点N2发送一个二次查询消息,该二次查询消息的名称域值为NA1,消息类型值为6,负载为空;
步骤403:路由器R2从接口y1接收到该二次查询消息,如果存在一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,接口ID等于y1,则执行步骤423,否则执行步骤404;
步骤404:从接口y1接收到该二次查询消息的路由器R2查看查询表,如果存在一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,则执行步骤405,否则执行步骤406;
步骤405:从接口y1接收到该二次查询消息的路由器R2创建一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,接口ID等于y1,执行步骤423;
步骤406:从接口y1接收到该二次查询消息的路由器R2查看数据表,如果存在一个数据表项,该数据表项的名称域值等于该二次查询消息的名称域值,则执行步骤407,否则执行步骤408;
步骤407:从接口y1接收到该二次查询消息的路由器R2选择一个数据表项,该数据表项的名称域值等于该二次查询消息的名称域值,将该数据表项的时间戳设置为当前时间,从接口y1发送一个二次响应消息,该二次响应消息的名称域值等于该二次查询消息的名称域值,消息类型值为7,负载为该数据表项的数据域值,执行步骤423;
步骤408:从接口y1接收到该二次查询消息的路由器R2创建一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,接口ID等于y1,如果路由器R2存在一个传感节点表项,该传感节点表项的名称域值等于该二次查询消息的名称域值,则执行步骤409,否则执行步骤410;
步骤409:从接口y1接收到该二次查询消息的路由器R2选择一个传感节点表项,该传感节点表项的名称域值等于该二次查询消息的名称域值,从该传感节点表项的接口ID所标识的接口转发该二次查询消息,执行步骤411;
步骤410:从接口y1接收到该二次查询消息的路由器R2选择所有名称域值等于该二次查询消息名称域值的转发表项,针对每一个选中的转发表项,路由器R2通过该转发表项的接口ID所标识的接口转发该二次查询消息;
步骤411:判断是传感节点还是路由器从接口y2接收到该二次查询消息,如果是传感节点则执行步骤420,否则执行步骤412;
步骤412:路由器从接口y2接收到该二次查询消息;,如果存在一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,接口ID等于y2,则执行步骤423,否则执行步骤413;
步骤413:从接口y2接收到该二次查询消息的路由器查看查询表,如果存在一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,则执行步骤414,否则执行步骤415;
步骤414:从接口y2接收到该二次查询消息的路由器创建一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,接口ID等于y2,执行步骤423;
步骤415:从接口y2接收到该二次查询消息的路由器查看数据表,如果存在一个数据表项,该数据表项的名称域值等于该二次查询消息的名称域值,则执行步骤416,否则执行步骤417;
步骤416:从接口y2接收到该二次查询消息的路由器选择一个数据表项,该数据表项的名称域值等于该二次查询消息的名称域值,将该数据表项的时间戳设置为当前时间,从接口y2发送一个二次响应消息,该二次响应消息的名称域值等于该二次查询消息的名称域值,消息类型值为7,负载为该数据表项的数据域值,执行步骤423;
步骤417:从接口y2接收到该二次查询消息的路由器创建一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,接口ID等于y2;如果该路由器至少存在一个传感节点表项,该传感节点表项的名称域值等于该二次查询消息的名称域值,则执行步骤418,否则执行步骤419;
步骤418:从接口y2接收到该二次查询消息的路由器选择所有名称域值等于该二次查询消息的名称域值的传感节点表项,针对选择的每一个传感节点表项,该路由器从该传感节点表项的接口ID所标识的接口转发该二次查询消息,执行步骤411;
步骤419:从接口y2接收到该二次查询消息的路由器选择所有名称域值等于该二次查询消息名称域值的转发表项,针对每一个选中的转发表项,该路由器通过该转发表项的接口ID所标识的接口转发该二次查询消息,执行步骤411;
步骤420:传感节点接收到二次查询消息后,查看消息表,如果存在一个消息表项,该消息表项的名称域值等于该二次查询消息的名称域值,则执行步骤428,否则执行步骤421;
步骤421:接收到二次查询消息的传感节点创建一个消息表项并设置一个新时钟,该消息表项的名称域值等于该二次查询消息的名称域值,时钟域值等于新设置的时钟,如果该传感节点存在一个数据表项,该数据表项的名称域值等于该二次查询消息的名称域值,则执行步骤422,否则执行步骤428;
步骤422:接收到该二次查询消息的传感节点选择一个数据表项,该数据表项的名称域值等于该二次查询消息的名称域值,则将该数据表项的时间戳设置为当前时间,发送一个二次响应消息,该二次响应消息的名称域值等于该二次查询消息的名称域值,消息类型值为7,负载为该数据表项的数据域值;
步骤423:如果传感节点接收到响应消息,则执行步骤426,否则执行步骤424;
步骤424:路由器从接口y3接收到响应消息后,选择所有名称域值等于该响应消息名称域值的查询表项,如果选择的查询表项的个数为0,则执行步骤428,否则执行步骤425;
步骤425:从接口y3接收到响应消息的路由器选择所有名称域值等于该响应消息名称域值的查询表项,针对每个选中的查询表项,该路由器从该查询表项的接口ID域值所标识的接口转发该响应消息;如果该路由器有足够的存储空间存在该响应消息负载中的响应数据,则创建一个数据表项,该数据表项的名称域值等于该响应消息的名称域值,数据域值等于该响应消息负载中的响应数据,时间戳为当前的时间;该路由器选择一个接口表项,该接口表项的名称域值等于该响应消息的名称域值,接口ID域值等于y3,将该接口表项的时间戳设置为当前的时间,执行步骤423;
步骤426:传感节点接收到响应数据后,如果传感节点存在一个数据表项,该数据表项的名称域值等于该响应消息的名称域值,则执行步骤428,否则执行步骤427;
步骤427:接收到响应消息的传感节点创建一个数据表项,该数据表项的名称域值等于该响应消息的名称域值,数据域值等于该响应消息负载中的响应数据,时间戳为当前的时间;
步骤428:结束。
传感节点通过上述过程获取所需数据,上述过程通过消息表实现数据请求,从而确保传感节点可以成功获取数据,从而大幅度降低了数据通信成功率。同时,上述过程中路由器可以缓存数据并提供数据,从而进一步降低了数据通信代价和延迟。
有益效果:本发明提供了一种可靠的多媒体传感网数据通信实现方法,在本发明中,传感节点能够快速获取数据,大幅度降低了数据通信延迟,提高了数据通信质量。本发明可应用于交通路况检控及农业工程化等诸多领域,具有广泛的应用前景。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明所述的建立传感节点表程示意图。
图2为本发明所述的建立转发表流程示意图。
图3为本发明所述的数据通信流程示意图。
图4为本发明所述的获取数据流程示意图。
具体实施方式:
本发明提供了一种可靠的多媒体传感网数据通信实现方法,在本发明中,传感节点能够快速获取数据,大幅度降低了数据通信延迟,提高了数据通信质量。本发明可应用于交通路况检控及农业工程化等诸多领域,具有广泛的应用前景。
图1为本发明所述的建立传感节点表流程示意图。所述网络包括两个以上的路由器和两个以上的多媒体传感节点;多媒体传感节点称为传感节点,每个传感节点配置能够产生多媒体数据的设备,一种类型的多媒体数据由一个名称唯一标识;每个路由器配置两个以上的上游接口和两个以上的下游接口,每个上游接口与一个路由器相连,一个路由器的下游接口与一个多媒体传感节点相连;一个多媒体传感节点配置一个接口,该接口与路由器的下游接口相连;
每个接口由一个接口ID唯一标识,接口ID为i的接口记为接口i,i为大于0的正整数;一个消息由名称、消息类型和负载构成;消息类型值如下所示:
消息类型名称 消息类型值
传感节点发布消息 1
数据发布消息 2
查询消息 3
数据消息 4
失败消息 5
二次查询消息 6
二次响应消息 7
每个路由器维护一个传感节点表,每个传感节点表项包含名称域、接口ID域和生命周期域;
传感节点N1与路由器R1相连,数据D1由名称NA1唯一标识,如果传感节点N1产生或者获取了数据D1,则执行下述操作建立传感节点表:
步骤101:开始;
步骤102:传感节点N1发送传感节点发布消息,该传感节点发布消息的名称为NA1,消息类型值为1,负载为空;
步骤103:路由器R1从接口d1接收到该传感节点发布消息后,查看传感节点表,如果存在一个传感节点表项,该传感节点表项的名称等于该传感节点发布消息的名称,接口ID等于d1,则执行步骤104,否则执行步骤105;
步骤104:从接口d1接收到该传感节点发布消息的路由器R1选择一个传感节点表项,该传感节点表项的名称等于该传感节点发布消息的名称,接口ID等于d1,将该传感节点表项的生命周期设置为最大值,执行步骤106;
步骤105:从接口d1接收到该传感节点发布消息的路由器R1创建一个传感节点表项,该传感节点表项的名称等于该传感节点发布消息的名称,接口ID等于d1,将该传感节点表项的生命周期设置为最大值;
步骤106:结束;
如果路由器检测到一个传感节点表项的生命周期衰减为0,则删除该传感节点表项。
传感节点通过上述过程建立传感节点表,这样,与传感节点关联的路由器可以获取每个传感节点所提供的数据,并通过正确的接口实现消息的正确转发,从而确保数据通信的正确性和实时性。
图2为本发明所述的建立转发表流程示意图。每个路由器维护一个转发表,一个转发表项包含接口ID、名称和生命周期;路由器R1定期执行下述操作建立转发表:
步骤201:开始;
步骤202:路由器R1创建一个名称集合变量P1,变量P1的初始值为空,路由器R1查看传感节点表,针对每个传感节点表项,路由器R1执行下述操作:如果该传感节点表项的名称域值不包含在变量P1中,路由器R1将该传感节点表项的名称域值添加到变量P1中,否则,路由器R1不执行任何操作;
步骤203:对于变量P1中的每个元素,路由器R1执行下述操作:路由器R1发送数据发布消息,该数据发布消息的名称等于该元素,消息类型值为2,负载为空;
步骤204:路由器从接口u1接收到数据发布消息后查看转发表,如果存在一个转发表项,该转发表项的名称等于该数据发布消息的名称,接口ID等于u1,且生命周期大于T0-T1,T0为生命周期最大值,T1为调节系数,则执行步骤209,否则执行步骤205;
步骤205:从接口u1接收到数据发布消息的路由器查看转发表,如果存在一个转发表项,该转发表项的名称等于该数据发布消息的名称,接口ID等于u1,则执行步骤206,否则执行步骤207;
步骤206:从接口u1接收到数据发布消息的路由器选择一个转发表项,该转发表项的名称等于该数据发布消息的名称,接口ID等于u1,该路由器将该转发表项的生命周期设置为T0,执行步骤208;
步骤207:从接口u1接收到数据发布消息的路由器创建一个转发表项,该转发表项的名称等于该数据发布消息的名称,接口ID等于u1,该路由器将该转发表项的生命周期设置为T0;
步骤208:从接口u1接收到数据发布消息的路由器从除了接口u1之外的每个上游接口转发该数据发布消息,执行步骤204;
步骤209:结束;
如果路由器检测到一个转发表项的生命周期衰减为0,则删除该转发表项。
路由器通过上述过程建立转发表,路由器可以根据转发表建立最优路由路径,并通过正确的接口实现消息的正确转发,转发表通过生命周期确保转发表项的正确性和实时性,从而确保数据通信的正确性。
图3为本发明所述的数据通信流程示意图。每个路由器和传感节点保存一个数据表,一个数据表项包含名称域、数据域和时间戳;如果一个路由器或者传感节点检测到一个数据表项的时间戳与当前时间之差的绝对值小于阈值TS1,则删除该数据表项;
一个路由器保存一个查询表,每个查询表项包含名称域和接口ID域;一个路由器保存一个接口表,每个接口表项包含接口ID域、名称域和时间戳;传感节点N2与路由器R2相连,数据D1由名称NA1唯一标识,传感节点N2通过下述过程获取数据D1:
步骤301:开始;
步骤302:传感节点N2发送一个查询消息,该查询消息的名称域值为NA1,消息类型值为3,负载为空;
步骤303:路由器R2从接口x1接收到该查询消息,如果存在一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,接口ID等于x1,则执行步骤330,否则执行步骤304;
步骤304:从接口x1接收到该查询消息的路由器R2查看查询表,如果存在一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,则执行步骤305,否则执行步骤306;
步骤305:从接口x1接收到该查询消息的路由器R2创建一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,接口ID等于x1,执行步骤330;
步骤306:从接口x1接收到该查询消息的路由器R2查看数据表,如果存在一个数据表项,该数据表项的名称域值等于该查询消息的名称域值,则执行步骤307,否则执行步骤308;
步骤307:从接口x1接收到该查询消息的路由器R2选择一个数据表项,该数据表项的名称域值等于该查询消息的名称域值,将该数据表项的时间戳设置为当前时间,从接口x1发送一个数据消息,该数据消息的名称域值等于该查询消息的名称域值,消息类型值为4,负载为该数据表项的数据域值,执行步骤330;
步骤308:从接口x1接收到该查询消息的路由器R2创建一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,接口ID等于x1;如果路由器R2存在一个传感节点表项,该传感节点表项的名称域值等于该查询消息的名称域值,则执行步骤309,否则执行步骤310;
步骤309:从接口x1接收到该查询消息的路由器R2选择一个传感节点表项,该传感节点表项的名称域值等于该查询消息的名称域值,从该传感节点表项的接口ID所标识的接口转发该查询消息,执行步骤312;
步骤310:从接口x1接收到该查询消息的路由器R2选择所有名称域值等于该查询消息名称域值的转发表项,针对每一个选中的转发表项,路由器R2选择一个接口表项,该接口表项的名称域值和接口ID域值等于该转发表项的名称域值和接口ID域值;
步骤311:从接口x1接收到该查询消息的路由器R2从所有选中的接口表项中随机选取一个接口表项E1,接口表项E1的时间戳距离当前时间最近;选择一个转发表项E2,转发表项E2的名称域值和接口ID域值分别等于接口表项E1的名称域值和接口ID域值,从转发表项E2的接口ID所标识的接口转发该查询消息;
步骤312:判断是传感节点还是路由器从接口x2接收到该查询消息,如果是传感节点则执行步骤322,否则执行步骤313;
步骤313:路由器从接口x2接收到该查询消息,如果存在一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,接口ID等于x2,则执行步骤330,否则执行步骤314;
步骤314:从接口x2接收到该查询消息的路由器查看查询表,如果存在一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,则执行步骤315,否则执行步骤316;
步骤315:从接口x2接收到该查询消息的路由器创建一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,接口ID等于x2,执行步骤330;
步骤316:从接口x2接收到该查询消息的路由器查看数据表,如果存在一个数据表项,该数据表项的名称域值等于该查询消息的名称域值,则执行步骤317,否则执行步骤318;
步骤317:从接口x2接收到该查询消息的路由器选择一个数据表项,该数据表项的名称域值等于该查询消息的名称域值,将该数据表项的时间戳设置为当前时间,从接口x2发送一个数据消息,该数据消息的名称域值等于该查询消息的名称域值,消息类型值为4,负载为该数据表项的数据域值,执行步骤330;
步骤318:从接口x2接收到该查询消息的路由器创建一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,接口ID等于x2,如果该路由器存在一个传感节点表项,该传感节点表项的名称域值等于该查询消息的名称域值,则执行步骤319,否则执行步骤320;
步骤319:从接口x2接收到该查询消息的路由器选择一个传感节点表项,该传感节点表项的名称域值等于该查询消息的名称域值,从该传感节点表项的接口ID所标识的接口转发该查询消息,执行步骤312;
步骤320:从接口x2接收到该查询消息的路由器选择所有名称域值等于该查询消息名称域值的转发表项,针对每一个选中的转发表项,该路由器选择一个接口表项,该接口表项的名称域值和接口ID域值等于该转发表项的名称域值和接口ID域值;
步骤321:从接口x2接收到该查询消息的路由器从所有选中的接口表项中随机选取一个接口表项E3,接口表项E3的时间戳距离当前时间最近,从接口x2接收到该查询消息的路由器选择一个转发表项E4,转发表项E4的名称域值和接口ID域值分别等于接口表项E3的名称域值和接口ID域值,从转发表项E4的接口ID所标识的接口转发该查询消息,执行步骤312;
步骤322:传感节点接收到该请求消息后,查看数据表,如果存在一个数据表项,该数据表项的名称域值等于该查询消息的名称域值,则执行步骤323,否则执行步骤325;
步骤323:接收到该查询消息的传感节点选择一个数据表项,该数据表项的名称域值等于该查询消息的名称域值,将该数据表项的时间戳设置为当前时间;
步骤324:接收到该查询消息的传感节点发送一个数据消息,该数据消息的名称域值等于该查询消息的名称域值,消息类型值为4,负载为选中的数据表项的数据域值,执行步骤330;
步骤325:接收到该查询消息的传感节点发送一个失败消息,该失败消息的名称域值等于该查询消息的名称域值,消息类型值为5,负载为空;
步骤326:判断是传感节点还是路由器从接口x3接收到失败消息,如果是传感节点则执行步骤333,否则执行步骤327;
步骤327:路由器从接口x3接收到失败消息后,查看转发表,如果至少存在一个转发表项,该转发表项的名称域值等于该失败消息的名称域值且接口ID不等于x3,则执行步骤328,否则执行步骤329;
步骤328:从接口x3接收到失败消息的路由器查看转发表,选择所有名称域值等于该失败消息的名称域值且接口ID不等于x3的转发表项,针对每个选中的转发表项,该路由器创建一个查询消息,该查询消息的名称域值等于该失败消息的名称域值,消息类型值为3,负载为空,从该转发表项的接口ID所标识的接口转发该查询消息,执行步骤312;
步骤329:从接口x3接收到失败消息的路由器查看查询表,选择所有名称域值等于该失败消息的名称域值的查询表项,针对每个选中的查询表项,该路由器从该查询表项的接口ID所标识的接口转发该失败消息,删除该查询表项,执行步骤326;
步骤330:判断是传感节点还是路由器从接口x4接收到响应消息,如果是传感节点则执行步骤332,否则执行步骤331;
步骤331:路由器从接口x4接收到响应消息后,选择所有名称域值等于该响应消息名称域值的查询表项,针对每个选中的查询表项,该路由器从该查询表项的接口ID域值所标识的接口转发该响应消息,如果该路由器有足够的存储空间存在该响应消息负载中的响应数据,则创建一个数据表项,该数据表项的名称域值等于该响应消息的名称域值,数据域值等于该响应消息负载中的响应数据,时间戳为当前的时间,该路由器选择一个接口表项,该接口表项的名称域值等于该响应消息的名称域值,接口ID域值等于x4,将该接口表项的时间戳设置为当前的时间,执行步骤330;
步骤332:传感节点接收到响应消息后,创建一个数据表项,该数据表项的名称域值等于该响应消息的名称域值,数据域值等于该响应消息负载中的响应数据,时间戳为当前的时间;
步骤333:结束。
传感节点通过上述过程实现数据通信,从而获取所需数据,上述过程通过查询表实现请求聚合,这样多个传感节点可以通过一次数据通信即可获取数据,从而大幅度降低了数据通信代价和延迟。
图4为本发明所述的获取数据流程示意图。每个传感节点保存一个消息表,每个消息表项包含名称域和时钟域,如果一个传感节点检测到一个消息表项的时钟过期,即衰减为0,则删除该消息表项;传感节点N2与路由器R2相连,数据D1由名称NA1唯一标识,如果传感节点N2通过步骤301-333没有获取数据D1,则执行下述过程获取数据D1:
步骤401:开始;
步骤402:传感节点N2发送一个二次查询消息,该二次查询消息的名称域值为NA1,消息类型值为6,负载为空;
步骤403:路由器R2从接口y1接收到该二次查询消息,如果存在一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,接口ID等于y1,则执行步骤423,否则执行步骤404;
步骤404:从接口y1接收到该二次查询消息的路由器R2查看查询表,如果存在一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,则执行步骤405,否则执行步骤406;
步骤405:从接口y1接收到该二次查询消息的路由器R2创建一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,接口ID等于y1,执行步骤423;
步骤406:从接口y1接收到该二次查询消息的路由器R2查看数据表,如果存在一个数据表项,该数据表项的名称域值等于该二次查询消息的名称域值,则执行步骤407,否则执行步骤408;
步骤407:从接口y1接收到该二次查询消息的路由器R2选择一个数据表项,该数据表项的名称域值等于该二次查询消息的名称域值,将该数据表项的时间戳设置为当前时间,从接口y1发送一个二次响应消息,该二次响应消息的名称域值等于该二次查询消息的名称域值,消息类型值为7,负载为该数据表项的数据域值,执行步骤423;
步骤408:从接口y1接收到该二次查询消息的路由器R2创建一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,接口ID等于y1,如果路由器R2存在一个传感节点表项,该传感节点表项的名称域值等于该二次查询消息的名称域值,则执行步骤409,否则执行步骤410;
步骤409:从接口y1接收到该二次查询消息的路由器R2选择一个传感节点表项,该传感节点表项的名称域值等于该二次查询消息的名称域值,从该传感节点表项的接口ID所标识的接口转发该二次查询消息,执行步骤411;
步骤410:从接口y1接收到该二次查询消息的路由器R2选择所有名称域值等于该二次查询消息名称域值的转发表项,针对每一个选中的转发表项,路由器R2通过该转发表项的接口ID所标识的接口转发该二次查询消息;
步骤411:判断是传感节点还是路由器从接口y2接收到该二次查询消息,如果是传感节点则执行步骤420,否则执行步骤412;
步骤412:路由器从接口y2接收到该二次查询消息;,如果存在一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,接口ID等于y2,则执行步骤423,否则执行步骤413;
步骤413:从接口y2接收到该二次查询消息的路由器查看查询表,如果存在一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,则执行步骤414,否则执行步骤415;
步骤414:从接口y2接收到该二次查询消息的路由器创建一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,接口ID等于y2,执行步骤423;
步骤415:从接口y2接收到该二次查询消息的路由器查看数据表,如果存在一个数据表项,该数据表项的名称域值等于该二次查询消息的名称域值,则执行步骤416,否则执行步骤417;
步骤416:从接口y2接收到该二次查询消息的路由器选择一个数据表项,该数据表项的名称域值等于该二次查询消息的名称域值,将该数据表项的时间戳设置为当前时间,从接口y2发送一个二次响应消息,该二次响应消息的名称域值等于该二次查询消息的名称域值,消息类型值为7,负载为该数据表项的数据域值,执行步骤423;
步骤417:从接口y2接收到该二次查询消息的路由器创建一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,接口ID等于y2;如果该路由器至少存在一个传感节点表项,该传感节点表项的名称域值等于该二次查询消息的名称域值,则执行步骤418,否则执行步骤419;
步骤418:从接口y2接收到该二次查询消息的路由器选择所有名称域值等于该二次查询消息的名称域值的传感节点表项,针对选择的每一个传感节点表项,该路由器从该传感节点表项的接口ID所标识的接口转发该二次查询消息,执行步骤411;
步骤419:从接口y2接收到该二次查询消息的路由器选择所有名称域值等于该二次查询消息名称域值的转发表项,针对每一个选中的转发表项,该路由器通过该转发表项的接口ID所标识的接口转发该二次查询消息,执行步骤411;
步骤420:传感节点接收到二次查询消息后,查看消息表,如果存在一个消息表项,该消息表项的名称域值等于该二次查询消息的名称域值,则执行步骤428,否则执行步骤421;
步骤421:接收到二次查询消息的传感节点创建一个消息表项并设置一个新时钟,该消息表项的名称域值等于该二次查询消息的名称域值,时钟域值等于新设置的时钟,如果该传感节点存在一个数据表项,该数据表项的名称域值等于该二次查询消息的名称域值,则执行步骤422,否则执行步骤428;
步骤422:接收到该二次查询消息的传感节点选择一个数据表项,该数据表项的名称域值等于该二次查询消息的名称域值,则将该数据表项的时间戳设置为当前时间,发送一个二次响应消息,该二次响应消息的名称域值等于该二次查询消息的名称域值,消息类型值为7,负载为该数据表项的数据域值;
步骤423:如果传感节点接收到响应消息,则执行步骤426,否则执行步骤424;
步骤424:路由器从接口y3接收到响应消息后,选择所有名称域值等于该响应消息名称域值的查询表项,如果选择的查询表项的个数为0,则执行步骤428,否则执行步骤425;
步骤425:从接口y3接收到响应消息的路由器选择所有名称域值等于该响应消息名称域值的查询表项,针对每个选中的查询表项,该路由器从该查询表项的接口ID域值所标识的接口转发该响应消息;如果该路由器有足够的存储空间存在该响应消息负载中的响应数据,则创建一个数据表项,该数据表项的名称域值等于该响应消息的名称域值,数据域值等于该响应消息负载中的响应数据,时间戳为当前的时间;该路由器选择一个接口表项,该接口表项的名称域值等于该响应消息的名称域值,接口ID域值等于y3,将该接口表项的时间戳设置为当前的时间,执行步骤423;
步骤426:传感节点接收到响应数据后,如果传感节点存在一个数据表项,该数据表项的名称域值等于该响应消息的名称域值,则执行步骤428,否则执行步骤427;
步骤427:接收到响应消息的传感节点创建一个数据表项,该数据表项的名称域值等于该响应消息的名称域值,数据域值等于该响应消息负载中的响应数据,时间戳为当前的时间;
步骤428:结束。
传感节点通过上述过程获取所需数据,上述过程通过消息表实现数据请求,从而确保传感节点可以成功获取数据,从而大幅度降低了数据通信成功率。同时,上述过程中路由器可以缓存数据并提供数据,从而进一步降低了数据通信代价和延迟。
实施例1
基于表1的仿真参数,本实施例模拟了本发明中的一种可靠的多媒体传感网数据通信实现方法,性能分析如下:当数据传输量增加时,数据通信成功率有所下降,当数据传输量减少时,数据通信成功率有所增加,数据通信成功率为99.65%。
表1 仿真参数
本发明提供了一种可靠的多媒体传感网数据通信实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。

Claims (4)

1.一种可靠的多媒体传感网数据通信实现方法,其特征在于,所述网络包括两个以上的路由器和两个以上的多媒体传感节点;多媒体传感节点称为传感节点,每个传感节点配置能够产生多媒体数据的设备,一种类型的多媒体数据由一个名称唯一标识;每个路由器配置两个以上的上游接口和两个以上的下游接口,每个上游接口与一个路由器相连,一个路由器的下游接口与一个多媒体传感节点相连;一个多媒体传感节点配置一个接口,该接口与路由器的下游接口相连;
每个接口由一个接口ID唯一标识,接口ID为i的接口记为接口i,i为大于0的正整数;一个消息由名称、消息类型和负载构成;消息类型值如下所示:
消息类型名称 消息类型值 传感节点发布消息 1 数据发布消息 2 查询消息 3 数据消息 4 失败消息 5 二次查询消息 6 二次响应消息 7
每个路由器维护一个传感节点表,每个传感节点表项包含名称域、接口ID域和生命周期域;
传感节点N1与路由器R1相连,数据D1由名称NA1唯一标识,如果传感节点N1产生或者获取了数据D1,则执行下述操作建立传感节点表:
步骤101:开始;
步骤102:传感节点N1发送传感节点发布消息,该传感节点发布消息的名称为NA1,消息类型值为1,负载为空;
步骤103:路由器R1从接口d1接收到该传感节点发布消息后,查看传感节点表,如果存在一个传感节点表项,该传感节点表项的名称等于该传感节点发布消息的名称,接口ID等于d1,则执行步骤104,否则执行步骤105;
步骤104:从接口d1接收到该传感节点发布消息的路由器R1选择一个传感节点表项,该传感节点表项的名称等于该传感节点发布消息的名称,接口ID等于d1,将该传感节点表项的生命周期设置为最大值,执行步骤106;
步骤105:从接口d1接收到该传感节点发布消息的路由器R1创建一个传感节点表项,该传感节点表项的名称等于该传感节点发布消息的名称,接口ID等于d1,将该传感节点表项的生命周期设置为最大值;
步骤106:结束;
如果路由器检测到一个传感节点表项的生命周期衰减为0,则删除该传感节点表项。
2.根据权利要求1所述的一种可靠的多媒体传感网数据通信实现方法,其特征在于,每个路由器维护一个转发表,一个转发表项包含接口ID、名称和生命周期;路由器R1定期执行下述操作建立转发表:
步骤201:开始;
步骤202:路由器R1创建一个名称集合变量P1,变量P1的初始值为空,路由器R1查看传感节点表,针对每个传感节点表项,路由器R1执行下述操作:如果该传感节点表项的名称域值不包含在变量P1中,路由器R1将该传感节点表项的名称域值添加到变量P1中,否则,路由器R1不执行任何操作;
步骤203:对于变量P1中的每个元素,路由器R1执行下述操作:路由器R1发送数据发布消息,该数据发布消息的名称等于该元素,消息类型值为2,负载为空;
步骤204:路由器从接口u1接收到数据发布消息后查看转发表,如果存在一个转发表项,该转发表项的名称等于该数据发布消息的名称,接口ID等于u1,且生命周期大于T0-T1,T0为生命周期最大值,T1为调节系数,则执行步骤209,否则执行步骤205;
步骤205:从接口u1接收到数据发布消息的路由器查看转发表,如果存在一个转发表项,该转发表项的名称等于该数据发布消息的名称,接口ID等于u1,则执行步骤206,否则执行步骤207;
步骤206:从接口u1接收到数据发布消息的路由器选择一个转发表项,该转发表项的名称等于该数据发布消息的名称,接口ID等于u1,该路由器将该转发表项的生命周期设置为T0,执行步骤208;
步骤207:从接口u1接收到数据发布消息的路由器创建一个转发表项,该转发表项的名称等于该数据发布消息的名称,接口ID等于u1,该路由器将该转发表项的生命周期设置为T0;
步骤208:从接口u1接收到数据发布消息的路由器从除了接口u1之外的每个上游接口转发该数据发布消息,执行步骤204;
步骤209:结束;
如果路由器检测到一个转发表项的生命周期衰减为0,则删除该转发表项。
3.根据权利要求2所述的一种可靠的多媒体传感网数据通信实现方法,其特征在于,每个路由器和传感节点保存一个数据表,一个数据表项包含名称域、数据域和时间戳;如果一个路由器或者传感节点检测到一个数据表项的时间戳与当前时间之差的绝对值小于阈值TS1,则删除该数据表项;
一个路由器保存一个查询表,每个查询表项包含名称域和接口ID域;一个路由器保存一个接口表,每个接口表项包含接口ID域、名称域和时间戳;传感节点N2与路由器R2相连,数据D1由名称NA1唯一标识,传感节点N2通过下述过程获取数据D1:
步骤301:开始;
步骤302:传感节点N2发送一个查询消息,该查询消息的名称域值为NA1,消息类型值为3,负载为空;
步骤303:路由器R2从接口x1接收到该查询消息,如果存在一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,接口ID等于x1,则执行步骤330,否则执行步骤304;
步骤304:从接口x1接收到该查询消息的路由器R2查看查询表,如果存在一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,则执行步骤305,否则执行步骤306;
步骤305:从接口x1接收到该查询消息的路由器R2创建一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,接口ID等于x1,执行步骤330;
步骤306:从接口x1接收到该查询消息的路由器R2查看数据表,如果存在一个数据表项,该数据表项的名称域值等于该查询消息的名称域值,则执行步骤307,否则执行步骤308;
步骤307:从接口x1接收到该查询消息的路由器R2选择一个数据表项,该数据表项的名称域值等于该查询消息的名称域值,将该数据表项的时间戳设置为当前时间,从接口x1发送一个数据消息,该数据消息的名称域值等于该查询消息的名称域值,消息类型值为4,负载为响应数据,执行步骤330;
步骤308:从接口x1接收到该查询消息的路由器R2创建一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,接口ID等于x1;如果路由器R2存在一个传感节点表项,该传感节点表项的名称域值等于该查询消息的名称域值,则执行步骤309,否则执行步骤310;
步骤309:从接口x1接收到该查询消息的路由器R2选择一个传感节点表项,该传感节点表项的名称域值等于该查询消息的名称域值,从该传感节点表项的接口ID所标识的接口转发该查询消息,执行步骤312;
步骤310:从接口x1接收到该查询消息的路由器R2选择所有名称域值等于该查询消息名称域值的转发表项,针对每一个选中的转发表项,路由器R2选择一个接口表项,该接口表项的名称域值和接口ID域值等于该转发表项的名称域值和接口ID域值;
步骤311:从接口x1接收到该查询消息的路由器R2从所有选中的接口表项中随机选取一个接口表项E1,接口表项E1的时间戳距离当前时间最近;选择一个转发表项E2,转发表项E2的名称域值和接口ID域值分别等于接口表项E1的名称域值和接口ID域值,从转发表项E2的接口ID所标识的接口转发该查询消息;
步骤312:判断是传感节点还是路由器从接口x2接收到该查询消息,如果是传感节点则执行步骤322,否则执行步骤313;
步骤313:路由器从接口x2接收到该查询消息,如果存在一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,接口ID等于x2,则执行步骤330,否则执行步骤314;
步骤314:从接口x2接收到该查询消息的路由器查看查询表,如果存在一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,则执行步骤315,否则执行步骤316;
步骤315:从接口x2接收到该查询消息的路由器创建一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,接口ID等于x2,执行步骤330;
步骤316:从接口x2接收到该查询消息的路由器查看数据表,如果存在一个数据表项,该数据表项的名称域值等于该查询消息的名称域值,则执行步骤317,否则执行步骤318;
步骤317:从接口x2接收到该查询消息的路由器选择一个数据表项,该数据表项的名称域值等于该查询消息的名称域值,将该数据表项的时间戳设置为当前时间,从接口x2发送一个数据消息,该数据消息的名称域值等于该查询消息的名称域值,消息类型值为4,负载为响应数据,执行步骤330;
步骤318:从接口x2接收到该查询消息的路由器创建一个查询表项,该查询表项的名称域值等于该查询消息的名称域值,接口ID等于x2,如果该路由器存在一个传感节点表项,该传感节点表项的名称域值等于该查询消息的名称域值,则执行步骤319,否则执行步骤320;
步骤319:从接口x2接收到该查询消息的路由器选择一个传感节点表项,该传感节点表项的名称域值等于该查询消息的名称域值,从该传感节点表项的接口ID所标识的接口转发该查询消息,执行步骤312;
步骤320:从接口x2接收到该查询消息的路由器选择所有名称域值等于该查询消息名称域值的转发表项,针对每一个选中的转发表项,该路由器选择一个接口表项,该接口表项的名称域值和接口ID域值等于该转发表项的名称域值和接口ID域值;
步骤321:从接口x2接收到该查询消息的路由器从所有选中的接口表项中随机选取一个接口表项E3,接口表项E3的时间戳距离当前时间最近,从接口x2接收到该查询消息的路由器选择一个转发表项E4,转发表项E4的名称域值和接口ID域值分别等于接口表项E3的名称域值和接口ID域值,从转发表项E4的接口ID所标识的接口转发该查询消息,执行步骤312;
步骤322:传感节点接收到该请求消息后,查看数据表,如果存在一个数据表项,该数据表项的名称域值等于该查询消息的名称域值,则执行步骤323,否则执行步骤325;
步骤323:接收到该查询消息的传感节点选择一个数据表项,该数据表项的名称域值等于该查询消息的名称域值,将该数据表项的时间戳设置为当前时间;
步骤324:接收到该查询消息的传感节点发送一个数据消息,该数据消息的名称域值等于该查询消息的名称域值,消息类型值为4,负载为选中的数据表项的数据域值,执行步骤330;
步骤325:接收到该查询消息的传感节点发送一个失败消息,该失败消息的名称域值等于该查询消息的名称域值,消息类型值为5,负载为空;
步骤326:判断是传感节点还是路由器从接口x3接收到失败消息,如果是传感节点则执行步骤333,否则执行步骤327;
步骤327:路由器从接口x3接收到失败消息后,查看转发表,如果至少存在一个转发表项,该转发表项的名称域值等于该失败消息的名称域值且接口ID不等于x3,则执行步骤328,否则执行步骤329;
步骤328:从接口x3接收到失败消息的路由器查看转发表,选择所有名称域值等于该失败消息的名称域值且接口ID不等于x3的转发表项,针对每个选中的转发表项,该路由器创建一个查询消息,该查询消息的名称域值等于该失败消息的名称域值,消息类型值为3,负载为空,从该转发表项的接口ID所标识的接口转发该查询消息,执行步骤312;
步骤329:从接口x3接收到失败消息的路由器查看查询表,选择所有名称域值等于该失败消息的名称域值的查询表项,针对每个选中的查询表项,该路由器从该查询表项的接口ID所标识的接口转发该失败消息,删除该查询表项,执行步骤326;
步骤330:判断是传感节点还是路由器从接口x4接收到响应消息,如果是传感节点则执行步骤332,否则执行步骤331;
步骤331:路由器从接口x4接收到响应消息后,选择所有名称域值等于该响应消息名称域值的查询表项,针对每个选中的查询表项,该路由器从该查询表项的接口ID域值所标识的接口转发该响应消息,如果该路由器有足够的存储空间存在该响应消息负载中的响应数据,则创建一个数据表项,该数据表项的名称域值等于该响应消息的名称域值,数据域值等于该响应消息负载中的响应数据,时间戳为当前的时间,该路由器选择一个接口表项,该接口表项的名称域值等于该响应消息的名称域值,接口ID域值等于x4,将该接口表项的时间戳设置为当前的时间,执行步骤330;
步骤332:传感节点接收到响应消息后,创建一个数据表项,该数据表项的名称域值等于该响应消息的名称域值,数据域值等于该响应消息负载中的响应数据,时间戳为当前的时间;
步骤333:结束。
4.根据权利要求3所述的一种可靠的多媒体传感网数据通信实现方法,其特征在于,每个传感节点保存一个消息表,每个消息表项包含名称域和时钟域,如果一个传感节点检测到一个消息表项的时钟过期,即衰减为0,则删除该消息表项;传感节点N2与路由器R2相连,数据D1由名称NA1唯一标识,如果传感节点N2通过步骤301-333没有获取数据D1,则执行下述过程获取数据D1:
步骤401:开始;
步骤402:传感节点N2发送一个二次查询消息,该二次查询消息的名称域值为NA1,消息类型值为6,负载为空;
步骤403:路由器R2从接口y1接收到该二次查询消息,如果存在一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,接口ID等于y1,则执行步骤423,否则执行步骤404;
步骤404:从接口y1接收到该二次查询消息的路由器R2查看查询表,如果存在一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,则执行步骤405,否则执行步骤406;
步骤405:从接口y1接收到该二次查询消息的路由器R2创建一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,接口ID等于y1,执行步骤423;
步骤406:从接口y1接收到该二次查询消息的路由器R2查看数据表,如果存在一个数据表项,该数据表项的名称域值等于该二次查询消息的名称域值,则执行步骤407,否则执行步骤408;
步骤407:从接口y1接收到该二次查询消息的路由器R2选择一个数据表项,该数据表项的名称域值等于该二次查询消息的名称域值,将该数据表项的时间戳设置为当前时间,从接口y1发送一个二次响应消息,该二次响应消息的名称域值等于该二次查询消息的名称域值,消息类型值为7,负载为响应数据,执行步骤423;
步骤408:从接口y1接收到该二次查询消息的路由器R2创建一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,接口ID等于y1,如果路由器R2存在一个传感节点表项,该传感节点表项的名称域值等于该二次查询消息的名称域值,则执行步骤409,否则执行步骤410;
步骤409:从接口y1接收到该二次查询消息的路由器R2选择一个传感节点表项,该传感节点表项的名称域值等于该二次查询消息的名称域值,从该传感节点表项的接口ID所标识的接口转发该二次查询消息,执行步骤411;
步骤410:从接口y1接收到该二次查询消息的路由器R2选择所有名称域值等于该二次查询消息名称域值的转发表项,针对每一个选中的转发表项,路由器R2通过该转发表项的接口ID所标识的接口转发该二次查询消息;
步骤411:判断是传感节点还是路由器从接口y2接收到该二次查询消息,如果是传感节点则执行步骤420,否则执行步骤412;
步骤412:路由器从接口y2接收到该二次查询消息;,如果存在一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,接口ID等于y2,则执行步骤423,否则执行步骤413;
步骤413:从接口y2接收到该二次查询消息的路由器查看查询表,如果存在一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,则执行步骤414,否则执行步骤415;
步骤414:从接口y2接收到该二次查询消息的路由器创建一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,接口ID等于y2,执行步骤423;
步骤415:从接口y2接收到该二次查询消息的路由器查看数据表,如果存在一个数据表项,该数据表项的名称域值等于该二次查询消息的名称域值,则执行步骤416,否则执行步骤417;
步骤416:从接口y2接收到该二次查询消息的路由器选择一个数据表项,该数据表项的名称域值等于该二次查询消息的名称域值,将该数据表项的时间戳设置为当前时间,从接口y2发送一个二次响应消息,该二次响应消息的名称域值等于该二次查询消息的名称域值,消息类型值为7,负载为该数据表项的数据域值,执行步骤423;
步骤417:从接口y2接收到该二次查询消息的路由器创建一个查询表项,该查询表项的名称域值等于该二次查询消息的名称域值,接口ID等于y2;如果该路由器至少存在一个传感节点表项,该传感节点表项的名称域值等于该二次查询消息的名称域值,则执行步骤418,否则执行步骤419;
步骤418:从接口y2接收到该二次查询消息的路由器选择所有名称域值等于该二次查询消息的名称域值的传感节点表项,针对选择的每一个传感节点表项,该路由器从该传感节点表项的接口ID所标识的接口转发该二次查询消息,执行步骤411;
步骤419:从接口y2接收到该二次查询消息的路由器选择所有名称域值等于该二次查询消息名称域值的转发表项,针对每一个选中的转发表项,该路由器通过该转发表项的接口ID所标识的接口转发该二次查询消息,执行步骤411;
步骤420:传感节点接收到二次查询消息后,查看消息表,如果存在一个消息表项,该消息表项的名称域值等于该二次查询消息的名称域值,则执行步骤428,否则执行步骤421;
步骤421:接收到二次查询消息的传感节点创建一个消息表项并设置一个新时钟,该消息表项的名称域值等于该二次查询消息的名称域值,时钟域值等于新设置的时钟,如果该传感节点存在一个数据表项,该数据表项的名称域值等于该二次查询消息的名称域值,则执行步骤422,否则执行步骤428;
步骤422:接收到该二次查询消息的传感节点选择一个数据表项,该数据表项的名称域值等于该二次查询消息的名称域值,则将该数据表项的时间戳设置为当前时间,发送一个二次响应消息,该二次响应消息的名称域值等于该二次查询消息的名称域值,消息类型值为7,负载为该数据表项的数据域值;
步骤423:如果传感节点接收到响应消息,则执行步骤426,否则执行步骤424;
步骤424:路由器从接口y3接收到响应消息后,选择所有名称域值等于该响应消息名称域值的查询表项,如果选择的查询表项的个数为0,则执行步骤428,否则执行步骤425;
步骤425:从接口y3接收到响应消息的路由器选择所有名称域值等于该响应消息名称域值的查询表项,针对每个选中的查询表项,该路由器从该查询表项的接口ID域值所标识的接口转发该响应消息;如果该路由器有足够的存储空间存在该响应消息负载中的响应数据,则创建一个数据表项,该数据表项的名称域值等于该响应消息的名称域值,数据域值等于该响应消息负载中的响应数据,时间戳为当前的时间;该路由器选择一个接口表项,该接口表项的名称域值等于该响应消息的名称域值,接口ID域值等于y3,将该接口表项的时间戳设置为当前的时间,执行步骤423;
步骤426:传感节点接收到响应数据后,如果传感节点存在一个数据表项,该数据表项的名称域值等于该响应消息的名称域值,则执行步骤428,否则执行步骤427;
步骤427:接收到响应消息的传感节点创建一个数据表项,该数据表项的名称域值等于该响应消息的名称域值,数据域值等于该响应消息负载中的响应数据,时间戳为当前的时间;
步骤428:结束。
CN201811075154.1A 2018-09-14 2018-09-14 一种可靠的多媒体传感网数据通信实现方法 Active CN109246015B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811075154.1A CN109246015B (zh) 2018-09-14 2018-09-14 一种可靠的多媒体传感网数据通信实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811075154.1A CN109246015B (zh) 2018-09-14 2018-09-14 一种可靠的多媒体传感网数据通信实现方法

Publications (2)

Publication Number Publication Date
CN109246015A true CN109246015A (zh) 2019-01-18
CN109246015B CN109246015B (zh) 2020-10-30

Family

ID=65058017

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811075154.1A Active CN109246015B (zh) 2018-09-14 2018-09-14 一种可靠的多媒体传感网数据通信实现方法

Country Status (1)

Country Link
CN (1) CN109246015B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1996369A (zh) * 2006-12-30 2007-07-11 李博航 基于物品标识自动识别技术的交互式多媒体广告系统
CN101964958A (zh) * 2010-09-27 2011-02-02 北京航空航天大学 机载网络系统及其骨干节点消息处理方法
KR20160069185A (ko) * 2014-12-08 2016-06-16 순천대학교 산학협력단 무선 센서 네트워크 기반 대규모 농작물 관리시스템에서의 혼잡제어 방법
CN108347381A (zh) * 2018-03-21 2018-07-31 常熟理工学院 一种新一代数据网络通信方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1996369A (zh) * 2006-12-30 2007-07-11 李博航 基于物品标识自动识别技术的交互式多媒体广告系统
CN101964958A (zh) * 2010-09-27 2011-02-02 北京航空航天大学 机载网络系统及其骨干节点消息处理方法
KR20160069185A (ko) * 2014-12-08 2016-06-16 순천대학교 산학협력단 무선 센서 네트워크 기반 대규모 농작물 관리시스템에서의 혼잡제어 방법
CN108347381A (zh) * 2018-03-21 2018-07-31 常熟理工学院 一种新一代数据网络通信方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张军强等: "多Sink的无线多媒体传感器网络路由算法", 《计算机技术与发展》 *

Also Published As

Publication number Publication date
CN109246015B (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
US7724649B2 (en) Method and device for making uplink standby
EP1931084B1 (en) A method for getting the link estimating parameters
CN104935514B (zh) 一种路径分配方法和装置
CN106973017B (zh) 一种快速的网络数据通信方法
CN110138663A (zh) 一种以数据为中心的新一代网络实现方法
CN108347381B (zh) 一种新一代数据网络通信方法
CN106911570B (zh) 一种可靠的网络数据通信方法
WO2008021315B1 (en) Methods, systems, and computer program products for associating independent legs of a call in a telecommunications network
CN103609160A (zh) 用于自动自扰网络元件的消息流重新路由
WO2016091156A1 (zh) 节点故障的判断方法及装置
CN108494688B (zh) 一种低代价的未来数据网络实现方法
CN110446227A (zh) 终端下行窗口开启时机的控制方法及装置、设备、介质
CN109150723A (zh) 一种物联网的路由通信实现方法
CN106559334A (zh) 一种基于sdn的最小时延负载均衡方法、装置和系统
CN109462549A (zh) 一种新一代无线移动网络的实现方法
CN105791113B (zh) 一种基于sdn的多链路时延均衡方法和系统
CN107465621A (zh) 一种路由器发现方法、sdn控制器、路由器和网络系统
CN106487690A (zh) 数据发送方法及装置
Zhang et al. In-network estimation with delay constraints in wireless sensor networks
CN109246015A (zh) 一种可靠的多媒体传感网数据通信实现方法
US20120159109A1 (en) Method and apparatus for improving non-uniform memory access
Huang et al. Radial coordination for convergecast in wireless sensor networks
WO2005039092A3 (en) System and method for deterministic registration for communication networks
CN101459595A (zh) 识别最后一跳交换机的方法、交换机及组播设备
CN108462761A (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