[0097] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/ 或其他方面的优点将会变得更加清楚。
[0098] 图1为本发明所述的链路前缀配置流程示意图。
[0099] 图2为本发明所述的创建多媒体数据流程示意图。
[0100] 图3为本发明所述的创建索引表流程示意图。
[0101] 图4为本发明所述的更新索引表流程示意图。
[0102] 图5为本发明所述的本地数据获取流程示意图。
[0103] 图6为本发明所述的远程数据获取流程示意图。具体实施方式:
[0104] 本发明提供了一种基于云的物联网多媒体数据通信方法,用户通过该方法可快速实现多媒体数据通信,提高服务质量,本发明可广泛用于环境监测,道路交通管理等领域。
[0105] 图1为本发明所述的链路前缀配置流程示意图。所述物联网中包含基础设施节点和设备节点两种节点;基础设施节点包括接入路由器、交换机和接入节点,用于实现路由转发功能;设备节点用于感知和收集与地理位置相关数据,并且将所述数据转化为多媒体数据形式,设备节点不具有路由转发功能;接入节点和设备节点具有一个无线接口,设备节点与接入节点通过无线接口进行通信,同一时刻,设备节点只能与一个接入节点进行通信,该接入节点称为设备节点的关联接入节点;物联网由两个以上的子网构成,一个子网包含一个接入路由器、两个以上的交换机、两个以上的接入节点以及与所述接入节点关联的设备节点构成,子网通过接入路由器与互联网相连;一个子网的基础设施节点的拓扑结构为树状结构,根节点为接入路由器,中间节点为交换机,叶子节点为接入节点;与一个接入节点关联的设备构建成一个物联云,该物联云中的云成员能够彼此合作共同产生与一个地理位置相关的多媒体数据,设备既能够作为云成员提供多媒体数据,也能够作为用户请求获取多媒体数据;
[0106] 用户通过云地址和单播地址获取与一个地理位置相关的多媒体数据;云地址由网络前缀、链路前缀、数据ID以及云地址标识符构成,其中网络前缀唯一标识一个子网,链路前缀唯一标识一个子网中的基础设施节点,数据ID唯一标识一种多媒体数据类型;网络前缀、链路前缀和数据ID唯一标识一种与地理位置相关的多媒体数据;云地址标识符用于标识该地址为云地址或者单播地址,如果云地址标识符为1,则表明该地址为云地址,如果云地址标识符为0,则表明该地址为单播地址;一个云由云地址唯一标识;
[0107] 单播地址由网络前缀、链路前缀、设备ID以及云地址标识符构成,其中网络前缀唯一标识一个子网,链路前缀唯一标识一个子网中的基础设施节点,接入路由器的设备ID为1,交换机和接入节点设备ID为0,设备节点的设备ID为硬件ID;云地址标识符值为0,表明该地址为单播地址;
[0108] 链路前缀划分为 个层次,其中,参数i为链路前缀的比特长度,参数c为代表一个层次的比特长度;接入路由器的链路前缀为0,网络前缀预先设置,例如 3efc:1:1:1/64;一个子网通过下述过程实现链路前缀配置:
[0109] 步骤101:开始;
[0110] 步骤102:接入路由器从每个符合条件1的接口f发送链路前缀配置消息,该链路前缀配置消息的源地址为接入路由器的单播地址,目的地址为0,负载为参数c,参数 i、参数f和参数h,参数h的初始值为0;参数h的最大取值范围为子网的树状拓扑结构的最大深度,(h+1)值指收到链路前缀配置消息的基础设施节点所在树状结构的深度值。
[0111] 条件1:该接口与一个基础设施节点相连;
[0112] 步骤103:与符合条件1的接口相连的基础设施节点接收到链路前缀配置消息后,构建一个i比特的链路前缀,其中,链路前缀的前h·c比特值为链路前缀配置消息的源地址的链路前缀的前h·c比特值,接下来的c比特值为接口f,最后i-(h+1)·c比特值为 0;
[0113] 步骤104:如果接收到链路前缀配置消息的基础设施节点为交换机,则执行步骤 105,否则执行步骤106;
[0114] 步骤105:接收到链路前缀配置消息的交换机将参数h的值递增1,从每个符合条件1的接口f发送链路前缀配置消息,该链路前缀配置消息的源地址为该交换机的单播地址,目的地址为0,负载为参数c,参数i和参数h,执行步骤103;
[0115] 步骤106:结束;
[0116] 接入节点配置链路前缀之后,定期通过无线接口发送信标消息;与该接入节点关联的设备节点接收到信标消息后,它保存该接入节点的链路前缀。
[0117] 图2为本发明所述的创建多媒体数据流程示意图。基础设施节点维护一个索引表用于记录云成员的信息,一个索引表项包含接口域和云地址域;
[0118] 一种与地理位置相关的多媒体数据MD1由云地址CA1唯一标识,在云地址CA1,网络前缀为GRP1,链路前缀为LRP2,数据ID为CID1,云标识符为1的条件下,链路地址为LRP2的接入节点AP2通过构建云TC1来创建多媒体数据MD1,过程如下:
[0119] 步骤201:开始;
[0120] 步骤202:接入节点AP2创建一个单播地址,该单播地址的网络前缀为0,链路前缀为LRP2,设备ID为0,云标识符为0,接入节点AP2从无线接口发送创建多媒体数据消息,该消息的源地址为创建的单播地址,目的地址为CA1;
[0121] 步骤203:与接入节点AP2关联的设备节点收到创建多媒体数据消息后,如果能创建数据MD1的部分数据,那么发送一个创建多媒体数据响应消息,该创建多媒体数据响应消息的源地址为创建多媒体数据消息的目的地址,目的地址为创建多媒体数据消息的源地址,负载为创建的多媒体数据;
[0122] 步骤204:接入节点AP2收到所有的创建多媒体数据响应消息后,将创建多媒体数据响应消息中的多媒体数据构建成多媒体数据MD1,然后从无线接口发送多媒体数据共享消息,该多媒体数据共享消息的源地址为步骤202中创建的单播地址,目的地址为CA1,负载为数据MD1;
[0123] 步骤205:与接入节点AP2关联的设备节点收到创建多媒体数据共享消息后,如果有足够的存储空间保存数据MD1,那么它保存数据MD1同时将自己标识为云TC1 的云成员;
[0124] 步骤206:结束;
[0125] 接入节点AP2创建数据MD1后,删除数据MD1;
[0126] 设备节点变成云TC1的云成员后,它广播的信标消息负载为云地址CA1。
[0127] 图3为本发明所述的创建索引表流程示意图。如果接入节点从接口f1收到负载为云地址CA1的信标消息后,判断自己的索引表中是否有云地址域值为CA1且接口域值为f1的索引表项,如果不存在,则执行下述操作:
[0128] 步骤301:开始;
[0129] 步骤302:接入节点在索引表中创建云地址域值为CA1且接口域值为f1的索引表项,然后创建一个自己的单播地址和父节点的单播地址,在自己的单播地址中,网络前缀为0,链路前缀为该接入节点的链路前缀,设备ID为0,云标识符为0,在父节点的单播地址中,网络前缀为0,链路前缀为父节点的链路前缀,如果父节点为接入路由器,则设备ID为1,否则设备ID为0,云标识符为0,然后从与父节点相连的接口发送信标消息,该信标消息的源地址为自己的单播地址,目的地址为父节点的单播地址,负载为云地址CA1;
[0130] 步骤303:父节点从接口f2收到负载为云地址CA1的信标消息后,判断自己的索引表中是否有云地址域值为CA1且接口域值为f2的索引表项,如果存在,则执行步骤 306,否则执行步骤304;
[0131] 步骤304:父节点在索引表中创建云地址域值为CA1且接口域值为f2的索引表项,如果父节点为接入路由器,则执行步骤306,否则执行步骤305;
[0132] 步骤305:父节点创建一个自己的单播地址和自己的父节点的单播地址,在自己的单播地址中,网络前缀为0,链路前缀为自己的链路前缀,设备ID为0,云标识符为0,在自己的父节点的单播地址中,网络前缀为0,链路前缀为父节点的链路前缀,如果自己的父节点为接入路由器,则设备ID为1,否则设备ID为0,云标识符为0,然后从与自己的父节点相连的接口发送信标消息,该信标消息的源地址为自己的单播地址,目的地址为自己的父节点的单播地址,负载为云地址CA1,执行步骤303;
[0133] 步骤306:结束。
[0134] 图4为本发明所述的更新索引表流程示意图。如果设备节点无效或者脱离当前关联的接入节点的通信范围,那么接入节点无法接收到该设备节点发送的信标帧;如果在规定时间内,接入节点没有从接口f1接收到任何负载为云地址CA1的信标消息,接入节点从索引表中删除云地址域值为CA1且接口域值为f1的索引表项;如果接入节点在索引表中没有云地址域值为CA1的索引表项,则执行下述云检索表项删除过程:
[0135] 步骤401:开始;
[0136] 步骤402:接入节点创建一个自己的单播地址和父节点的单播地址,在自己的单播地址中,网络前缀为0,链路前缀为该接入节点的链路前缀,设备ID为0,云标识符为0,在父节点的单播地址中,网络前缀为0,链路前缀为父节点的链路前缀,如果父节点为接入路由器,则设备ID为1,否则设备ID为0,云标识符为0,然后从与父节点相连的接口发送检索表项删除消息,该检索表项删除消息的源地址为自己的单播地址,目的地址为父节点的单播地址,负载为云地址CA1;
[0137] 步骤403:父节点从接口f2收到负载为云地址CA1的检索表项删除消息后,从索引表中删除云地址域值为CA1且接口域值为f2的索引表项,然后判断自己的索引表中是否有云地址域值为CA1的索引表项,如果存在,则执行步骤406,否则执行步骤404;
[0138] 步骤404:如果父节点为接入路由器,则执行步骤406,否则执行步骤405;
[0139] 步骤405:父节点创建一个自己的单播地址和自己的父节点的单播地址,在自己的单播地址中,网络前缀为0,链路前缀为自己的链路前缀,设备ID为0,云标识符为0,在自己的父节点的单播地址中,网络前缀为0,链路前缀为自己父节点的链路前缀,如果自己的父节点为接入路由器,则设备ID为1,否则设备ID为0,云标识符为0,然后从与自己的父节点相连的接口发送检索表项删除消息,该检索表项删除消息的源地址为自己的单播地址,目的地址为自己父节点的单播地址,负载为云地址CA1,执行步骤403;
[0140] 步骤406:结束。
[0141] 图5为本发明所述的本地数据获取流程示意图。基础设施节点维护一个请求表用于记录未完成的多媒体数据请求信息,一个请求表项包含接口域和云地址域;
[0142] 一种与地理位置相关的多媒体数据MD2由云地址CA2唯一标识,数据MD2通过构建云TC2创建;设备节点D1位于子网S1内,子网S1的网络前缀为GRP1,设备节点D1与接入节点AP1关联;如果满足条件2或者条件3,设备节点D1通过下述过程获取数据MD2:
[0143] 条件2:云地址CA2的网络前缀为GRP1且链路前缀等于接入节点AP2的链路前缀;
[0144] 条件3:云地址CA2的网络前缀不等于GRP1,但是在子网S1中至少存在一个云 TC2的云成员;
[0145] 步骤501:开始;
[0146] 步骤502:设备节点D1创建一个单播地址,该单播地址中,网络前缀为0,链路前缀为接入节点AP1的链路前缀,设备ID为设备节点D1的设备ID,然后发送多媒体数据请求消息,该多媒体数据请求消息的源地址为构建的单播地址,目的地址为云地址CA2;
[0147] 步骤503:判断是基础设施节点还是设备节点从接口f3收到多媒体数据请求消息,如果是基础设施节点收到多媒体数据请求消息,则执行步骤504,否则执行步骤511;
[0148] 步骤504:如果基础设施节点在请求表中存在云地址为CA2且接口域值为f3的请求表项,则执行步骤514,否则执行步骤505;
[0149] 步骤505:基础设施节点在请求表中创建云地址为CA2且接口域值为f3的请求表项,如果基础设施节点只有一项云地址为CA2的请求表项,那么执行步骤506,否则执行步骤514;
[0150] 步骤506:如果基础设施节点在索引表中至少有一项云地址为CA2的索引表项,则执行步骤507,否则执行步骤508;
[0151] 步骤507:基础设施节点随机选择一项云地址为CA2的索引表项,并从该索引表项的接口域转发接收到的多媒体数据请求消息,执行步骤503;
[0152] 步骤508:如果基础设施节点为接入节点AP2,执行步骤509,否则执行步骤510;
[0153] 步骤509:接入节点AP2执行步骤201~206创建多媒体数据MD2,然后构建一个多媒体数据响应消息,该多媒体数据响应消息的负载为数据MD2,源地址为接收到的多媒体数据请求消息的目的地址,目的地址为接收到的多媒体数据请求消息的源地址,执行步骤514;
[0154] 步骤510:基础设施节点查看所有子节点,如果所有子节点的链路前缀与云地址 CA2的链路前缀匹配程度和自己与云地址CA2的链路前缀匹配程度相同,那么从与父节点相连的接口转发多媒体数据请求消息;否则选择一个子节点,该子节点的链路前缀与云地址CA2的链路前缀匹配程度最大,然后从与该子节点相连的接口转发多媒体数据请求消息;执行步骤503;匹配程度判断为从链路前缀的第一个比特开始比较,连续相同的比特个数越多,匹配程度越大;
[0155] 步骤511:如果接收到多媒体数据请求消息的设备节点能够提供数据MD2,则执行步骤513,否则执行步骤512;
[0156] 步骤512:接收到多媒体数据请求消息的设备节点丢弃多媒体数据请求消息,执行步骤514;
[0157] 步骤513:接收到多媒体数据请求消息的设备节点发送一个多媒体数据响应消息,该多媒体数据响应消息的负载为数据MD2,源地址为接收到的多媒体数据请求消息的目的地址,目的地址为接收到的多媒体数据请求消息的源地址;
[0158] 步骤514:如果基础设施节点构建或者接收到多媒体数据响应消息,则执行步骤 515,否则执行步骤516;
[0159] 步骤515:基础设施节点查看请求表,对于每个云地址为CA2的请求表项执行下述操作:基础设施节点从该表项的接口域值转发多媒体数据响应消息,然后删除该请求表项,执行步骤514;
[0160] 步骤516:设备节点D1收到多媒体数据响应消息后,保存数据MD2,同时将自己标识为云TC2的云成员;
[0161] 步骤517:结束;
[0162] 设备节点D1变成云TC2的云成员后,它广播的信标消息负载为云地址CA2。
[0163] 图6为本发明所述的远程数据获取流程示意图。在一种与地理位置相关的多媒体数据MD3由云地址CA3唯一标识,数据MD3通过构建云TC3来创建,设备节点D1 位于子网S1内,子网S1的网络前缀为GRP1,接入路由器为AR1,子网S2中,网络前缀为GRP2,接入路由器为AR2,云地址CA3中,网络前缀为GRP2,链路前缀域接入节点AP4的链路前缀相同,接入节点AP4位于子网S2中,设备节点D1与接入节点AP1关联的条件下,如果满足条件4,设备节点D1通过下述过程获取数据MD3:
[0164] 条件4:在子网S1中不存在任何云TC3的云成员;
[0165] 步骤601:开始;
[0166] 步骤602:设备节点D1创建一个单播地址,该单播地址中,网络前缀为0,链路前缀为接入节点AP1的链路前缀,设备ID为设备节点D1的设备ID,然后发送多媒体数据请求消息,该多媒体数据请求消息的源地址为构建的单播地址,目的地址为云地址CA3;
[0167] 步骤603:判断是基础设施节点还是设备节点从接口f4收到多媒体数据请求消息,如果是基础设施节点收到多媒体数据请求消息,则执行步骤604,否则执行步骤614;
[0168] 步骤604:如果满足条件5或者同时满足条件6和7,则执行步骤615,否则执行步骤605;
[0169] 条件5:基础设施节点在请求表中存在云地址为CA3且接口域值为f4的请求表项;
[0170] 条件6:基础设施节点为接入路由器AR2且接口f4与互联网相连;
[0171] 条件7:基础设施节点在请求表中至少存在一项云地址为CA3的请求表项;
[0172] 条件8:基础设施节点在请求表中不存在任何一项云地址为CA3的请求表项;
[0173] 步骤605:如果满足条件6和8,则执行步骤607,否则执行步骤606;
[0174] 步骤606:基础设施节点在请求表中创建云地址为CA3且接口域值为f4的请求表项,如果基础设施节点只有一项云地址为CA3的请求表项,那么执行步骤607,否则执行步骤615;
[0175] 步骤607:如果基础设施节点位于子网S1中,则执行步骤608,否则执行步骤609;
[0176] 步骤608:如果基础设施节点为接入路由器AR1,则将多媒体数据请求消息中的源地址的网络前缀更新为GRP1,然后将多媒体数据请求消息发送到互联网,通过互联网多媒体数据请求消息最终达到接入路由器AR2;否则,基础设施节点从与父节点相连的接口转发多媒体数据请求消息;执行步骤603;
[0177] 步骤609:如果基础设施节点在索引表中至少有一项云地址为CA3的索引表项,则执行步骤610,否则执行步骤611;
[0178] 步骤610:基础设施节点随机选择一项云地址为CA3的索引表项,并从该索引表项的接口域转发接收到的多媒体数据请求消息,执行步骤603;
[0179] 步骤611:如果基础设施节点为接入节点AP4,执行步骤612,否则执行步骤613;
[0180] 步骤612:接入节点AP4执行步骤201~206创建多媒体数据MD3,然后构建一个多媒体数据响应消息,该多媒体数据响应消息的负载为数据MD3,源地址为接收到的多媒体数据请求消息的目的地址,目的地址为接收到的多媒体数据请求消息的源地址,执行步骤615;
[0181] 步骤613:基础设施节点查看所有子节点,如果所有子节点的链路前缀与云地址 CA2的链路前缀匹配程度和自己与云地址CA2的链路前缀匹配程度相同,那么从与父节点相连的接口转发多媒体数据请求消息;否则选择一个子节点,该子节点的链路前缀与云地址CA2的链路前缀匹配程度最大,然后从与该子节点相连的接口转发多媒体数据请求消息;执行步骤603;匹配程度判断为从链路前缀的第一个比特开始比较,连续相同的比特个数越多,匹配程度越大;
[0182] 步骤614:如果接收到多媒体数据请求消息的设备节点能够提供数据MD3,则发送一个多媒体数据响应消息,该多媒体数据响应消息的负载为数据MD3,源地址为接收到的多媒体数据请求消息的目的地址,目的地址为接收到的多媒体数据请求消息的源地址;否则,接收到多媒体数据请求消息的设备节点丢弃多媒体数据请求消息;
[0183] 步骤615:如果基础设施节点构建或者接收到多媒体数据响应消息,则执行步骤 616,否则执行步骤617;
[0184] 步骤616:如果基础设施节点为接入路由器AR2,则将多媒体数据响应消息转发到互联网,通过互联网多媒体数据响应消息最终到达接入路由器AR1,否则,基础设施节点查看请求表,对于每个云地址为CA3的请求表项执行下述操作:基础设施节点从该表项的接口域值转发多媒体数据响应消息,然后删除该请求表项,执行步骤615;
[0185] 步骤617:设备节点D1收到多媒体数据响应消息后,保存数据MD2,同时将自己标识为云TC3的云成员;
[0186] 步骤618:结束;
[0187] 设备节点D1变成云TC3的云成员后,它广播的信标消息负载为云地址CA3。
[0188] 实施例1
[0189] 基于表1的仿真参数,本实施例模拟了本发明中的基于云的物联网多媒体数据通信方法,性能分析如下:当用户与目的节点距离较远时,平均通信代价和延迟也随之增加,通信半径增加时,平均通信代价和延迟随之降低。平均通信代价为7,路由延迟为65ms。
[0190] 表1仿真参数
[0191]
[0192] 本发明提供了一种基于云的物联网多媒体数据通信方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。