欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2018110751541
申请人: 常熟理工学院
专利类型:发明专利
专利状态:已下证
专利领域: 电通信技术
更新日期:2024-04-29
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

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:结束。