首页 > 专利 > 常熟理工学院 > 一种高效的网络通信方法专利详情

一种高效的网络通信方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2018-03-21
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2018-09-11
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2020-08-18
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2038-03-21
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201810236536.1 申请日 2018-03-21
公开/公告号 CN108418749B 公开/公告日 2020-08-18
授权日 2020-08-18 预估到期日 2038-03-21
申请年 2018年 公开/公告年 2020年
缴费截止日
分类号 H04L12/701H04L12/721H04L12/727H04L29/08 主分类号 H04L12/701
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 0
权利要求数量 1 非专利引证数量 1
引用专利数量 1 被引证专利数量 0
非专利引证 1、2013.12.03王晓喃等.车载网移动切换方案《.电子科技大学学报》.2013,全文. Wang xiaonan等.Addressing-BasedRouting Optimization for 6LoWPAN WSN inVehicular Scenario《.IEEE SensorsJournal》.2016,全文. Wang xiaonan.location-based IPv6address configuration for vehicularnetworks《.Journal of Network and SystemsManagement》.2016,全文.;
引用专利 US8599858B 被引证专利
专利权维持 4 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 常熟理工学院 当前专利权人 常熟理工学院
发明人 王晓喃 第一发明人 王晓喃
地址 江苏省苏州市常熟市常熟理工学院(东南校区)计算机科学与工程学院 邮编 215500
申请人数量 1 发明人数量 1
申请人所在省 江苏省 申请人所在市 江苏省苏州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
江苏圣典律师事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
胡建华
摘要
本发明提供了一种高效的网络通信方法,所述网络包括互联骨干网和两个以上的数据网络,数据网络包括一个骨干网络和两个以上的子网,骨干网络包括数据路由器构成,一个子网包括一个普通路由器和两个以上的节点构成,普通路由器即为接入路由器,其作用是将子网连接到骨干网络。节点通过本发明提供的网络通信方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明可应用于农业工程化、智能医疗等诸多领域,具有广泛的应用前景。
  • 摘要附图
    一种高效的网络通信方法
  • 说明书附图:图1
    一种高效的网络通信方法
  • 说明书附图:图2
    一种高效的网络通信方法
  • 说明书附图:图3
    一种高效的网络通信方法
  • 说明书附图:图4
    一种高效的网络通信方法
  • 说明书附图:图5
    一种高效的网络通信方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2020-08-18 授权
2 2018-09-11 实质审查的生效 IPC(主分类): H04L 12/701 专利申请号: 201810236536.1 申请日: 2018.03.21
3 2018-08-17 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种高效的网络通信方法,其特征在于,所述网络包括互联骨干网和两个以上的数据网络,数据网络包括一个骨干网络和两个以上的子网,骨干网络包括数据路由器构成,一个子网包括一个普通路由器和两个以上的节点构成,普通路由器即为接入路由器,其作用是将子网连接到骨干网络;在骨干网络中,包括一个数据路由器与互联骨干网链路相连,该数据路由器称为代理路由器;代理路由器支持数据网网络和互联骨干网所使用的协议;
一个节点配置一个接口,节点与所在子网中的普通路由器链路相连,在一个子网中,普通路由器配置一个上游接口和两个以上的下游接口,该上游接口与一个数据路由器相连,每个下游接口与一个节点相连;一个数据路由器配置两个以上的接口;代理路由器的一个接口与互联骨干网链路相连,该接口的IP地址预先设置,该代理路由器的其它接口与普通路由器或者数据路由器链路相连;不作为代理路由器的数据路由器的每个接口与数据路由器或者普通路由器链路相连;
一个子网中,普通路由器由名称前缀唯一标识,该名称前缀预先设置,该子网由普通路由器的名称前缀唯一标识;每一个节点由一个节点ID唯一标识,该节点ID具有前缀唯一性;
节点使用数据地址和消息实现通信;如果目的节点在数据网络中,数据地址则由名称前缀、节点ID,协议以及序列号构成;如果目的节点在互联骨干网中,数据地址由名称前缀、IP地址,协议以及序列号构成;
所述方法中消息包括数据地址域、消息类型域和负载域;消息类型域值如下所示:
消息类型 消息类型值
代理路由器消息 1
路由消息 2
命令消息 3
确认消息 4
一个普通路由器和一个数据路由器维护一个代理路由器表,一个代理路由器表项由接口域和生命周期域构成;代理路由器R1启动后,定期执行下述操作创建或者更新代理路由器表:
步骤101:开始;
步骤102:代理路由器R1定期从除了与互联骨干网相连的接口之外的每个接口发送代理路由器消息,该代理路由器消息中的数据地址中的名称前缀、节点ID以及协议为空,序列号为随机数,负载为空,消息类型为1;
步骤103:如果数据路由器从自己的接口f1接收到代理路由器消息,则执行步骤104,否则执行步骤108;
步骤104:从自己的接口f1接收到代理路由器消息的数据路由器查看代理路由器消息,如果已经接收到具有相同序列号的代理路由器消息,则丢弃该代理路由器消息并执行步骤
111,否则执行步骤105;
步骤105:从自己的接口f1接收到代理路由器消息的数据路由器查看代理路由器表,如果存在一个代理路由器表项,该代理路由器表项的接口域值为f1,则执行步骤106,否则执行步骤107;
步骤106:从自己的接口f1接收到代理路由器消息的数据路由器选中接口域值为f1的代理路由器表项,将该代理路由器表项的生命周期设置为最大值,从除了接口f1以外的所有接口转发接收到的代理路由器消息,执行步骤103;
步骤107:从自己的接口f1接收到代理路由器消息的数据路由器创建一个代理路由器表项,该代理路由器表项的接口域值为f1,生命周期域值为最大值,从除了接口f1以外的所有接口转发接收到的代理路由器消息,执行步骤103;
步骤108:普通路由器从自己的接口f2接收到代理路由器消息,如果存在一个代理路由器表项,该代理路由器表项的接口域值为f2,则执行步骤109,否则执行步骤110;
步骤109:从自己的接口f2接收到代理路由器消息的普通路由器选中接口域值为f2的代理路由器表项,将该代理路由器表项的生命周期设置为最大值,执行步骤111;
步骤110:从自己的接口f2接收到代理路由器消息的普通路由器创建一个代理路由器表项,该代理路由器表项的接口域值为f2,生命周期域值为最大值;
步骤111:结束;
如果数据路由器或者普通路由器检测到一个代理路由器表项的生命周期衰减为0,则从代理路由器表中删除该代理路由器表项;
一个普通路由器和一个数据路由器各自维护一个路由表,一个路由表项包括接口域、名称前缀域、设备ID域和生命周期域;
普通路由器C1启动后,定期执行下述操作创建或者更新路由表:
步骤201:开始;
步骤202:普通路由器C1构建一个数据地址,该数据地址的名称前缀为普通路由器C1的名称前缀,协议和节点ID为空,序列号为随机数,普通路由器C1定期从上游接口发送路由消息,该路由消息中的数据地址为构建的数据地址,消息类型为2,负载为空;
步骤203:如果数据路由器从自己的接口y1接收到路由消息,则执行步骤204,否则执行步骤208;
步骤204:从自己的接口y1接收到路由消息的数据路由器查看路由消息,如果已经接收到具有相同序列号的路由消息,则丢弃该消息并执行步骤211,否则执行步骤205;
步骤205:从自己的接口y1接收到路由消息的数据路由器查看路由表,如果存在一个路由表项,该路由表项的名称前缀等于接收到的路由消息的数据地址的名称前缀且接口域值等于y1,则执行步骤206,否则执行步骤207;
步骤206:从自己的接口y1接收到路由消息的数据路由器选中名称前缀等于接收到的路由消息的数据地址的名称前缀且接口域值为y1的路由表项,将该路由表项的生命周期设置为最大值,从除了接口y1以外的所有接口转发接收到的路由消息,执行步骤203;
步骤207:从自己的接口y1接收到路由消息的数据路由器创建一个路由表项,该路由表项的名称前缀等于接收到的路由消息的数据地址的名称前缀,设备ID域值为空,接口域值为y1,生命周期域值为最大值,数据路由器从除了接口y1以外的所有接口转发接收到的路由消息,执行步骤203;
步骤208:普通路由器从自己的接口y2接收到路由消息,如果存在一个路由表项,该路由表项的名称前缀等于接收到的路由消息的数据地址的名称前缀,且接口域值为y2,则执行步骤209,否则执行步骤210;
步骤209:从自己的接口y2接收到路由消息的普通路由器查看路由表,选中名称前缀等于接收到的路由消息的数据地址的名称前缀且接口域值为y2的路由表项,将该路由表项的生命周期设置为最大值,执行步骤211;
步骤210:从自己的接口y2接收到路由消息的普通路由器创建一个路由表项,该路由表项的名称前缀等于接收到的路由消息的数据地址的名称前缀,接口域值为y2,设备ID域值为空,生命周期域值为最大值;
步骤211:结束;
节点N启动后,定期执行下述操作创建或者更新路由表:
步骤301:开始;
步骤302:节点N构建一个数据地址,该数据地址的名称前缀为空,协议为空,节点ID为节点N的节点ID,序列号为随机数,节点N定期发送路由消息,该路由消息中的数据地址为构建的数据地址,消息类型为2,负载为空;
步骤303:与节点N连接的普通路由器从自己的接口y3接收到路由消息后,查看路由表,如果存在一个路由表项,该路由表项的节点ID等于接收到的路由消息的数据地址的节点ID且接口ID为y3,则执行步骤304,否则执行步骤305;
步骤304:从自己的接口y3接收到路由消息的普通路由器选中节点ID等于接收到的路由消息的数据地址的节点ID且接口域值为y3的路由表项,将该路由表项的生命周期设置为最大值,执行步骤306;
步骤305:从自己的接口y3接收到路由消息的普通路由器创建一个路由表项,该路由表项的名称前缀为空,节点ID等于接收到的路由消息的数据地址的节点ID,接口域值为y3,生命周期域值为最大值;
步骤306:结束;
如果数据路由器或者普通路由器检测到一个路由表项的生命周期衰减为0,则从路由表中删除该路由表项;
数据网络中的节点与互联网中的节点采用协议进行通信;协议的类型定义了通信内容;在所有协议中,第一条命令为启动,最后一条命令为终止;命令是消息的负载;
每个普通路由器和数据路由器各自维护一个路径表,一个路径表项包含数据地址域,接口域和生命周期域;
在节点N1和节点N2位于数据网络中,节点N1与普通路由器R1相连,节点N2与普通路由器R2相连,普通路由器R1的名称前缀为NP1,普通路由器R2的名称前缀为NP2的条件下,节点N1利用协议P1通过下述过程实现与节点N2的通信:
步骤401:开始;
步骤402:节点N1构建一个数据地址,该数据地址中,名称前缀为名称前缀NP2,节点ID为节点N1的节点ID,协议为P1,序列号为随机数,节点N1发送命令消息,该命令消息的数据地址为构建的数据地址,消息类型为3,负载为启动命令;
步骤403:普通路由器R1从自己的接口f1接收到命令消息后,查看路径表,如果存在一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,则执行步骤404,否则执行步骤405;
步骤404:从自己的接口f1接收到命令消息的普通路由器R1选择数据地址域值等于接收到的命令消息中的数据地址域值,将该路径表项的生命周期设置为最大值,执行步骤
406;
步骤405:普通路由器R1创建一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,接口域值等于f1,生命周期设置为最大值;
步骤406:普通路由器R1查看路由表,选择一个路由表项,该路由表项的名称前缀域值等于接收到的命令消息数据地址中的名称前缀,然后从该路由表项的接口域转发接收到的命令消息;
步骤407:如果普通路由器R2接收到命令消息,则执行步骤408,否则执行步骤412;
步骤408:普通路由器R2从自己的接口f2接收到命令消息,查看路径表,如果存在一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,则执行步骤409,否则执行步骤410;
步骤409:从自己的接口f2接收到命令消息的普通路由器R2选择数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,将该路径表项的生命周期设置为最大值,执行步骤411;
步骤410:普通路由器R2创建一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,接口域值等于f2,生命周期设置为最大值;
步骤411:普通路由器R2查看路由表,选择一个路由表项,该路由表项的节点ID域值等于接收到的命令消息数据地址中的节点ID,然后从该路由表项的接口域转发接收到的命令消息,执行步骤416;
步骤412:数据路由器从自己的接口f3接收到命令消息,查看路径表,如果存在一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,则执行步骤413,否则执行步骤414;
步骤413:从自己的接口f3接收到命令消息的数据路由器选择数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,将该路径表项的生命周期设置为最大值,执行步骤415;
步骤414:从自己的接口f3接收到命令消息的数据路由器创建一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,接口域值等于f3,生命周期设置为最大值;
步骤415:从自己的接口f3接收到命令消息的数据路由器查看路由表,选择一个路由表项,该路由表项的名称前缀域值等于接收到的命令消息数据地址中的名称前缀,然后从该路由表项的接口域转发接收到的命令消息,执行步骤407;
步骤416:节点N2收到命令消息后,如果命令消息负载中为启动命令,则执行步骤417,否则执行步骤418;
步骤417:节点N2执行启动命令并发送一个确认消息,该确认消息的数据名称等于接收到的命令消息中的数据名称,消息类型为4,负载为执行启动命令的响应数据,执行步骤
420;
步骤418:节点N2收到命令消息后,如果命令消息负载中为结束命令,则执行步骤425,否则执行步骤419;
步骤419:节点N2执行接收到的命令消息中的命令并发送一个确认消息,该确认消息的数据名称等于接收到的命令消息中的数据名称,消息类型为4,负载为执行命令的响应数据;
步骤420:普通路由器R2接收到确认消息后,查看路径表,选择数据地址等于确认消息的数据地址的路径表项,并该路径表项的接口域值转发接收到的确认消息;
步骤421:如果普通路由器R1接收到确认消息,则执行步骤423,否则执行步骤422;
步骤422:数据路由器接收到确认消息后,查看路径表,选择数据地址等于确认消息的数据地址的路径表项,并通过该路径表项的接口域值转发接收到的确认消息,执行步骤
421;
步骤423:普通路由器R1接收到确认消息后,查看路径表,选择数据地址等于确认消息的数据地址的路径表项,并通过该路径表项的接口域值转发接收到的确认消息;
步骤424:节点N1接收到确认消息后,保存确认消息中的响应数据,发送一个命令消息,该命令消息的数据地址等于接收到的确认消息中的数据地址,消息类型为3,如果节点N1需要结束通信,则该命令消息的负载为终止命令,否则为节点N1需要节点N2执行的命令,执行步骤403;
步骤425:结束;
如果一个路径表项的生命周期衰减为0,则从路径表中删除该路径表项;
代理路由器维护一个服务表,每个服务表项包含数据地址域、源端口域以及目的端口域;
在互联骨干网中,每一种服务对应一个端口号;
如果节点N1位于数据网络中,节点N1与普通路由器R1相连,普通路由器R1的名称前缀为NP1,节点N3位于互联骨干网中,节点N1利用协议P3与节点N3进行通信,协议P3在互联骨干网中对应的端口号为b3,节点N1通过下述过程实现与节点N3的通信:
步骤501:开始;
步骤502:节点N1构建一个数据地址,该数据地址中,名称前缀为空,IP地址为节点N3的IP地址,协议为P3,序列号为随机数;节点N1发送命令消息,该命令消息的数据地址为构建的数据地址,消息类型为3,负载为启动命令;
步骤503:普通路由器R1从自己的接口x1接收到命令消息后,查看路径表,如果存在一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,则执行步骤504,否则执行步骤505;
步骤504:从自己的接口x1接收到命令消息的普通路由器R1选择数据地址域值等于接收到的命令消息中的数据地址域值,将该路径表项的生命周期设置为最大值,执行步骤
506;
步骤505:普通路由器R1创建一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,接口域值等于x1,生命周期设置为最大值;
步骤506:普通路由器R1查看代理路由器表,选择一个代理路由器表项,从该代理路由器表项的接口域转发接收到的命令消息;
步骤507:如果代理路由器接收到命令消息,则执行步骤512,否则执行步骤508;
步骤508:数据路由器从自己的接口x2接收到命令消息,查看路径表,如果存在一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,则执行步骤509,否则执行步骤510;
步骤509:从自己的接口x2接收到命令消息的数据路由器选择数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,将该路径表项的生命周期设置为最大值,执行步骤511;
步骤510:从自己的接口x2接收到命令消息的数据路由器创建一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,接口域值等于x2,生命周期设置为最大值;
步骤511:从自己的接口x2接收到命令消息的数据路由器查看代理路由器表,选择一个代理路由器表项,然后从该代理路由器表项的接口域转发接收到的命令消息,执行步骤
507;
步骤512:代理路由器从自己的接口x3接收到命令消息,查看路径表,如果存在一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,则执行步骤513,否则执行步骤514;
步骤513:从自己的接口x3接收到命令消息的代理路由器选择数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,将该路径表项的生命周期设置为最大值,执行步骤515;
步骤514:代理路由器创建一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,接口域值等于x3,生命周期设置为最大值;
步骤515:代理路由器接收到命令消息后,如果命令消息负载中为启动命令,则执行步骤516,否则执行步骤517;
步骤516:代理路由器创建一个端口s3,创建一个服务表,该服务表的数据地址为接收到的命令消息中的数据地址,源端口为s3,目的端口为b3;代理路由器通过与互联骨干网相连的接口发送一条消息,该消息的源地址为该接口的IP地址,目的地址为接收到的命令消息数据地址的IP地址,目的端口为b3,源端口为s3,负载为接收到的命令消息中的负载,执行步骤520;
步骤517:代理路由器接收到命令消息后,如果命令消息负载中为终止命令,则执行步骤518,否则执行步骤519;
步骤518:代理路由器查看服务表,选择一个服务表项,该服务表项的数据地址等于接收到的命令消息中的数据地址;代理路由器通过与互联骨干网相连的接口发送一条IP消息,该消息的源地址为该接口的IP地址,目的地址为接收到的命令消息数据地址的IP地址,目的端口和源端口为选中的服务表项的目的端口和源端口,负载为接收到的命令消息中的负载,删除选中的服务表项,执行步骤520;
步骤519:代理路由器查看服务表,选择一个服务表项,该服务表项的数据地址等于接收到的命令消息中的数据地址;代理路由器通过与互联骨干网相连的接口发送一条消息,该消息的源地址为该接口的IP地址,目的地址为接收到的命令消息数据地址的IP地址,目的端口和源端口为选中的服务表项的目的端口和源端口,负载为接收到的命令消息中的负载;
步骤520:该IP消息通过互联骨干网到达节点N3,该消息即为步骤518中代理路由器发送的消息,节点N3收到命令消息后,如果命令消息负载中为启动命令,则执行步骤521,否则执行步骤522;
步骤521:节点N3执行启动命令并发送一个IP消息,该IP消息的源地址和源端口分别为接收到的IP消息的目的地址和目的端口,该IP消息的目的地址和目的端口分别为接收到的IP消息的源地址和源端口,负载为执行启动命令的响应数据,执行步骤524;
步骤522:节点N3收到命令消息后,如果命令消息负载中为终止命令,则执行步骤529,否则执行步骤523;
步骤523:节点N3执行接收到的命令消息中的命令并发送一个IP消息,该IP消息的源地址和源端口分别为接收到的IP消息的目的地址和目的端口,该IP消息的目的地址和目的端口分别为接收到的IP消息的源地址和源端口,负载为执行命令的响应数据;
步骤524:IP消息通过互联骨干网到达代理路由器,代理路由器查看服务表,选择一个服务表项,该服务表项的源端口和目的端口分别等于接收到的IP消息的目的端口和源端口,然后代理路由器创建一个确认消息,该确认消息的数据名称等于所选的服务表项的数据名称,消息类型为4,负载为接收到的IP消息的负载;代理服务器查看路径表,选择数据地址等于创建的确认消息的数据地址的路径表项,并从该路径表项的接口域值转发该确认消息;
步骤525:如果普通路由器R1接收到确认消息,则执行步骤527,否则执行步骤526;
步骤526:数据路由器接收到确认消息后,查看路径表,选择数据地址等于接收到的确认消息的数据地址的路径表项,并通过该路径表项的接口域值转发接收到的确认消息,执行步骤525;
步骤527:普通路由器R1接收到确认消息后,查看路径表,选择数据地址等于确认消息的数据地址的路径表项,并通过该路径表项的接口域值转发接收到的确认消息;
步骤528:节点N1接收到确认消息后,保存确认消息中的响应数据,发送一个命令消息,该命令消息的数据地址等于接收到的确认消息中的数据地址,消息类型为3,如果节点N1需要结束通信,则该命令消息的负载为终止命令,否则为节点N1需要节点N3执行的命令,执行步骤503;
步骤529:结束。
说明书

技术领域

[0001] 本发明涉及一种通信方法,尤其涉及的是一种高效的网络通信方法。

背景技术

[0002] 网络已经成为人类生活中不可缺少的一部分,它提供多种数据服务,因此降低数据通信延迟尤为重要。近年来,很多研究工作致力于网络的数据通信工作,以便使人们能够快速获取网络服务。随着移动网络技术的发展,网络数据通信技术会进一步提高服务质量。
[0003] 目前,网络数据通信延迟和代价都比较大,降低了网络服务性能。因此,如何降低网络数据通信的延迟和代价成为近年来研究的热点问题。

发明内容

[0004] 发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种高效的网络通信方法。
[0005] 技术方案:本发明公开了一种高效的网络通信方法,所述网络包括互联骨干网和两个以上的数据网络,数据网络包括一个骨干网络和两个以上的子网,骨干网络包括数据路由器构成,一个子网包括一个普通路由器和两个以上的节点构成,普通路由器即为接入路由器,其作用是将子网连接到骨干网络;在骨干网络中,包括一个数据路由器与互联骨干网链路相连,该数据路由器称为代理路由器;代理路由器支持数据网网络和互联骨干网所使用的协议;
[0006] 一个节点配置一个接口,节点与所在子网中的普通路由器链路相连,在一个子网中,普通路由器配置一个上游接口和两个以上的下游接口,该上游接口与一个数据路由器相连,每个下游接口与一个节点相连;一个数据路由器配置两个以上的接口;代理路由器的一个接口与互联骨干网链路相连,该接口的IP地址预先设置,例如abcd:1:efad:a::1/64,该代理路由器的其它接口与普通路由器或者数据路由器链路相连;不作为代理路由器的数据路由器的每个接口与数据路由器或者普通路由器链路相连;
[0007] 一个子网中,普通路由器由名称前缀唯一标识,该名称前缀预先设置,例如China/JS/Cslg/N6/,该子网由普通路由器的名称前缀唯一标识;每一个节点由一个节点ID唯一标识,该节点ID具有前缀唯一性,例如email地址;
[0008] 节点使用数据地址和消息实现通信;如果目的节点在数据网络中,数据地址则由名称前缀、节点ID,协议以及序列号构成,例如协议为pop3协议,命令为Start,User,Finish等;如果目的节点在互联骨干网中,数据地址由名称前缀、IP地址,协议以及序列号构成;
[0009] 所述方法中消息包括数据地址域、消息类型域和负载域;消息类型域值如下所示:
[0010]
[0011]
[0012] 一个普通路由器和一个数据路由器维护一个代理路由器表,一个代理路由器表项由接口域和生命周期域构成;代理路由器R1启动后,定期执行下述操作创建或者更新代理路由器表:
[0013] 步骤101:开始;
[0014] 步骤102:代理路由器R1定期从除了与互联骨干网相连的接口之外的每个接口发送代理路由器消息,该代理路由器消息中的数据地址中的名称前缀、节点ID以及协议为空,序列号为随机数,负载为空,消息类型为1;
[0015] 步骤103:如果数据路由器从自己的接口f1接收到代理路由器消息,则执行步骤104,否则执行步骤108;
[0016] 步骤104:从自己的接口f1接收到代理路由器消息的数据路由器查看代理路由器消息,如果已经接收到具有相同序列号的代理路由器消息,则丢弃该代理路由器消息并执行步骤111,否则执行步骤105;
[0017] 步骤105:从自己的接口f1接收到代理路由器消息的数据路由器查看代理路由器表,如果存在一个代理路由器表项,该代理路由器表项的接口域值为f1,则执行步骤106,否则执行步骤107;
[0018] 步骤106:从自己的接口f1接收到代理路由器消息的数据路由器选中接口域值为f1的代理路由器表项,将该代理路由器表项的生命周期设置为最大值,从除了接口f1以外的所有接口转发接收到的代理路由器消息,执行步骤103;
[0019] 步骤107:从自己的接口f1接收到代理路由器消息的数据路由器创建一个代理路由器表项,该代理路由器表项的接口域值为f1,生命周期域值为最大值,从除了接口f1以外的所有接口转发接收到的代理路由器消息,执行步骤103;
[0020] 步骤108:普通路由器从自己的接口f2接收到代理路由器消息,如果存在一个代理路由器表项,该代理路由器表项的接口域值为f2,则执行步骤109,否则执行步骤110;
[0021] 步骤109:从自己的接口f2接收到代理路由器消息的普通路由器选中接口域值为f2的代理路由器表项,将该代理路由器表项的生命周期设置为最大值,执行步骤111;
[0022] 步骤110:从自己的接口f2接收到代理路由器消息的普通路由器创建一个代理路由器表项,该代理路由器表项的接口域值为f2,生命周期域值为最大值;
[0023] 步骤111:结束;
[0024] 如果数据路由器或者普通路由器检测到一个代理路由器表项的生命周期衰减为0,则从代理路由器表中删除该代理路由器表项。
[0025] 上述过程能够快速建立代理路由器表从而实现数据的快速获取。
[0026] 本发明所述方法中,一个普通路由器和一个数据路由器各自维护一个路由表,一个路由表项包括接口域、名称前缀域、设备ID域和生命周期域;
[0027] 普通路由器C1启动后,定期执行下述操作创建或者更新路由表:
[0028] 步骤201:开始;
[0029] 步骤202:普通路由器C1构建一个数据地址,该数据地址的名称前缀为普通路由器C1的名称前缀,协议和节点ID为空,序列号为随机数,普通路由器C1定期从上游接口发送路由消息,该路由消息中的数据地址为构建的数据地址,消息类型为2,负载为空;
[0030] 步骤203:如果数据路由器从自己的接口y1接收到路由消息,则执行步骤204,否则执行步骤208;
[0031] 步骤204:从自己的接口y1接收到路由消息的数据路由器查看路由消息,如果已经接收到具有相同序列号的路由消息,则丢弃该消息并执行步骤211,否则执行步骤205;
[0032] 步骤205:从自己的接口y1接收到路由消息的数据路由器查看路由表,如果存在一个路由表项,该路由表项的名称前缀等于接收到的路由消息的数据地址的名称前缀且接口域值等于y1,则执行步骤206,否则执行步骤207;
[0033] 步骤206:从自己的接口y1接收到路由消息的数据路由器选中名称前缀等于接收到的路由消息的数据地址的名称前缀且接口域值为y1的路由表项,将该路由表项的生命周期设置为最大值,从除了接口y1以外的所有接口转发接收到的路由消息,执行步骤203;
[0034] 步骤207:从自己的接口y1接收到路由消息的数据路由器创建一个路由表项,该路由表项的名称前缀等于接收到的路由消息的数据地址的名称前缀,设备ID域值为空,接口域值为y1,生命周期域值为最大值,数据路由器从除了接口y1以外的所有接口转发接收到的路由消息,执行步骤203;
[0035] 步骤208:普通路由器从自己的接口y2接收到路由消息,如果存在一个路由表项,该路由表项的名称前缀等于接收到的路由消息的数据地址的名称前缀,且接口域值为y2,则执行步骤209,否则执行步骤210;
[0036] 步骤209:从自己的接口y2接收到路由消息的普通路由器查看路由表,选中名称前缀等于接收到的路由消息的数据地址的名称前缀且接口域值为y2的路由表项,将该路由表项的生命周期设置为最大值,执行步骤211;
[0037] 步骤210:从自己的接口y2接收到路由消息的普通路由器创建一个路由表项,该路由表项的名称前缀等于接收到的路由消息的数据地址的名称前缀,接口域值为y2,设备ID域值为空,生命周期域值为最大值;
[0038] 步骤211:结束。
[0039] 上述过程能够快速建立路由表从而实现数据的快速获取。
[0040] 本发明所述方法中,节点N启动后,定期执行下述操作创建或者更新路由表:
[0041] 步骤301:开始;
[0042] 步骤302:节点N构建一个数据地址,该数据地址的名称前缀为空,协议为空,节点ID为节点N的节点ID,序列号为随机数,节点N定期发送路由消息,该路由消息中的数据地址为构建的数据地址,消息类型为2,负载为空;
[0043] 步骤303:与节点N连接的普通路由器从自己的接口y3接收到路由消息后,查看路由表,如果存在一个路由表项,该路由表项的节点ID等于接收到的路由消息的数据地址的节点ID且接口ID为y3,则执行步骤304,否则执行步骤305;
[0044] 步骤304:从自己的接口y3接收到路由消息的普通路由器选中节点ID等于接收到的路由消息的数据地址的节点ID且接口域值为y3的路由表项,将该路由表项的生命周期设置为最大值,执行步骤306;
[0045] 步骤305:从自己的接口y3接收到路由消息的普通路由器创建一个路由表项,该路由表项的名称前缀为空,节点ID等于接收到的路由消息的数据地址的节点ID,接口域值为y3,生命周期域值为最大值;
[0046] 步骤306:结束;
[0047] 如果数据路由器或者普通路由器检测到一个路由表项的生命周期衰减为0,则从路由表中删除该路由表项。
[0048] 上述过程能够快速建立路由表从而实现数据的快速获取。
[0049] 本发明所述方法中,数据网络中的节点与互联网中的节点采用协议进行通信;协议的类型定义了通信内容;在所有协议中,第一条命令为启动,最后一条命令为终止;命令是消息的负载,例如步骤402;
[0050] 每个普通路由器和数据路由器各自维护一个路径表,一个路径表项包含数据地址域,接口域和生命周期域;
[0051] 在节点N1和节点N2位于数据网络中,节点N1与普通路由器R1相连,节点N2与普通路由器R2相连,普通路由器R1的名称前缀为NP1,普通路由器R2的名称前缀为NP2的条件下,节点N1利用协议P1通过下述过程实现与节点N2的通信:
[0052] 步骤401:开始;
[0053] 步骤402:节点N1构建一个数据地址,该数据地址中,名称前缀为名称前缀NP2,节点ID为节点N1的节点ID,协议为P1,序列号为随机数,节点N1发送命令消息,该命令消息的数据地址为构建的数据地址,消息类型为3,负载为启动命令;
[0054] 步骤403:普通路由器R1从自己的接口f1接收到命令消息后,查看路径表,如果存在一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,则执行步骤404,否则执行步骤405;
[0055] 步骤404:从自己的接口f1接收到命令消息的普通路由器R1选择数据地址域值等于接收到的命令消息中的数据地址域值,将该路径表项的生命周期设置为最大值,例如1s,执行步骤406;
[0056] 步骤405:普通路由器R1创建一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,接口域值等于f1,生命周期设置为最大值;
[0057] 步骤406:普通路由器R1查看路由表,选择一个路由表项,该路由表项的名称前缀域值等于接收到的命令消息数据地址中的名称前缀,然后从该路由表项的接口域转发接收到的命令消息;
[0058] 步骤407:如果普通路由器R2接收到命令消息,则执行步骤408,否则执行步骤412;
[0059] 步骤408:普通路由器R2从自己的接口f2接收到命令消息,查看路径表,如果存在一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,则执行步骤409,否则执行步骤410;
[0060] 步骤409:从自己的接口f2接收到命令消息的普通路由器R2选择数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,将该路径表项的生命周期设置为最大值,例如1s,执行步骤411;
[0061] 步骤410:普通路由器R2创建一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,接口域值等于f2,生命周期设置为最大值;
[0062] 步骤411:普通路由器R2查看路由表,选择一个路由表项,该路由表项的节点ID域值等于接收到的命令消息数据地址中的节点ID,然后从该路由表项的接口域转发接收到的命令消息,执行步骤416;
[0063] 步骤412:数据路由器从自己的接口f3接收到命令消息,查看路径表,如果存在一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,则执行步骤413,否则执行步骤414;
[0064] 步骤413:从自己的接口f3接收到命令消息的数据路由器选择数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,将该路径表项的生命周期设置为最大值,例如1s,执行步骤415;
[0065] 步骤414:从自己的接口f3接收到命令消息的数据路由器创建一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,接口域值等于f3,生命周期设置为最大值;
[0066] 步骤415:从自己的接口f3接收到命令消息的数据路由器查看路由表,选择一个路由表项,该路由表项的名称前缀域值等于接收到的命令消息数据地址中的名称前缀,然后从该路由表项的接口域转发接收到的命令消息,执行步骤407;
[0067] 步骤416:节点N2收到命令消息后,如果命令消息负载中为启动命令,则执行步骤417,否则执行步骤418;
[0068] 步骤417:节点N2执行启动命令并发送一个确认消息,该确认消息的数据名称等于接收到的命令消息中的数据名称,消息类型为4,负载为执行启动命令的响应数据,执行步骤420;
[0069] 步骤418:节点N2收到命令消息后,如果命令消息负载中为结束命令,则执行步骤425,否则执行步骤419;
[0070] 步骤419:节点N2执行接收到的命令消息中的命令并发送一个确认消息,该确认消息的数据名称等于接收到的命令消息中的数据名称,消息类型为4,负载为执行命令的响应数据;
[0071] 步骤420:普通路由器R2接收到确认消息后,查看路径表,选择数据地址等于确认消息的数据地址的路径表项,并该路径表项的接口域值转发接收到的确认消息;
[0072] 步骤421:如果普通路由器R1接收到确认消息,则执行步骤423,否则执行步骤422;
[0073] 步骤422:数据路由器接收到确认消息后,查看路径表,选择数据地址等于确认消息的数据地址的路径表项,并通过该路径表项的接口域值转发接收到的确认消息,执行步骤421;
[0074] 步骤423:普通路由器R1接收到确认消息后,查看路径表,选择数据地址等于确认消息的数据地址的路径表项,并通过该路径表项的接口域值转发接收到的确认消息;
[0075] 步骤424:节点N1接收到确认消息后,保存确认消息中的响应数据,发送一个命令消息,该命令消息的数据地址等于接收到的确认消息中的数据地址,消息类型为3,如果节点N1需要结束通信,则该命令消息的负载为终止命令,否则为节点N1需要节点N2执行的命令,执行步骤403;
[0076] 步骤425:结束;
[0077] 如果一个路径表项的生命周期衰减为0,则从路径表中删除该路径表项。
[0078] 节点通过上述过程能够快速获取数据。
[0079] 本发明所述方法中,代理路由器维护一个服务表,每个服务表项包含数据地址域、源端口域以及目的端口域;
[0080] 在互联骨干网中,每一种服务对应一个端口号,例如收取email协议pop3的端口号为110;
[0081] 如果节点N1位于数据网络中,节点N1与普通路由器R1相连,普通路由器R1的名称前缀为NP1,节点N3位于互联骨干网中,节点N1利用协议P3与节点N3进行通信,协议P3在互联骨干网中对应的端口号为b3,节点N1通过下述过程实现与节点N3的通信:
[0082] 步骤501:开始;
[0083] 步骤502:节点N1构建一个数据地址,该数据地址中,名称前缀为空,IP地址为节点N3的IP地址,协议为P3,序列号为随机数;节点N1发送命令消息,该命令消息的数据地址为构建的数据地址,消息类型为3,负载为启动命令;
[0084] 步骤503:普通路由器R1从自己的接口x1接收到命令消息后,查看路径表,如果存在一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,则执行步骤504,否则执行步骤505;
[0085] 步骤504:从自己的接口x1接收到命令消息的普通路由器R1选择数据地址域值等于接收到的命令消息中的数据地址域值,将该路径表项的生命周期设置为最大值,例如1s,执行步骤506;
[0086] 步骤505:普通路由器R1创建一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,接口域值等于x1,生命周期设置为最大值;
[0087] 步骤506:普通路由器R1查看代理路由器表,选择一个代理路由器表项,从该代理路由器表项的接口域转发接收到的命令消息;
[0088] 步骤507:如果代理路由器接收到命令消息,则执行步骤512,否则执行步骤508;
[0089] 步骤508:数据路由器从自己的接口x2接收到命令消息,查看路径表,如果存在一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,则执行步骤509,否则执行步骤510;
[0090] 步骤509:从自己的接口x2接收到命令消息的数据路由器选择数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,将该路径表项的生命周期设置为最大值,例如1s,执行步骤511;
[0091] 步骤510:从自己的接口x2接收到命令消息的数据路由器创建一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,接口域值等于x2,生命周期设置为最大值;
[0092] 步骤511:从自己的接口x2接收到命令消息的数据路由器查看代理路由器表,选择一个代理路由器表项,然后从该代理路由器表项的接口域转发接收到的命令消息,执行步骤507;
[0093] 步骤512:代理路由器从自己的接口x3接收到命令消息,查看路径表,如果存在一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,则执行步骤513,否则执行步骤514;
[0094] 步骤513:从自己的接口x3接收到命令消息的代理路由器选择数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,将该路径表项的生命周期设置为最大值,例如1s,执行步骤515;
[0095] 步骤514:代理路由器创建一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,接口域值等于x3,生命周期设置为最大值;
[0096] 步骤515:代理路由器接收到命令消息后,如果命令消息负载中为启动命令,则执行步骤516,否则执行步骤517;
[0097] 步骤516:代理路由器创建一个端口s3,创建一个服务表,该服务表的数据地址为接收到的命令消息中的数据地址,源端口为s3,目的端口为b3;代理路由器通过与互联骨干网相连的接口发送一条消息,该消息的源地址为该接口的IP地址,目的地址为接收到的命令消息数据地址的IP地址,目的端口为b3,源端口为b3,负载为接收到的命令消息中的负载,执行步骤520;
[0098] 步骤517:代理路由器接收到命令消息后,如果命令消息负载中为终止命令,则执行步骤518,否则执行步骤519;
[0099] 步骤518:代理路由器查看服务表,选择一个服务表项,该服务表项的数据地址等于接收到的命令消息中的数据地址;代理路由器通过与互联骨干网相连的接口发送一条IP消息,该消息的源地址为该接口的IP地址,目的地址为接收到的命令消息数据地址的IP地址,目的端口和源端口为选中的服务表项的目的端口和源端口,负载为接收到的命令消息中的负载,删除选中的服务表项,执行步骤520;
[0100] 步骤519:代理路由器查看服务表,选择一个服务表项,该服务表项的数据地址等于接收到的命令消息中的数据地址;代理路由器通过与互联骨干网相连的接口发送一条消息,该消息的源地址为该接口的IP地址,目的地址为接收到的命令消息数据地址的IP地址,目的端口和源端口为选中的服务表项的目的端口和源端口,负载为接收到的命令消息中的负载;
[0101] 步骤520:该IP消息通过互联骨干网到达节点N3,该消息即为步骤518中代理路由器发送的消息,节点N3收到命令消息后,如果命令消息负载中为启动命令,则执行步骤521,否则执行步骤522;
[0102] 步骤521:节点N3执行启动命令并发送一个IP消息,该IP消息的源地址和源端口分别为接收到的IP消息的目的地址和目的端口,该IP消息的目的地址和目的端口分别为接收到的IP消息的源地址和源端口,负载为执行启动命令的响应数据,执行步骤524;
[0103] 步骤522:节点N3收到命令消息后,如果命令消息负载中为终止命令,则执行步骤529,否则执行步骤523;
[0104] 步骤523:节点N3执行接收到的命令消息中的命令并发送一个IP消息,该IP消息的源地址和源端口分别为接收到的IP消息的目的地址和目的端口,该IP消息的目的地址和目的端口分别为接收到的IP消息的源地址和源端口,负载为执行命令的响应数据;
[0105] 步骤524:IP消息通过互联骨干网到达代理路由器,代理路由器查看服务表,选择一个服务表项,该服务表项的源端口和目的端口分别等于接收到的IP消息的目的端口和源端口,然后代理路由器创建一个确认消息,该确认消息的数据名称等于所选的服务表项的数据名称,消息类型为4,负载为接收到的IP消息的负载;代理服务器查看路径表,选择数据地址等于创建的确认消息的数据地址的路径表项,并从该路径表项的接口域值转发该确认消息;
[0106] 步骤525:如果普通路由器R1接收到确认消息,则执行步骤527,否则执行步骤526;
[0107] 步骤526:数据路由器接收到确认消息后,查看路径表,选择数据地址等于接收到的确认消息的数据地址的路径表项,并通过该路径表项的接口域值转发接收到的确认消息,执行步骤525;
[0108] 步骤527:普通路由器R1接收到确认消息后,查看路径表,选择数据地址等于确认消息的数据地址的路径表项,并通过该路径表项的接口域值转发接收到的确认消息;
[0109] 步骤528:节点N1接收到确认消息后,保存确认消息中的响应数据,发送一个命令消息,该命令消息的数据地址等于接收到的确认消息中的数据地址,消息类型为3,如果节点N1需要结束通信,则该命令消息的负载为终止命令,否则为节点N1需要节点N3执行的命令,执行步骤503;
[0110] 步骤529:结束。
[0111] 节点通过上述过程能够快速获取数据。
[0112] 有益效果:本发明提供了一种高效的网络通信方法,节点通过本发明提供的网络通信方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明可应用于农业工程化、智能医疗等诸多领域,具有广泛的应用前景。

附图说明

[0113] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0114] 图1为本发明所述的建立代理路由器流程示意图。
[0115] 图2为本发明所述普通路由器创建路由表流程示意图。
[0116] 图3为本发明所述节点创建路由表流程示意图。
[0117] 图4为本发明所述数据通信流程示意图。
[0118] 图5为本发明所述获取数据流程示意图。具体实施方式:
[0119] 本发明提供了一种高效的网络通信方法,节点通过本发明提供的网络通信方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明可应用于农业工程化、智能医疗等诸多领域,具有广泛的应用前景。
[0120] 图1为本发明所述的建立代理路由器流程示意图。所述网络包括互联骨干网和两个以上的数据网络,数据网络包括一个骨干网络和两个以上的子网,骨干网络包括数据路由器构成,一个子网包括一个普通路由器和两个以上的节点构成,普通路由器即为接入路由器,其作用是将子网连接到骨干网络;在骨干网络中,包括一个数据路由器与互联骨干网链路相连,该数据路由器称为代理路由器;代理路由器支持数据网网络和互联骨干网所使用的协议;
[0121] 一个节点配置一个接口,节点与所在子网中的普通路由器链路相连,在一个子网中,普通路由器配置一个上游接口和两个以上的下游接口,该上游接口与一个数据路由器相连,每个下游接口与一个节点相连;一个数据路由器配置两个以上的接口;代理路由器的一个接口与互联骨干网链路相连,该接口的IP地址预先设置,例如abcd:1:efad:a::1/64,该代理路由器的其它接口与普通路由器或者数据路由器链路相连;不作为代理路由器的数据路由器的每个接口与数据路由器或者普通路由器链路相连;
[0122] 一个子网中,普通路由器由名称前缀唯一标识,该名称前缀预先设置,例如China/JS/Cslg/N6/,该子网由普通路由器的名称前缀唯一标识;每一个节点由一个节点ID唯一标识,该节点ID具有前缀唯一性,例如email地址;
[0123] 节点使用数据地址和消息实现通信;如果目的节点在数据网络中,数据地址则由名称前缀、节点ID,协议以及序列号构成,例如协议为pop3协议,命令为Start,User,Finish等;如果目的节点在互联骨干网中,数据地址由名称前缀、IP地址,协议以及序列号构成;
[0124] 所述方法中消息包括数据地址域、消息类型域和负载域;消息类型域值如下所示:
[0125] 消息类型 消息类型值代理路由器消息 1
路由消息 2
命令消息 3
确认消息 4
[0126] 一个普通路由器和一个数据路由器维护一个代理路由器表,一个代理路由器表项由接口域和生命周期域构成;代理路由器R1启动后,定期执行下述操作创建或者更新代理路由器表:
[0127] 步骤101:开始;
[0128] 步骤102:代理路由器R1定期从除了与互联骨干网相连的接口之外的每个接口发送代理路由器消息,该代理路由器消息中的数据地址中的名称前缀、节点ID以及协议为空,序列号为随机数,负载为空,消息类型为1;
[0129] 步骤103:如果数据路由器从自己的接口f1接收到代理路由器消息,则执行步骤104,否则执行步骤108;
[0130] 步骤104:从自己的接口f1接收到代理路由器消息的数据路由器查看代理路由器消息,如果已经接收到具有相同序列号的代理路由器消息,则丢弃该代理路由器消息并执行步骤111,否则执行步骤105;
[0131] 步骤105:从自己的接口f1接收到代理路由器消息的数据路由器查看代理路由器表,如果存在一个代理路由器表项,该代理路由器表项的接口域值为f1,则执行步骤106,否则执行步骤107;
[0132] 步骤106:从自己的接口f1接收到代理路由器消息的数据路由器选中接口域值为f1的代理路由器表项,将该代理路由器表项的生命周期设置为最大值,从除了接口f1以外的所有接口转发接收到的代理路由器消息,执行步骤103;
[0133] 步骤107:从自己的接口f1接收到代理路由器消息的数据路由器创建一个代理路由器表项,该代理路由器表项的接口域值为f1,生命周期域值为最大值,从除了接口f1以外的所有接口转发接收到的代理路由器消息,执行步骤103;
[0134] 步骤108:普通路由器从自己的接口f2接收到代理路由器消息,如果存在一个代理路由器表项,该代理路由器表项的接口域值为f2,则执行步骤109,否则执行步骤110;
[0135] 步骤109:从自己的接口f2接收到代理路由器消息的普通路由器选中接口域值为f2的代理路由器表项,将该代理路由器表项的生命周期设置为最大值,执行步骤111;
[0136] 步骤110:从自己的接口f2接收到代理路由器消息的普通路由器创建一个代理路由器表项,该代理路由器表项的接口域值为f2,生命周期域值为最大值;
[0137] 步骤111:结束;
[0138] 如果数据路由器或者普通路由器检测到一个代理路由器表项的生命周期衰减为0,则从代理路由器表中删除该代理路由器表项。
[0139] 上述过程能够快速建立代理路由器表从而实现数据的快速获取。
[0140] 图2为本发明所述普通路由器创建路由表流程示意图。一个普通路由器和一个数据路由器各自维护一个路由表,一个路由表项包括接口域、名称前缀域、设备ID域和生命周期域;
[0141] 普通路由器C1启动后,定期执行下述操作创建或者更新路由表:
[0142] 步骤201:开始;
[0143] 步骤202:普通路由器C1构建一个数据地址,该数据地址的名称前缀为普通路由器C1的名称前缀,协议和节点ID为空,序列号为随机数,普通路由器C1定期从上游接口发送路由消息,该路由消息中的数据地址为构建的数据地址,消息类型为2,负载为空;
[0144] 步骤203:如果数据路由器从自己的接口y1接收到路由消息,则执行步骤204,否则执行步骤208;
[0145] 步骤204:从自己的接口y1接收到路由消息的数据路由器查看路由消息,如果已经接收到具有相同序列号的路由消息,则丢弃该消息并执行步骤211,否则执行步骤205;
[0146] 步骤205:从自己的接口y1接收到路由消息的数据路由器查看路由表,如果存在一个路由表项,该路由表项的名称前缀等于接收到的路由消息的数据地址的名称前缀且接口域值等于y1,则执行步骤206,否则执行步骤207;
[0147] 步骤206:从自己的接口y1接收到路由消息的数据路由器选中名称前缀等于接收到的路由消息的数据地址的名称前缀且接口域值为y1的路由表项,将该路由表项的生命周期设置为最大值,从除了接口y1以外的所有接口转发接收到的路由消息,执行步骤203;
[0148] 步骤207:从自己的接口y1接收到路由消息的数据路由器创建一个路由表项,该路由表项的名称前缀等于接收到的路由消息的数据地址的名称前缀,设备ID域值为空,接口域值为y1,生命周期域值为最大值,数据路由器从除了接口y1以外的所有接口转发接收到的路由消息,执行步骤203;
[0149] 步骤208:普通路由器从自己的接口y2接收到路由消息,如果存在一个路由表项,该路由表项的名称前缀等于接收到的路由消息的数据地址的名称前缀,且接口域值为y2,则执行步骤209,否则执行步骤210;
[0150] 步骤209:从自己的接口y2接收到路由消息的普通路由器查看路由表,选中名称前缀等于接收到的路由消息的数据地址的名称前缀且接口域值为y2的路由表项,将该路由表项的生命周期设置为最大值,执行步骤211;
[0151] 步骤210:从自己的接口y2接收到路由消息的普通路由器创建一个路由表项,该路由表项的名称前缀等于接收到的路由消息的数据地址的名称前缀,接口域值为y2,设备ID域值为空,生命周期域值为最大值;
[0152] 步骤211:结束。
[0153] 上述过程能够快速建立路由表从而实现数据的快速获取。
[0154] 图3为本发明所述节点创建路由表流程示意图。节点N启动后,定期执行下述操作创建或者更新路由表:
[0155] 步骤301:开始;
[0156] 步骤302:节点N构建一个数据地址,该数据地址的名称前缀为空,协议为空,节点ID为节点N的节点ID,序列号为随机数,节点N定期发送路由消息,该路由消息中的数据地址为构建的数据地址,消息类型为2,负载为空;
[0157] 步骤303:与节点N连接的普通路由器从自己的接口y3接收到路由消息后,查看路由表,如果存在一个路由表项,该路由表项的节点ID等于接收到的路由消息的数据地址的节点ID且接口ID为y3,则执行步骤304,否则执行步骤305;
[0158] 步骤304:从自己的接口y3接收到路由消息的普通路由器选中节点ID等于接收到的路由消息的数据地址的节点ID且接口域值为y3的路由表项,将该路由表项的生命周期设置为最大值,执行步骤306;
[0159] 步骤305:从自己的接口y3接收到路由消息的普通路由器创建一个路由表项,该路由表项的名称前缀为空,节点ID等于接收到的路由消息的数据地址的节点ID,接口域值为y3,生命周期域值为最大值;
[0160] 步骤306:结束;
[0161] 如果数据路由器或者普通路由器检测到一个路由表项的生命周期衰减为0,则从路由表中删除该路由表项。
[0162] 上述过程能够快速建立路由表从而实现数据的快速获取。
[0163] 图4为本发明所述数据通信流程示意图。数据网络中的节点与互联网中的节点采用协议进行通信;协议的类型定义了通信内容;在所有协议中,第一条命令为启动,最后一条命令为终止;命令是消息的负载,例如步骤402;
[0164] 每个普通路由器和数据路由器各自维护一个路径表,一个路径表项包含数据地址域,接口域和生命周期域;
[0165] 在节点N1和节点N2位于数据网络中,节点N1与普通路由器R1相连,节点N2与普通路由器R2相连,普通路由器R1的名称前缀为NP1,普通路由器R2的名称前缀为NP2的条件下,节点N1利用协议P1通过下述过程实现与节点N2的通信:
[0166] 步骤401:开始;
[0167] 步骤402:节点N1构建一个数据地址,该数据地址中,名称前缀为名称前缀NP2,节点ID为节点N1的节点ID,协议为P1,序列号为随机数,节点N1发送命令消息,该命令消息的数据地址为构建的数据地址,消息类型为3,负载为启动命令;
[0168] 步骤403:普通路由器R1从自己的接口f1接收到命令消息后,查看路径表,如果存在一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,则执行步骤404,否则执行步骤405;
[0169] 步骤404:从自己的接口f1接收到命令消息的普通路由器R1选择数据地址域值等于接收到的命令消息中的数据地址域值,将该路径表项的生命周期设置为最大值,例如1s,执行步骤406;
[0170] 步骤405:普通路由器R1创建一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,接口域值等于f1,生命周期设置为最大值;
[0171] 步骤406:普通路由器R1查看路由表,选择一个路由表项,该路由表项的名称前缀域值等于接收到的命令消息数据地址中的名称前缀,然后从该路由表项的接口域转发接收到的命令消息;
[0172] 步骤407:如果普通路由器R2接收到命令消息,则执行步骤408,否则执行步骤412;
[0173] 步骤408:普通路由器R2从自己的接口f2接收到命令消息,查看路径表,如果存在一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,则执行步骤409,否则执行步骤410;
[0174] 步骤409:从自己的接口f2接收到命令消息的普通路由器R2选择数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,将该路径表项的生命周期设置为最大值,例如1s,执行步骤411;
[0175] 步骤410:普通路由器R2创建一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,接口域值等于f2,生命周期设置为最大值;
[0176] 步骤411:普通路由器R2查看路由表,选择一个路由表项,该路由表项的节点ID域值等于接收到的命令消息数据地址中的节点ID,然后从该路由表项的接口域转发接收到的命令消息,执行步骤416;
[0177] 步骤412:数据路由器从自己的接口f3接收到命令消息,查看路径表,如果存在一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,则执行步骤413,否则执行步骤414;
[0178] 步骤413:从自己的接口f3接收到命令消息的数据路由器选择数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,将该路径表项的生命周期设置为最大值,例如1s,执行步骤415;
[0179] 步骤414:从自己的接口f3接收到命令消息的数据路由器创建一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,接口域值等于f3,生命周期设置为最大值;
[0180] 步骤415:从自己的接口f3接收到命令消息的数据路由器查看路由表,选择一个路由表项,该路由表项的名称前缀域值等于接收到的命令消息数据地址中的名称前缀,然后从该路由表项的接口域转发接收到的命令消息,执行步骤407;
[0181] 步骤416:节点N2收到命令消息后,如果命令消息负载中为启动命令,则执行步骤417,否则执行步骤418;
[0182] 步骤417:节点N2执行启动命令并发送一个确认消息,该确认消息的数据名称等于接收到的命令消息中的数据名称,消息类型为4,负载为执行启动命令的响应数据,执行步骤420;
[0183] 步骤418:节点N2收到命令消息后,如果命令消息负载中为结束命令,则执行步骤425,否则执行步骤419;
[0184] 步骤419:节点N2执行接收到的命令消息中的命令并发送一个确认消息,该确认消息的数据名称等于接收到的命令消息中的数据名称,消息类型为4,负载为执行命令的响应数据;
[0185] 步骤420:普通路由器R2接收到确认消息后,查看路径表,选择数据地址等于确认消息的数据地址的路径表项,并该路径表项的接口域值转发接收到的确认消息;
[0186] 步骤421:如果普通路由器R1接收到确认消息,则执行步骤423,否则执行步骤422;
[0187] 步骤422:数据路由器接收到确认消息后,查看路径表,选择数据地址等于确认消息的数据地址的路径表项,并通过该路径表项的接口域值转发接收到的确认消息,执行步骤421;
[0188] 步骤423:普通路由器R1接收到确认消息后,查看路径表,选择数据地址等于确认消息的数据地址的路径表项,并通过该路径表项的接口域值转发接收到的确认消息;
[0189] 步骤424:节点N1接收到确认消息后,保存确认消息中的响应数据,发送一个命令消息,该命令消息的数据地址等于接收到的确认消息中的数据地址,消息类型为3,如果节点N1需要结束通信,则该命令消息的负载为终止命令,否则为节点N1需要节点N2执行的命令,执行步骤403;
[0190] 步骤425:结束;
[0191] 如果一个路径表项的生命周期衰减为0,则从路径表中删除该路径表项。
[0192] 节点通过上述过程能够快速获取数据。
[0193] 图5为本发明所述获取数据流程示意图。代理路由器维护一个服务表,每个服务表项包含数据地址域、源端口域以及目的端口域;
[0194] 在互联骨干网中,每一种服务对应一个端口号,例如收取email协议pop3的端口号为110;
[0195] 如果节点N1位于数据网络中,节点N1与普通路由器R1相连,普通路由器R1的名称前缀为NP1,节点N3位于互联骨干网中,节点N1利用协议P3与节点N3进行通信,协议P3在互联骨干网中对应的端口号为b3,节点N1通过下述过程实现与节点N3的通信:
[0196] 步骤501:开始;
[0197] 步骤502:节点N1构建一个数据地址,该数据地址中,名称前缀为空,IP地址为节点N3的IP地址,协议为P3,序列号为随机数;节点N1发送命令消息,该命令消息的数据地址为构建的数据地址,消息类型为3,负载为启动命令;
[0198] 步骤503:普通路由器R1从自己的接口x1接收到命令消息后,查看路径表,如果存在一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,则执行步骤504,否则执行步骤505;
[0199] 步骤504:从自己的接口x1接收到命令消息的普通路由器R1选择数据地址域值等于接收到的命令消息中的数据地址域值,将该路径表项的生命周期设置为最大值,例如1s,执行步骤506;
[0200] 步骤505:普通路由器R1创建一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,接口域值等于x1,生命周期设置为最大值;
[0201] 步骤506:普通路由器R1查看代理路由器表,选择一个代理路由器表项,从该代理路由器表项的接口域转发接收到的命令消息;
[0202] 步骤507:如果代理路由器接收到命令消息,则执行步骤512,否则执行步骤508;
[0203] 步骤508:数据路由器从自己的接口x2接收到命令消息,查看路径表,如果存在一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,则执行步骤509,否则执行步骤510;
[0204] 步骤509:从自己的接口x2接收到命令消息的数据路由器选择数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,将该路径表项的生命周期设置为最大值,例如1s,执行步骤511;
[0205] 步骤510:从自己的接口x2接收到命令消息的数据路由器创建一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,接口域值等于x2,生命周期设置为最大值;
[0206] 步骤511:从自己的接口x2接收到命令消息的数据路由器查看代理路由器表,选择一个代理路由器表项,然后从该代理路由器表项的接口域转发接收到的命令消息,执行步骤507;
[0207] 步骤512:代理路由器从自己的接口x3接收到命令消息,查看路径表,如果存在一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,则执行步骤513,否则执行步骤514;
[0208] 步骤513:从自己的接口x3接收到命令消息的代理路由器选择数据地址域值等于接收到的命令消息中的数据地址域值的路径表项,将该路径表项的生命周期设置为最大值,例如1s,执行步骤515;
[0209] 步骤514:代理路由器创建一个路径表项,该路径表项的数据地址域值等于接收到的命令消息中的数据地址域值,接口域值等于x3,生命周期设置为最大值;
[0210] 步骤515:代理路由器接收到命令消息后,如果命令消息负载中为启动命令,则执行步骤516,否则执行步骤517;
[0211] 步骤516:代理路由器创建一个端口s3,创建一个服务表,该服务表的数据地址为接收到的命令消息中的数据地址,源端口为s3,目的端口为b3;代理路由器通过与互联骨干网相连的接口发送一条消息,该消息的源地址为该接口的IP地址,目的地址为接收到的命令消息数据地址的IP地址,目的端口为b3,源端口为b3,负载为接收到的命令消息中的负载,执行步骤520;
[0212] 步骤517:代理路由器接收到命令消息后,如果命令消息负载中为终止命令,则执行步骤518,否则执行步骤519;
[0213] 步骤518:代理路由器查看服务表,选择一个服务表项,该服务表项的数据地址等于接收到的命令消息中的数据地址;代理路由器通过与互联骨干网相连的接口发送一条IP消息,该消息的源地址为该接口的IP地址,目的地址为接收到的命令消息数据地址的IP地址,目的端口和源端口为选中的服务表项的目的端口和源端口,负载为接收到的命令消息中的负载,删除选中的服务表项,执行步骤520;
[0214] 步骤519:代理路由器查看服务表,选择一个服务表项,该服务表项的数据地址等于接收到的命令消息中的数据地址;代理路由器通过与互联骨干网相连的接口发送一条消息,该消息的源地址为该接口的IP地址,目的地址为接收到的命令消息数据地址的IP地址,目的端口和源端口为选中的服务表项的目的端口和源端口,负载为接收到的命令消息中的负载;
[0215] 步骤520:该IP消息通过互联骨干网到达节点N3,该消息即为步骤518中代理路由器发送的消息,节点N3收到命令消息后,如果命令消息负载中为启动命令,则执行步骤521,否则执行步骤522;
[0216] 步骤521:节点N3执行启动命令并发送一个IP消息,该IP消息的源地址和源端口分别为接收到的IP消息的目的地址和目的端口,该IP消息的目的地址和目的端口分别为接收到的IP消息的源地址和源端口,负载为执行启动命令的响应数据,执行步骤524;
[0217] 步骤522:节点N3收到命令消息后,如果命令消息负载中为终止命令,则执行步骤529,否则执行步骤523;
[0218] 步骤523:节点N3执行接收到的命令消息中的命令并发送一个IP消息,该IP消息的源地址和源端口分别为接收到的IP消息的目的地址和目的端口,该IP消息的目的地址和目的端口分别为接收到的IP消息的源地址和源端口,负载为执行命令的响应数据;
[0219] 步骤524:IP消息通过互联骨干网到达代理路由器,代理路由器查看服务表,选择一个服务表项,该服务表项的源端口和目的端口分别等于接收到的IP消息的目的端口和源端口,然后代理路由器创建一个确认消息,该确认消息的数据名称等于所选的服务表项的数据名称,消息类型为4,负载为接收到的IP消息的负载;代理服务器查看路径表,选择数据地址等于创建的确认消息的数据地址的路径表项,并从该路径表项的接口域值转发该确认消息;
[0220] 步骤525:如果普通路由器R1接收到确认消息,则执行步骤527,否则执行步骤526;
[0221] 步骤526:数据路由器接收到确认消息后,查看路径表,选择数据地址等于接收到的确认消息的数据地址的路径表项,并通过该路径表项的接口域值转发接收到的确认消息,执行步骤525;
[0222] 步骤527:普通路由器R1接收到确认消息后,查看路径表,选择数据地址等于确认消息的数据地址的路径表项,并通过该路径表项的接口域值转发接收到的确认消息;
[0223] 步骤528:节点N1接收到确认消息后,保存确认消息中的响应数据,发送一个命令消息,该命令消息的数据地址等于接收到的确认消息中的数据地址,消息类型为3,如果节点N1需要结束通信,则该命令消息的负载为终止命令,否则为节点N1需要节点N3执行的命令,执行步骤503;
[0224] 步骤529:结束。
[0225] 节点通过上述过程能够快速获取数据。
[0226] 实施例1
[0227] 基于表1的仿真参数,本实施例模拟了本发明中的网络通信方法,性能分析如下:移动节点数量增加或者获取的数据量增加时,数据获取时间随之增加。数据获取平均延迟为1.2s。
[0228] 表1仿真参数
[0229]
[0230] 本发明提供了一种高效的网络通信方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号