一种基于物联网的多媒体数据通信方法转让专利

申请号 : CN201710751552.X

文献号 : CN107483457B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王晓喃

申请人 : 常熟理工学院

摘要 :

本发明提供了一种基于物联网的多媒体数据通信方法,所述物联网包括互联网的路由骨干网和两个以上的子网,一个子网包含固定设备和移动设备两种节点;固定设备包括接入路由器、交换机和接入节点,用于实现路由转发功能;用户通过该方法可实时查询目标对象节点所处环境的参数,并根据目标对象节点的状态及时对目标对象节点进行实时控制和调节,本发明可广泛用于农业环境监测和远程控制等领域。

权利要求 :

1.一种基于物联网的数据通信方法,其特征在于,所述物联网包括互联网的路由骨干网和两个以上的子网,一个子网包含固定设备和移动设备两种节点;固定设备包括接入路由器、交换机和接入节点,用于实现路由转发功能;移动设备用于收集与一个地理位置相关数据,移动设备不具有路由转发功能;一个子网只包含一个接入路由器,并通过该接入路由器连接到路由骨干网;一个子网内的固定设备的拓扑结构为树状结构,接入路由器为根节点,接入节点为叶子节点,交换机为中间节点;移动设备通过接入节点实现与其他移动设备的通信,该接入节点称为移动设备的当前接入节点;

用户通过单播地址和数据地址获取与一个地理位置相关的数据;单播地址长度为128比特,由全局前缀,子网前缀和设备ID构成,其中,设备ID的长度为i比特,i为不大于32的正整数,设备ID的取值范围为[1,2i-1-1],固定设备的设备ID取值范围为[1,2i-2-1],移动设备的设备ID取值范围为[2i-2,2i-1-2],全局前缀唯一标识一个子网,子网前缀唯一标识一个子网中的固定设备;

数据地址长度为128比特,由全局前缀,子网前缀以及数据ID构成,其中全局前缀唯一标识一个子网,子网前缀唯一标识一个子网中的固定设备,数据ID唯一标识一种数据类型,数据ID的长度为i比特,数据ID的取值范围为[2i-1,2i-1];全局前缀和子网前缀唯一标识一个地理位置,数据ID唯一标识一种数据,全局前缀、子网前缀和数据ID唯一标识一种与地理位置相关的数据,即一种与地理位置相关的数据由数据地址唯一标识;

固定设备启动后,在取值范围[1,2i-2-1]内随机选取一个数字作为自己的设备ID;

接入路由器作为所在子网树的根节点,其深度值为1;

子网前缀的长度为j比特,j为不大于32的正整数,d为调节参数,满足公式(1),DMax为子网的树状结构中每个固定设备所拥有的最大子节点数量;接入路由器的子网前缀为0,全局前缀预先设置;

2d>DMax+1  公式(1),

固定设备通过下述过程获取子网前缀:

步骤101:开始;

步骤102:接入路由器将自己的树深度值t设置为1,构建一个单播地址,该单播地址的全局前缀为预先配置的全局前缀,子网前缀为0,设备ID为自己的设备ID;接入路由器查看自己的每一个接口f,如果该接口与接入节点或交换机相连,那么接入路由器进行如下操作:接入路由器构建一个j比特的子网前缀,其中,子网前缀的前边(t-1)·d比特值等于自己子网前缀的前边(t-1)·d比特,接下来的d比特值为接口f,最后j-t·d比特值为0,从该接口发送获取子网前缀消息,该子网前缀消消息的源地址为构建的单播地址,目的地址为

0,负载为构建的子网前缀、参数d,参数j和参数t;

步骤103:交换机或者接入节点接收到获取子网前缀消息后,将子网前缀消息负载中的子网前缀设置为自己的子网前缀,将子网前缀消息负载的参数t递增1,同时保存子网前缀消息源地址中的全局前缀;如果接收到获取子网前缀消息的固定设备为交换机,则执行步骤104,否则执行步骤105;

步骤104:接收到获取子网前缀消息的交换机构建一个单播地址,该单播地址的全局前缀为接收到的获取子网前缀消息的源地址的全局前缀,子网前缀为自己的子网前缀,设备ID为自己的设备ID;接收到获取子网前缀消息的交换机查看自己的每一个接口f1,如果该接口与接入节点或交换机相连,那么交换机进行如下操作:交换机构建一个j比特的子网前缀,子网前缀的前边(t-1)·d比特值等于自己子网前缀的前边(t-1)·d比特,接下来的d比特值为接口f1,最后j-t·d比特值为0,然后从该接口发送获取子网前缀消息,该子网前缀消息的源地址为构建的单播地址,目的地址为0,负载为构建的子网前缀、参数d,参数j和参数t,执行步骤103;

步骤105:结束;

通过上述过程,固定设备获取自己的子网前缀以及所在子网的全局前缀;

固定设备获取自己的子网前缀后,将设备ID与自己的子网前缀以及所在子网的全局前缀构建为单播地址,然后向自己的父节点和子节点发送信标消息,信标消息源地址为自己的单播地址;固定设备收到父节点或者子节点的信标消息后,保存它们的单播地址;

接入节点获取单播地址后,发送信标消息,信标消息的源地址为接入节点的单播地址,i-1目的地址为广播地址,广播地址的全局前缀为0,子网前缀为0,设备ID为2 -1;移动设备收到接入节点的信标消息后,保存该接入节点的单播地址;

移动设备获取单播地址后,发送信标消息,信标消息的源地址为自己的单播地址,目的地址为当前接入节点的单播地址;当前接入节点收到移动设备的信标消息后,保存该移动设备的单播地址;如果在规定时间内,当前接入节点没有收到移动设备的信标消息,则删除该移动设备的单播地址。

2.根据权利要求1所述的一种基于物联网的数据通信方法,其特征在于,移动设备启动后,通过下述过程获取单播地址:步骤201:开始;

步骤202:移动设备在取值范围[2i-2,2i-1-2]内随机选取一个数RN1,然后向当前接入节点发送请求设备ID消息,请求设备ID消息的目的地址为当前接入节点的单播地址,源地址为0,负载为RN1;

步骤203:当前接入节点收到请求设备ID消息后,如果请求设备ID消息负载中的RN1与保存的任一个移动设备的单播地址中的设备ID相同,执行步骤204,否则执行步骤205;

步骤204:当前接入节点在取值范围[2i-2,2i-1-2]内选取一个随机数RN2,该随机数RN2与保存的任一个移动设备的单播地址中的设备ID都不相同,然后构建一个地址二元组,广播一个信标消息,该信标消息的负载为地址二元组,源地址为自己的单播地址,目的地址为广播地址,执行步骤206;

步骤205:当前接入节点构建一个地址二元组,然后广播一个信标消息,该信标消息的负载为地址二元组,源地址为自己的单播地址,目的地址为广播地址;

步骤206:移动设备收到当前接入节点的信标消息后,查看信标消息负载中所有的地址二元组,选择二元组的第一个元素等于RN1的二元组,将该二元组的第二个元素设置为自己的设备ID;移动设备将自己的设备ID与接收到的信标消息的源地址的全局前缀和子网前缀相结合构建成为单播地址;

步骤207:结束。

3.根据权利要求2所述的一种基于物联网的数据通信方法,其特征在于,交换机和接入路由器维护一个子网路由表用于记录接入节点的信息,一个子网路由表项包含接口域和数据地址域;一种数据具有生命周期,该生命周期预先设置;在接入节点AP1的子网前缀为LRP1,全局前缀为GRP1,设备ID为DID1,全局前缀GRP1和子网前缀LRP1唯一标识地理位置P1,与地理位置P1相关的数据D1由数据地址DA1 唯一标识,在数据地址DA1中,全局前缀为GRP1,子网前缀为LRP1,数据ID为CID1的条件下,数据D1由接入节点AP1创建,过程如下:步骤301:开始;

步骤302:接入节点AP1创建一个单播地址,该单播地址的全局前缀为GRP1,子网前缀为LRP1,设备ID为DID1,接入节点AP1从与移动设备关联的接口发送一个产生数据消息,该产生数据消息的源地址为创建的单播地址,目的地址为DA1;

步骤303:移动设备接收到接入节点AP1的产生数据消息后,如果能产生数据D1的一部分,则执行步骤305,否则执行步骤304;

步骤304:接收到产生数据消息的移动设备丢弃接收到的产生数据消息,执行步骤306;

步骤305:接收到产生数据消息的移动设备发送一个产生数据确认消息,该产生数据消息的负载为产生的数据,源地址为数据地址DA1,目的地址为产生数据消息中的源地址;

步骤306:在规定时间内,接入节点AP1查看所有接收到的产生数据确认消息,将所有产生数据确认消息中的数据构建为数据D1,保存数据D1和数据D1的生存时间;

步骤307:结束。

4.根据权利要求3所述的一种基于物联网的数据通信方法,其特征在于,在移动设备能提供数据D1且当前接入节点为接入节点AP1的条件下,如果该移动设备的当前接入节点变为接入节点AP2,那么该移动设备先执行步骤201~207获取新的单播地址,然后执行下述过程:步骤401:开始;

步骤402:移动设备发送注册消息,该注册消息的负载为数据MD1和其生存时间,该注册消息的目的地址为接入节点AP2的单播地址,源地址为自己新的单播地址;

步骤403:接入节点AP2获取注册消息后,如果它已经保存了数据MD1,则执行步骤405,否则执行步骤404;

步骤404:接入节点AP2保存数据MD1;

步骤405:结束。

5.根据权利要求4所述的一种基于物联网的数据通信方法,其特征在于,接入节点产生或者保存数据MD1后,执行下述过程增加子网路由表项:步骤501:开始

步骤502:接入节点从与父节点相连的接口发送增加子网路由表项消息,该增加子网路由表项消息的负载为数据地址DA1,源地址为接入节点自己的单播地址,目的地址为父节点的单播地址;

步骤503:父节点从接口f2收到负载为数据地址DA1的增加子网路由表项消息后,判断自己的子网路由表中是否有数据地址域值为DA1且接口域值为f2的子网路由表项,如果存在,则执行步骤507,否则执行步骤504;

步骤504:父节点在子网路由表中创建一个子网路由表项,该子网路由表项的数据地址域值为DA1,接口域值为f2;

步骤505:如果父节点为交换机,则执行步骤506,否则执行步骤507;

步骤506:父节点从与自己的父节点相连的接口发送增加子网路由表项消息,该子网路由由表项消息的负载为数据地址DA1,源地址为自己的单播地址,目的地址为自己的父节点的单播地址,执行步骤503;

步骤507:结束。

6.根据权利要求5所述的一种基于物联网的数据通信方法,其特征在于,如果接入节点AP1检测到数据D1的生存时间衰减为0,则删除数据D1,然后执行下述过程删除子网路由表项:步骤601:开始

步骤602:接入节点AP1从与父节点相连的接口发送删除子网路由表项消息,该删除子网路由表项消息的负载为数据地址DA1,源地址为自己的单播地址,目的地址为父节点的单播地址;

步骤603:父节点从接口f3收到负载为数据地址DA1的删除子网路由表项消息后,从子网路由表中删除数据地址域值为DA1且接口域值为f2的子网路由表项;

步骤604:父节点判断自己的子网路由表中是否有数据地址域值为DA1的子网路由表项,如果存在,则执行步骤607,否则执行步骤605;

步骤605:如果父节点为交换机,则执行步骤606,否则执行步骤607;

步骤606:父节点从与自己的父节点相连的接口发送删除子网路由表项消息,该删除子网路由表项消息的负载为数据地址DA1,源地址为自己的单播地址,目的地址为自己父节点的单播地址,执行步骤603;

步骤607:结束。

7.根据权利要求3所述的一种基于物联网的数据通信方法,其特征在于,固定设备维护一个聚合表用于记录聚合数据请求信息,一个聚合表项包含接口域和数据地址域;

在地理位置P2由全局前缀GRP1和子网前缀LRP2唯一标识,与地理位置P2相关的数据D2由数据地址DA2唯一标识;接入节点AP2的全局前缀为GRP1,子网前缀为LRP2,移动设备D1位于子网S1内,子网S1的全局前缀为GRP1,移动设备D1与接入节点AP1关联的条件下,移动设备D1通过下述过程获取数据D2:步骤701:开始;

步骤702:移动设备D1发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为接入节点AP1的单播地址,负载为数据地址DA2;

步骤703:接入节点AP1从接口f4收到请求消息后,判断是自己是否保存数据D2,如果是,执行步骤704,否则执行步骤705;

步骤704:接入节点AP1从接口f4发送确认消息,确认消息负载为数据D2,源地址为自己的单播地址,目的地址为移动设备D1的单播地址,执行步骤717;

步骤705:如果接入节点AP1在聚合表中存在数据地址为DA2且接口域值为f4的聚合表项,则执行步骤717,否则执行步骤706;

步骤706:如果接入节点AP1在聚合表中存在数据地址为DA2的聚合表项,则执行步骤

707,否则执行步骤708;

步骤707:接入节点AP1在聚合表中创建数据地址为DA2且接口域值为f4的聚合表项,执行步骤717;

步骤708:接入节点AP1在聚合表中创建数据地址为DA2且接口域值为f4的聚合表项,接入节点AP1如果在子网路由表中至少有一项数据地址为DA2的子网路由表项,则执行步骤

709,否则执行步骤710;

步骤709:接入节点AP1随机选择一项数据地址为DA2的子网路由表项,并从该子网路由表项的接口域发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为数据地址DA2,执行步骤711;

步骤710:接入节点AP1从与父节点连接的接口域发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为数据地址DA2;

步骤711:固定设备从接口f5收到请求消息,如果固定设备在聚合表中存在数据地址为DA2且接口域值为f5的聚合表项,则执行步骤717,否则执行步骤712;

步骤712:如果收到请求消息的固定设备在聚合表中存在数据地址为DA2的聚合表项,则执行步骤713,否则执行步骤714;

步骤713:收到请求消息的固定设备在聚合表中创建数据地址为DA2且接口域值为f5的聚合表项,执行步骤717;

步骤714:收到请求消息的固定设备在聚合表中创建数据地址为DA2且接口域值为f5的聚合表项,如果收到请求消息的固定设备为接入节点AP2,则执行步骤715,否则执行步骤

716;

步骤715:如果接入节点AP2没有保存数据D2,则执行步骤301~307创建数据D2;接入节点AP2构建确认消息,该确认消息的负载为数据D2,源地址为接收到请求消息的目的地址,源地址为接收到请求消息的目的地址,执行步骤717;

步骤716:如果收到请求消息的固定设备在子网路由表中至少有一项数据地址为DA2的子网路由表项,则随机选择一项数据地址为DA2的子网路由表项,并从该子网路由表项的接口域发送接收到的请求消息;否则,收到请求消息的固定设备查看所有子节点,如果所有子节点的链路前缀与数据地址DA2的链路前缀匹配程度和自己与数据地址DA2的链路前缀匹配程度相同,那么收到请求消息的固定设备从与父节点相连的接口转发请求消息;否则选择一个子节点,该子节点的链路前缀与数据地址DA2的链路前缀匹配程度最大,从与该子节点相连的接口转发请求消息;从链路前缀的第一个比特开始比较,连续相同的比特个数越多,匹配程度越大;执行步骤711;

步骤717:如果固定设备构建或者接收到确认消息,则执行步骤718,否则执行步骤721;

步骤718:如果接入节点AP1接收到确认消息,则执行步骤719,否则执行步骤720;

步骤719:接入节点AP1保存确认消息中的数据D2;

步骤720:构建或者接收到确认消息的固定设备查看聚合表,对于每个数据地址为DA2的聚合表项执行下述操作:构建或者接收到确认消息的固定设备从该聚合表项的接口域值转发确认消息,然后删除该聚合表项,执行步骤717;

步骤721:移动设备D1收到确认消息后,保存数据D2;

步骤722:结束。

8.根据权利要求7所述的一种基于物联网的数据通信方法,其特征在于,在地理位置P3由全局前缀GRP3和子网前缀LRP3唯一标识,与地理位置P3相关的数据D3由数据地址DA3唯一标识;移动设备D1位于子网S1内,子网S1的全局前缀为GRP1,移动设备D1与接入节点AP1关联的条件下,如果在子网S1中的固定设备至少有一项数据地址域值为DA3的子网路由表项,则移动设备D1通过下述过程获取数据D3:步骤801:开始;

步骤802:移动设备D1发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为接入节点AP1的单播地址,负载为数据地址DA3;

步骤803:接入节点AP1从接口f6收到请求消息后,判断是自己是否保存数据D3,如果是,执行步骤804,否则执行步骤805;

步骤804:接入节点AP1从接口f6发送确认消息,确认消息负载为数据D3,源地址为自己的单播地址,目的地址为移动设备D1的单播地址,执行步骤815;

步骤805:如果接入节点AP1在聚合表中存在数据地址为DA3且接口域值为f6的聚合表项,则执行步骤815,否则执行步骤806;

步骤806:如果接入节点AP1在聚合表中存在数据地址为DA3的聚合表项,则执行步骤

807,否则执行步骤808;

步骤807:接入节点AP1在聚合表中创建数据地址为DA3且接口域值为f4的聚合表项,执行步骤815;

步骤808:接入节点AP1在聚合表中创建数据地址为DA3且接口域值为f4的聚合表项,接入节点AP1如果在子网路由表中至少有一项数据地址为DA3的子网路由表项,则执行步骤

809,否则执行步骤810;

步骤809:接入节点AP1随机选择一项数据地址为DA3的子网路由表项,并从该子网路由表项的接口域发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为数据地址DA3,执行步骤811;

步骤810:接入节点AP1从与父节点连接的接口域发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为数据地址DA3;

步骤811:固定设备从接口f7收到请求消息,如果固定设备在聚合表中存在数据地址为DA3且接口域值为f7的聚合表项,则执行步骤815,否则执行步骤812;

步骤812:如果收到请求消息的固定设备在聚合表中存在数据地址为DA3的聚合表项,则执行步骤813,否则执行步骤814;

步骤813:收到请求消息的固定设备在聚合表中创建数据地址为DA3且接口域值为f7的聚合表项,执行步骤815;

步骤814:收到请求消息的固定设备在聚合表中创建数据地址为DA3且接口域值为f7的聚合表项;如果收到请求消息的固定设备在子网路由表中至少有一项数据地址为DA3的子网路由表项,则随机选择一项数据地址为DA3的子网路由表项,并从该子网路由表项的接口域发送接收到的请求消息;否则,收到请求消息的固定设备查看所有子节点,如果所有子节点的链路前缀与数据地址DA3的链路前缀匹配程度和自己与数据地址DA3的链路前缀匹配程度相同,那么收到请求消息的固定设备从与父节点相连的接口转发请求消息;否则选择一个子节点,该子节点的链路前缀与数据地址DA3的链路前缀匹配程度最大,然后从与该子节点相连的接口转发请求消息;执行步骤811;

步骤815:如果固定设备构建或者接收到确认消息,则执行步骤816,否则执行步骤819;

步骤816:如果接入节点AP1接收到确认消息,则执行步骤817,否则执行步骤818;

步骤817:接入节点AP1保存确认消息中的数据D3;

步骤818:构建或者接收到确认消息的固定设备查看聚合表,对于每个数据地址为DA3的聚合表项执行下述操作:构建或者接收到确认消息的固定设备从该聚合表项的接口域值转发确认消息,然后删除该聚合表项,执行步骤815;

步骤819:移动设备D1收到确认消息后,保存数据D3;

步骤820:结束。

9.根据权利要求2所述的一种基于物联网的数据通信方法,其特征在于,在地理位置P3由全局前缀GRP3和子网前缀LRP3唯一标识,与地理位置P3相关的数据D3由数据地址DA3唯一标识,接入节点AP3位于子网S3内,全局前缀为GRP3,子网前缀为LRP3,子网S3的接入路由器为AR3,接入路由器AR3的全局前缀为GRP3,移动设备D1位于子网S1内,子网S1的全局前缀为GRP1,移动设备D1与接入节点AP1关联的条件下,如果在子网S1中的固定设备没有任何数据地址域值为DA3的子网路由表项,则移动设备D1通过下述过程获取数据D3:步骤901:开始;

步骤902:移动设备D1发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为接入节点AP1的单播地址,负载为数据地址DA3;

步骤903:接入节点AP1从接口f8收到请求消息后,如果接入节点AP1在聚合表中存在数据地址为DA3且接口域值为f8的聚合表项,则执行步骤918,否则执行步骤904;

步骤904:如果接入节点AP1在聚合表中存在数据地址为DA3的聚合表项,则执行步骤

905,否则执行步骤906;

步骤905:接入节点AP1在聚合表中创建数据地址为DA3且接口域值为f8的聚合表项,执行步骤918;

步骤906:接入节点AP1在聚合表中创建数据地址为DA3且接口域值为f8的聚合表项,接入节点AP1从与父节点连接的接口域发送请求消息,该消息的源地址为自己的单播地址,目的地址为数据地址DA3;

步骤907:固定设备从接口f9收到请求消息,如果固定设备在聚合表中存在数据地址为DA3且接口域值为f9的聚合表项,则执行步骤918,否则执行步骤908;

步骤908:如果收到请求消息的固定设备为接入路由器AR2且接口f9与互联网路由骨干网相连且在聚合表中存在数据地址为DA3的聚合表项,则执行步骤918,否则执行步骤909;

步骤909:如果收到请求消息的固定设备为接入路由器AR2且接口f9与互联网路由骨干网相连,但是在聚合表中不存在数据地址为DA3的聚合表项,则执行步骤913,否则执行步骤

910;

步骤910:如果收到请求消息的固定设备在聚合表中存在数据地址为DA3的聚合表项,则执行步骤911,否则执行步骤912;

步骤911:收到请求消息的固定设备创建数据地址为DA3且接口域值为f9的聚合表项,执行步骤918;

步骤912:收到请求消息的固定设备创建数据地址为DA3且接口域值为f9的聚合表项;

步骤913:如果收到请求消息的固定设备位于子网S1中,则执行步骤914,否则执行步骤

915;

步骤914:如果收到请求消息的固定设备为接入路由器AR1,则将请求消息转发到互联网路由骨干网,请求消息通过互联网路由骨干网到达接入路由器AR2;否则,收到请求消息的固定设备从与父节点相连的接口转发接收到的请求消息;执行步骤907;

步骤915:如果收到请求消息的固定设备为接入节点AP3,则执行步骤916,否则执行步骤917;

步骤916:接入节点AP3如果没有保存数据D3,则执行步骤301-307创建数据D3;接入节点AP3构建确认消息,该消息的负载为数据D3,源地址为接收到请求消息的目的地址,源地址为接收到请求消息的目的地址,执行步骤918;

步骤917:如果收到请求消息的固定设备在子网路由表中至少有一项数据地址为DA3的子网路由表项,则随机选择一项数据地址为DA3的子网路由表项,并从该子网路由表项的接口域发送接收到的请求消息;否则,收到请求消息的固定设备查看所有子节点,如果所有子节点的链路前缀与数据地址DA3的链路前缀匹配程度和自己与数据地址DA3的链路前缀匹配程度相同,那么收到请求消息的固定设备从与父节点相连的接口转发请求消息;否则选择一个子节点,该子节点的链路前缀与数据地址DA3的链路前缀匹配程度最大,然后从与该子节点相连的接口转发请求消息;执行步骤907;

步骤918:如果固定设备构建或者接收到确认消息,则执行步骤919,否则执行步骤924;

步骤919:如果接入路由器AR2接收到确认消息,则执行步骤920,否则执行步骤921;

步骤920:接入路由器AR2将确认消息转发到互联网路由骨干网,确认消息通过互联网路由骨干网到达接入路由器AR1,执行步骤918;

步骤921:如果接入节点AP1接收到确认消息,则执行步骤922,否则执行步骤923;

步骤922:接入节点AP1保存确认消息中的数据D3;

步骤923:构建或者接收到确认消息的固定设备查看聚合表,对于每个数据地址为DA3的聚合表项执行下述操作:构建或者接收到确认消息的固定设备从该聚合表项的接口域值转发确认消息,然后删除该聚合表项,执行步骤918;

步骤924:移动设备D1收到确认消息后,保存数据D3;

步骤925:结束。

10.根据权利要求2所述的一种基于物联网的数据通信方法,其特征在于,在移动设备D1通信过程中,如果移动设备D1的当前接入节点从接入节点AP1变化为接入节点AP2,那么移动设备D1执行下述移动切换操作:步骤1001:开始;

步骤1002:移动设备D1首先执行201~207获取新的单播地址,向接入节点AP2发送切换消息,该切换消息的源地址为移动设备D1新的单播地址,目的地址为接入节点AP2的单播地址,负载为接入节点AP1的单播地址和移动设备原来的单播地址;

步骤1003:接入节点AP2接收到切换消息后,保存移动设备D1新的单播地址域原来的单播地址的映射关系,然后发送一条切换消息,该切换消息的源地址为接入节点AP2的单播地址,目的地址为接入节点AP1的单播地址,负载为移动设备D1原来的单播地址;

步骤1004:接入节点AP1收到切换消息后,将目的单播地址为移动设备D1原来的单播地址的消息转发给接入节点AP2;

步骤1005:接入节点AP2根据保存的移动设备D1的新的单播地址与原来的单播地址的映射关系,更新接收到的目的单播地址为移动设备D1原来的单播地址的消息,即将该消息的目的地址更新为移动设备D1新的单播地址,然后通过与移动设备相连的接口转发该消息;最终,该消息到达移动设备D1;

步骤1006:结束。

说明书 :

一种基于物联网的多媒体数据通信方法

技术领域

[0001] 本发明涉及一种数据通信方法,尤其涉及的是一种基于物联网的多媒体数据通信方法。

背景技术

[0002] 目前的物联网架构能够很好地跟踪目标对象,但仍存在以下不足:
[0003] 1)用户只能通过数据库服务器来获取目标对象信息,无法实现与目标对象直接地[0004] 点到点通信;
[0005] 2)用户只能查询目标对象的信息,无法直接控制目标对象的状态;
[0006] 3)目标对象信息只能通过读写器被动地读取,目标对象无法根据当前的状态主动[0007] 请求数据更新或发出警报信息。

发明内容

[0008] 发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于物联网的多媒体数据通信方法。本发明有效弥补了现有技术的不足,使得用户能够更好地获取对象信息,实现对目标对象的实时监控。
[0009] 技术方案:本发明公开了一种基于物联网的多媒体数据通信方法,所述物联网包括互联网的路由骨干网和两个以上的子网,一个子网包含固定设备和移动设备两种节点;固定设备包括接入路由器、交换机和接入节点,用于实现路由转发功能;移动设备用于收集与一个地理位置相关数据,移动设备不具有路由转发功能;一个子网只包含一个接入路由器,并通过该接入路由器连接到路由骨干网;一个子网内的固定设备的拓扑结构为树状结构,接入路由器为根节点,接入节点为叶子节点,交换机为中间节点;移动设备通过接入节点实现与其他移动设备的通信,该接入节点称为移动设备的当前接入节点;
[0010] 用户通过单播地址和数据地址获取与一个地理位置相关的数据;单播地址长度为128比特,由全局前缀,子网前缀和设备ID构成,其中,设备ID的长度为i比特,i为不大于32的正整数,设备ID的取值范围为[1,2i-1-1],固定设备的设备ID取值范围为[1,2i-2-1],移动设备的设备ID取值范围为[2i-2,2i-1-2],全局前缀唯一标识一个子网,子网前缀唯一标识一个子网中的固定设备;
[0011] 数据地址长度为128比特,由全局前缀,子网前缀以及数据ID构成,其中全局前缀唯一标识一个子网,子网前缀唯一标识一个子网中的固定设备,数据ID唯一标识一种数据i-1 i类型,数据ID的长度为i比特,数据ID的取值范围为[2 ,2-1];全局前缀和子网前缀唯一标识一个地理位置,数据ID唯一标识一种数据,全局前缀、子网前缀和数据ID唯一标识一种与地理位置相关的数据,即一种与地理位置相关的数据由数据地址唯一标识;
[0012] 固定设备启动后,在取值范围[1,2i-2-1]内随机选取一个数字作为自己的设备ID;
[0013] 接入路由器作为所在子网树的根节点,其深度值为1;
[0014] 子网前缀的长度为j比特,j为不大于32的正整数,d为调节参数,满足公式(1),DMax为子网的树状结构中每个固定设备所拥有的最大子节点数量;接入路由器的子网前缀为0,全局前缀预先设置,例如3f45:abc1:def1:1a24/64;
[0015] 2d>DMax+1  公式(1),
[0016] 固定设备通过下述过程获取子网前缀:
[0017] 步骤101:开始;
[0018] 步骤102:接入路由器将自己的树深度值t设置为1,构建一个单播地址,该单播地址的全局前缀为预先配置的全局前缀,子网前缀为0,设备ID为自己的设备ID;接入路由器查看自己的每一个接口f,如果该接口与接入节点或交换机相连,那么接入路由器进行如下操作:接入路由器构建一个j比特的子网前缀,其中,子网前缀的前边(t-1)·d比特值等于自己子网前缀的前边(t-1)·d比特,接下来的d比特值为接口f,最后j-(h+1)·d比特值为0,从该接口发送获取子网前缀消息,该子网前缀消消息的源地址为构建的单播地址,目的地址为0,负载为构建的子网前缀、参数d,参数j和参数t;
[0019] 步骤103:交换机或者接入节点接收到获取子网前缀消息后,将子网前缀消息负载中的子网前缀设置为自己的子网前缀,将子网前缀消息负载的参数t递增1,同时保存子网前缀消息源地址中的全局前缀;如果接收到获取子网前缀消息的固定设备为交换机,则执行步骤104,否则执行步骤105;
[0020] 步骤104:接收到获取子网前缀消息的交换机构建一个单播地址,该单播地址的全局前缀为接收到的获取子网前缀消息的源地址的全局前缀,子网前缀为自己的子网前缀,设备ID为自己的设备ID;接收到获取子网前缀消息的交换机查看自己的每一个接口f1,如果该接口与接入节点或交换机相连,那么交换机进行如下操作:交换机构建一个j比特的子网前缀,子网前缀的前边(t-1)·d比特值等于自己子网前缀的前边(t-1)·d比特,接下来的d比特值为接口f1,最后j-(h+1)·d比特值为0,然后从该接口发送获取子网前缀消息,该子网前缀消息的源地址为构建的单播地址,目的地址为0,负载为构建的子网前缀、参数d,参数j和参数t,执行步骤103;
[0021] 步骤105:结束;
[0022] 通过上述过程,固定设备获取自己的子网前缀以及所在子网的全局前缀;
[0023] 固定设备获取自己的子网前缀后,将设备ID与自己的子网前缀以及所在子网的全局前缀构建为单播地址,然后向自己的父节点和子节点发送信标消息,信标消息源地址为自己的单播地址;固定设备收到父节点或者子节点的信标消息后,保存它们的单播地址;
[0024] 接入节点获取单播地址后,发送信标消息,信标消息的源地址为接入节点的单播地址,目的地址为广播地址,广播地址的全局前缀为0,子网前缀为0,设备ID为2i-1-1;移动设备收到接入节点的信标消息后,保存该接入节点的单播地址;
[0025] 移动设备获取单播地址后,发送信标消息,信标消息的源地址为自己的单播地址,目的地址为当前接入节点的单播地址;当前接入节点收到移动设备的信标消息后,保存该移动设备的单播地址;如果在规定时间内,例如1小时,当前接入节点没有收到移动设备的信标消息,则删除该移动设备的单播地址。
[0026] 本发明所述方法中,移动设备启动后,通过下述过程获取单播地址:
[0027] 步骤201:开始;
[0028] 步骤202:移动设备在取值范围[2i-2,2i-1-2]内随机选取一个数RN1,然后向当前接入节点发送请求设备ID消息,请求设备ID消息的目的地址为当前接入节点的单播地址,源地址为0,负载为RN1;
[0029] 步骤203:当前接入节点收到请求设备ID消息后,如果请求设备ID消息负载中的RN1与保存的任一个移动设备的单播地址中的设备ID相同,执行步骤204,否则执行步骤205;
[0030] 步骤204:当前接入节点在取值范围[2i-2,2i-1-2]内选取一个随机数RN2,该随机数RN2与保存的任一个移动设备的单播地址中的设备ID都不相同,然后构建一个地址二元组,广播一个信标消息,该信标消息的负载为地址二元组,源地址为自己的单播地址,目的地址为广播地址,执行步骤206;
[0031] 步骤205:当前接入节点构建一个地址二元组,然后广播一个信标消息,该信标消息的负载为地址二元组,源地址为自己的单播地址,目的地址为广播地址;
[0032] 步骤206:移动设备收到当前接入节点的信标消息后,查看信标消息负载中所有的地址二元组,选择二元组的第一个元素等于RN1的二元组,将该二元组的第二个元素设置为自己的设备ID;移动设备将自己的设备ID与接收到的信标消息的源地址的全局前缀和子网前缀相结合构建成为单播地址;
[0033] 步骤207:结束。
[0034] 移动设备通过上述过程获取单播地址从而实现实时通信。
[0035] 本发明所述方法中,交换机和接入路由器维护一个子网路由表用于记录接入节点的信息,一个子网路由表项包含接口域和数据地址域;一种数据具有生命周期,该生命周期预先设置,例如1小时;在接入节点AP1的子网前缀为LRP1,全局前缀为GRP1,设备ID为DID1,全局前缀GRP1和子网前缀LRP1唯一标识地理位置P1,与地理位置P1相关的数据D1由数据地址DA1唯一标识,在数据地址DA1中,全局前缀为GRP1,子网前缀为LRP1,数据ID为CID1的条件下,数据D1由接入节点AP1创建,过程如下:
[0036] 步骤301:开始;
[0037] 步骤302:接入节点AP1创建一个单播地址,该单播地址的全局前缀为GRP1,子网前缀为LRP1,设备ID为DID1,接入节点AP1从与移动设备关联的接口发送一个产生数据消息,该产生数据消息的源地址为创建的单播地址,目的地址为DA1;
[0038] 步骤303:移动设备接收到接入节点AP1的产生数据消息后,如果能产生数据D1的一部分,则执行步骤305,否则执行步骤304;
[0039] 步骤304:接收到产生数据消息的移动设备丢弃接收到的产生数据消息,执行步骤306;
[0040] 步骤305:接收到产生数据消息的移动设备发送一个产生数据确认消息,该产生数据消息的负载为产生的数据,源地址为数据地址DA1,目的地址为产生数据消息中的源地址;
[0041] 步骤306:在规定时间内,例如1s,接入节点AP1查看所有接收到的产生数据确认消息,将所有产生数据确认消息中的数据构建为数据D1,保存数据D1和数据D1的生存时间;
[0042] 步骤307:结束。
[0043] 上述过程能够快速创建数据从而有效获取数据。
[0044] 本发明所述方法中,在移动设备能提供数据D1且当前接入节点为接入节点AP1的条件下,如果该移动设备的当前接入节点变为接入节点AP2,那么该移动设备先执行步骤201~207获取新的单播地址,然后执行下述过程:
[0045] 步骤401:开始;
[0046] 步骤402:移动设备发送注册消息,该注册消息的负载为数据MD1和其生存时间,该注册消息的目的地址为接入节点AP2的单播地址,源地址为自己新的单播地址;
[0047] 步骤403:接入节点AP2获取注册消息后,如果它已经保存了数据MD1,则执行步骤405,否则执行步骤404;
[0048] 步骤404:接入节点AP2保存数据MD1;
[0049] 步骤405:结束。
[0050] 上述过程能够快速实现注册操作从而有效获取数据。
[0051] 本发明所述方法中,接入节点产生或者保存数据MD1后,执行下述过程增加子网路由表项:
[0052] 步骤501:开始
[0053] 步骤502:接入节点从与父节点相连的接口发送增加子网路由表项消息,该增加子网路由表项消息的负载为数据地址DA1,源地址为接入节点自己的单播地址,目的地址为父节点的单播地址;
[0054] 步骤503:父节点从接口f2收到负载为数据地址DA1的增加子网路由表项消息后,判断自己的子网路由表中是否有数据地址域值为DA1且接口域值为f2的子网路由表项,如果存在,则执行步骤507,否则执行步骤504;
[0055] 步骤504:父节点在子网路由表中创建一个子网路由表项,该子网路由表项的数据地址域值为DA1,接口域值为f2;
[0056] 步骤505:如果父节点为交换机,则执行步骤506,否则执行步骤507;
[0057] 步骤506:父节点从与自己的父节点相连的接口发送增加子网路由表项消息,该子网路由由表项消息的负载为数据地址DA1,源地址为自己的单播地址,目的地址为自己的父节点的单播地址,执行步骤503;
[0058] 步骤507:结束。
[0059] 上述过程能够快速更新子网路由表项从而快速正确地获取数据。
[0060] 本发明所述方法中,如果接入节点AP1检测到数据D1的生存时间衰减为0,则删除数据D1,然后执行下述过程删除子网路由表项:
[0061] 步骤601:开始
[0062] 步骤602:接入节点AP1从与父节点相连的接口发送删除子网路由表项消息,该删除子网路由表项消息的负载为数据地址DA1,源地址为自己的单播地址,目的地址为父节点的单播地址;
[0063] 步骤603:父节点从接口f3收到负载为数据地址DA1的删除子网路由表项消息后,从子网路由表中删除数据地址域值为DA1且接口域值为f2的子网路由表项;
[0064] 步骤604:父节点判断自己的子网路由表中是否有数据地址域值为DA1的子网路由表项,如果存在,则执行步骤607,否则执行步骤605;
[0065] 步骤605:如果父节点为交换机,则执行步骤606,否则执行步骤607;
[0066] 步骤606:父节点从与自己的父节点相连的接口发送删除子网路由表项消息,该删除子网路由表项消息的负载为数据地址DA1,源地址为自己的单播地址,目的地址为自己父节点的单播地址,执行步骤603;
[0067] 步骤607:结束。
[0068] 上述过程能够快速更新子网路由表项从而快速正确地获取数据。
[0069] 本发明所述方法中,固定设备维护一个聚合表用于记录聚合数据请求信息,一个聚合表项包含接口域和数据地址域;
[0070] 在地理位置P2由全局前缀GRP1和子网前缀LRP2唯一标识,与地理位置P2相关的数据D2由数据地址DA2唯一标识;接入节点AP2的全局前缀为GRP1,子网前缀为LRP2,移动设备D1位于子网S1内,子网S1的全局前缀为GRP1,移动设备D1与接入节点AP1关联的条件下,移动设备D1通过下述过程获取数据D2:
[0071] 步骤701:开始;
[0072] 步骤702:移动设备D1发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为接入节点AP1的单播地址,负载为数据地址DA2;
[0073] 步骤703:接入节点AP1从接口f4收到请求消息后,判断是自己是否保存数据D2,如果是,执行步骤704,否则执行步骤705;
[0074] 步骤704:接入节点AP1从接口f4发送确认消息,确认消息负载为数据D2,源地址为自己的单播地址,目的地址为移动设备D1的单播地址,执行步骤717;
[0075] 步骤705:如果接入节点AP1在聚合表中存在数据地址为DA2且接口域值为f4的聚合表项,则执行步骤717,否则执行步骤706;
[0076] 步骤706:如果接入节点AP1在聚合表中存在数据地址为DA2的聚合表项,则执行步骤707,否则执行步骤708;
[0077] 步骤707:接入节点AP1在聚合表中创建数据地址为DA2且接口域值为f4的聚合表项,执行步骤717;
[0078] 步骤708:接入节点AP1在聚合表中创建数据地址为DA2且接口域值为f4的聚合表项,接入节点AP1如果在子网路由表中至少有一项数据地址为DA2的子网路由表项,则执行步骤709,否则执行步骤710;
[0079] 步骤709:接入节点AP1随机选择一项数据地址为DA2的子网路由表项,并从该子网路由表项的接口域发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为数据地址DA2,执行步骤711;
[0080] 步骤710:接入节点AP1从与父节点连接的接口域发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为数据地址DA2;
[0081] 步骤711:固定设备从接口f5收到请求消息,如果固定设备在聚合表中存在数据地址为DA2且接口域值为f5的聚合表项,则执行步骤717,否则执行步骤712;
[0082] 步骤712:如果收到请求消息的固定设备在聚合表中存在数据地址为DA2的聚合表项,则执行步骤713,否则执行步骤714;
[0083] 步骤713:收到请求消息的固定设备在聚合表中创建数据地址为DA2且接口域值为f5的聚合表项,执行步骤717;
[0084] 步骤714:收到请求消息的固定设备在聚合表中创建数据地址为DA2且接口域值为f5的聚合表项,如果收到请求消息的固定设备为接入节点AP2,则执行步骤715,否则执行步骤716;
[0085] 步骤715:如果接入节点AP2没有保存数据D2,则执行步骤301~307创建数据D2;接入节点AP2构建确认消息,该确认消息的负载为数据D2,源地址为接收到请求消息的目的地址,源地址为接收到请求消息的目的地址,执行步骤717;
[0086] 步骤716:如果收到请求消息的固定设备在子网路由表中至少有一项数据地址为DA2的子网路由表项,则随机选择一项数据地址为DA2的子网路由表项,并从该子网路由表项的接口域发送接收到的请求消息;否则,收到请求消息的固定设备查看所有子节点,如果所有子节点的链路前缀与数据地址DA2的链路前缀匹配程度和自己与数据地址DA2的链路前缀匹配程度相同,那么收到请求消息的固定设备从与父节点相连的接口转发请求消息;否则选择一个子节点,该子节点的链路前缀与数据地址DA2的链路前缀匹配程度最大,从与该子节点相连的接口转发请求消息;从链路前缀的第一个比特开始比较,连续相同的比特个数越多,匹配程度越大;执行步骤711;
[0087] 步骤717:如果固定设备构建或者接收到确认消息,则执行步骤718,否则执行步骤721;
[0088] 步骤718:如果接入节点AP1接收到确认消息,则执行步骤719,否则执行步骤720;
[0089] 步骤719:接入节点AP1保存确认消息中的数据D2;
[0090] 步骤720:构建或者接收到确认消息的固定设备查看聚合表,对于每个数据地址为DA2的聚合表项执行下述操作:构建或者接收到确认消息的固定设备从该聚合表项的接口域值转发确认消息,然后删除该聚合表项,执行步骤717;
[0091] 步骤721:移动设备D1收到确认消息后,保存数据D2;
[0092] 步骤722:结束。
[0093] 上述过程能够快速正确地获取数据。
[0094] 本发明所述方法中,在地理位置P3由全局前缀GRP3和子网前缀LRP3唯一标识,与地理位置P3相关的数据D3由数据地址DA3唯一标识;移动设备D1位于子网S1内,子网S1的全局前缀为GRP1,移动设备D1与接入节点AP1关联的条件下,如果在子网S1中的固定设备至少有一项数据地址域值为DA3的子网路由表项,则移动设备D1通过下述过程获取数据D3:
[0095] 步骤801:开始;
[0096] 步骤802:移动设备D1发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为接入节点AP1的单播地址,负载为数据地址DA3;
[0097] 步骤803:接入节点AP1从接口f6收到请求消息后,判断是自己是否保存数据D3,如果是,执行步骤804,否则执行步骤805;
[0098] 步骤804:接入节点AP1从接口f6发送确认消息,确认消息负载为数据D3,源地址为自己的单播地址,目的地址为移动设备D1的单播地址,执行步骤815;
[0099] 步骤805:如果接入节点AP1在聚合表中存在数据地址为DA3且接口域值为f6的聚合表项,则执行步骤815,否则执行步骤806;
[0100] 步骤806:如果接入节点AP1在聚合表中存在数据地址为DA3的聚合表项,则执行步骤807,否则执行步骤808;
[0101] 步骤807:接入节点AP1在聚合表中创建数据地址为DA3且接口域值为f4的聚合表项,执行步骤815;
[0102] 步骤808:接入节点AP1在聚合表中创建数据地址为DA3且接口域值为f4的聚合表项,接入节点AP1如果在子网路由表中至少有一项数据地址为DA3的子网路由表项,则执行步骤809,否则执行步骤810;
[0103] 步骤809:接入节点AP1随机选择一项数据地址为DA3的子网路由表项,并从该子网路由表项的接口域发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为数据地址DA3,执行步骤811;
[0104] 步骤810:接入节点AP1从与父节点连接的接口域发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为数据地址DA3;
[0105] 步骤811:固定设备从接口f7收到请求消息,如果固定设备在聚合表中存在数据地址为DA3且接口域值为f7的聚合表项,则执行步骤815,否则执行步骤812;
[0106] 步骤812:如果收到请求消息的固定设备在聚合表中存在数据地址为DA3的聚合表项,则执行步骤813,否则执行步骤814;
[0107] 步骤813:收到请求消息的固定设备在聚合表中创建数据地址为DA3且接口域值为f7的聚合表项,执行步骤815;
[0108] 步骤814:收到请求消息的固定设备在聚合表中创建数据地址为DA3且接口域值为f7的聚合表项;如果收到请求消息的固定设备在子网路由表中至少有一项数据地址为DA3的子网路由表项,则随机选择一项数据地址为DA3的子网路由表项,并从该子网路由表项的接口域发送接收到的请求消息;否则,收到请求消息的固定设备查看所有子节点,如果所有子节点的链路前缀与数据地址DA3的链路前缀匹配程度和自己与数据地址DA3的链路前缀匹配程度相同,那么收到请求消息的固定设备从与父节点相连的接口转发请求消息;否则选择一个子节点,该子节点的链路前缀与数据地址DA3的链路前缀匹配程度最大,然后从与该子节点相连的接口转发请求消息;执行步骤811;
[0109] 步骤815:如果固定设备构建或者接收到确认消息,则执行步骤816,否则执行步骤819;
[0110] 步骤816:如果接入节点AP1接收到确认消息,则执行步骤817,否则执行步骤818;
[0111] 步骤817:接入节点AP1保存确认消息中的数据D3;
[0112] 步骤818:构建或者接收到确认消息的固定设备查看聚合表,对于每个数据地址为DA3的聚合表项执行下述操作:构建或者接收到确认消息的固定设备从该聚合表项的接口域值转发确认消息,然后删除该聚合表项,执行步骤815;
[0113] 步骤819:移动设备D1收到确认消息后,保存数据D3;
[0114] 步骤820:结束。
[0115] 上述过程能够快速正确地获取数据。
[0116] 本发明所述方法中,在地理位置P3由全局前缀GRP3和子网前缀LRP3唯一标识,与地理位置P3相关的数据D3由数据地址DA3唯一标识,接入节点AP3位于子网S3内,全局前缀为GRP3,子网前缀为LRP3,子网S3的接入路由器为AR3,接入路由器AR3的全局前缀为GRP3,移动设备D1位于子网S1内,子网S1的全局前缀为GRP1,移动设备D1与接入节点AP1关联的条件下,如果在子网S1中的固定设备没有任何数据地址域值为DA3的子网路由表项,则移动设备D1通过下述过程获取数据D3:
[0117] 步骤901:开始;
[0118] 步骤902:移动设备D1发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为接入节点AP1的单播地址,负载为数据地址DA3;
[0119] 步骤903:接入节点AP1从接口f8收到请求消息后,如果接入节点AP1在聚合表中存在数据地址为DA3且接口域值为f8的聚合表项,则执行步骤918,否则执行步骤904;
[0120] 步骤904:如果接入节点AP1在聚合表中存在数据地址为DA3的聚合表项,则执行步骤905,否则执行步骤906;
[0121] 步骤905:接入节点AP1在聚合表中创建数据地址为DA3且接口域值为f8的聚合表项,执行步骤918;
[0122] 步骤906:接入节点AP1在聚合表中创建数据地址为DA3且接口域值为f8的聚合表项,接入节点AP1从与父节点连接的接口域发送请求消息,该消息的源地址为自己的单播地址,目的地址为数据地址DA3;
[0123] 步骤907:固定设备从接口f9收到请求消息,如果固定设备在聚合表中存在数据地址为DA3且接口域值为f9的聚合表项,则执行步骤918,否则执行步骤908;
[0124] 步骤908:如果收到请求消息的固定设备为接入路由器AR2且接口f9与互联网路由骨干网相连且在聚合表中存在数据地址为DA3的聚合表项,则执行步骤918,否则执行步骤909;
[0125] 步骤909:如果收到请求消息的固定设备为接入路由器AR2且接口f9与互联网路由骨干网相连,但是在聚合表中不存在数据地址为DA3的聚合表项,则执行步骤913,否则执行步骤910;
[0126] 步骤910:如果收到请求消息的固定设备在聚合表中存在数据地址为DA3的聚合表项,则执行步骤911,否则执行步骤912;
[0127] 步骤911:收到请求消息的固定设备创建数据地址为DA3且接口域值为f9的聚合表项,执行步骤918;
[0128] 步骤912:收到请求消息的固定设备创建数据地址为DA3且接口域值为f9的聚合表项;
[0129] 步骤913:如果收到请求消息的固定设备位于子网S1中,则执行步骤914,否则执行步骤915;
[0130] 步骤914:如果收到请求消息的固定设备为接入路由器AR1,则将请求消息转发到互联网路由骨干网,请求消息通过互联网路由骨干网到达接入路由器AR2;否则,收到请求消息的固定设备从与父节点相连的接口转发接收到的请求消息;执行步骤907;
[0131] 步骤915:如果收到请求消息的固定设备为接入节点AP3,则执行步骤916,否则执行步骤917;
[0132] 步骤916:接入节点AP3如果没有保存数据D3,则执行步骤301-307创建数据D3;接入节点AP3构建确认消息,该消息的负载为数据D3,源地址为接收到请求消息的目的地址,源地址为接收到请求消息的目的地址,执行步骤918;
[0133] 步骤917:如果收到请求消息的固定设备在子网路由表中至少有一项数据地址为DA3的子网路由表项,则随机选择一项数据地址为DA3的子网路由表项,并从该子网路由表项的接口域发送接收到的请求消息;否则,收到请求消息的固定设备查看所有子节点,如果所有子节点的链路前缀与数据地址DA3的链路前缀匹配程度和自己与数据地址DA3的链路前缀匹配程度相同,那么收到请求消息的固定设备从与父节点相连的接口转发请求消息;否则选择一个子节点,该子节点的链路前缀与数据地址DA3的链路前缀匹配程度最大,然后从与该子节点相连的接口转发请求消息;执行步骤907;
[0134] 步骤918:如果固定设备构建或者接收到确认消息,则执行步骤919,否则执行步骤924;
[0135] 步骤919:如果接入路由器AR2接收到确认消息,则执行步骤920,否则执行步骤921;
[0136] 步骤920:接入路由器AR2将确认消息转发到互联网路由骨干网,确认消息通过互联网路由骨干网到达接入路由器AR1,执行步骤918;
[0137] 步骤921:如果接入节点AP1接收到确认消息,则执行步骤922,否则执行步骤923;
[0138] 步骤922:接入节点AP1保存确认消息中的数据D3;
[0139] 步骤923:构建或者接收到确认消息的固定设备查看聚合表,对于每个数据地址为DA3的聚合表项执行下述操作:构建或者接收到确认消息的固定设备从该聚合表项的接口域值转发确认消息,然后删除该聚合表项,执行步骤918;
[0140] 步骤924:移动设备D1收到确认消息后,保存数据D3;
[0141] 步骤925:结束。
[0142] 上述过程能够快速正确地获取数据。
[0143] 本发明所述方法中,在移动设备D1通信过程中,如果移动设备D1的当前接入节点从接入节点AP1变化为接入节点AP2,那么移动设备D1执行下述移动切换操作:
[0144] 步骤1001:开始;
[0145] 步骤1002:移动设备D1首先执行201~207获取新的单播地址,向接入节点AP2发送切换消息,该切换消息的源地址为移动设备D1新的单播地址,目的地址为接入节点AP2的单播地址,负载为接入节点AP1的单播地址和移动设备原来的单播地址;
[0146] 步骤1003:接入节点AP2接收到切换消息后,保存移动设备D1新的单播地址域原来的单播地址的映射关系,然后发送一条切换消息,该切换消息的源地址为接入节点AP2的单播地址,目的地址为接入节点AP1的单播地址,负载为移动设备D1原来的单播地址;
[0147] 步骤1004:接入节点AP1收到切换消息后,将目的单播地址为移动设备D1原来的单播地址的消息转发给接入节点AP2;
[0148] 步骤1005:接入节点AP2根据保存的移动设备D1的新的单播地址与原来的单播地址的映射关系,更新接收到的目的单播地址为移动设备D1原来的单播地址的消息,即将该消息的目的地址更新为移动设备D1新的单播地址,然后通过与移动设备相连的接口转发该消息;最终,该消息到达移动设备D1;
[0149] 步骤1006:结束。
[0150] 上述过程能够确保移动设备在移动过程中快速正确地获取数据。
[0151] 有益效果:本发明提供了一种基于物联网的多媒体数据通信方法,用户通过该方法可实时查询目标对象节点所处环境的参数,并根据目标对象节点的状态及时对目标对象节点进行实时控制和调节,本发明可广泛用于农业环境监测和远程控制等领域。

附图说明

[0152] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0153] 图1为本发明所述的获取子网前缀流程示意图。
[0154] 图2为本发明所述的获取单播地址流程示意图。
[0155] 图3为本发明所述的创建数据流程示意图。
[0156] 图4为本发明所述的注册流程示意图。
[0157] 图5为本发明所述的增加子网路由表项流程示意图。
[0158] 图6为本发明所述的删除子网路由表项流程示意图。
[0159] 图7为本发明所述的获取本地数据流程示意图。
[0160] 图8为本发明所述的获取远程数据流程示意图。
[0161] 图9为本发明所述的子网间获取数据流程示意图。
[0162] 图10为本发明所述的移动切换流程示意图。具体实施方式:
[0163] 本发明提供了一种基于物联网的多媒体数据通信方法,用户通过该方法可实时查询目标对象节点所处环境的参数,并根据目标对象节点的状态及时对目标对象节点进行实时控制和调节,本发明可广泛用于农业环境监测和远程控制等领域。
[0164] 图1为本发明所述的获取子网前缀流程示意图。固定设备通过下述过程获取子网前缀:
[0165] 步骤101:开始;
[0166] 步骤102:接入路由器将自己的树深度值t设置为1,构建一个单播地址,该单播地址的全局前缀为预先配置的全局前缀,子网前缀为0,设备ID为自己的设备ID;接入路由器查看自己的每一个接口f,如果该接口与接入节点或交换机相连,那么接入路由器进行如下操作:接入路由器构建一个j比特的子网前缀,其中,子网前缀的前边(t-1)·d比特值等于自己子网前缀的前边(t-1)·d比特,接下来的d比特值为接口f,最后j-(h+1)·d比特值为0,从该接口发送获取子网前缀消息,该子网前缀消消息的源地址为构建的单播地址,目的地址为0,负载为构建的子网前缀、参数d,参数j和参数t;
[0167] 步骤103:交换机或者接入节点接收到获取子网前缀消息后,将子网前缀消息负载中的子网前缀设置为自己的子网前缀,将子网前缀消息负载的参数t递增1,同时保存子网前缀消息源地址中的全局前缀;如果接收到获取子网前缀消息的固定设备为交换机,则执行步骤104,否则执行步骤105;
[0168] 步骤104:接收到获取子网前缀消息的交换机构建一个单播地址,该单播地址的全局前缀为接收到的获取子网前缀消息的源地址的全局前缀,子网前缀为自己的子网前缀,设备ID为自己的设备ID;接收到获取子网前缀消息的交换机查看自己的每一个接口f1,如果该接口与接入节点或交换机相连,那么交换机进行如下操作:交换机构建一个j比特的子网前缀,子网前缀的前边(t-1)·d比特值等于自己子网前缀的前边(t-1)·d比特,接下来的d比特值为接口f1,最后j-(h+1)·d比特值为0,然后从该接口发送获取子网前缀消息,该子网前缀消息的源地址为构建的单播地址,目的地址为0,负载为构建的子网前缀、参数d,参数j和参数t,执行步骤103;
[0169] 步骤105:结束。
[0170] 图2为本发明所述的获取单播地址流程示意图。移动设备启动后,通过下述过程获取单播地址:
[0171] 步骤201:开始;
[0172] 步骤202:移动设备在取值范围[2i-2,2i-1-2]内随机选取一个数RN1,然后向当前接入节点发送请求设备ID消息,请求设备ID消息的目的地址为当前接入节点的单播地址,源地址为0,负载为RN1;
[0173] 步骤203:当前接入节点收到请求设备ID消息后,如果请求设备ID消息负载中的RN1与保存的任一个移动设备的单播地址中的设备ID相同,执行步骤204,否则执行步骤205;
[0174] 步骤204:当前接入节点在取值范围[2i-2,2i-1-2]内选取一个随机数RN2,该随机数RN2与保存的任一个移动设备的单播地址中的设备ID都不相同,然后构建一个地址二元组,广播一个信标消息,该信标消息的负载为地址二元组,源地址为自己的单播地址,目的地址为广播地址,执行步骤206;
[0175] 步骤205:当前接入节点构建一个地址二元组,然后广播一个信标消息,该信标消息的负载为地址二元组,源地址为自己的单播地址,目的地址为广播地址;
[0176] 步骤206:移动设备收到当前接入节点的信标消息后,查看信标消息负载中所有的地址二元组,选择二元组的第一个元素等于RN1的二元组,将该二元组的第二个元素设置为自己的设备ID;移动设备将自己的设备ID与接收到的信标消息的源地址的全局前缀和子网前缀相结合构建成为单播地址;
[0177] 步骤207:结束。
[0178] 图3为本发明所述的创建数据流程示意图。在接入节点AP1的子网前缀为LRP1,全局前缀为GRP1,设备ID为DID1,全局前缀GRP1和子网前缀LRP1唯一标识地理位置P1,与地理位置P1相关的数据D1由数据地址DA1唯一标识,在数据地址DA1中,全局前缀为GRP1,子网前缀为LRP1,数据ID为CID1的条件下,数据D1由接入节点AP1创建,过程如下:
[0179] 步骤301:开始;
[0180] 步骤302:接入节点AP1创建一个单播地址,该单播地址的全局前缀为GRP1,子网前缀为LRP1,设备ID为DID1,接入节点AP1从与移动设备关联的接口发送一个产生数据消息,该产生数据消息的源地址为创建的单播地址,目的地址为DA1;
[0181] 步骤303:移动设备接收到接入节点AP1的产生数据消息后,如果能产生数据D1的一部分,则执行步骤305,否则执行步骤304;
[0182] 步骤304:接收到产生数据消息的移动设备丢弃接收到的产生数据消息,执行步骤306;
[0183] 步骤305:接收到产生数据消息的移动设备发送一个产生数据确认消息,该产生数据消息的负载为产生的数据,源地址为数据地址DA1,目的地址为产生数据消息中的源地址;
[0184] 步骤306:在规定时间内,接入节点AP1查看所有接收到的产生数据确认消息,将所有产生数据确认消息中的数据构建为数据D1,保存数据D1和数据D1的生存时间;
[0185] 步骤307:结束。
[0186] 图4为本发明所述的注册流程示意图。在移动设备能提供数据D1且当前接入节点为接入节点AP1的条件下,如果该移动设备的当前接入节点变为接入节点AP2,那么该移动设备先执行步骤201~207获取新的单播地址,然后执行下述过程:
[0187] 步骤401:开始;
[0188] 步骤402:移动设备发送注册消息,该注册消息的负载为数据MD1和其生存时间,该注册消息的目的地址为接入节点AP2的单播地址,源地址为自己新的单播地址;
[0189] 步骤403:接入节点AP2获取注册消息后,如果它已经保存了数据MD1,则执行步骤405,否则执行步骤404;
[0190] 步骤404:接入节点AP2保存数据MD1;
[0191] 步骤405:结束。
[0192] 图5为本发明所述的增加子网路由表项流程示意图。接入节点产生或者保存数据MD1后,执行下述过程增加子网路由表项:
[0193] 步骤501:开始
[0194] 步骤502:接入节点从与父节点相连的接口发送增加子网路由表项消息,该增加子网路由表项消息的负载为数据地址DA1,源地址为接入节点自己的单播地址,目的地址为父节点的单播地址;
[0195] 步骤503:父节点从接口f2收到负载为数据地址DA1的增加子网路由表项消息后,判断自己的子网路由表中是否有数据地址域值为DA1且接口域值为f2的子网路由表项,如果存在,则执行步骤507,否则执行步骤504;
[0196] 步骤504:父节点在子网路由表中创建一个子网路由表项,该子网路由表项的数据地址域值为DA1,接口域值为f2;
[0197] 步骤505:如果父节点为交换机,则执行步骤506,否则执行步骤507;
[0198] 步骤506:父节点从与自己的父节点相连的接口发送增加子网路由表项消息,该子网路由由表项消息的负载为数据地址DA1,源地址为自己的单播地址,目的地址为自己的父节点的单播地址,执行步骤503;
[0199] 步骤507:结束。
[0200] 图6为本发明所述的删除子网路由表项流程示意图。如果接入节点AP1检测到数据D1的生存时间衰减为0,则删除数据D1,然后执行下述过程删除子网路由表项:
[0201] 步骤601:开始
[0202] 步骤602:接入节点AP1从与父节点相连的接口发送删除子网路由表项消息,该删除子网路由表项消息的负载为数据地址DA1,源地址为自己的单播地址,目的地址为父节点的单播地址;
[0203] 步骤603:父节点从接口f3收到负载为数据地址DA1的删除子网路由表项消息后,从子网路由表中删除数据地址域值为DA1且接口域值为f2的子网路由表项;
[0204] 步骤604:父节点判断自己的子网路由表中是否有数据地址域值为DA1的子网路由表项,如果存在,则执行步骤607,否则执行步骤605;
[0205] 步骤605:如果父节点为交换机,则执行步骤606,否则执行步骤607;
[0206] 步骤606:父节点从与自己的父节点相连的接口发送删除子网路由表项消息,该删除子网路由表项消息的负载为数据地址DA1,源地址为自己的单播地址,目的地址为自己父节点的单播地址,执行步骤603;
[0207] 步骤607:结束。
[0208] 图7为本发明所述的获取本地数据流程示意图。固定设备维护一个聚合表用于记录聚合数据请求信息,一个聚合表项包含接口域和数据地址域;
[0209] 在地理位置P2由全局前缀GRP1和子网前缀LRP2唯一标识,与地理位置P2相关的数据D2由数据地址DA2唯一标识;接入节点AP2的全局前缀为GRP1,子网前缀为LRP2,移动设备D1位于子网S1内,子网S1的全局前缀为GRP1,移动设备D1与接入节点AP1关联的条件下,移动设备D1通过下述过程获取数据D2:
[0210] 步骤701:开始;
[0211] 步骤702:移动设备D1发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为接入节点AP1的单播地址,负载为数据地址DA2;
[0212] 步骤703:接入节点AP1从接口f4收到请求消息后,判断是自己是否保存数据D2,如果是,执行步骤704,否则执行步骤705;
[0213] 步骤704:接入节点AP1从接口f4发送确认消息,确认消息负载为数据D2,源地址为自己的单播地址,目的地址为移动设备D1的单播地址,执行步骤717;
[0214] 步骤705:如果接入节点AP1在聚合表中存在数据地址为DA2且接口域值为f4的聚合表项,则执行步骤717,否则执行步骤706;
[0215] 步骤706:如果接入节点AP1在聚合表中存在数据地址为DA2的聚合表项,则执行步骤707,否则执行步骤708;
[0216] 步骤707:接入节点AP1在聚合表中创建数据地址为DA2且接口域值为f4的聚合表项,执行步骤717;
[0217] 步骤708:接入节点AP1在聚合表中创建数据地址为DA2且接口域值为f4的聚合表项,接入节点AP1如果在子网路由表中至少有一项数据地址为DA2的子网路由表项,则执行步骤709,否则执行步骤710;
[0218] 步骤709:接入节点AP1随机选择一项数据地址为DA2的子网路由表项,并从该子网路由表项的接口域发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为数据地址DA2,执行步骤711;
[0219] 步骤710:接入节点AP1从与父节点连接的接口域发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为数据地址DA2;
[0220] 步骤711:固定设备从接口f5收到请求消息,如果固定设备在聚合表中存在数据地址为DA2且接口域值为f5的聚合表项,则执行步骤717,否则执行步骤712;
[0221] 步骤712:如果收到请求消息的固定设备在聚合表中存在数据地址为DA2的聚合表项,则执行步骤713,否则执行步骤714;
[0222] 步骤713:收到请求消息的固定设备在聚合表中创建数据地址为DA2且接口域值为f5的聚合表项,执行步骤717;
[0223] 步骤714:收到请求消息的固定设备在聚合表中创建数据地址为DA2且接口域值为f5的聚合表项,如果收到请求消息的固定设备为接入节点AP2,则执行步骤715,否则执行步骤716;
[0224] 步骤715:如果接入节点AP2没有保存数据D2,则执行步骤301~307创建数据D2;接入节点AP2构建确认消息,该确认消息的负载为数据D2,源地址为接收到请求消息的目的地址,源地址为接收到请求消息的目的地址,执行步骤717;
[0225] 步骤716:如果收到请求消息的固定设备在子网路由表中至少有一项数据地址为DA2的子网路由表项,则随机选择一项数据地址为DA2的子网路由表项,并从该子网路由表项的接口域发送接收到的请求消息;否则,收到请求消息的固定设备查看所有子节点,如果所有子节点的链路前缀与数据地址DA2的链路前缀匹配程度和自己与数据地址DA2的链路前缀匹配程度相同,那么收到请求消息的固定设备从与父节点相连的接口转发请求消息;否则选择一个子节点,该子节点的链路前缀与数据地址DA2的链路前缀匹配程度最大,从与该子节点相连的接口转发请求消息;从链路前缀的第一个比特开始比较,连续相同的比特个数越多,匹配程度越大;执行步骤711;
[0226] 步骤717:如果固定设备构建或者接收到确认消息,则执行步骤718,否则执行步骤721;
[0227] 步骤718:如果接入节点AP1接收到确认消息,则执行步骤719,否则执行步骤720;
[0228] 步骤719:接入节点AP1保存确认消息中的数据D2;
[0229] 步骤720:构建或者接收到确认消息的固定设备查看聚合表,对于每个数据地址为DA2的聚合表项执行下述操作:构建或者接收到确认消息的固定设备从该聚合表项的接口域值转发确认消息,然后删除该聚合表项,执行步骤717;
[0230] 步骤721:移动设备D1收到确认消息后,保存数据D2;
[0231] 步骤722:结束。
[0232] 图8为本发明所述的获取远程数据流程示意图。在地理位置P3由全局前缀GRP3和子网前缀LRP3唯一标识,与地理位置P3相关的数据D3由数据地址DA3唯一标识;移动设备D1位于子网S1内,子网S1的全局前缀为GRP1,移动设备D1与接入节点AP1关联的条件下,如果在子网S1中的固定设备至少有一项数据地址域值为DA3的子网路由表项,则移动设备D1通过下述过程获取数据D3:
[0233] 步骤801:开始;
[0234] 步骤802:移动设备D1发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为接入节点AP1的单播地址,负载为数据地址DA3;
[0235] 步骤803:接入节点AP1从接口f6收到请求消息后,判断是自己是否保存数据D3,如果是,执行步骤804,否则执行步骤805;
[0236] 步骤804:接入节点AP1从接口f6发送确认消息,确认消息负载为数据D3,源地址为自己的单播地址,目的地址为移动设备D1的单播地址,执行步骤815;
[0237] 步骤805:如果接入节点AP1在聚合表中存在数据地址为DA3且接口域值为f6的聚合表项,则执行步骤815,否则执行步骤806;
[0238] 步骤806:如果接入节点AP1在聚合表中存在数据地址为DA3的聚合表项,则执行步骤807,否则执行步骤808;
[0239] 步骤807:接入节点AP1在聚合表中创建数据地址为DA3且接口域值为f4的聚合表项,执行步骤815;
[0240] 步骤808:接入节点AP1在聚合表中创建数据地址为DA3且接口域值为f4的聚合表项,接入节点AP1如果在子网路由表中至少有一项数据地址为DA3的子网路由表项,则执行步骤809,否则执行步骤810;
[0241] 步骤809:接入节点AP1随机选择一项数据地址为DA3的子网路由表项,并从该子网路由表项的接口域发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为数据地址DA3,执行步骤811;
[0242] 步骤810:接入节点AP1从与父节点连接的接口域发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为数据地址DA3;
[0243] 步骤811:固定设备从接口f7收到请求消息,如果固定设备在聚合表中存在数据地址为DA3且接口域值为f7的聚合表项,则执行步骤815,否则执行步骤812;
[0244] 步骤812:如果收到请求消息的固定设备在聚合表中存在数据地址为DA3的聚合表项,则执行步骤813,否则执行步骤814;
[0245] 步骤813:收到请求消息的固定设备在聚合表中创建数据地址为DA3且接口域值为f7的聚合表项,执行步骤815;
[0246] 步骤814:收到请求消息的固定设备在聚合表中创建数据地址为DA3且接口域值为f7的聚合表项;如果收到请求消息的固定设备在子网路由表中至少有一项数据地址为DA3的子网路由表项,则随机选择一项数据地址为DA3的子网路由表项,并从该子网路由表项的接口域发送接收到的请求消息;否则,收到请求消息的固定设备查看所有子节点,如果所有子节点的链路前缀与数据地址DA3的链路前缀匹配程度和自己与数据地址DA3的链路前缀匹配程度相同,那么收到请求消息的固定设备从与父节点相连的接口转发请求消息;否则选择一个子节点,该子节点的链路前缀与数据地址DA3的链路前缀匹配程度最大,然后从与该子节点相连的接口转发请求消息;执行步骤811;
[0247] 步骤815:如果固定设备构建或者接收到确认消息,则执行步骤816,否则执行步骤819;
[0248] 步骤816:如果接入节点AP1接收到确认消息,则执行步骤817,否则执行步骤818;
[0249] 步骤817:接入节点AP1保存确认消息中的数据D3;
[0250] 步骤818:构建或者接收到确认消息的固定设备查看聚合表,对于每个数据地址为DA3的聚合表项执行下述操作:构建或者接收到确认消息的固定设备从该聚合表项的接口域值转发确认消息,然后删除该聚合表项,执行步骤815;
[0251] 步骤819:移动设备D1收到确认消息后,保存数据D3;
[0252] 步骤820:结束。
[0253] 图9为本发明所述的子网间获取数据流程示意图。在地理位置P3由全局前缀GRP3和子网前缀LRP3唯一标识,与地理位置P3相关的数据D3由数据地址DA3唯一标识,接入节点AP3位于子网S3内,全局前缀为GRP3,子网前缀为LRP3,子网S3的接入路由器为AR3,接入路由器AR3的全局前缀为GRP3,移动设备D1位于子网S1内,子网S1的全局前缀为GRP1,移动设备D1与接入节点AP1关联的条件下,如果在子网S1中的固定设备没有任何数据地址域值为DA3的子网路由表项,则移动设备D1通过下述过程获取数据D3:
[0254] 步骤901:开始;
[0255] 步骤902:移动设备D1发送请求消息,该请求消息的源地址为自己的单播地址,目的地址为接入节点AP1的单播地址,负载为数据地址DA3;
[0256] 步骤903:接入节点AP1从接口f8收到请求消息后,如果接入节点AP1在聚合表中存在数据地址为DA3且接口域值为f8的聚合表项,则执行步骤918,否则执行步骤904;
[0257] 步骤904:如果接入节点AP1在聚合表中存在数据地址为DA3的聚合表项,则执行步骤905,否则执行步骤906;
[0258] 步骤905:接入节点AP1在聚合表中创建数据地址为DA3且接口域值为f8的聚合表项,执行步骤918;
[0259] 步骤906:接入节点AP1在聚合表中创建数据地址为DA3且接口域值为f8的聚合表项,接入节点AP1从与父节点连接的接口域发送请求消息,该消息的源地址为自己的单播地址,目的地址为数据地址DA3;
[0260] 步骤907:固定设备从接口f9收到请求消息,如果固定设备在聚合表中存在数据地址为DA3且接口域值为f9的聚合表项,则执行步骤918,否则执行步骤908;
[0261] 步骤908:如果收到请求消息的固定设备为接入路由器AR2且接口f9与互联网路由骨干网相连且在聚合表中存在数据地址为DA3的聚合表项,则执行步骤918,否则执行步骤909;
[0262] 步骤909:如果收到请求消息的固定设备为接入路由器AR2且接口f9与互联网路由骨干网相连,但是在聚合表中不存在数据地址为DA3的聚合表项,则执行步骤913,否则执行步骤910;
[0263] 步骤910:如果收到请求消息的固定设备在聚合表中存在数据地址为DA3的聚合表项,则执行步骤911,否则执行步骤912;
[0264] 步骤911:收到请求消息的固定设备创建数据地址为DA3且接口域值为f9的聚合表项,执行步骤918;
[0265] 步骤912:收到请求消息的固定设备创建数据地址为DA3且接口域值为f9的聚合表项;
[0266] 步骤913:如果收到请求消息的固定设备位于子网S1中,则执行步骤914,否则执行步骤915;
[0267] 步骤914:如果收到请求消息的固定设备为接入路由器AR1,则将请求消息转发到互联网路由骨干网,请求消息通过互联网路由骨干网到达接入路由器AR2;否则,收到请求消息的固定设备从与父节点相连的接口转发接收到的请求消息;执行步骤907;
[0268] 步骤915:如果收到请求消息的固定设备为接入节点AP3,则执行步骤916,否则执行步骤917;
[0269] 步骤916:接入节点AP3如果没有保存数据D3,则执行步骤301~307创建数据D3;接入节点AP3构建确认消息,该消息的负载为数据D3,源地址为接收到请求消息的目的地址,源地址为接收到请求消息的目的地址,执行步骤918;
[0270] 步骤917:如果收到请求消息的固定设备在子网路由表中至少有一项数据地址为DA3的子网路由表项,则随机选择一项数据地址为DA3的子网路由表项,并从该子网路由表项的接口域发送接收到的请求消息;否则,收到请求消息的固定设备查看所有子节点,如果所有子节点的链路前缀与数据地址DA3的链路前缀匹配程度和自己与数据地址DA3的链路前缀匹配程度相同,那么收到请求消息的固定设备从与父节点相连的接口转发请求消息;否则选择一个子节点,该子节点的链路前缀与数据地址DA3的链路前缀匹配程度最大,然后从与该子节点相连的接口转发请求消息;执行步骤907;
[0271] 步骤918:如果固定设备构建或者接收到确认消息,则执行步骤919,否则执行步骤924;
[0272] 步骤919:如果接入路由器AR2接收到确认消息,则执行步骤920,否则执行步骤921;
[0273] 步骤920:接入路由器AR2将确认消息转发到互联网路由骨干网,确认消息通过互联网路由骨干网到达接入路由器AR1,执行步骤918;
[0274] 步骤921:如果接入节点AP1接收到确认消息,则执行步骤922,否则执行步骤923;
[0275] 步骤922:接入节点AP1保存确认消息中的数据D3;
[0276] 步骤923:构建或者接收到确认消息的固定设备查看聚合表,对于每个数据地址为DA3的聚合表项执行下述操作:构建或者接收到确认消息的固定设备从该聚合表项的接口域值转发确认消息,然后删除该聚合表项,执行步骤918;
[0277] 步骤924:移动设备D1收到确认消息后,保存数据D3;
[0278] 步骤925:结束。
[0279] 图10为本发明所述的移动切换流程示意图。在移动设备D1通信过程中,如果移动设备D1的当前接入节点从接入节点AP1变化为接入节点AP2,那么移动设备D1执行下述移动切换操作:
[0280] 步骤1001:开始;
[0281] 步骤1002:移动设备D1首先执行201~207获取新的单播地址,向接入节点AP2发送切换消息,该切换消息的源地址为移动设备D1新的单播地址,目的地址为接入节点AP2的单播地址,负载为接入节点AP1的单播地址和移动设备原来的单播地址;
[0282] 步骤1003:接入节点AP2接收到切换消息后,保存移动设备D1新的单播地址域原来的单播地址的映射关系,然后发送一条切换消息,该切换消息的源地址为接入节点AP2的单播地址,目的地址为接入节点AP1的单播地址,负载为移动设备D1原来的单播地址;
[0283] 步骤1004:接入节点AP1收到切换消息后,将目的单播地址为移动设备D1原来的单播地址的消息转发给接入节点AP2;
[0284] 步骤1005:接入节点AP2根据保存的移动设备D1的新的单播地址与原来的单播地址的映射关系,更新接收到的目的单播地址为移动设备D1原来的单播地址的消息,即将该消息的目的地址更新为移动设备D1新的单播地址,然后通过与移动设备相连的接口转发该消息;最终,该消息到达移动设备D1;
[0285] 步骤1006:结束。
[0286] 实施例1
[0287] 基于表1的仿真参数,本实施例模拟了本发明中的基于物联网的数据通信方法,性能分析如下:当用户与目的节点距离较远时,平均通信代价和延迟也随之增加,通信半径增加时,平均通信代价和延迟也随之降低。平均通信代价为6.5,平均通信延迟为75ms。
[0288] 表1仿真参数
[0289]
[0290] 本发明提供了一种基于物联网的多媒体数据通信方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。