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

一种稳定高效的网络数据通信方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2017-03-29
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2017-08-01
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2019-07-19
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2037-03-29
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201710196557.0 申请日 2017-03-29
公开/公告号 CN106936711B 公开/公告日 2019-07-19
授权日 2019-07-19 预估到期日 2037-03-29
申请年 2017年 公开/公告年 2019年
缴费截止日
分类号 H04L12/721H04L12/741 主分类号 H04L12/721
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 5
权利要求数量 6 非专利引证数量 1
引用专利数量 6 被引证专利数量 0
非专利引证 1、陶洋等.异构自组织网络环境下路由算法研究《.计算机工程与设计》.2014,(第12期),;
引用专利 CN105188104A、CN101552726A、CN101692657A、CN103986942A、CN106453090A、US2016366038A1 被引证专利
专利权维持 5 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 常熟理工学院 当前专利权人 常熟理工学院
发明人 王晓喃 第一发明人 王晓喃
地址 江苏省苏州市常熟市常熟理工学院(东南校区)计算机科学与工程学院 邮编 215500
申请人数量 1 发明人数量 1
申请人所在省 江苏省 申请人所在市 江苏省苏州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
江苏圣典律师事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
胡建华
摘要
本发明提供了一种稳定高效的网络数据通信方法,所述网络包括两个以上的移动设备和两个以上的数据路由器,数据路由器具有路由转发功能,数据路由器之间通过有线接口相连,数据路由器与移动设备之间通过无线接口通信,移动设备与数据路由器之间一跳可达;数据消费者通过本发明所提供的数据通信方法能够从距离最近的数据提供者以单播方式获取服务数据,缩短了获取服务数据的延迟和代价,提高了服务质量,本发明可应用于大数据获取等领域,具有广泛的应用前景。
  • 摘要附图
    一种稳定高效的网络数据通信方法
  • 说明书附图:图1
    一种稳定高效的网络数据通信方法
  • 说明书附图:图2
    一种稳定高效的网络数据通信方法
  • 说明书附图:图3
    一种稳定高效的网络数据通信方法
  • 说明书附图:图4
    一种稳定高效的网络数据通信方法
  • 说明书附图:图5
    一种稳定高效的网络数据通信方法
  • 说明书附图:图6
    一种稳定高效的网络数据通信方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2019-07-19 授权
2 2017-08-01 实质审查的生效 IPC(主分类): H04L 12/721 专利申请号: 201710196557.0 申请日: 2017.03.29
3 2017-07-07 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种稳定高效的网络数据通信方法,其特征在于,所述网络包括两个以上的移动设备和两个以上的数据路由器,数据路由器具有路由转发功能,数据路由器之间通过有线接口相连,数据路由器与移动设备之间通过无线接口通信,移动设备与数据路由器之间一跳可达;一种类型的数据由一个数据ID唯一定义;数据消费者为有权限获取一种类型数据的移动设备,数据提供者为有权提供一种类型数据的移动设备;移动设备不具有路由转发功能;
移动设备和数据路由器之间、移动设备与移动设备之间、以及数据路由器之间通过交换消息实现通信,消息类型如下所示:
消息类型包括:信标消息、路由创建消息、获取数据消息、返回数据消息、反转消息、不可达消息、可达消息以及更新消息,分别对应消息类型域值为0、1、2、3、4、5、6、7;
消息类型域值为5和6的消息由数据ID集合域、消息类型域以及负载构成;
消息类型域值为0,1,2,3,4,7的消息由数据ID域、消息类型域以及负载构成;
数据路由器维护一个路由表,一个路由表项由接口域、数据ID域、队列域、路径域以及生命周期域构成,其中,接口域指向到达数据提供者的下一跳,数据ID域值为数据消费者请求的数据的数据ID,队列域值为当前待处理的获取数据消息的个数,路径域值是保存路由表的数据路由器与数据提供者之间的距离;
在数据C1由数据ID定义,数据C1的数据ID域值为CID1,数据提供者P1通过自己的接口k与本地数据路由器相连的条件下,数据提供者P1产生数据C1后,执行下述过程建立路由表:
步骤101:开始;
步骤102:数据提供者P1随机产生一个序列号,同时构建路由创建消息,该路由创建消息的数据ID域值为CID1,消息类型域值为1,负载为序列号和路径参数;数据提供者P1通过自己的接口k发送该路由创建消息;
步骤103:数据路由器从自己的接口j接收到路由创建消息后,查看路由表判断是否存在数据ID域值为CID1且接口域值为j的表项,如果存在,执行步骤106,否则执行步骤104;
步骤104:接收到路由创建消息的数据路由器将路由创建消息中的路径域值递增1,然后创建一个路由表项,该路由表项的数据ID域值为CID1,接口域值为j,队列域值为0,路径域值为路由创建消息中的路径域值,生命周期为最大生命周期值;如果数据路由器除了接口j以外所有接口都不与其他数据路由器相连,那么执行步骤110,否则执行步骤105;
步骤105:接收到路由创建消息的数据路由器从每个符合条件1和条件2的接口转发接收到的路由创建消息,执行步骤103;
条件1:该接口与数据路由器相连;
条件2:数据路由器没有从该接口接收到具有相同序列号的路由创建消息;
步骤106:接收到路由创建消息的数据路由器查看路由表判断是否存在数据ID域值为CID1,接口域值为j且路径值大于路由创建消息中的路径值的表项,如果存在,执行步骤
107,否则执行步骤109;
步骤107:接收到路由创建消息的数据路由器将路由创建消息中的路径域值递增1,然后更新数据ID域值为CID1,接口域值为j且路径值大于路由创建消息中的路径值的路由表项,即用路由创建消息中的路径值更新该表项中的路径值,同时将该路由表项的生命周期设置为最大值,数据路由器判断是否从每个与其他数据路由器相连的接口都接收到了具有相同序列号的路由创建消息,如果是,则执行步骤110,否则执行步骤108;
步骤108:接收到路由创建消息的数据路由器从每个符合条件1和条件2的接口转发接收到的路由创建消息,执行步骤103;
步骤109:接收到路由创建消息的数据路由器丢弃接收到的路由创建消息;
步骤110:结束。

2.根据权利要求1所述的一种稳定高效的网络数据通信方法,其特征在于,在数据路由器维护一个请求待处理表,一个请求待处理表项由接口域和数据ID域构成,接口域指向到达数据消费者的下一跳,数据ID域值为该数据消费者请求的数据ID;数据C1由数据ID CID1定义,数据消费者U1通过接口w与本地数据路由器R1相连的情况下,数据消费者U1通过下述过程获取数据C1:
步骤201:开始;
步骤202:数据消费者U1构建一个获取数据消息,数据ID域值为CID1,消息类型为2,负载为空;数据消费者U1从自己的接口w发送该获取数据消息;
步骤203:数据路由器R1从自己的接口w1接收到获取数据消息后,判断请求待处理表中是否存在数据ID域值为CID1且接口域值为w1的请求待处理表项,如果是,执行步骤221,否则执行步骤204;
步骤204:数据路由器R1判断请求待处理表中是否存在数据ID域值为CID1的请求待处理表项,如果是,执行步骤205,否则执行步骤206;
步骤205:数据路由器R1创建一个请求待处理表项,该请求待处理表项的数据ID域值为CID1,接口域值为w1,执行步骤221;
步骤206:数据路由器R1创建一个请求待处理表项,该请求待处理表项的数据ID域值为CID1,接口域值为w1,然后数据路由器R1查看是否存在数据ID域值为CID1且队列域值小于最大预定队列域值的路由表项,如果存在,则执行步骤207,否则执行步骤228;
步骤207:对于每一个数据ID域值为CID1且队列域值小于最大预定队列域值的路由表项,数据路由器R1根据公式(1)计算该表项的优先级R,然后选择优先级最大的路由表项,从该路由表项的接口域值所标识的接口转发该获取数据消息,同时将该路由表项的队列域值递增1;
R=1/(q1×U+h1×O);q1>0,h1>0  (1)
其中,q1和h1为调节参数,U为该表项的队列域值,q1为队列系数,O为该表项的路径域值,h1为路径系数;
步骤208:数据路由器或者数据提供者从接口w2接收到获取数据消息,如果是数据提供者接收到获取数据消息,则执行步骤209,否则执行步骤212;
步骤209:判断接收到获取数据消息的数据提供者是否能提供数据C1,如果能,则执行步骤210,否则执行步骤211;
步骤210:接收到获取数据消息的数据提供者创建一个返回数据消息,该返回数据消息的数据ID域值为CID1,消息类型为3,负载为数据C1,然后数据提供者从自己接口w2发送该返回数据消息,执行步骤221;
步骤211:接收到获取数据消息的数据提供者丢弃接收到的获取数据消息,执行步骤
221;
步骤212:接收到获取数据消息的数据路由器判断请求待处理表中是否存在数据ID域值为CID1且接口域值为w2的请求待处理表项,如果是,执行步骤221,否则执行步骤213;
步骤213:接收到获取数据消息的数据路由器判断请求待处理表中是否存在数据ID域值为CID1的请求待处理表项,如果是,执行步骤214,否则执行步骤215;
步骤214:接收到获取数据消息的数据路由器创建一个请求待处理表项,该请求待处理表项的数据ID域值为CID1,接口域值为w2,执行步骤221;
步骤215:接收到获取数据消息的数据路由器创建一个请求待处理表项,该请求待处理表项的数据ID域值为CID1,接口域值为w2,数据路由器查看是否存在数据ID域值为CID1且队列域值小于最大预定队列域值的路由表项,如果存在,则执行步骤216,否则执行步骤
217;
步骤216:对于每一个数据ID域值为CID1且队列域值小于最大预定队列域值的路由表项,接收到获取数据消息的数据路由器根据公式(1)计算该表项的优先级R,然后选择优先级最大地路由表项,从该路由表项的接口域值所标识的接口转发该获取数据消息,同时将该路由表项的队列域值递增1,执行步骤208;
步骤217:接收到获取数据消息的数据路由器创建一个反转消息,该反转消息的数据ID域值为CID1,消息类型为4,负载为空,然后数据路由器查看请求待处理表,选择数据ID域值为CID1的请求待处理表项,针对每个选择的请求待处理表项,数据路由器从该请求待处理表项的接口域值所标识的接口转发反转消息,最后删除数据ID域值为CID1的请求待处理表项;
步骤218:数据路由器从接口w3接收到反转消息后,查看路由表判断是否存在满足条件
3的路由表项,如果存在,则执行步骤219,否则执行步骤220;
条件3:数据ID域值为CID1,队列域值小于最大队列域值,接口域值既不等于接口w3,也不等于任何一个数据ID域值为CID1的请求待处理表项中的接口域值;
步骤219:对于每一个满足条件3的路由表项,接收到反转消息的数据路由器根据公式(1)计算该表项的优先级R,然后选择优先级最大的路由表项,从该路由表项的接口域值所标识的接口转发该获取数据消息,同时将该表项的队列域值递增1,执行步骤208;
步骤220:判断接收到反转消息的数据路由器是否为数据路由器R1,如果是,执行步骤
228,否则执行步骤217;
步骤221:判断数据路由器是否在预定时间内接收到返回数据消息,如果是,执行步骤
225,否则执行步骤222;
步骤222:在预定时间内没有接收到返回数据消息的数据路由器查看路由表判断是否存在满足条件4的路由表项,如果存在,则执行步骤223,否则执行步骤224;
条件4:数据ID域值为CID1,队列域值小于最大队列域值,接口域值既不等于转发数据ID域值为CID1的获取数据消息的接口,也不等于任何一个数据ID域值为CID1的请求待处理表项中的接口域值;
步骤223:对于每一个满足条件4的路由表项,在预定时间内没有接收到返回数据消息的数据路由器根据公式(1)计算该表项的优先级R,然后选择优先级最大的路由表项,从该路由表项的接口域值所标识的接口转发该获取数据消息,同时将该表项的队列域值递增1,执行步骤208;
步骤224:判断在预定时间内没有接收到返回数据消息的数据路由器是否为数据路由器R1,如果是,执行步骤228,否则执行步骤217;
步骤225:在预定时间内接收到返回数据消息的数据路由器或者数据消费者从自己的接口w4接收到返回数据消息,如果是数据路由器接收到返回数据消息,则执行步骤226,否则执行步骤227;
步骤226:接收到返回数据消息的数据路由器从请求待处理表中选择所有数据ID域值为CID1的请求待处理表项,针对每个选择的请求待处理表项,数据路由器从该请求待处理表项中的接口域发送接收到的返回数据消息,然后数据路由器删除所有数据ID域值为CID1的路由表项,同时将数据ID域值为CID1且接口域值为w4的路由表项的队列域值递减1,执行步骤225;
步骤227:数据消费者U1获取并保存返回数据消息中的数据C1;
步骤228:结束。

3.根据权利要求2所述的一种稳定高效的网络数据通信方法,其特征在于,在数据提供者定期发送信标消息,该信标消息的数据ID为自己所能提供的数据的数据ID,类型为0,负载为空的条件下;数据路由器从自己的接口w5接收到数据ID域值为n1的信标帧后,判断是否存在接口域值为w5且数据ID域值为n1的路由表项,如果存在,则将这些路由表项的生命时间设置为最大值,否则,数据路由器执行下述过程:
步骤301:开始;
步骤302:数据路由器创建一个路由表项,该路由表项的数据ID域值为n1,接口域值为w5,队列域值为0,路径域值为1,生命周期为最大生命周期值;数据路由器随机产生一个序列号,同时构建路由创建消息,该路由创建消息的数据ID域值为n1,消息类型为1,负载为序列号和路径参数,路径参数的初始值为1;数据路由器从符合条件1和条件2的接口发送该路由创建消息;
步骤303:数据路由器从自己接口f接收到路由创建消息,然后查看路由表判断是否存在数据ID域值为n1且接口域值为f的路由表项,如果存在,执行步骤306,否则执行步骤304;
步骤304:接收到路由创建消息的数据路由器将路由创建消息中的路径域值递增1,然后创建一个路由表项,该路由表项的数据ID域值为n1,接口域值为f,队列域值为0,路径域值为路由创建消息中的路径域值,生命周期为最大生命周期值,如果数据路由器只有接口f与其他数据路由器相连,那么执行步骤310,否则执行步骤305;
步骤305:接收到路由创建消息的数据路由器从每个符合条件1和条件2的接口转发接收到的路由创建消息,执行步骤303;
步骤306:接收到路由创建消息的数据路由器查看路由表判断是否存在数据ID域值为n1,接口域值为f且路径值大于路由创建消息中的路径值的路由表项,如果存在,执行步骤
307,否则执行步骤309;
步骤307:接收到路由创建消息的数据路由器将路由创建消息中的路径域值递增1,然后更新数据ID域值为n1,接口域值为f且路径值大于路由创建消息中的路径值的路由表项,即用路由创建消息中的路径值更新该表项中的路径值,同时将该路由表项的生命周期设置为最大值;接收到路由创建消息的数据路由器判断是否从每个与其他数据路由器相连的接口都接收到了具有相同序列号的路由创建消息,如果是,则执行步骤310,否则执行步骤
308;
步骤308:接收到路由创建消息的数据路由器从每个符合条件1和条件2的接口转发接收到的路由创建消息,执行步骤303;
步骤309:接收到路由创建消息的数据路由器丢弃接收到的路由创建消息;
步骤310:结束。

4.根据权利要求3所述的一种稳定高效的网络数据通信方法,其特征在于,如果数据路由器检测到接口域值为无线接口w的路由表项的生命时间衰减为0,那么执行下述操作:
步骤401:开始;
步骤402:数据路由器随机产生一个序列号,构建一个更新消息,该更新消息的数据ID为该路由表项的数据ID域值,类型为7,负载为序列号;数据路由器删除接口域值为无线接口w的路由表项,同时从每个与其他数据路由器相连的接口转发该更新消息;
步骤403:数据路由器从自己的接口w7接收到更新消息后,查看路由表判断是否存在接口域值为w7且数据ID等于更新消息的数据ID域值的路由表项,如果存在,执行步骤404,否则执行步骤406;
步骤404:接收到更新消息的数据路由器删除接口域值为w7且数据ID域值等于更新消息的数据ID域值的路由表项,接收到更新消息的数据路由器判断是否存在数据ID域值等于更新消息的数据ID的路由表项,如果是,执行步骤406,否则执行步骤405;
步骤405:接收到更新消息的数据路由器从符合条件5的每个接口接收到的更新消息,执行步骤403;
条件5:该接口与数据路由器相连且没有接收到具有相同序列号的更新消息;
步骤406:结束。

5.根据权利要求4所述的一种稳定高效的网络数据通信方法,其特征在于,在数据路由器定期从每个接口发送信标消息,该信标消息的数据ID为空,类型为0,负载为空的条件下;
数据路由器从接口w收到信标帧后,选择所有接口域值为w的路由表项,数据路由器将这些路由表项的生命时间设置为最大值;如果数据路由器检测到接口为有线接口w的路由表项的生命时间衰减为0,每个路由表项的队列最大值为M,那么执行下述操作:
步骤501:开始;
步骤502:数据路由器随机产生一个序列号,选择接口域值为w的所有路由表项,将所述路由表项的队列域值设置为M+1;数据路由器构建一个不可达消息,该不可达消息的数据ID集合域值为接口域值为w的所有路由表项的数据ID的集合,类型为5,负载为序列号;数据路由器从除了接口w以外的有线接口转发该不可达消息;
步骤503:数据路由器从自己的接口w8接收到不可达消息后,查看路由表判断是否存在接口域值为w8且数据ID域值属于不可达消息中的数据ID集合的路由表项,如果存在,执行步骤504,否则执行步骤506;
步骤504:接收到不可达消息的数据路由器将接口域值为w8且数据ID域值属于不可达消息中的数据ID集合的路由表项的队列域值设置为M+1,接收到不可达消息的数据路由器判断是否从每个与其他数据路由器相连的有线接口都接收到具有相同序列号的不可达消息,如果是,执行步骤506,否则执行步骤505
步骤505:接收到不可达消息的数据路由器从符合条件6的每个接口转发接收到的不可达消息,执行步骤503;
条件6:该接口与数据路由器相连且没有接收到具有相同序列号的不可达消息;
步骤506:结束。

6.根据权利要求5所述的一种稳定高效的网络数据通信方法,其特征在于,如果数据路由器从有线接口w接收到信标帧且接口域值为w的路由表项的队列域值大于最大队列值,那么执行下述操作:
步骤601:开始;
步骤602:数据路由器随机产生一个序列号,选择接口域值为w的所有路由表项,将所述路由表项的队列域值设置为0,生命周期设置为最大生命周期值;数据路由器构建一个可达消息,该可达消息的数据ID集合域值为接口域值为w的所有路由表项的数据ID的集合,类型为6,负载为序列号;数据路由器从除了接口w以外的每个与数据路由器相连的接口转发该可达消息;
步骤603:数据路由器从接口w9接收到可达消息后,查看路由表判断是否存在接口域值为w9且数据ID属于可达消息中的数据ID集合的路由表项,如果存在,执行步骤604,否则执行步骤606;
步骤604:接收到可达消息的数据路由器将接口域值为w9且数据ID属于可达消息中的数据ID集合的路由表项的队列域值设置为0,生命周期设置为最大生命周期值,数据路由器判断是否从与其他数据路由器相连的所有有线接口都接收到具有相同序列号的可达消息,如果是,执行步骤606,否则执行步骤605;
步骤605:接收到可达消息的数据路由器从符合条件7的每个接口接收到的可达消息,执行步骤603;
条件7:该接口与数据路由器相连且没有接收到具有相同序列号的可达消息;
步骤606:结束。
说明书

技术领域

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

背景技术

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

发明内容

[0004] 发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种稳定高效的网络数据通信方法。
[0005] 技术方案:本发明公开了一种稳定高效的网络数据通信方法,所述网络包括两个以上的移动设备和两个以上的数据路由器,数据路由器具有路由转发功能,数据路由器之间通过有线接口相连,数据路由器与移动设备之间通过无线接口通信,移动设备与数据路由器之间一跳可达;一种类型的数据由一个数据ID唯一定义;数据消费者为有权限获取一种类型数据的移动设备,数据提供者为有权提供一种类型数据的移动设备;移动设备不具有路由转发功能;
[0006] 移动设备和数据路由器之间、移动设备与移动设备之间、以及数据路由器之间通过交换消息实现通信,消息类型如下表所示:
[0007]
[0008]
[0009] 消息类型域值为5和6的消息由数据ID集合域、消息类型域以及负载构成;
[0010] 消息类型域值为0,1,2,3,4,7的消息由数据ID域、消息类型域以及负载构成;
[0011] 数据路由器维护一个路由表,一个路由表项由接口域、数据ID域、队列域、路径域以及生命周期域构成,其中,接口域指向到达数据提供者的下一跳,数据ID域值为数据消费者请求的数据的数据ID,队列域值为当前待处理的获取数据消息的个数,路径域值是保存路由表的数据路由器与数据提供者之间的距离;
[0012] 在数据C1由数据ID定义,数据C1的数据ID域值为CID1,数据提供者P1通过自己的接口k与本地数据路由器相连的条件下,数据提供者P1产生数据C1后,执行下述过程建立路由表:
[0013] 步骤101:开始;
[0014] 步骤102:数据提供者P1随机产生一个序列号,同时构建路由创建消息,该路由创建消息的数据ID域值为CID1,消息类型域值为1,负载为序列号和路径参数;数据提供者P1通过自己的接口k发送该路由创建消息;
[0015] 步骤103:数据路由器从自己的接口j接收到路由创建消息后,查看路由表判断是否存在数据ID域值为CID1且接口域值为j的表项,如果存在,执行步骤106,否则执行步骤104;
[0016] 步骤104:数据路由器将路由创建消息中的路径域值递增1,然后创建一个路由表项,该路由表项的数据ID域值为CID1,接口域值为j,队列域值为0,路径域值为路由创建消息中的路径域值,生命周期为最大生命周期值;如果数据路由器除了接口j以外所有接口都不与其他数据路由器相连,那么执行步骤110,否则执行步骤105;
[0017] 步骤105:数据路由器从每个符合条件1和条件2的接口转发接收到的路由创建消息,执行步骤103;
[0018] 条件1:该接口与数据路由器相连;
[0019] 条件2:数据路由器没有从该接口接收到具有相同序列号的路由创建消息;
[0020] 步骤106:数据路由器查看路由表判断是否存在数据ID域值为CID1,接口域值为j且路径值大于路由创建消息中的路径值的表项,如果存在,执行步骤107,否则执行步骤109;
[0021] 步骤107:数据路由器将路由创建消息中的路径域值递增1,然后更新数据ID域值为CID1,接口域值为j且路径值大于路由创建消息中的路径值的路由表项,即用路由创建消息中的路径值更新该表项中的路径值,同时将该路由表项的生命周期设置为最大值,数据路由器判断是否从每个与其他数据路由器相连的接口都接收到了具有相同序列号的路由创建消息,如果是,则执行步骤110,否则执行步骤108;
[0022] 步骤108:数据路由器从每个符合条件1和条件2的接口转发接收到的路由创建消息,执行步骤103;
[0023] 步骤109:数据路由器丢弃接收到的路由创建消息;
[0024] 步骤110:结束;
[0025] 上述过程能够快速建立路由表以至于数据消费者能够快速正确地从数据提供者获取数据。
[0026] 本发明所述方法中,其特征在于,在数据路由器维护一个请求待处理表,一个请求待处理表项由接口域和数据ID域构成,接口域指向到达数据消费者的下一跳,数据ID域值为该数据消费者请求的数据ID;数据C1由数据ID CID1定义,数据消费者U1通过接口w与本地数据路由器R1相连的情况下,数据消费者U1通过下述过程获取数据C1:
[0027] 步骤201:开始;
[0028] 步骤202:数据消费者U1构建一个获取数据消息,数据ID域值为CID1,消息类型为2,负载为空;数据消费者U1从自己的接口w发送该获取数据消息;
[0029] 步骤203:数据路由器R1从自己的接口w1接收到获取数据消息后,判断请求待处理表中是否存在数据ID域值为CID1且接口域值为w1的请求待处理表项,如果是,执行步骤221,否则执行步骤204;
[0030] 步骤204:数据路由器R1判断请求待处理表中是否存在数据ID域值为CID1的请求待处理表项,如果是,执行步骤205,否则执行步骤206;
[0031] 步骤205:数据路由器R1创建一个请求待处理表项,该请求待处理表项的数据ID域值为CID1,接口域值为w1,执行步骤221;
[0032] 步骤206:数据路由器R1创建一个请求待处理表项,该请求待处理表项的数据ID域值为CID1,接口域值为w1,然后数据路由器R1查看是否存在数据ID域值为CID1且队列域值小于最大预定队列域值的路由表项,最大预定队列域值可以设置为20,如果存在,则执行步骤207,否则执行步骤228;
[0033] 步骤207:对于每一个数据ID域值为CID1且队列域值小于最大预定队列域值的路由表项,数据路由器R1根据公式(1)计算该表项的优先级R,然后选择优先级最大的路由表项,从该路由表项的接口域值转发该获取数据消息,同时将该路由表项的队列域值递增1;
[0034] R=1/(q1×U+h1×O);q1>0,h1>0  (1)
[0035] 其中,q1和h1为调节参数,U为该表项的队列域值,q1为队列系数,O为该表项的路径域值,h1为路径系数,q1和h1一般为小于1的正数,如果用户要求较低的数据通信延迟,那么h1>q1,如果用户要求低丢包率,则q1>h1,如果用户要求低通信延迟和低丢包率,则q1=h1;
[0036] 步骤208:数据路由器或者数据提供者从接口w2接收到获取数据消息,如果是数据提供者接收到获取数据消息,则执行步骤209,否则执行步骤212;
[0037] 步骤209:判断数据提供者是否能提供数据C1,如果能,则执行步骤210,否则执行步骤211;
[0038] 步骤210:数据提供者创建一个返回数据消息,该返回数据消息的数据ID域值为CID1,消息类型为3,负载为数据C1,然后数据提供者从自己接口w2发送该返回数据消息,执行步骤221;
[0039] 步骤211:数据提供者丢弃接收到的获取数据消息,执行步骤221;
[0040] 步骤212:数据路由器判断请求待处理表中是否存在数据ID域值为CID1且接口域值为w2的请求待处理表项,如果是,执行步骤221,否则执行步骤213;
[0041] 步骤213:数据路由器判断请求待处理表中是否存在数据ID域值为CID1的请求待处理表项,如果是,执行步骤214,否则执行步骤215;
[0042] 步骤214:数据路由器创建一个请求待处理表项,该请求待处理表项的数据ID域值为CID1,接口域值为w2,执行步骤221;
[0043] 步骤215:数据路由器创建一个请求待处理表项,该请求待处理表项的数据ID域值为CID1,接口域值为w2,数据路由器查看是否存在数据ID域值为CID1且队列域值小于最大预定队列域值的路由表项,如果存在,则执行步骤216,否则执行步骤217;
[0044] 步骤216:对于每一个数据ID域值为CID1且队列域值小于最大预定队列域值的路由表项,数据路由器根据公式(1)计算该表项的优先级R,然后选择优先级最大地路由表项,从该路由表项的接口域值转发该获取数据消息,同时将该路由表项的队列域值递增1,执行步骤208;
[0045] 步骤217:数据路由器创建一个反转消息,该反转消息的数据ID域值为CID1,消息类型为4,负载为空,然后数据路由器查看请求待处理表,选择数据ID域值为CID1的请求待处理表项,针对每个选择的请求待处理表项,数据路由器从该请求待处理表项的接口域值转发反转消息,最后删除数据ID域值为CID1的请求待处理表项;
[0046] 步骤218:数据路由器从接口w3接收到反转消息后,查看路由表判断是否存在满足条件3的路由表项,如果存在,则执行步骤219,否则执行步骤220;
[0047] 条件3:数据ID域值为CID1,队列域值小于最大队列域值,接口域值既不等于接口w3,也不等于任何一个数据ID域值为CID1的请求待处理表项中的接口域值;
[0048] 步骤219:对于每一个满足条件3的路由表项,数据路由器根据公式(1)计算该表项的优先级R,然后选择优先级最大的路由表项,从该路由表项的接口域值转发该获取数据消息,同时将该表项的队列域值递增1,执行步骤208;
[0049] 步骤220:判断数据路由器是否为数据路由器R1,如果是,执行步骤228,否则执行步骤217;
[0050] 步骤221:判断数据路由器是否在预定时间内接收到返回数据消息,预定时间可以设置为1s,如果是,执行步骤225,否则执行步骤222;
[0051] 步骤222:数据路由器查看路由表判断是否存在满足条件4的路由表项,如果存在,则执行步骤223,否则执行步骤224;
[0052] 条件4:数据ID域值为CID1,队列域值小于最大队列域值,接口域值既不等于转发数据ID域值为CID1的获取数据消息的接口,也不等于任何一个数据ID域值为CID1的请求待处理表项中的接口域值;
[0053] 步骤223:对于每一个满足条件4的路由表项,数据路由器根据公式(1)计算该表项的优先级R,然后选择优先级最大的路由表项,从该路由表项的接口域值转发该获取数据消息,同时将该表项的队列域值递增1,执行步骤208;
[0054] 步骤224:判断数据路由器是否为数据路由器R1,如果是,执行步骤228,否则执行步骤217;
[0055] 步骤225:数据路由器或者数据消费者从自己的接口w4接收到返回数据消息,如果是数据路由器接收到返回数据消息,则执行步骤226,否则执行步骤227;
[0056] 步骤226:数据路由器从请求待处理表中选择所有数据ID域值为CID1的请求待处理表项,针对每个选择的请求待处理表项,数据路由器从该请求待处理表项中的接口域发送接收到的返回数据消息,然后数据路由器删除所有数据ID域值为CID1的路由表项,同时将数据ID域值为CID1且接口域值为w4的路由表项的队列域值递减1,执行步骤225;
[0057] 步骤227:数据消费者U1获取并保存返回数据消息中的数据C1;
[0058] 步骤228:结束。
[0059] 通过上述过程,数据消费者可以快速获取并保存所需数据,降低了通信延迟和丢包率。
[0060] 本发明所述方法中,在数据提供者定期发送信标消息,该信标消息的数据ID为自己所能提供的数据的数据ID,类型为0,负载为空的条件下;数据路由器从自己的接口w5接收到数据ID域值为n1的信标帧后,判断是否存在接口域值为w5且数据ID域值为n1的路由表项,如果存在,则将这些路由表项的生命时间设置为最大值,否则,数据路由器执行下述过程:
[0061] 步骤301:开始;
[0062] 步骤302:数据路由器创建一个路由表项,该路由表项的数据ID域值为n1,接口域值为w5,队列域值为0,路径域值为1,生命周期为最大生命周期值;数据路由器随机产生一个序列号,同时构建路由创建消息,该路由创建消息的数据ID域值为n1,消息类型为1,负载为序列号和路径参数,路径参数的初始值为1;数据路由器从符合条件1和条件2的接口发送该路由创建消息;
[0063] 步骤303:数据路由器从自己接口f接收到路由创建消息,然后查看路由表判断是否存在数据ID域值为n1且接口域值为f的路由表项,如果存在,执行步骤306,否则执行步骤304;
[0064] 步骤304:数据路由器将路由创建消息中的路径域值递增1,然后创建一个路由表项,该路由表项的数据ID域值为n1,接口域值为f,队列域值为0,路径域值为路由创建消息中的路径域值,生命周期为最大生命周期值,例如1s,如果数据路由器只有接口f与其他数据路由器相连,那么执行步骤310,否则执行步骤305;
[0065] 步骤305:数据路由器从每个符合条件1和条件2的接口转发接收到的路由创建消息,执行步骤303;
[0066] 步骤306:数据路由器查看路由表判断是否存在数据ID域值为n1,接口域值为f且路径值大于路由创建消息中的路径值的路由表项,如果存在,执行步骤307,否则执行步骤309;
[0067] 步骤307:数据路由器将路由创建消息中的路径域值递增1,然后更新数据ID域值为n1,接口域值为f且路径值大于路由创建消息中的路径值的路由表项,即用路由创建消息中的路径值更新该表项中的路径值,同时将该路由表项的生命周期设置为最大值;数据路由器判断是否从每个与其他数据路由器相连的接口都接收到了具有相同序列号的路由创建消息,如果是,则执行步骤310,否则执行步骤308;
[0068] 步骤308:数据路由器从每个符合条件1和条件2的接口转发接收到的路由创建消息,执行步骤303;
[0069] 步骤309:数据路由器丢弃接收到的路由创建消息;
[0070] 步骤310:结束。
[0071] 上述过程可以快速地更新路由表从而确保数据消费者正确快速地获取数据。
[0072] 本发明所述方法中,如果数据路由器检测到接口域值为无线接口w的路由表项的生命时间衰减为0,那么执行下述操作:
[0073] 步骤401:开始;
[0074] 步骤402:数据路由器随机产生一个序列号,构建一个更新消息,该更新消息的数据ID为该路由表项的数据ID域值,类型为7,负载为序列号;数据路由器删除接口域值为无线接口w的路由表项,同时从每个与其他数据路由器相连的接口转发该更新消息;
[0075] 步骤403:数据路由器从自己的接口w7接收到更新消息后,查看路由表判断是否存在接口域值为w7且数据ID等于更新消息的数据ID域值的路由表项,如果存在,执行步骤404,否则执行步骤406;
[0076] 步骤404:数据路由器删除接口域值为w7且数据ID域值等于更新消息的数据ID域值的路由表项,数据路由器判断是否存在数据ID域值等于更新消息的数据ID的路由表项,如果是,执行步骤406,否则执行步骤405;
[0077] 步骤405:数据路由器从符合条件5的每个接口接收到的更新消息,执行步骤403;
[0078] 条件5:该接口与数据路由器相连且没有接收到具有相同序列号的更新消息;
[0079] 步骤406:结束。
[0080] 上述过程可以快速地更新路由表从而确保数据消费者正确快速地获取数据。
[0081] 本发明所述方法中,在数据路由器定期从每个接口发送信标消息,该信标消息的数据ID为空,类型为0,负载为空的条件下;
[0082] 数据路由器从接口w收到信标帧后,选择所有接口域值为w的路由表项,数据路由器将这些路由表项的生命时间设置为最大值;如果数据路由器检测到接口为有线接口w的路由表项的生命时间衰减为0,每个路由表项的队列最大值为M,那么执行下述操作:
[0083] 步骤501:开始;
[0084] 步骤502:数据路由器随机产生一个序列号,选择接口域值为w的所有路由表项,将所述路由表项的队列域值设置为M+1;数据路由器构建一个不可达消息,该不可达消息的数据ID集合域值为接口域值为w的所有路由表项的数据ID的集合,类型为5,负载为序列号;数据路由器从除了接口w以外的有线接口转发该不可达消息;
[0085] 步骤503:数据路由器从自己的接口w8接收到不可达消息后,查看路由表判断是否存在接口域值为w8且数据ID域值属于不可达消息中的数据ID集合的路由表项,如果存在,执行步骤504,否则执行步骤506;
[0086] 步骤504:数据路由器将接口域值为w8且数据ID域值属于不可达消息中的数据ID集合的路由表项的队列域值设置为M+1,数据路由器判断是否从每个与其他数据路由器相连的有线接口都接收到具有相同序列号的不可达消息,如果是,执行步骤506,否则执行步骤505
[0087] 步骤505:数据路由器从符合条件6的每个接口转发接收到的不可达消息,执行步骤503;
[0088] 条件6:该接口与数据路由器相连且没有接收到具有相同序列号的不可达消息;
[0089] 步骤506:结束。
[0090] 上述过程可以快速地更新路由表从而确保数据消费者正确快速地获取数据。
[0091] 本发明所述方法中,如果数据路由器从有线接口w接收到信标帧且接口域值为w的路由表项的队列域值大于最大队列值,那么执行下述操作:
[0092] 步骤601:开始;
[0093] 步骤602:数据路由器随机产生一个序列号,选择接口域值为w的所有路由表项,将所述路由表项的队列域值设置为0,生命周期设置为最大生命周期值;数据路由器构建一个可达消息,该可达消息的数据ID集合域值为接口域值为w的所有路由表项的数据ID的集合,类型为6,负载为序列号;数据路由器从除了接口w以外的每个与数据路由器相连的接口转发该可达消息;
[0094] 步骤603:数据路由器从接口w9接收到可达消息后,查看路由表判断是否存在接口域值为w9且数据ID属于可达消息中的数据ID集合的路由表项,如果存在,执行步骤604,否则执行步骤606;
[0095] 步骤604:数据路由器将接口域值为w9且数据ID属于可达消息中的数据ID集合的路由表项的队列域值设置为0,生命周期设置为最大生命周期值,数据路由器判断是否从与其他数据路由器相连的所有有线接口都接收到具有相同序列号的可达消息,如果是,执行步骤606,否则执行步骤605;
[0096] 步骤605:数据路由器从符合条件7的每个接口接收到的可达消息,执行步骤603;
[0097] 条件7:该接口与数据路由器相连且没有接收到具有相同序列号的可达消息;
[0098] 步骤606:结束。
[0099] 上述过程可以快速地更新路由表从而确保数据消费者正确快速地获取数据。
[0100] 有益效果:本发明提供了一种稳定高效的网络数据通信方法,数据消费者通过本发明所提供的数据通信方法能够从距离最近的数据提供者以单播方式获取服务数据,缩短了获取服务数据的延迟和代价,提高了服务质量,本发明可应用于大数据获取等领域,具有广泛的应用前景。

附图说明

[0101] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0102] 图1为本发明所述的路由表建立流程示意图。
[0103] 图2为本发明所述的获取数据流程示意图。
[0104] 图3为本发明所述的路由表项创建流程示意图。
[0105] 图4为本发明所述的路由表项更新流程示意图。
[0106] 图5为本发明所述的路由表项无效流程示意图。
[0107] 图6为本发明所述的路由表项有效流程示意图。具体实施方式:
[0108] 本发明提供了一种稳定高效的网络数据通信方法,数据消费者通过本发明所提供的数据通信方法能够从距离最近的数据提供者以单播方式获取服务数据,缩短了获取服务数据的延迟和代价,提高了服务质量,本发明可应用于大数据获取等领域,具有广泛的应用前景。
[0109] 图1为本发明所述的路由表建立流程示意图。所述网络包括两个以上的移动设备和两个以上的数据路由器,数据路由器具有路由转发功能,数据路由器之间通过有线接口相连,数据路由器与移动设备之间通过无线接口通信,移动设备与数据路由器之间一跳可达;一种类型的数据由一个数据ID唯一定义;数据消费者为有权限获取一种类型数据的移动设备,数据提供者为有权提供一种类型数据的移动设备;移动设备不具有路由转发功能;
[0110] 移动设备和数据路由器之间、移动设备与移动设备之间、以及数据路由器之间通过交换消息实现通信,消息类型如下表所示:
[0111]消息类型 消息类型域值
信标消息 0
路由创建消息 1
获取数据消息 2
返回数据消息 3
反转消息 4
不可达消息 5
可达消息 6
更新消息 7
[0112] 消息类型域值为5和6的消息由数据ID集合域、消息类型域以及负载构成;
[0113] 消息类型域值为0,1,2,3,4,7的消息由数据ID域、消息类型域以及负载构成;
[0114] 数据路由器维护一个路由表,一个路由表项由接口域、数据ID域、队列域、路径域以及生命周期域构成,其中,接口域指向到达数据提供者的下一跳,数据ID域值为数据消费者请求的数据的数据ID,队列域值为当前待处理的获取数据消息的个数,路径域值是保存路由表的数据路由器与数据提供者之间的距离;
[0115] 在数据C1由数据ID定义,数据C1的数据ID域值为CID1,数据提供者P1通过自己的接口k与本地数据路由器相连的条件下,数据提供者P1产生数据C1后,执行下述过程建立路由表:
[0116] 步骤101:开始;
[0117] 步骤102:数据提供者P1随机产生一个序列号,同时构建路由创建消息,该路由创建消息的数据ID域值为CID1,消息类型域值为1,负载为序列号和路径参数;数据提供者P1通过自己的接口k发送该路由创建消息;
[0118] 步骤103:数据路由器从自己的接口j接收到路由创建消息后,查看路由表判断是否存在数据ID域值为CID1且接口域值为j的表项,如果存在,执行步骤106,否则执行步骤104;
[0119] 步骤104:数据路由器将路由创建消息中的路径域值递增1,然后创建一个路由表项,该路由表项的数据ID域值为CID1,接口域值为j,队列域值为0,路径域值为路由创建消息中的路径域值,生命周期为最大生命周期值;如果数据路由器除了接口j以外所有接口都不与其他数据路由器相连,那么执行步骤110,否则执行步骤105;
[0120] 步骤105:数据路由器从每个符合条件1和条件2的接口转发接收到的路由创建消息,执行步骤103;
[0121] 条件1:该接口与数据路由器相连;
[0122] 条件2:数据路由器没有从该接口接收到具有相同序列号的路由创建消息;
[0123] 步骤106:数据路由器查看路由表判断是否存在数据ID域值为CID1,接口域值为j且路径值大于路由创建消息中的路径值的表项,如果存在,执行步骤107,否则执行步骤109;
[0124] 步骤107:数据路由器将路由创建消息中的路径域值递增1,然后更新数据ID域值为CID1,接口域值为j且路径值大于路由创建消息中的路径值的路由表项,即用路由创建消息中的路径值更新该表项中的路径值,同时将该路由表项的生命周期设置为最大值,数据路由器判断是否从每个与其他数据路由器相连的接口都接收到了具有相同序列号的路由创建消息,如果是,则执行步骤110,否则执行步骤108;
[0125] 步骤108:数据路由器从每个符合条件1和条件2的接口转发接收到的路由创建消息,执行步骤103;
[0126] 步骤109:数据路由器丢弃接收到的路由创建消息;
[0127] 步骤110:结束;
[0128] 上述过程能够快速建立路由表以至于数据消费者能够快速正确地从数据提供者获取数据。
[0129] 图2为本发明所述的获取数据流程示意图。在数据路由器维护一个请求待处理表,一个请求待处理表项由接口域和数据ID域构成,接口域指向到达数据消费者的下一跳,数据ID域值为该数据消费者请求的数据ID;数据C1由数据ID CID1定义,数据消费者U1通过接口w与本地数据路由器R1相连的情况下,数据消费者U1通过下述过程获取数据C1:
[0130] 步骤201:开始;
[0131] 步骤202:数据消费者U1构建一个获取数据消息,数据ID域值为CID1,消息类型为2,负载为空;数据消费者U1从自己的接口w发送该获取数据消息;
[0132] 步骤203:数据路由器R1从自己的接口w1接收到获取数据消息后,判断请求待处理表中是否存在数据ID域值为CID1且接口域值为w1的请求待处理表项,如果是,执行步骤221,否则执行步骤204;
[0133] 步骤204:数据路由器R1判断请求待处理表中是否存在数据ID域值为CID1的请求待处理表项,如果是,执行步骤205,否则执行步骤206;
[0134] 步骤205:数据路由器R1创建一个请求待处理表项,该请求待处理表项的数据ID域值为CID1,接口域值为w1,执行步骤221;
[0135] 步骤206:数据路由器R1创建一个请求待处理表项,该请求待处理表项的数据ID域值为CID1,接口域值为w1,然后数据路由器R1查看是否存在数据ID域值为CID1且队列域值小于最大预定队列域值的路由表项,最大预定队列域值可以设置为20,如果存在,则执行步骤207,否则执行步骤228;
[0136] 步骤207:对于每一个数据ID域值为CID1且队列域值小于最大预定队列域值的路由表项,数据路由器R1根据公式(1)计算该表项的优先级R,然后选择优先级最大的路由表项,从该路由表项的接口域值转发该获取数据消息,同时将该路由表项的队列域值递增1;
[0137] R=1/(q1×U+h1×O);q1>0,h1>0  (1)
[0138] 其中,q1和h1为调节参数,U为该表项的队列域值,q1为队列系数,O为该表项的路径域值,h1为路径系数,q1和h1一般为小于1的正数,如果用户要求较低的数据通信延迟,那么h1>q1,如果用户要求低丢包率,则q1>h1,如果用户要求低通信延迟和低丢包率,则q1=h1;
[0139] 步骤208:数据路由器或者数据提供者从接口w2接收到获取数据消息,如果是数据提供者接收到获取数据消息,则执行步骤209,否则执行步骤212;
[0140] 步骤209:判断数据提供者是否能提供数据C1,如果能,则执行步骤210,否则执行步骤211;
[0141] 步骤210:数据提供者创建一个返回数据消息,该返回数据消息的数据ID域值为CID1,消息类型为3,负载为数据C1,然后数据提供者从自己接口w2发送该返回数据消息,执行步骤221;
[0142] 步骤211:数据提供者丢弃接收到的获取数据消息,执行步骤221;
[0143] 步骤212:数据路由器判断请求待处理表中是否存在数据ID域值为CID1且接口域值为w2的请求待处理表项,如果是,执行步骤221,否则执行步骤213;
[0144] 步骤213:数据路由器判断请求待处理表中是否存在数据ID域值为CID1的请求待处理表项,如果是,执行步骤214,否则执行步骤215;
[0145] 步骤214:数据路由器创建一个请求待处理表项,该请求待处理表项的数据ID域值为CID1,接口域值为w2,执行步骤221;
[0146] 步骤215:数据路由器创建一个请求待处理表项,该请求待处理表项的数据ID域值为CID1,接口域值为w2,数据路由器查看是否存在数据ID域值为CID1且队列域值小于最大预定队列域值的路由表项,如果存在,则执行步骤216,否则执行步骤217;
[0147] 步骤216:对于每一个数据ID域值为CID1且队列域值小于最大预定队列域值的路由表项,数据路由器根据公式(1)计算该表项的优先级R,然后选择优先级最大地路由表项,从该路由表项的接口域值转发该获取数据消息,同时将该路由表项的队列域值递增1,执行步骤208;
[0148] 步骤217:数据路由器创建一个反转消息,该反转消息的数据ID域值为CID1,消息类型为4,负载为空,然后数据路由器查看请求待处理表,选择数据ID域值为CID1的请求待处理表项,针对每个选择的请求待处理表项,数据路由器从该请求待处理表项的接口域值转发反转消息,最后删除数据ID域值为CID1的请求待处理表项,执行步骤218;
[0149] 步骤218:数据路由器从接口w3接收到反转消息后,查看路由表判断是否存在满足条件3的路由表项,如果存在,则执行步骤219,否则执行步骤220;
[0150] 条件3:数据ID域值为CID1,队列域值小于最大队列域值,接口域值既不等于接口w3,也不等于任何一个数据ID域值为CID1的请求待处理表项中的接口域值;
[0151] 步骤219:对于每一个满足条件3的路由表项,数据路由器根据公式(1)计算该表项的优先级R,然后选择优先级最大的路由表项,从该路由表项的接口域值转发该获取数据消息,同时将该表项的队列域值递增1,执行步骤208;
[0152] 步骤220:判断数据路由器是否为数据路由器R1,如果是,执行步骤228,否则执行步骤217;
[0153] 步骤221:判断数据路由器是否在预定时间内接收到返回数据消息,预定时间可以设置为1s,如果是,执行步骤225,否则执行步骤222;
[0154] 步骤222:数据路由器查看路由表判断是否存在满足条件4的路由表项,如果存在,则执行步骤223,否则执行步骤224;
[0155] 条件4:数据ID域值为CID1,队列域值小于最大队列域值,接口域值既不等于转发数据ID域值为CID1的获取数据消息的接口,也不等于任何一个数据ID域值为CID1的请求待处理表项中的接口域值;
[0156] 步骤223:对于每一个满足条件4的路由表项,数据路由器根据公式(1)计算该表项的优先级R,然后选择优先级最大的路由表项,从该路由表项的接口域值转发该获取数据消息,同时将该表项的队列域值递增1,执行步骤208;
[0157] 步骤224:判断数据路由器是否为数据路由器R1,如果是,执行步骤228,否则执行步骤217;
[0158] 步骤225:数据路由器或者数据消费者从自己的接口w4接收到返回数据消息,如果是数据路由器接收到返回数据消息,则执行步骤226,否则执行步骤227;
[0159] 步骤226:数据路由器从请求待处理表中选择所有数据ID域值为CID1的请求待处理表项,针对每个选择的请求待处理表项,数据路由器从该请求待处理表项中的接口域发送接收到的返回数据消息,然后数据路由器删除所有数据ID域值为CID1的路由表项,同时将数据ID域值为CID1且接口域值为w4的路由表项的队列域值递减1,执行步骤225;
[0160] 步骤227:数据消费者U1获取并保存返回数据消息中的数据C1;
[0161] 步骤228:结束。
[0162] 通过上述过程,数据消费者可以快速获取并保存所需数据,降低了通信延迟和丢包率。
[0163] 图3为本发明所述的路由表项创建流程示意图。在数据提供者定期发送信标消息,该信标消息的数据ID为自己所能提供的数据的数据ID,类型为0,负载为空的条件下;数据路由器从自己的接口w5接收到数据ID域值为n1的信标帧后,判断是否存在接口域值为w5且数据ID域值为n1的路由表项,如果存在,则将这些路由表项的生命时间设置为最大值,否则,数据路由器执行下述过程:
[0164] 步骤301:开始;
[0165] 步骤302:数据路由器创建一个路由表项,该路由表项的数据ID域值为n1,接口域值为w5,队列域值为0,路径域值为1,生命周期为最大生命周期值;数据路由器随机产生一个序列号,同时构建路由创建消息,该路由创建消息的数据ID域值为n1,消息类型为1,负载为序列号和路径参数,路径参数的初始值为1;数据路由器从符合条件1和条件2的接口发送该路由创建消息;
[0166] 步骤303:数据路由器从自己接口f接收到路由创建消息,然后查看路由表判断是否存在数据ID域值为n1且接口域值为f的路由表项,如果存在,执行步骤306,否则执行步骤304;
[0167] 步骤304:数据路由器将路由创建消息中的路径域值递增1,然后创建一个路由表项,该路由表项的数据ID域值为n1,接口域值为f,队列域值为0,路径域值为路由创建消息中的路径域值,生命周期为最大生命周期值,例如1s,如果数据路由器只有接口f与其他数据路由器相连,那么执行步骤310,否则执行步骤305;
[0168] 步骤305:数据路由器从每个符合条件1和条件2的接口转发接收到的路由创建消息,执行步骤303;
[0169] 步骤306:数据路由器查看路由表判断是否存在数据ID域值为n1,接口域值为f且路径值大于路由创建消息中的路径值的路由表项,如果存在,执行步骤307,否则执行步骤309;
[0170] 步骤307:数据路由器将路由创建消息中的路径域值递增1,然后更新数据ID域值为n1,接口域值为f且路径值大于路由创建消息中的路径值的路由表项,即用路由创建消息中的路径值更新该表项中的路径值,同时将该路由表项的生命周期设置为最大值;数据路由器判断是否从每个与其他数据路由器相连的接口都接收到了具有相同序列号的路由创建消息,如果是,则执行步骤310,否则执行步骤308;
[0171] 步骤308:数据路由器从每个符合条件1和条件2的接口转发接收到的路由创建消息,执行步骤303;
[0172] 步骤309:数据路由器丢弃接收到的路由创建消息;
[0173] 步骤310:结束。
[0174] 上述过程可以快速地更新路由表从而确保数据消费者正确快速地获取数据。
[0175] 图4为本发明所述的路由表项更新流程示意图。如果数据路由器检测到接口域值为无线接口w的路由表项的生命时间衰减为0,那么执行下述操作:
[0176] 步骤401:开始;
[0177] 步骤402:数据路由器随机产生一个序列号,构建一个更新消息,该更新消息的数据ID为该路由表项的数据ID域值,类型为7,负载为序列号;数据路由器删除接口域值为无线接口w的路由表项,同时从每个与其他数据路由器相连的接口转发该更新消息;
[0178] 步骤403:数据路由器从自己的接口w7接收到更新消息后,查看路由表判断是否存在接口域值为w7且数据ID等于更新消息的数据ID域值的路由表项,如果存在,执行步骤404,否则执行步骤406;
[0179] 步骤404:数据路由器删除接口域值为w7且数据ID域值等于更新消息的数据ID域值的路由表项,数据路由器判断是否存在数据ID域值等于更新消息的数据ID的路由表项,如果是,执行步骤406,否则执行步骤405;
[0180] 步骤405:数据路由器从符合条件5的每个接口接收到的更新消息,执行步骤403;
[0181] 条件5:该接口与数据路由器相连且没有接收到具有相同序列号的更新消息;
[0182] 步骤406:结束。
[0183] 上述过程可以快速地更新路由表从而确保数据消费者正确快速地获取数据。
[0184] 图5为本发明所述的路由表项无效流程示意图。在数据路由器定期从每个接口发送信标消息,该信标消息的数据ID为空,类型为0,负载为空的条件下;
[0185] 数据路由器从接口w收到信标帧后,选择所有接口域值为w的路由表项,数据路由器将这些路由表项的生命时间设置为最大值;如果数据路由器检测到接口为有线接口w的路由表项的生命时间衰减为0,每个路由表项的队列最大值为M,那么执行下述操作:
[0186] 步骤501:开始;
[0187] 步骤502:数据路由器随机产生一个序列号,选择接口域值为w的所有路由表项,将所述路由表项的队列域值设置为M+1;数据路由器构建一个不可达消息,该不可达消息的数据ID集合域值为接口域值为w的所有路由表项的数据ID的集合,类型为5,负载为序列号;数据路由器从除了接口w以外的有线接口转发该不可达消息;
[0188] 步骤503:数据路由器从自己的接口w8接收到不可达消息后,查看路由表判断是否存在接口域值为w8且数据ID域值属于不可达消息中的数据ID集合的路由表项,如果存在,执行步骤504,否则执行步骤506;
[0189] 步骤504:数据路由器将接口域值为w8且数据ID域值属于不可达消息中的数据ID集合的路由表项的队列域值设置为M+1,数据路由器判断是否从每个与其他数据路由器相连的有线接口都接收到具有相同序列号的不可达消息,如果是,执行步骤506,否则执行步骤505
[0190] 步骤505:数据路由器从符合条件6的每个接口转发接收到的不可达消息,执行步骤503;
[0191] 条件6:该接口与数据路由器相连且没有接收到具有相同序列号的不可达消息;
[0192] 步骤506:结束。
[0193] 上述过程可以快速地更新路由表从而确保数据消费者正确快速地获取数据。
[0194] 图6为本发明所述的路由表项有效流程示意图。如果数据路由器从有线接口w接收到信标帧且接口域值为w的路由表项的队列域值大于最大队列值,那么执行下述操作:
[0195] 步骤601:开始;
[0196] 步骤602:数据路由器随机产生一个序列号,选择接口域值为w的所有路由表项,将所述路由表项的队列域值设置为0,生命周期设置为最大生命周期值;数据路由器构建一个可达消息,该可达消息的数据ID集合域值为接口域值为w的所有路由表项的数据ID的集合,类型为6,负载为序列号;数据路由器从除了接口w以外的每个与数据路由器相连的接口转发该可达消息;
[0197] 步骤603:数据路由器从接口w9接收到可达消息后,查看路由表判断是否存在接口域值为w9且数据ID属于可达消息中的数据ID集合的路由表项,如果存在,执行步骤604,否则执行步骤606;
[0198] 步骤604:数据路由器将接口域值为w9且数据ID属于可达消息中的数据ID集合的路由表项的队列域值设置为0,生命周期设置为最大生命周期值,数据路由器判断是否从与其他数据路由器相连的所有有线接口都接收到具有相同序列号的可达消息,如果是,执行步骤606,否则执行步骤605;
[0199] 步骤605:数据路由器从符合条件7的每个接口接收到的可达消息,执行步骤603;
[0200] 条件7:该接口与数据路由器相连且没有接收到具有相同序列号的可达消息;
[0201] 步骤606:结束。
[0202] 上述过程可以快速地更新路由表从而确保数据消费者正确快速地获取数据。
[0203] 实施例1
[0204] 基于表1的仿真参数,本实施例模拟了本发明中的稳定高效的网络数据通信方法,性能分析如下:当数据提供者数量增加时,分布面积更广泛,因此数据消费者能够从距离更近的数据提供者获取服务数据,因此数据通信延迟和代价都随之下降。数据消费者获取服务数据的平均延迟为100ms,平均代价为6。
[0205] 表1仿真参数
[0206]
[0207] 本发明提供了一种稳定高效的网络数据通信方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号