利索能及
我要发布
收藏
专利号: 2017112746204
申请人: 常熟理工学院
专利类型:发明专利
专利状态:已下证
更新日期:2025-12-30
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种物联网实现方法,其特征在于,所述物联网包括移动设备、接入路由器和接入节点;每个移动设备配置X个无线接口,X取值为大于2的自然数,每个接口由接口ID f唯一标识,f取值1…X,接口ID为f的接口简写为接口f;一个接入节点配置一个上游有线接口和一个下游无线接口;一个接入路由器配置一个上游有线接口和Y个下游有线接口,Y≥X,上游有线接口与互联网骨干网相连,每个下游有线接口与一个接入节点的上游有线接口相连,每个下游有线接口由接口ID j0唯一标识,j0=1…Y;接入节点的下游接口与移动设备的接口链路相连;一种数据保存在两个以上的服务器上,所有保存该数据的服务器构成一个任播组,所有任播组的服务器共享一个任播地址,该任播地址预先设置,该种数据由该任播地址唯一标识,该任播地址也称为该种数据的数据ID,由U个数据块构成,U为大于2的正整数,每个数据块由数据块ID c唯一标识,c取值1…U;

互联网骨干网包括核心路由器,核心路由器的每个接口与另一个核心路由器或者接入路由器相连;接入路由器、接入节点和移动设备为每个接口配置一个地址,一个地址由i比特的网络前缀,j比特的地理坐标,k比特的接入节点ID和128-i-j-k比特的设备ID构成,i、j、k为不大于32的正整数;

每个核心路由器维护一个转发表,每个接入路由器维护一个转发表;一个转发表项包含数据ID域,数据块ID集合域,距离域和接口ID域;

在数据D1由任播地址A1标识的条件下,任播地址为A1的服务器产生数据D1的一个以上的数据块后,任播地址为A1的服务器构建一个数据块ID集合,所述数据块ID集合由产生的数据块的数据块ID构成,然后该服务器执行下述操作:步骤101:开始;

步骤102:服务器设置一个参数Hop,其初始值为0,并发送一个转发消息,该转发消息的源地址为该服务器的地址,目的地址为广播地址,负载为数据ID A1、数据块ID集合以及参数Hop;

步骤103:如果一个接入路由器从自己的下游接口f1接收到该转发消息,则执行步骤

104,否则执行步骤106;

步骤104:步骤103中的接入路由器将接收到的转发消息负载中的参数Hop值递增1,如果接入路由器存在一个如下转发表项,该转发表项的数据ID和数据ID集合等于接收到的转发消息的数据ID和数据ID集合,且接口ID等于f1,则执行步骤115,否则执行步骤105;

步骤105:接收到转发消息的接入路由器从上游接口转发接收到的转发消息,创建一个转发表项,该转发表项的数据ID和数据ID集合等于接收到的转发消息的数据ID和数据ID集合,接口ID等于f1,距离域值等于转发消息中参数Hop的值,执行步骤103;

步骤106:如果一个接入路由器从自己的上游接口f2接收到转发消息,则执行步骤107,否则执行步骤111;

步骤107:接入路由器将接收到的转发消息负载中的参数Hop值递增1,如果接入路由器存在一个转发表项,该转发表项的数据ID和数据ID集合等于接收到的转发消息负载中的数据ID和数据ID集合,且接口ID等于f2,则执行步骤108,否则执行步骤110;

步骤108:如果数据ID和数据ID集合等于接收到的转发消息负载中的数据ID和数据ID集合,且接口ID等于f2的转发表项的距离域值大于转发消息负载中的参数Hop,则执行步骤

109,否则执行步骤115;

步骤109:接入路由器选择数据ID和数据ID集合等于接收到的转发消息负载中的数据ID和数据ID集合且接口ID等于f2的转发表项,将该转发表项的距离域值设置为转发消息负载中的参数Hop值,执行步骤115;

步骤110:接收到转发消息的接入路由器创建一个转发表项,该转发表项的数据ID和数据ID集合等于接收到的转发消息的数据ID和数据ID集合,接口ID等于f2,距离域值等于转发消息中的参数Hop值,执行步骤115;

步骤111:核心路由器从自己的接口f3接收到转发消息后,将转发消息负载中的参数Hop递增1,如果存在一个转发表项,该转发表项的数据ID和数据块ID集合等于接收到的转发消息负载中的数据ID和数据块ID集合,则执行步骤112,否则执行步骤114;

步骤112:核心路由器选中转发表项,该转发表项的数据ID和数据块ID集合等于接收到的转发消息负载中的数据ID和数据块ID集合,如果该转发表项的距离域值大于转发消息负载中的参数Hop,则执行步骤113,否则执行步骤115;

步骤113:核心路由器选择数据ID和数据ID集合等于接收到的转发消息负载中的数据ID和数据ID集合的转发表项,将该转发表项的距离域值设置为转发消息负载中的参数Hop值,将该转发表项的接口ID域值设置为f3,然后从除了接口f3以外的所有接口转发该转发消息,执行步骤103;

步骤114:接收到转发消息的接入路由器创建一个转发表项,该转发表项的数据ID和数据ID集合等于接收到的转发消息的数据ID和数据ID集合,接口ID等于f3,距离域值等于转发消息中的参数Hop值,然后从除了接口f3以外的所有接口转发该转发消息,执行步骤103;

步骤115:结束;

接入路由器所有接口的网络前缀相同且预先设置;所述物联网中的每个接入路由器配置一个上游接口和Y个下游接口,接入路由器的上游接口的接口ID为Y+1;接入路由器启动后,为上游接口和每个下游接口配置一个地址,该地址的网络前缀为预先设置的网络前缀,设备ID为该上游接口或者下游接口的接口ID;接入路由器为每个下游接口配置地址后,从该下游接口发送一个配置消息,该配置消息的源地址为该下游接口的地址;接入节点从上游接口接收到配置消息后,分别为上游接口和下游接口配置一个地址,在下游接口的地址中,网络前缀等于接收到的配置消息的源地址的网络前缀,地理坐标为接入节点当前的地理坐标,设备ID为0,接入节点ID为接收到的配置消息的源地址的设备ID;接入节点为下游节点配置地址后,通过下游接口定期发送配置消息,该配置消息的源地址为该下游接口的地址;在上游接口的地址中,网络前缀等于接收到的配置消息的源地址的网络前缀,地理坐标和设备ID均为0,接入节点ID为接收到的配置消息的源地址的设备ID;

移动设备配置一个地址之前,为每个接口配置一个临时地址,在该临时地址中,网络前缀和接入节点ID为0,地理坐标为当前移动设备的地理坐标,设备ID为一个随机数;移动设备为每个接口配置一个临时地址后,从每个接口定期发送一个信标消息,该信标消息的源地址为该接口的临时地址;

移动设备维护一个地址表,该地址表项包含接口ID域,接入节点地址域,移动设备地址域和生命周期域,移动路由器保存一个设备ID集合用于保存已经分配的设备ID;移动设备启动后,通过每个接口侦听配置消息;如果移动设备M1从自己的接口f4接收到配置消息,则执行如下操作为接口f4配置地址:步骤201:开始;

步骤202:移动设备M1查看地址表,如果存在一个地址表项,该地址表项的接口ID域值等于f4,接入节点地址域值等于接收到的配置消息的源地址,则执行步骤203,否则执行步骤204;

步骤203:移动设备M1选择接口ID域值等于f4且接入节点地址域值等于接收到的配置消息的源地址的地址表项,将该地址表项的生命周期域值设置为最大值,执行步骤210;

步骤204:如果存在一个地址表项,该地址表项的移动设备地址域值的网络前缀等于接收到的配置消息的源地址的网络前缀,则执行步骤205,否则执行步骤206;

步骤205:移动设备M1选择移动设备地址域值的网络前缀等于接收到的配置消息的源地址的网络前缀的地址表项,然后创建一个地址,该地址的网络前缀和接入节点ID域值分别等于接收到的配置消息的源地址的网络前缀和接入节点ID,地理坐标等于移动设备M1的当前地理坐标,设备ID等于该地址表项的移动设备地址域值的设备ID;移动设备M1创建一个地址表项,该地址表项的接口ID域值等于f4,接入节点地址域值等于接收到的配置消息的源地址,移动设备地址域值等于构建的地址,执行步骤210;

步骤206:移动设备M1创建一个随机数r1,从接口f4发送一个地址配置消息,该地址配置消息的负载为随机数r,该地址配置消息的源地址中,网络前缀和接入节点ID等于接收到的配置消息的源地址的网络前缀和接入节点ID,地理坐标和设备ID分别等于移动设备M1临时地址的地理坐标和设备ID,该地址配置消息的目的地址中,网络前缀等于接收到的配置消息的源地址的网络前缀,接入节点ID和地理坐标为0,设备ID等于接收到的配置消息的源地址的接入节点ID;基于该地址配置消息的源地址,该地址配置消息最终到达源接入节点,即网络前缀和接入节点ID等于该地址配置消息的源地址的网络前缀和接入节点ID的接入节点;源接入节点将接收到的地址配置消息转发到相连的目的路由器;目的接入路由器接收到地址配置消息后,随机选择一个不在目的接入路由器的设备ID集合中的随机数r2,然后从接收到的地址配置消息的源地址的接入节点ID所标识的下游接口发送一个配置响应消息,该配置响应消息的源地址为接收到的地址配置消息的目的地址,目的地址为接收到的地址配置消息的源地址,负载为接收到的地址配置消息负载中随机数r1和选择的随机数r2;目的接入路由器将随机数r2加入到设备ID集合中;接入节点从上游接口接收到配置响应消息后,从下游接口转发接收到的配置响应消息;

步骤207:根据配置响应消息的目的地址的地理坐标,最终移动设备M1从接口f4接收到配置响应消息,如果移动设备M1发送的地址配置消息中的随机数与接收到的配置响应消息中的随机数r1相同,则执行步骤209,否则208;

步骤208:移动设备M1丢弃接收到的配置响应消息,执行步骤210;

步骤209:移动设备M1构建一个地址,该地址的网络前缀和接入节点ID分别等于接收到的配置响应消息的目的地址的网络前缀和接入节点ID,地理坐标为该移动设备当前的地理坐标,设备ID为接收到的配置响应消息负载中的随机数r2;移动设备M1创建一个地址表项,该地址表项的接口ID为f4,移动设备地址域值为构建的地址,生命周期为最大值,接入节点地址域值为接收到的配置消息的源地址;

步骤210:结束;

移动设备M1从接口f4接收到配置消息后,如果移动设备M1在一个接入节点的一跳范围内且该接入节点的地址不等于接收到的配置消息的源地址,则停止转发该配置消息,否则从接口f4转发该配置消息;

如果移动设备M1检测到一个地址表项E1的生命周期衰减为0,则执行下述操作:

步骤301:开始;

步骤302:移动设备M1判断是否存在一个地址表项,该地址表项不是地址表项E1且移动设备地址域值的网络前缀等于地址表项E1的移动设备的网络前缀,如果是,则执行步骤

307,否则执行步骤303;

步骤303:移动设备M1构建一个地址,该地址的网络前缀等于地址表项E1的接入节点地址的网络前缀,地理坐标和接入节点ID为0,设备ID为地址表项E1的接入节点地址的接入节点ID;从地址表项选择一个符合如下条件的地址表项,该地址表项不等于地址表项E1且接入节点地址域值的地理坐标距离移动设备M1最近;移动设备M1通过选择的地址表项的接入节点地址域值的接入节点ID所标识的接口发送地址回收消息,该地址回收消息的源地址为选择的地址表项的移动设备地址域值,目的地址为构建的地址,负载为地址表项E1的移动设备地址域值;移动设备M1从地址表中删除地址表项E1;

步骤304:根据地址回收消息的源地址,该地址回收消息最终到达源接入节点,即地址中的网络前缀与接入节点ID与该地址回收消息的源地址的网络前缀和接入节点ID 相同的接入节点;源接入节点通过上游接口将地址回收消息转发给相连的接入路由器,接入路由器从下游接口接收到该地址回收消息后,判断自己是否为目的接入路由器,即该地址回收消息负载中的地址的网络前缀是否等于自己的网络前缀,如果是,则执行步骤306,否则执行步骤305;

步骤305:接收到地址回收消息的接入路由器通过上游接口转发接收到的地址回收消息,该地址回收消息通过互联网骨干网最终到达目的接入路由器,即地址的网络前缀等于地址回收消息的目的地址的网络前缀的接入路由器;

步骤306:目的接入路由器从自己的设备ID集合中删除接收到的地址回收消息中的地址的设备ID;

步骤307:结束;

在数据D1由数据ID任播地址A1唯一标识,数据D1由U个数据块构成,一个数据块由数据块ID c唯一标识,c取值1~U,一个接入路由器或者核心路由器保存一个请求表,一个请求表项由数据ID域,数据块ID域,接口ID域和地址域值构成;保存数据D1的所有服务器构成一个任播组,该任播组的任播地址为A1的条件下,如果移动设备M1需要获取数据D1的一个数据块,该数据块的数据块ID为c1,则执行下述操作:步骤401:开始;

步骤402:移动设备M1创建一个网络前缀集合P1,网络前缀集合P1由移动设备M1的地址表中所有地址表项的接入节点地址域值的网络前缀构成;

步骤403:移动设备M1从网络前缀集合P1中选取一个最小的网络前缀,然后选择一个地址表项,该地址表项的接入节点地址的网络前缀等于选取的网络前缀且接入节点地址的地理坐标距离移动设备M1最近;移动设备M1构建一个地址,该地址的网络前缀为选取的地址表项的接入节点地址域值的网络前缀,设备ID等于选取的地址表项的接入节点地址域值的接入节点ID,地理坐标和接入节点ID等于0;移动设备M1创建一个请求消息,该请求消息的源地址为选取的地址表项的移动设备地址域值,目的地址为构建的地址,负载为数据ID A1和数据块ID c1,移动设备M1从该地址表项的接口ID所标识的接口发送该请求消息;

步骤404:目的接入路由器通过下游接口x1接收到该请求消息后,创建一个请求表项,该请求表项的数据ID和数据块ID等于该请求消息负载中的数据ID和数据块ID,接口ID等于x1,地址域值等于接收到的请求消息的源地址;如果目的接入路由器只有一个数据ID和数据块ID等于该请求消息负载中的数据ID和数据块ID,且接口ID等于x1的请求表项,则执行步骤405,否则执行步骤413;

步骤405:目的接入路由器从上游接口发送数据请求消息,该数据请求消息中,源地址为目的接入路由器的上游接口的地址,目的地址为任播地址A1,负载为接收到的请求消息中的负载;

步骤406:接入路由器或者核心路由器从接口x2接收到数据请求消息后,如果存在一个请求表项,该请求表项的数据ID和数据块ID等于该请求消息负载中的数据ID和数据块ID且接口ID等于x2的请求表项,则执行步骤413,否则执行步骤407;

步骤407:从接口x2接收到数据请求消息的接入路由器或者核心路由器如果存在一个请求表项,该请求表项的数据ID和数据块ID等于该请求消息负载中的数据ID和数据块ID,则执行步骤408,否则执行步骤409;

步骤408:从接口x2接收到数据请求消息的接入路由器或者核心路由器创建一个请求表项,该请求表项的数据ID和数据块ID等于该请求消息负载中的数据ID和数据块ID,接口ID为x2,地址域值为0,执行步骤413;

步骤409:从接口x2接收到数据请求消息的接入路由器或者核心路由器创建一个请求表项,该请求表项的数据ID和数据块ID等于该请求消息负载中的数据ID和数据块ID,接口ID为x2,地址域值为0;如果接入路由器从接口x2接收到数据请求消息,则执行步骤411,否则执行步骤410;

步骤410:从接口x2接收到数据请求消息的核心路由器查看转发表,选择数据ID域值等于该数据请求消息中的数据ID且数据块ID集合包含该数据请求消息中的数据块ID的转发表项,从该转发表项的接口ID所标识的接口转发该数据请求消息,执行步骤406;

步骤411:从接口x2接收到数据请求消息的接入路由器查看转发表,选择数据ID域值等于该数据请求消息中的数据ID且数据块ID集合包含该数据请求消息中的数据块ID的转发表项,从该转发表项的接口ID所标识的接口转发该数据请求消息,最终该数据请求消息到达任播地址为A1的服务器;

步骤412:任播地址为A1的服务器发送一个数据响应消息,该数据响应消息的负载包括接收到的数据请求消息中的数据ID和数据块ID以及该数据ID和数据块ID所标识的数据块,源地址为接收到的数据请求消息的目的地址,目的地址为接收到的数据请求消息的源地址;

步骤413:如果接入路由器从上游接口接收到数据响应消息后,执行步骤415,否则执行步骤414;

步骤414:接收到数据响应消息的接入路由器或者核心路由器查看请求表,选择所有数据ID域值和数据块ID域值等于该数据响应消息中的数据ID和数据块ID的请求表项,对于每个选择的请求表项,该接入路由器或者核心路由器执行下述操作:从该请求表项的接口ID所标识的接口转发接收到的数据响应消息,从请求表中删除该请求表项,执行步骤413;

步骤415:从上游接口接收到数据响应消息的接入路由器查看请求表,选择所有数据ID域值和数据块ID域值等于该数据响应消息中的数据ID和数据块ID的请求表项,对于每个选择的请求表项,该接入路由器执行下述操作:构建一个响应消息,该响应消息的源地址为接收到的数据响应消息的源地址,目的地址为该请求表项的地址域值,负载为接收到的数据响应消息的负载,从该请求表项的接口ID所标识的接口发送该响应消息,从请求表中删除该请求表项;

步骤416:根据目的地址的地理坐标,最终目的移动设备M1接收到响应消息,目的移动设备M1保存响应消息的数据块;

步骤417:结束;

在数据D1由数据ID任播地址A1唯一标识,由U个数据块构成,一个数据块由数据块ID c唯一标识,c取值1~U,保存数据D1的所有服务器构成一个任播组,该任播组的任播地址为A1的条件下,如果移动设备M1想获取数据D1的H个数据块,H>1,H个数据块的数据块ID集合为G,则执行下述操作:步骤501:开始;

步骤502:移动设备M1设置一个数据块ID集合变量G1,该变量的初始值为数据块ID集合G;

步骤503:移动设备M1创建一个网络前缀集合P1,网络前缀集合P1由移动设备M1的地址表中所有地址表项的接入节点地址域值的网络前缀构成;

步骤504:移动设备M1从集合P1中选取一个最小的网络前缀,然后选择一个地址表项,该地址表项的接入节点地址的网络前缀等于选取的网络前缀且接入节点地址的地理坐标距离移动设备M1最近;移动设备M1构建一个地址,该地址的网络前缀为选取的地址表项的接入节点地址域值的网络前缀,设备ID等于选取的地址表项的接入节点地址域值的接入节点ID,地理坐标和接入节点ID等于0;从变量G1选取最小的数据块ID;移动设备M1创建一个请求消息,该请求消息的源地址为选取的地址表项的移动设备地址域值,目的地址为构建的地址,负载为数据ID A1和选取的数据块ID,移动设备M1从该地址表项的接口ID所标识的接口发送该请求消息;从集合P1中删除选取的最小的网络前缀,从变量G1中删除选取的最小的数据块ID;

步骤505:判断变量G1是否为空,如果是,则执行步骤507,否则执行步骤506;

步骤506:判断集合P1是否为空,如果是,则执行步骤503,否则执行步骤504;

步骤507:目的接入路由器通过下游接口y1接收到该请求消息后,创建一个请求表项,该请求表项的数据ID和数据块ID等于该请求消息负载中的数据ID和数据块ID,接口ID等于x1,地址域值等于接收到的请求消息的源地址;如果目的接入路由器只有一个数据ID和数据块ID等于该请求消息负载中的数据ID和数据块ID且接口ID等于x1的请求表项,则执行步骤508,否则执行步骤516;

步骤508:目的接入路由器从上游接口发送数据请求消息,该数据请求消息中,源地址为目的接入路由器的上游接口的地址,目的地址为任播地址A1,负载为接收到的请求消息中的负载;

步骤509:接入路由器或者核心路由器从接口y2接收到数据请求消息后,如果存在一个请求表项,该请求表项的数据ID和数据块ID等于该请求消息负载中的数据ID和数据块ID且接口ID等于y2的请求表项,则执行步骤516,否则执行步骤510;

步骤510:从接口y2接收到数据请求消息的接入路由器或者核心路由器如果存在一个请求表项,该请求表项的数据ID和数据块ID等于该请求消息负载中的数据ID和数据块ID,则执行步骤511,否则执行步骤512;

步骤511:从接口y2接收到数据请求消息的接入路由器或者核心路由器创建一个请求表项,该请求表项的数据ID和数据块ID等于该请求消息负载中的数据ID和数据块ID,接口ID为y2,地址域值为0,执行步骤516;

步骤512:从接口y2接收到数据请求消息的接入路由器或者核心路由器创建一个请求表项,该请求表项的数据ID和数据块ID等于该请求消息负载中的数据ID和数据块ID,接口ID为y2,地址域值为0;如果接入路由器从接口y2接收到数据请求消息,则执行步骤514,否则执行步骤513;

步骤513:从接口y2接收到数据请求消息的核心路由器查看转发表,选择数据ID域值等于该数据请求消息中的数据ID且数据块ID集合包含该数据请求消息中的数据块ID的转发表项,从该转发表项的接口ID所标识的接口转发该数据请求消息,执行步骤509;

步骤514:从接口y2接收到数据请求消息的接入路由器查看转发表,选择数据ID域值等于该数据请求消息中的数据ID且数据块ID集合包含该数据请求消息中的数据块ID的转发表项,从该转发表项的接口ID所标识的接口转发该数据请求消息,最终该数据请求消息到达任播地址为A1的服务器;

步骤515:任播地址为A1的服务器发送一个数据响应消息,该数据响应消息的负载包括接收到的数据请求消息中的数据ID和数据块ID以及该数据ID和数据块ID所标识的数据块,源地址为接收到的数据请求消息的目的地址,目的地址为接收到的数据请求消息的源地址;

步骤516:如果接入路由器从上游接口接收到数据响应消息后,执行步骤518,否则执行步骤517;

步骤517:接收到数据响应消息的接入路由器或者核心路由器查看请求表,选择所有数据ID域值和数据块ID域值等于该数据响应消息中的数据ID和数据块ID的请求表项,对于每个选择的请求表项,该接入路由器或者核心路由器执行下述操作:从该请求表项的接口ID所标识的接口转发接收到的数据响应消息,从请求表中删除该请求表项,执行步骤516;

步骤518:从上游接口接收到数据响应消息的接入路由器查看请求表,选择所有数据ID域值和数据块ID域值等于该数据响应消息中的数据ID和数据块ID的请求表项,对于每个选择的请求表项,该接入路由器执行下述操作:构建一个响应消息,该响应消息的源地址为接收到的数据响应消息的源地址,目的地址为该请求表项的地址域值,负载为接收到的数据响应消息的负载,从该请求表项的接口ID所标识的接口发送该响应消息,从请求表中删除该请求表项;

步骤519:根据目的地址的地理坐标,最终目的移动设备M1接收到响应消息,目的移动设备M1保存响应消息的数据块;如果移动设备M1接收到所有H个数据块,则执行步骤520,否则执行步骤518;

步骤520:结束。