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

摘要:

权利要求书:

1.一种基于分布式的网络服务部署和发现的实现方法,其特征在于,所述网络包含路由器和节点,路由器包括中心路由器、边界路由器和接入路由器,所述网络中只有一个中心路由器;

一个中心路由器配置两个以上的有线接口,每个接口连接一个边界路由器;

一个边界路由器配置一个上游接口和两个以上的下游接口,上游接口和下游接口均为有线接口,上游接口连接中心路由器,下游接口连接接入路由器;

一个接入路由器配置一个有线接口和一个无线接口,有线接口与边界路由器相连,无线接口与节点相连;每个节点配置一个无线接口,与接入路由器相连;

所述网络划分为两个以上的边缘网络,一个边缘网络由一个网络ID标识;

一个边缘网络包含一个边界路由器和两个以上的接入路由器,接入路由器与对应的边界路由器相连;

一种与地理位置相关的数据类型由名称标识,一个名称由名称ID和坐标构成,名称ID标识数据的类型、坐标标识与数据相关的地理位置,一个接入路由器能够提供多种类型的数据,所述数据为预先设置,定义所述数据的名称中的坐标等于该接入路由器的坐标,一个接入路由器保存一个数据表,一个数据表项包含名称和数据,针对该接入路由器所能提供的每一种类型的数据DA0,该接入路由器创建一个数据表项,该数据表项的名称等于定义数据DA0的名称,数据域值等于数据DA0;

每个接入路由器的坐标具有网络唯一性;

每个边界路由器保存一个服务表,每个服务表项包含名称集合、接口ID、坐标和生命周期;

一个消息由消息ID标识;

一个注册消息包含消息ID、名称集合和坐标;

在接入路由器AR1与边界路由器ER1相连,边界路由器ER1位于边缘网络EN1中,接入路由器AR1所能提供的数据的名称集合为NS1的条件下,接入路由器AR1定期执行下述操作:步骤101:开始;

步骤102:接入路由器AR1从有线接口发送一个注册消息,该注册消息的名称集合为NS1,坐标为接入路由器AR1自己的坐标;

步骤103:从接口f1接收到注册消息的边界路由器ER1查看服务表,如果存在一个服务表项,该服务表项的接口ID等于f1,则将该服务表项的名称集合和坐标分别更新为该注册消息中的名称集合和坐标,将生命周期设置为最大值,否则创建一个服务表项,该服务表项的接口ID等于f1,该服务表项的名称集合和坐标分别设置为该注册消息中的名称集合和坐标,将生命周期设置为最大值;

步骤104:结束;

边界路由器ER1创建服务表后,选择一个服务表项E1,服务表项E1中坐标值中的横坐标xmax大于其他所有服务表项坐标值中的横坐标,选择一个服务表项E2,服务表项E2中坐标值中的横坐标xmin小于其他所有服务表项坐标值中的横坐标,选择一个服务表项E3,服务表项E3中坐标值中的纵坐标ymax大于其他所有服务表项坐标值中的纵坐标,选择一个服务表项E4,服务表项E4中坐标值中的纵坐标ymin小于其他所有服务表项坐标值中的纵坐标,边界路由器ER1将边缘网络EN1的网络ID设置为((xmax+xmin)/2,(ymax+ymin)/2)。

2.根据权利要求1所述的一种基于分布式的网络服务部署和发现的实现方法,其特征在于,中心路由器保存一个网络表,一个网络表项包含网络ID、接口ID和生命周期;

一个发布消息包含消息ID和网络ID;

在边界路由器ER1位于边缘网络EN1中,与中心路由器CR1相连的条件下,边界路由器ER1定期执行下述操作:步骤201:开始;

步骤202:边界路由器ER1从上游接口发送一个发布消息,该发布消息的消息ID为2,网络ID等于边缘网络EN1的网络ID;

步骤203:从接口f2接收到该发布消息的中心路由器CR1查看网络表,判断是否存在一个接口ID等于f2网络表项,是则执行步骤204,否则执行步骤205;

步骤204:从接口f2接收到该发布消息的中心路由器CR1选择一个网络表项,该网络表项的接口ID等于f2,将该网络表项的网络ID更新为该发布消息中的网络ID,将生命周期设置为最大值,执行步骤206;

步骤205:从接口f2接收到该发布消息的中心路由器CR1创建一个网络表项,该网络表项的接口ID等于f2,将该网络表项的网络ID设置为该发布消息中的网络ID,将生命周期设置为最大值;

步骤206:结束。

3.根据权利要求2所述的一种基于分布式的网络服务部署和发现的实现方法,其特征在于,中心路由器、边界路由器以及接入路由器分别保存一个请求表,一个请求表项包含接口ID和名称;

一个请求消息包含消息ID和名称;

一个响应消息包含消息ID、名称和数据;

在节点D1与接入路由器AR1链接,接入路由器AR1与边界路由器ER1连接,边界路由器ER1位于边缘网络EN1,边界路由器ER1与中心路由器CR1相连,数据DA1由名称NA1定义的条件下,如果数据DA1大于阈值TH0,节点D1则通过下述过程获取数据DA1:步骤301:开始;

步骤302:节点D1发送一个请求消息,该请求消息的消息ID为3,名称等于NA1;

步骤303:从接口x1接收到该请求消息的接入路由器AR1查看数据表,判断是否存在一个数据表项,该数据表项的名称等于该请求消息中的名称,是则执行步骤304,否则执行步骤305;

步骤304:从接口x1接收到该请求消息的接入路由器AR1选择一个数据表项,该数据表项的名称等于该请求消息中的名称,从接口x1发送一个响应消息,该响应消息的消息ID为

4,名称和数据分别等于该数据表项中的名称和数据,执行步骤315;

步骤305:从接口x1接收到该请求消息的接入路由器AR1查看请求表,判断是否存在一个请求表项,该请求表项的接口ID等于x1且名称等于该请求消息中的名称,是则执行步骤

315,否则执行步骤306;

步骤306:从接口x1接收到该请求消息的接入路由器AR1创建一个请求表项,该请求表项的接口ID等于x1且名称等于该请求消息中的名称,如果接入路由器AR1只存在一个名称等于该请求消息中的名称的请求表项,则执行步骤307,否则执行步骤315;

步骤307:从接口x1接收到该请求消息的接入路由器AR1从有线接口转发该请求消息;

步骤308:从接口x2接收到该请求消息的边界路由器查看请求表,判断是否存在一个请求表项,该请求表项的接口ID等于x2且名称等于该请求消息中的名称,则执行步骤315,否则执行步骤309;

步骤309:从接口x2接收到该请求消息的边界路由器创建一个请求表项,该请求表项的接口ID等于x2且名称等于该请求消息中的名称,如果边界路由器只存在一个名称等于该请求消息中的名称的请求表项,则执行步骤310,否则执行步骤315;

步骤310:从接口x2接收到该请求消息的边界路由器判断是否存在一个服务表项,该服务表项的名称集合中包含该请求消息中的名称,是则执行步骤311,否则执行步骤312;

步骤311:从接口x2接收到该请求消息的边界路由器选中一个服务表项,该服务表项的名称集合中包含该请求消息中的名称,从该服务表项的接口ID所标识的接口转发该请求消息,从接口x4接收到该请求消息的接入路由器选择一个数据表项,该数据表项的名称等于该请求消息中的名称,从接口x4发送一个响应消息,该响应消息的消息ID为4,名称和数据分别等于该数据表项中的名称和数据,执行步骤315;

步骤312:从接口x2接收到该请求消息的边界路由器从上游接口转发该请求消息,中心路由器CR1从接口x3接收到该请求消息后,查看请求表,如果存在一个请求表项,该请求表项的接口ID等于x3且名称等于该请求消息中的名称,则执行步骤315,否则执行步骤313;

步骤313:从接口x3接收到该请求消息的中心路由器CR1创建一个请求表项,该请求表项的接口ID等于x3且名称等于该请求消息中的名称,如果中心路由器CR1只存在一个名称等于该请求消息中的名称的请求表项,则执行步骤314,否则执行步骤315;

步骤314:从接口x3接收到该请求消息的中心路由器CR1选择一个网络表项,该网络表项的网络ID与该请求消息中名称中的坐标之间的距离最近,从该网络表项的接口ID所标识的接口转发该请求消息,执行步骤308;

步骤315:如果节点接收到该响应消息,则执行步骤317,否则执行步骤316;

步骤316:接收到该响应消息的路由器选择所有名称等于该响应消息中名称的请求表项,针对每个请求表项,从该请求表项的接口ID所标识的接口转发该响应消息,删除该请求表项,执行步骤315;

步骤317:接收到响应消息的节点保存该响应消息中的数据;

步骤318:结束。

4.根据权利要求3所述的一种基于分布式的网络服务部署和发现的实现方法,其特征在于,一个节点由一个地址标识、一个地址包含前缀和接口ID集合;

一个查询消息包含消息ID、地址和名称;

一个数据消息包含消息ID、地址、名称和数据;

在节点D1与接入路由器AR1链接,接入路由器AR1与边界路由器ER1连接,边界路由器ER1位于边缘网络EN1,边界路由器ER1与中心路由器CR1相连,数据DA1由名称NA1定义的条件下,如果数据DA1不大于阈值TH0,节点D1则通过下述过程获取数据DA1:步骤401:开始;

步骤402:节点D1构建一个地址,该地址的前缀和接口ID集合均为空,节点D1发送一个查询消息,该查询消息的消息ID为5,地址等于构建的地址,名称等于NA1;

步骤403:从接口y1接收到该查询消息的接入路由器AR1查看数据表,判断是否存在一个数据表项,该数据表项的名称等于该查询消息中的名称,是则执行步骤404,否则执行步骤405;

步骤404:从接口y1接收到该查询消息的接入路由器AR1选择一个数据表项,该数据表项的名称等于该查询消息中的名称,从接口y1发送一个数据消息,该数据消息的消息ID为

6,名称和地址分别等于该查询消息中的名称和地址,数据等于该数据表项中的数据,执行步骤409;

步骤405:从接口y1接收到该查询消息的接入路由器AR1将y1加入到查询消息中地址的接口ID集合中并作为最后一个元素,从有线接口转发该查询消息;

步骤406:从接口y2接收到该查询消息的边界路由器将y2加入到查询消息中地址的接口ID集合中并作为最后一个元素,判断是否存在一个服务表项,该服务表项的名称集合中包含该查询消息中的名称,是则执行步骤407,否则执行步骤408;

步骤407:从接口y2接收到该查询消息的边界路由器选中一个服务表项,该服务表项的名称集合中包含该查询消息中的名称,从该服务表项的接口ID所标识的接口转发该查询消息,从接口y4接收到该查询消息的接入路由器选择一个数据表项,该数据表项的名称等于该查询消息中的名称,从接口y4发送一个数据消息,该数据消息的消息ID为6,名称和地址分别等于该查询消息中的名称和地址,数据等于该数据表项中的数据,执行步骤409;

步骤408:从接口y2接收到该查询消息的边界路由器从上游接口转发该查询消息,中心路由器CR1从接口y3接收到该查询消息后,选择一个网络表项,该网络表项的接口ID等于y3,将该查询消息中地址的前缀设置为该网络表项的网络ID,中心路由器CR1选中一个网络表项,该网络表项的网络ID与该查询消息中名称的坐标之间的距离最近,从该网络表项的接口ID所标识的接口转发该查询消息,执行步骤406;

步骤409:如果节点D1接收到该数据消息,则执行步骤413,否则执行步骤410;

步骤410:如果中心路由器CR1接收到该数据消息,则执行步骤411,否则执行步骤412;

步骤411:接收到该数据消息的中心路由器CR1选择一个网络表项,该网络表项的网络ID等于该数据消息中地址的前缀,从该网络表项的接口ID所标识的接口转发该数据消息,执行步骤409;

步骤412:接收到该数据消息的边界路由器或者接入路由器选中一个接口,该接口的接口ID等于该数据消息中地址的接口ID集合中的最后一个元素,从该数据消息中地址的接口ID集合中删除最后一个元素,从选中的接口转发该数据消息,执行步骤409;

步骤413:接收到该数据消息的节点D1保存该数据消息中的数据;

步骤414:结束。