首页 > 专利 > 常熟理工学院 > 一种低延迟的机会网络实现方法专利详情

一种低延迟的机会网络实现方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2017-12-06
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2018-05-15
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2020-08-04
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2037-12-06
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201711274431.7 申请日 2017-12-06
公开/公告号 CN107949000B 公开/公告日 2020-08-04
授权日 2020-08-04 预估到期日 2037-12-06
申请年 2017年 公开/公告年 2020年
缴费截止日
分类号 H04W24/02H04W28/14H04W40/24 主分类号 H04W24/02
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 4
权利要求数量 5 非专利引证数量 1
引用专利数量 1 被引证专利数量 0
非专利引证 1、2013.06.11马华东等.移动机会网络路由问题研究进展《.软件学报》.2014,;
引用专利 US8462691B 被引证专利
专利权维持 5 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 常熟理工学院 当前专利权人 常熟理工学院
发明人 王晓喃 第一发明人 王晓喃
地址 江苏省苏州市常熟市常熟理工学院(东南校区)计算机科学与工程学院 邮编 215500
申请人数量 1 发明人数量 1
申请人所在省 江苏省 申请人所在市 江苏省苏州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
江苏圣典律师事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
胡建华
摘要
本发明提供了一种低延迟的机会网络实现方法,所述机会网络包括移动节点,每个移动节点配置Y个接口,Y为大于1的正整数,每个接口由一个接口ID k唯一标识,k取值1~Y,接口ID为k的接口简写为接口k;每个接口支持一种协议,移动节点的每个接口与邻居移动节点支持相同协议的接口链路相连;每个移动节点将性能最好的接口设置为默认接口;所述网络通过本发明所提供的实现方法可快速获取网络数据,缩短路由延迟,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、环境监测等领域,具有广泛的应用前景。
  • 摘要附图
    一种低延迟的机会网络实现方法
  • 说明书附图:图1
    一种低延迟的机会网络实现方法
  • 说明书附图:图2
    一种低延迟的机会网络实现方法
  • 说明书附图:图3
    一种低延迟的机会网络实现方法
  • 说明书附图:图4
    一种低延迟的机会网络实现方法
  • 说明书附图:图5
    一种低延迟的机会网络实现方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2020-08-04 授权
2 2018-05-15 实质审查的生效 IPC(主分类): H04W 24/02 专利申请号: 201711274431.7 申请日: 2017.12.06
3 2018-04-20 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种低延迟的机会网络实现方法,其特征在于,所述机会网络包括移动节点,每个移动节点配置Y个接口,Y为大于1的正整数,每个接口由一个接口ID k唯一标识,k取值1~Y,接口ID为k的接口简写为接口k;每个接口支持一种协议,移动节点的每个接口与邻居移动节点支持相同协议的接口链路相连;每个移动节点将性能最好的接口设置为默认接口;
一个移动节点的每个接口配置一个地址,该地址由i比特的横坐标,i比特的纵坐标和j比特的内部ID构成;
机会网络中的每个移动节点具有Y个接口,移动节点启动后,执行下述过程为每个接口获取地址:
步骤101:开始;
步骤102:移动节点创建Y个不同的随机数,每个随机数的长度为j比特,移动节点创建一个随机数集合,该集合由Y个不同的随机数构成;移动节点从默认接口发送一个地址消
2i+j
息,该地址消息的源地址为0,目的地址为广播地址,即广播地址的值为2 -1,负载为时间戳和随机数集合;移动节点设置一个时钟;
步骤103:如果移动节点检测到时钟衰减为0,则执行步骤105,否则执行步骤104;
步骤104:移动节点收到地址消息后,保存该地址消息并从其默认接口转发该地址消息;如果该移动节点发送的地址消息负载中的随机数集合中至少有一个随机数与接收到的地址消息负载中的随机数集合中的随机数相同,并且接收到的地址消息的时间戳早于移动节点发送的地址消息的时间戳,则该移动节点重新创建满足条件1的Y个不同的随机数,每个随机数的长度为j比特,移动节点创建一个随机数集合,该集合由Y个不同的随机数构成;
该移动节点从默认接口发送一个地址消息,该地址消息的源地址为0,目的地址为广播地址,负载为时间戳和随机数集合,该移动节点停止上一次设置的时钟并重新设置一个时钟,执行步骤103;
条件1:Y个不同的随机数与该移动节点保存的所有地址消息负载中的随机数集合中的任何一个随机数都不同;
步骤105:检测到时钟衰减为0的移动节点查看最后发送的地址消息,设置一个参数z,参数z的初始值为1;
步骤106:如果参数z的值大于Y,则执行步骤108,否则执行步骤107;
步骤107:检测到时钟衰减为0的移动节点将最后发送的地址消息负载中的随机数集合中的第z个元素标记为接口ID为z的接口的地址的内部ID,然后该移动节点将自己当前的地理横坐标和地理纵坐标与接口ID为z的接口的地址的内部ID相结合构建成一个地址,并将该地址标记为接口ID为z的接口的地址;该移动节点将参数z递增1,执行步骤106;
步骤108:结束。

2.根据权利要求1所述的一种低延迟的机会网络实现方法,其特征在于,一个移动节点的每个接口的地址的内部ID保持不变,如果该移动节点的地理坐标发生变化,则每个接口的地址的地理横坐标和地理纵坐标为该移动节点当前的地理横坐标和地理纵坐标;
移动节点为每个接口配置地址后,通过每个接口定期发送信标消息,信标消息的源地址为发送该信标消息的接口的地址;
移动节点为每个接口维护一个邻居表,邻居表的表名为该接口的接口ID;一个邻居表项包括地址域和生命周期域;移动节点启动后,为每个接口创建一个邻居表,该邻居表的表名为该接口的接口ID,邻居表为空;移动节点从接口k2接收到信标消息后,查看表名为k2的邻居表,并通过下述过程构建表名为k2的邻居表;
步骤201:开始;
步骤202:移动节点查看表名为k2的邻居表,如果存在一个地址域的内部ID等于接收到的信标消息源地址的内部ID的邻居表项,则执行步骤203,否则执行步骤204;
步骤203:移动节点选择地址域的内部ID等于接收到的信标消息源地址的内部ID的邻居表项,将该邻居表项的地址域更新为接收到的信标消息的源地址,将生命周期设置为最大值,执行步骤205;
步骤204:移动节点在表名为k2的邻居表中创建一个邻居表项,将该邻居表项的地址域为接收到的信标消息的源地址,生命周期为最大值;
步骤205:结束;
如果移动节点检测到表名为k2的邻居表中的一个邻居表项的生命周期衰减为0,则将该邻居表项从表名为k2的邻居表中删除。

3.根据权利要求1所述的一种低延迟的机会网络实现方法,其特征在于,一个移动节点有Y接口,该移动节点为每个接口维护一个发送队列用于缓存等待转发的消息;一个移动节点创建或者接收到一个消息m后,如果该消息的比特长度为gm,那么该移动节点通过下述过程计算发送消息m的一跳延迟:
步骤301:开始;
步骤302:移动节点设置一个参数e,参数e的初始值为0;
步骤303:移动节点将参数e递增1,如果变量e大于Y,则执行步骤305,否则执行步骤
304;
步骤304:移动节点通过公式(1)计算通过接口e发送消息m的一跳延迟te,在公式(1)中,be为接口e的带宽,ge为接口e的发送队列中的所有消息的总比特长度,执行步骤303;
te=(gm+ge)/be   公式(1),
步骤305:结束。

4.根据权利要求3所述的一种低延迟的机会网络实现方法,其特征在于,如果所述机会网络丢包率小于5%且移动节点的邻居节点个数大于8的情况下,如果移动节点M1的通信要求为消息的一跳延迟不大于参数T,参数T的值由移动节点M1设置,那么移动节点M1通过下述过程实现与移动节点M2的通信:
步骤401:开始;
步骤402:移动节点M1构建一个请求消息,该请求消息的源地址为移动节点M1的默认接口的地址,目的地址为移动节点M2的默认接口的地址,负载为移动节点M2的默认接口的地址和参数T;移动节点M1查看自己的Y个接口,移动节点M1执行步骤301~305计算每个接口发送请求消息的一跳延迟;对于符合条件2的每个接口,移动节点M1执行下述操作:移动节点M1选择表名为该接口的接口ID的邻居表,移动节点M1计算该邻居表的每个移动邻居表项中的地址域的地理坐标与请求消息负载中的地址的地理坐标的距离;移动节点M1对符合条件2的所有接口执行上述操作之后,选择符合条件3的邻居表项E1,将请求消息的目的地址更新为邻居表项E1的地址域值,从包含邻居表项E1的邻居表表名所标识的接口发送请求消息;
条件2:通过该接口发送请求消息的一跳延迟不大于参数T;
条件3:该邻居表项的地址域的地理坐标与请求消息负载中的地址的地理坐标的距离最小,并且通过包含该邻居表项的邻居表表名所标识的接口转发请求消息具有最小的一跳延迟;
步骤403:如果移动节点M2接收到请求消息,则执行步骤405,否则执行步骤404;
步骤404:接收到请求消息的移动节点查看自己的Y个接口,并执行步骤301~305计算每个接口发送接收到的请求消息的一跳延迟;对于符合条件2的每个接口,该移动节点执行下述操作:移动节点选择表名为该接口的接口ID的邻居表,计算该邻居表中每个移动邻居表项中的地址域的地理坐标与接收到的请求消息负载中的地址的地理坐标的距离;该移动节点对符合条件2的所有接口执行上述操作之后,选择符合条件3的邻居表项E2,将接收到的请求消息的目的地址更新为邻居表项E2的地址域值,从包含邻居表项E2的邻居表表名所标识的接口发送请求消息;执行步骤403;
步骤405:移动节点M2接收到请求消息后,移动节点M2构建一个响应消息,该响应消息的源地址为接收到的请求消息负载中的地址,目的地址为接收到的请求消息的源地址,负载为接收到的请求消息的源地址、参数T和响应数据C;移动节点M2查看自己的Y个接口,并执行步骤301~305计算每个接口发送响应消息的一跳延迟;如果至少存在一个符合条件4的接口,则执行步骤406,否则执行步骤407;
条件4:通过该接口发送响应消息的一跳延迟不大于参数T;
步骤406:对于符合条件4的每个接口,移动节点M2执行下述操作:移动节点M2选择表名为该接口的接口ID的邻居表,计算该邻居表中每个移动邻居表项中的地址域的地理坐标与响应消息负载中的地址的地理坐标的距离;移动节点M2对符合条件4的所有接口执行上述操作之后,选择符合条件5的邻居表项E3,将响应消息的目的地址更新为邻居表项E3的地址域值,从包含邻居表项E3的邻居表表名所标识的接口发送响应消息,执行步骤410;
条件5:该邻居表项的地址域的地理坐标与响应消息负载中的地址的地理坐标的距离最小,并且通过包含该邻居表项的邻居表表名所标识的接口转发响应消息的一跳延迟最小;
步骤407:移动节点M2将响应数据C平均分为Y个数据块,对于每个数据块,移动节点M2构建一个响应消息,该响应消息的源地址为接收到的请求消息负载中的地址,目的地址为接收到的请求消息的源地址,负载为接收到的请求消息的源地址,参数T和该数据块;移动节点M2构建Y个响应消息后,创建一个消息集合,该集合由构建的Y个响应消息构成;
步骤408:移动节点M2查看消息集合,如果消息集合为空,则执行步骤410,否则执行步骤409;
步骤409:移动节点M2从消息集合中随机选取一个响应消息,然后查看自己的Y个接口,执行步骤301~305计算每个接口发送该响应消息的一跳延迟;对于符合条件4的每个接口,移动节点M2执行下述操作:移动节点M2选择表名为该接口的接口ID的邻居表,计算该邻居表中每个移动邻居表项中的地址域的地理坐标与响应消息负载中的地址的地理坐标的距离;移动节点M2对符合条件4的所有接口执行上述操作之后,选择符合条件5的邻居表项E4,将响应消息的目的地址更新为邻居表项E4的地址域值,从包含邻居表项E4的邻居表表名所标识的接口发送响应消息;移动节点M2从消息集合中删除选取的响应消息,执行步骤408;
步骤410:如果移动节点M1接收到响应消息,则执行步骤412,否则执行步骤411;
步骤411:接收到响应消息的移动节点查看自己的Y个接口,并执行步骤301~305计算每个接口发送接收到的响应消息的一跳延迟;对于符合条件4的每个接口,该移动节点执行下述操作:移动节点选择表名为该接口的接口ID的邻居表,计算该邻居表中每个移动邻居表项中的地址域的地理坐标与接收到的响应消息负载中的地址的地理坐标的距离;该移动节点对符合条件4的所有接口执行上述操作之后,选择符合条件5的邻居表项E5,将接收到的响应消息的目的地址更新为邻居表项E5的地址域值,从包含邻居表项E5的邻居表表名所标识的接口发送更新的响应消息,执行步骤410;
步骤412:移动节点M1接收到响应消息后,保存响应消息中的响应数据;如果移动节点M1接收到完成的响应数据C,则执行步骤413,否则执行步骤410;
步骤413:结束。

5.根据权利要求4所述的一种低延迟的机会网络实现方法,其特征在于,如果所述机会网络丢包率大于5%且移动节点的邻居节点个数小于8,如果移动节点M1的通信要求为消息的一跳延迟不大于参数T,参数T的值由移动节点M1设置,那么移动节点M1通过下述过程实现与移动节点M2的通信:
步骤501:开始;
步骤502:移动节点M1创建一个序列号n,并构建一个请求消息,该请求消息的源地址为移动节点M1的默认接口的地址,目的地址为移动节点M2的默认接口的地址,负载为移动节点M2的默认接口的地址、序列号n和参数T;移动节点M1查看自己的Y个接口,移动节点M1执行步骤301~305计算每个接口发送请求消息的一跳延迟;对于符合条件2的每个接口,移动节点M1执行下述操作:移动节点M1选择表名为该接口的接口ID的邻居表,移动节点M1计算该邻居表的每个移动邻居表项中的地址域的地理坐标与请求消息负载中的地址的地理坐标的距离,移动节点M1从该邻居表中选择符合条件6的邻居表项,将请求消息的目的地址更新为该邻居表项的地址域值,从该邻居表表名所标识的接口发送请求消息;
条件6:该邻居表项的地址域的地理坐标与请求消息负载中的地址的地理坐标的距离最小;
步骤503:如果移动节点M2接收到请求消息,则执行步骤507,否则执行步骤504;
步骤504:接收到请求消息的移动节点如果已经接收到具有相同序列号的请求消息,则执行步骤505,否则执行步骤506;
步骤505:接收到请求消息的移动节点丢弃该请求消息,执行步骤514;
步骤506:接收到请求消息的移动节点查看自己的Y个接口,并执行步骤301~305计算每个接口发送请求消息的一跳延迟;对于符合条件2的每个接口,该移动节点执行下述操作:移动节点选择表名为该接口的接口ID的邻居表,计算该邻居表的每个移动邻居表项中的地址域的地理坐标与接收到的请求消息负载中的地址的地理坐标的距离,移动节点从该邻居表中选择符合条件6的邻居表项,将请求消息的目的地址更新为该符合条件6的邻居表项的地址域值,从该邻居表表名所标识的接口发送请求消息,执行步骤503;
步骤507:移动节点M2接收到请求消息,如果移动节点M2已经接收到具有相同序列号的请求消息,则执行步骤508,否则执行步骤509;
步骤508:移动节点M2丢弃接收到请求消息,执行步骤514;
步骤509:移动节点M2创建一个序列号n1,并构建一个响应消息,该响应消息的源地址为接收到的请求消息负载中的地址,目的地址为接收到的请求消息的源地址,负载为接收到的请求消息的源地址、参数T、序列号n1和响应数据C;移动节点M2查看自己的Y个接口,并执行步骤301~305计算每个接口发送响应消息的一跳延迟;如果至少存在一个符合条件4的接口,则执行步骤510,否则执行步骤511;
步骤510:对于符合条件4的每个接口,移动节点M2执行下述操作:移动节点M2选择表名为该接口的接口ID的邻居表,计算该邻居表的每个移动邻居表项中的地址域的地理坐标与构建的响应消息负载中的地址的地理坐标的距离,移动节点从该邻居表中选择符合条件7的邻居表项,将响应消息的目的地址更新为该符合条件7的邻居表项的地址域值,从该邻居表表名所标识的接口发送请求消息,执行步骤514;
条件7:该邻居表项的地址域的地理坐标与响应消息负载中的地址的地理坐标的距离最小;
步骤511:移动节点M2将响应数据C平均分为Y个数据块,对于每个数据块,移动节点M2创建一个序列号并构建一个响应消息,该响应消息的源地址为接收到的请求消息负载中的地址,目的地址为接收到的请求消息的源地址,负载为接收到的请求消息的源地址、参数T、构建的序列号和该数据块;移动节点M2构建Y个响应消息后,创建一个消息集合,该集合由构建的Y个响应消息构成;
步骤512:移动节点M2查看消息集合,如果消息集合为空,则执行步骤514,否则执行步骤513;
步骤513:移动节点M2从消息集合中随机选取一个响应消息,查看自己的Y个接口,执行步骤301~305计算每个接口发送该响应消息的一跳延迟;对于符合条件4的每个接口,移动节点M2执行下述操作:移动节点M2选择表名为该接口的接口ID的邻居表,计算该邻居表中每个移动邻居表项中的地址域的地理坐标与响应消息负载中的地址的地理坐标的距离,从该邻居表中选择符合条件7的邻居表项,将选择的响应消息的目的地址更新为符合条件7的邻居表项的地址域值,从该邻居表表名所标识的接口发送选取的响应消息;移动节点M2从消息集合中删除选取的响应消息,执行步骤512;
步骤514:如果移动节点M1接收到响应消息,则执行步骤518,否则执行步骤515;
步骤515:接收到响应消息的移动节点如果已经接收到具有相同序列号的响应消息,则执行步骤516,否则执行步骤517;
步骤516:接收到响应消息的移动节点丢弃接收到的响应消息,执行步骤521;
步骤517:接收到响应消息的移动节点查看自己的Y个接口,并执行步骤301~305计算每个接口发送接收到的响应消息的一跳延迟;对于符合条件4的每个接口,该移动节点执行下述操作:移动节点选择表名为该接口的接口ID的邻居表,计算该邻居表中每个移动邻居表项中的地址域的地理坐标与接收到的响应消息负载中的地址的地理坐标的距离,从该邻居表中选择符合条件7的邻居表项,将接收到的响应消息的目的地址更新为该邻居表项的地址域值,从该邻居表表名所标识的接口发送更新的响应消息;执行步骤514;
步骤518:移动节点M1接收到响应消息,如果移动节点M1已经接收到具有相同序列号的响应消息,则执行步骤519,否则执行步骤520;
步骤519:移动节点M1丢弃接收到的响应消息,执行步骤521;
步骤520:移动节点M1保存接收到的响应消息中的响应数据;
步骤521:如果移动节点M1接收到完成的响应数据C,则执行步骤522,否则执行步骤
514;
步骤522:结束。
说明书

技术领域

[0001] 本发明涉及一种实现方法,尤其涉及的是一种低延迟的机会网络实现方法。

背景技术

[0002] 机会网络作为一种新型通信网络,能够实现节点之间的多跳无线通信。随着网络技术的不断发展以及各种新应用的不断涌现,迫切需要提高网络性能。
[0003] 目前,研究人员提出了通过机会网络获取网络服务的模式并定义了相应的协议栈,但是由于机会的体系结构与传统网络的体系结构不同,现有的网络获取服务的方法具有一些局限性。因此需要提出一种低延迟的机会网络实现方法,从而提高服务质量。

发明内容

[0004] 发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种低延迟的机会网络实现方法。
[0005] 技术方案:本发明公开了一种低延迟的机会网络实现方法,所述机会网络包括移动节点,每个移动节点配置Y个接口,Y为大于1的正整数,每个接口由一个接口ID k唯一标识,k取值1~Y,接口ID为k的接口简写为接口k;每个接口支持一种协议,例如IEEE 802.11或者IEEE 802.3,移动节点的每个接口与邻居移动节点支持相同协议的接口链路相连;每个移动节点将性能最好的接口设置为默认接口,例如将带宽最大的接口设置为默认接口,默认接口预先设置;
[0006] 一个移动节点的每个接口配置一个地址,该地址由i比特的横坐标,i比特的纵坐标和j比特的内部ID构成;
[0007] 机会网络中的每个移动节点具有Y个接口,移动节点启动后,执行下述过程为每个接口获取地址:
[0008] 步骤101:开始;
[0009] 步骤102:移动节点创建Y个不同的随机数,每个随机数的长度为j比特,移动节点创建一个随机数集合,该集合由Y个不同的随机数构成;移动节点从默认接口发送一个地址消息,该地址消息的源地址为0,目的地址为广播地址,即广播地址的值为22i+j-1,负载为时间戳和随机数集合;移动节点设置一个时钟,例如5s,;
[0010] 步骤103:如果移动节点检测到时钟衰减为0,则执行步骤105,否则执行步骤104;
[0011] 步骤104:移动节点收到地址消息后,保存该地址消息并从其默认接口转发给地址消息;如果该移动节点发送的地址消息负载中的随机数集合中至少有一个随机数与接收到的地址消息负载中的随机数集合中的随机数相同,并且接收到的地址消息的时间戳早于移动节点发送的地址消息的时间戳,则该移动节点重新创建满足条件1的Y个不同的随机数,每个随机数的长度为j比特,移动节点创建一个随机数集合,该集合由Y个不同的随机数构成;该移动节点从默认接口发送一个地址消息,该地址消息的源地址为0,目的地址为广播地址,负载为时间戳和随机数集合,该移动节点停止上一次设置的时钟并重新设置一个时钟,例如5s,执行步骤103;
[0012] 条件1:Y个不同的随机数与该移动节点保存的所有地址消息负载中的随机数集合中的任何一个随机数都不同;
[0013] 步骤105:检测到时钟衰减为0的移动节点查看最后发送的地址消息,设置一个参数z,参数z的初始值为1;
[0014] 步骤106:如果参数z的值大于Y,则执行步骤108,否则执行步骤107;
[0015] 步骤107:检测到时钟衰减为0的移动节点将最后发送的地址消息负载中的随机数集合中的第z个元素标记为接口ID为z的接口的地址的内部ID,然后该移动节点将自己当前的地理横坐标和地理纵坐标与接口ID为z的接口的地址的内部ID相结合构建成一个地址,并将该地址标记为接口ID为z的接口的地址;该移动节点将参数z递增1,执行步骤106;
[0016] 步骤108:结束。
[0017] 移动节点通过上述过程能够快速配置地址从而快速获取数据。
[0018] 本发明所述方法中,一个移动节点的每个接口的地址的内部ID保持不变,如果该移动节点的地理坐标发生变化,则每个接口的地址的地理横坐标和地理纵坐标为该移动节点当前的地理横坐标和地理纵坐标;
[0019] 移动节点为每个接口配置地址后,通过每个接口定期发送信标消息,信标消息的源地址为发送该信标消息的接口的地址;
[0020] 移动节点为每个接口维护一个邻居表,邻居表的表名为该接口的接口ID;一个邻居表项包括地址域和生命周期域;移动节点启动后,为每个接口创建一个邻居表,该邻居表的表名为该接口的接口ID,邻居表为空;移动节点从接口k2接收到信标消息后,查看表名为k2的邻居表,并通过下述过程构建表名为k2的邻居表;
[0021] 步骤201:开始;
[0022] 步骤202:移动节点查看表名为k2的邻居表,如果存在一个地址域的内部ID等于接收到的信标消息源地址的内部ID的邻居表项,则执行步骤203,否则执行步骤204;
[0023] 步骤203:移动节点选择地址域的内部ID等于接收到的信标消息源地址的内部ID的邻居表项,将该邻居表项的地址域更新为接收到的信标消息的源地址,将生命周期设置为最大值,例如1s,执行步骤205;
[0024] 步骤204:移动节点在表名为k2的邻居表中创建一个邻居表项,将该邻居表项的地址域为接收到的信标消息的源地址,生命周期为最大值,例如1s;
[0025] 步骤205:结束;
[0026] 如果移动节点检测到表名为k2的邻居表中的一个邻居表项的生命周期衰减为0,则将该邻居表项从表名为k2的邻居表中删除。
[0027] 移动节点通过上述过程能够快速建立邻居表从而快速获取数据。
[0028] 本发明所述方法中,一个移动节点有Y接口,该移动节点为每个接口维护一个发送队列用于缓存等待转发的消息;一个移动节点创建或者接收到一个消息m后,如果该消息的比特长度为gm,那么该移动节点通过下述过程计算发送消息m的一跳延迟:
[0029] 步骤301:开始;
[0030] 步骤302:移动节点设置一个参数e,参数e的初始值为0;
[0031] 步骤303:移动节点将参数e递增1,如果变量e大于Y,则执行步骤305,否则执行步骤304;
[0032] 步骤304:移动节点通过公式(1)计算通过接口e发送消息m的一跳延迟te,在公式(1)中,be为接口e的带宽,ge为接口e的发送队列中的所有消息的总比特长度,执行步骤303;
[0033] te=(gm+ge)/be  公式(1),
[0034] 步骤305:结束。
[0035] 本发明所述方法中,如果所述机会网络物理环境比较稳定且移动节点密度较大的情况下,例如丢包率小于5%,移动节点的邻居节点个数大于8,如果移动节点M1的通信要求为消息的一跳延迟不大于参数T,参数T的值由移动节点M1设置,那么移动节点M1通过下述过程实现与移动节点M2的通信:
[0036] 步骤401:开始;
[0037] 步骤402:移动节点M1构建一个请求消息,该请求消息的源地址为移动节点M1的默认接口的地址,目的地址为移动节点M2的默认接口的地址,负载为移动节点M2的默认接口的地址和参数T;移动节点M1查看自己的Y个接口,移动节点M1执行步骤301~305计算每个接口发送请求消息的一跳延迟;对于符合条件2的每个接口,移动节点M1执行下述操作:移动节点M1选择表名为该接口的接口ID的邻居表,移动节点M1计算该邻居表的每个移动邻居表项中的地址域的地理坐标与请求消息负载中的地址的地理坐标的距离;移动节点M1对符合条件2的所有接口执行上述操作之后,选择符合条件3的邻居表项E1,将请求消息的目的地址更新为邻居表项E1的地址域值,从包含邻居表项E1的邻居表表名所标识的接口发送请求消息;
[0038] 条件2:通过该接口发送请求消息的一跳延迟不大于参数T;
[0039] 条件3:该邻居表项的地址域的地理坐标与请求消息负载中的地址的地理坐标的距离最小,并且通过包含该邻居表项的邻居表表名所标识的接口转发请求消息具有最小的一跳延迟;
[0040] 步骤403:如果移动节点M2接收到请求消息,则执行步骤405,否则执行步骤404;
[0041] 步骤404:接收到请求消息的移动节点查看自己的Y个接口,并执行步骤301~305计算每个接口发送接收到的请求消息的一跳延迟;对于符合条件2的每个接口,该移动节点执行下述操作:移动节点选择表名为该接口的接口ID的邻居表,计算该邻居表中每个移动邻居表项中的地址域的地理坐标与接收到的请求消息负载中的地址的地理坐标的距离;该移动节点对符合条件2的所有接口执行上述操作之后,选择符合条件3的邻居表项E2,将接收到的请求消息的目的地址更新为邻居表项E2的地址域值,从包含邻居表项E2的邻居表表名所标识的接口发送请求消息;执行步骤403;
[0042] 步骤405:移动节点M2接收到请求消息后,移动节点M2构建一个响应消息,该响应消息的源地址为接收到的请求消息负载中的地址,目的地址为接收到的请求消息的源地址,负载为接收到的请求消息的源地址、参数T和响应数据C;移动节点M2查看自己的Y个接口,并执行步骤301~305计算每个接口发送响应消息的一跳延迟;如果至少存在一个符合条件4的接口,则执行步骤406,否则执行步骤407;
[0043] 条件4:通过该接口发送响应消息的一跳延迟不大于参数T;
[0044] 步骤406:对于符合条件4的每个接口,移动节点M2执行下述操作:移动节点M2选择表名为该接口的接口ID的邻居表,计算该邻居表中每个移动邻居表项中的地址域的地理坐标与响应消息负载中的地址的地理坐标的距离;移动节点M2对符合条件4的所有接口执行上述操作之后,选择符合条件5的邻居表项E3,将响应消息的目的地址更新为邻居表项E3的地址域值,从包含邻居表项E3的邻居表表名所标识的接口发送响应消息,执行步骤410;
[0045] 条件5:该邻居表项的地址域的地理坐标与响应消息负载中的地址的地理坐标的距离最小,并且通过包含该邻居表项的邻居表表名所标识的接口转发响应消息的一跳延迟最小;
[0046] 步骤407:移动节点M2将响应数据C平均分为Y个数据块,对于每个数据块,移动节点M2构建一个响应消息,该响应消息的源地址为接收到的请求消息负载中的地址,目的地址为接收到的请求消息的源地址,负载为接收到的请求消息的源地址,参数T和该数据块;移动节点M2构建Y个响应消息后,创建一个消息集合,该集合由构建的Y个响应消息构成;
[0047] 步骤408:移动节点M2查看消息集合,如果消息集合为空,则执行步骤410,否则执行步骤409;
[0048] 步骤409:移动节点M2从消息集合中随机选取一个响应消息,然后查看自己的Y个接口,执行步骤301~305计算每个接口发送该响应消息的一跳延迟;对于符合条件4的每个接口,移动节点M2执行下述操作:移动节点M2选择表名为该接口的接口ID的邻居表,计算该邻居表中每个移动邻居表项中的地址域的地理坐标与响应消息负载中的地址的地理坐标的距离;移动节点M2对符合条件4的所有接口执行上述操作之后,选择符合条件5的邻居表项E4,将响应消息的目的地址更新为邻居表项E4的地址域值,从包含邻居表项E4的邻居表表名所标识的接口发送响应消息;移动节点M2从消息集合中删除选取的响应消息,执行步骤408;
[0049] 步骤410:如果移动节点M1接收到响应消息,则执行步骤412,否则执行步骤411;
[0050] 步骤411:接收到响应消息的移动节点查看自己的Y个接口,并执行步骤301~305计算每个接口发送接收到的响应消息的一跳延迟;对于符合条件4的每个接口,该移动节点执行下述操作:移动节点选择表名为该接口的接口ID的邻居表,计算该邻居表中每个移动邻居表项中的地址域的地理坐标与接收到的响应消息负载中的地址的地理坐标的距离;该移动节点对符合条件4的所有接口执行上述操作之后,选择符合条件5的邻居表项E5,将接收到的响应消息的目的地址更新为邻居表项E5的地址域值,从包含邻居表项E5的邻居表表名所标识的接口发送更新的响应消息,执行步骤410;
[0051] 步骤412:移动节点M1接收到响应消息后,保存响应消息中的响应数据;如果移动节点M1接收到完成的响应数据C,则执行步骤413,否则执行步骤410;
[0052] 步骤413:结束。
[0053] 移动节点通过上述过程能够快速获取数据。
[0054] 本发明所述方法中,如果所述机会网络物理环境不稳定且移动节点密度较小,例如丢包率大于5%,移动节点的邻居节点个数小于8,如果移动节点M1的通信要求为消息的一跳延迟不大于参数T,参数T的值由移动节点M1设置,那么移动节点M1通过下述过程实现与移动节点M2的通信:
[0055] 步骤501:开始;
[0056] 步骤502:移动节点M1创建一个序列号n,并构建一个请求消息,该请求消息的源地址为移动节点M1的默认接口的地址,目的地址为移动节点M2的默认接口的地址,负载为移动节点M2的默认接口的地址、序列号n和参数T;移动节点M1查看自己的Y个接口,移动节点M1执行步骤301~305计算每个接口发送请求消息的一跳延迟;对于符合条件2的每个接口,移动节点M1执行下述操作:移动节点M1选择表名为该接口的接口ID的邻居表,移动节点M1计算该邻居表的每个移动邻居表项中的地址域的地理坐标与请求消息负载中的地址的地理坐标的距离,移动节点M1从该邻居表中选择符合条件6的邻居表项,将请求消息的目的地址更新为该邻居表项的地址域值,从该邻居表表名所标识的接口发送请求消息;
[0057] 条件6:该邻居表项的地址域的地理坐标与请求消息负载中的地址的地理坐标的距离最小;
[0058] 步骤503:如果移动节点M2接收到请求消息,则执行步骤507,否则执行步骤504;
[0059] 步骤504:接收到请求消息的移动节点如果已经接收到具有相同序列号的请求消息,则执行步骤505,否则执行步骤506;
[0060] 步骤505:接收到请求消息的移动节点丢弃该请求消息,执行步骤514;
[0061] 步骤506:接收到请求消息的移动节点查看自己的Y个接口,并执行步骤301~305计算每个接口发送请求消息的一跳延迟;对于符合条件2的每个接口,该移动节点执行下述操作:移动节点选择表名为该接口的接口ID的邻居表,计算该邻居表的每个移动邻居表项中的地址域的地理坐标与接收到的请求消息负载中的地址的地理坐标的距离,移动节点从该邻居表中选择符合条件6的邻居表项,将请求消息的目的地址更新为该符合条件6的邻居表项的地址域值,从该邻居表表名所标识的接口发送请求消息,执行步骤503;
[0062] 步骤507:移动节点M2接收到请求消息,如果移动节点M2已经接收到具有相同序列号的请求消息,则执行步骤508,否则执行步骤509;
[0063] 步骤508:移动节点M2丢弃接收到请求消息,执行步骤514;
[0064] 步骤509:移动节点M2创建一个序列号n1,并构建一个响应消息,该响应消息的源地址为接收到的请求消息负载中的地址,目的地址为接收到的请求消息的源地址,负载为接收到的请求消息的源地址、参数T、序列号n1和响应数据C;移动节点M2查看自己的Y个接口,并执行步骤301~305计算每个接口发送响应消息的一跳延迟;如果至少存在一个符合条件4的接口,则执行步骤510,否则执行步骤511;
[0065] 步骤510:对于符合条件4的每个接口,移动节点M2执行下述操作:移动节点M2选择表名为该接口的接口ID的邻居表,计算该邻居表的每个移动邻居表项中的地址域的地理坐标与构建的响应消息负载中的地址的地理坐标的距离,移动节点从该邻居表中选择符合条件7的邻居表项,将响应消息的目的地址更新为该符合条件7的邻居表项的地址域值,从该邻居表表名所标识的接口发送请求消息,执行步骤514;
[0066] 条件7:该邻居表项的地址域的地理坐标与响应消息负载中的地址的地理坐标的距离最小;
[0067] 步骤511:移动节点M2将响应数据C平均分为Y个数据块,对于每个数据块,移动节点M2创建一个序列号并构建一个响应消息,该响应消息的源地址为接收到的请求消息负载中的地址,目的地址为接收到的请求消息的源地址,负载为接收到的请求消息的源地址、参数T、构建的序列号和该数据块;移动节点M2构建Y个响应消息后,创建一个消息集合,该集合由构建的Y个响应消息构成;
[0068] 步骤512:移动节点M2查看消息集合,如果消息集合为空,则执行步骤514,否则执行步骤513;
[0069] 步骤513:移动节点M2从消息集合中随机选取一个响应消息,查看自己的Y个接口,执行步骤301~305计算每个接口发送该响应消息的一跳延迟;对于符合条件4的每个接口,移动节点M2执行下述操作:移动节点M2选择表名为该接口的接口ID的邻居表,计算该邻居表中每个移动邻居表项中的地址域的地理坐标与响应消息负载中的地址的地理坐标的距离,从该邻居表中选择符合条件7的邻居表项,将选择的响应消息的目的地址更新为符合条件7的邻居表项的地址域值,从该邻居表表名所标识的接口发送选取的响应消息;移动节点M2从消息集合中删除选取的响应消息,执行步骤512;
[0070] 步骤514:如果移动节点M1接收到响应消息,则执行步骤518,否则执行步骤515;
[0071] 步骤515:接收到响应消息的移动节点如果已经接收到具有相同序列号的响应消息,则执行步骤516,否则执行步骤517;
[0072] 步骤516:接收到响应消息的移动节点丢弃接收到的响应消息,执行步骤521;
[0073] 步骤517:接收到响应消息的移动节点查看自己的Y个接口,并执行步骤301~305计算每个接口发送接收到的响应消息的一跳延迟;对于符合条件4的每个接口,该移动节点执行下述操作:移动节点选择表名为该接口的接口ID的邻居表,计算该邻居表中每个移动邻居表项中的地址域的地理坐标与接收到的响应消息负载中的地址的地理坐标的距离,从该邻居表中选择符合条件7的邻居表项,将接收到的响应消息的目的地址更新为该邻居表项的地址域值,从该邻居表表名所标识的接口发送更新的响应消息;执行步骤514;
[0074] 步骤518:移动节点M1接收到响应消息,如果移动节点M1已经接收到具有相同序列号的响应消息,则执行步骤519,否则执行步骤520;
[0075] 步骤519:移动节点M1丢弃接收到的响应消息,执行步骤521;
[0076] 步骤520:移动节点M1保存接收到的响应消息中的响应数据;
[0077] 步骤521:如果移动节点M1接收到完成的响应数据C,则执行步骤522,否则执行步骤514;
[0078] 步骤522:结束。
[0079] 移动节点通过上述过程能够快速获取数据。
[0080] 有益效果:本发明提供了一种低延迟的机会网络实现方法,所述网络通过本发明所提供的实现方法可快速获取网络数据,缩短路由延迟,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、环境监测等领域,具有广泛的应用前景。

附图说明

[0081] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0082] 图1为本发明所述的地址配置流程示意图。
[0083] 图2为本发明所述建立邻居表流程示意图。
[0084] 图3为本发明所述的计算消息延迟流程示意图。
[0085] 图4为本发明所述网络稳定情况下的数据通信流程示意图。
[0086] 图5为本发明所述网络不稳定情况下的数据通信流程示意图。具体实施方式:
[0087] 本发明提供了一种低延迟的机会网络实现方法,所述网络通过本发明所提供的实现方法可快速获取网络数据,缩短路由延迟,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、环境监测等领域,具有广泛的应用前景。
[0088] 图1为本发明所述的地址配置流程示意图。所述机会网络包括移动节点,每个移动节点配置Y个接口,Y为大于1的正整数,每个接口由一个接口ID k唯一标识,k取值1~Y,接口ID为k的接口简写为接口k;每个接口支持一种协议,移动节点的每个接口与邻居移动节点支持相同协议的接口链路相连;每个移动节点将性能最好的接口设置为默认接口;
[0089] 一个移动节点的每个接口配置一个地址,该地址由i比特的横坐标,i比特的纵坐标和j比特的内部ID构成;
[0090] 机会网络中的每个移动节点具有Y个接口,移动节点启动后,执行下述过程为每个接口获取地址:
[0091] 步骤101:开始;
[0092] 步骤102:移动节点创建Y个不同的随机数,每个随机数的长度为j比特,移动节点创建一个随机数集合,该集合由Y个不同的随机数构成;移动节点从默认接口发送一个地址2i+j
消息,该地址消息的源地址为0,目的地址为广播地址,即广播地址的值为2 -1,负载为时间戳和随机数集合;移动节点设置一个时钟;
[0093] 步骤103:如果移动节点检测到时钟衰减为0,则执行步骤105,否则执行步骤104;
[0094] 步骤104:移动节点收到地址消息后,保存该地址消息并从其默认接口转发给地址消息;如果该移动节点发送的地址消息负载中的随机数集合中至少有一个随机数与接收到的地址消息负载中的随机数集合中的随机数相同,并且接收到的地址消息的时间戳早于移动节点发送的地址消息的时间戳,则该移动节点重新创建满足条件1的Y个不同的随机数,每个随机数的长度为j比特,移动节点创建一个随机数集合,该集合由Y个不同的随机数构成;该移动节点从默认接口发送一个地址消息,该地址消息的源地址为0,目的地址为广播地址,负载为时间戳和随机数集合,该移动节点停止上一次设置的时钟并重新设置一个时钟,执行步骤103;
[0095] 条件1:Y个不同的随机数与该移动节点保存的所有地址消息负载中的随机数集合中的任何一个随机数都不同;
[0096] 步骤105:检测到时钟衰减为0的移动节点查看最后发送的地址消息,设置一个参数z,参数z的初始值为1;
[0097] 步骤106:如果参数z的值大于Y,则执行步骤108,否则执行步骤107;
[0098] 步骤107:检测到时钟衰减为0的移动节点将最后发送的地址消息负载中的随机数集合中的第z个元素标记为接口ID为z的接口的地址的内部ID,然后该移动节点将自己当前的地理横坐标和地理纵坐标与接口ID为z的接口的地址的内部ID相结合构建成一个地址,并将该地址标记为接口ID为z的接口的地址;该移动节点将参数z递增1,执行步骤106;
[0099] 步骤108:结束。
[0100] 图2为本发明所述建立邻居表流程示意图。一个移动节点的每个接口的地址的内部ID保持不变,如果该移动节点的地理坐标发生变化,则每个接口的地址的地理横坐标和地理纵坐标为该移动节点当前的地理横坐标和地理纵坐标;
[0101] 移动节点为每个接口配置地址后,通过每个接口定期发送信标消息,信标消息的源地址为发送该信标消息的接口的地址;
[0102] 移动节点为每个接口维护一个邻居表,邻居表的表名为该接口的接口ID;一个邻居表项包括地址域和生命周期域;移动节点启动后,为每个接口创建一个邻居表,该邻居表的表名为该接口的接口ID,邻居表为空;移动节点从接口k2接收到信标消息后,查看表名为k2的邻居表,并通过下述过程构建表名为k2的邻居表;
[0103] 步骤201:开始;
[0104] 步骤202:移动节点查看表名为k2的邻居表,如果存在一个地址域的内部ID等于接收到的信标消息源地址的内部ID的邻居表项,则执行步骤203,否则执行步骤204;
[0105] 步骤203:移动节点选择地址域的内部ID等于接收到的信标消息源地址的内部ID的邻居表项,将该邻居表项的地址域更新为接收到的信标消息的源地址,将生命周期设置为最大值,执行步骤205;
[0106] 步骤204:移动节点在表名为k2的邻居表中创建一个邻居表项,将该邻居表项的地址域为接收到的信标消息的源地址,生命周期为最大值;
[0107] 步骤205:结束;
[0108] 如果移动节点检测到表名为k2的邻居表中的一个邻居表项的生命周期衰减为0,则将该邻居表项从表名为k2的邻居表中删除。
[0109] 图3为本发明所述的计算消息延迟流程示意图。一个移动节点有Y接口,该移动节点为每个接口维护一个发送队列用于缓存等待转发的消息;一个移动节点创建或者接收到一个消息m后,如果该消息的比特长度为gm,那么该移动节点通过下述过程计算发送消息m的一跳延迟:
[0110] 步骤301:开始;
[0111] 步骤302:移动节点设置一个参数e,参数e的初始值为0;
[0112] 步骤303:移动节点将参数e递增1,如果变量e大于Y,则执行步骤305,否则执行步骤304;
[0113] 步骤304:移动节点通过公式(1)计算通过接口e发送消息m的一跳延迟te,在公式(1)中,be为接口e的带宽,ge为接口e的发送队列中的所有消息的总比特长度,执行步骤303;
[0114] te=(gm+ge)/be  公式(1),
[0115] 步骤305:结束。
[0116] 图4为本发明所述网络稳定情况下的数据通信流程示意图。如果所述机会网络物理环境比较稳定且移动节点密度较大的情况下,如果移动节点M1的通信要求为消息的一跳延迟不大于参数T,参数T的值由移动节点M1设置,那么移动节点M1通过下述过程实现与移动节点M2的通信:
[0117] 步骤401:开始;
[0118] 步骤402:移动节点M1构建一个请求消息,该请求消息的源地址为移动节点M1的默认接口的地址,目的地址为移动节点M2的默认接口的地址,负载为移动节点M2的默认接口的地址和参数T;移动节点M1查看自己的Y个接口,移动节点M1执行步骤301~305计算每个接口发送请求消息的一跳延迟;对于符合条件2的每个接口,移动节点M1执行下述操作:移动节点M1选择表名为该接口的接口ID的邻居表,移动节点M1计算该邻居表的每个移动邻居表项中的地址域的地理坐标与请求消息负载中的地址的地理坐标的距离;移动节点M1对符合条件2的所有接口执行上述操作之后,选择符合条件3的邻居表项E1,将请求消息的目的地址更新为邻居表项E1的地址域值,从包含邻居表项E1的邻居表表名所标识的接口发送请求消息;
[0119] 条件2:通过该接口发送请求消息的一跳延迟不大于参数T;
[0120] 条件3:该邻居表项的地址域的地理坐标与请求消息负载中的地址的地理坐标的距离最小,并且通过包含该邻居表项的邻居表表名所标识的接口转发请求消息具有最小的一跳延迟;
[0121] 步骤403:如果移动节点M2接收到请求消息,则执行步骤405,否则执行步骤404;
[0122] 步骤404:接收到请求消息的移动节点查看自己的Y个接口,并执行步骤301~305计算每个接口发送接收到的请求消息的一跳延迟;对于符合条件2的每个接口,该移动节点执行下述操作:移动节点选择表名为该接口的接口ID的邻居表,计算该邻居表中每个移动邻居表项中的地址域的地理坐标与接收到的请求消息负载中的地址的地理坐标的距离;该移动节点对符合条件2的所有接口执行上述操作之后,选择符合条件3的邻居表项E2,将接收到的请求消息的目的地址更新为邻居表项E2的地址域值,从包含邻居表项E2的邻居表表名所标识的接口发送请求消息;执行步骤403;
[0123] 步骤405:移动节点M2接收到请求消息后,移动节点M2构建一个响应消息,该响应消息的源地址为接收到的请求消息负载中的地址,目的地址为接收到的请求消息的源地址,负载为接收到的请求消息的源地址、参数T和响应数据C;移动节点M2查看自己的Y个接口,并执行步骤301~305计算每个接口发送响应消息的一跳延迟;如果至少存在一个符合条件4的接口,则执行步骤406,否则执行步骤407;
[0124] 条件4:通过该接口发送响应消息的一跳延迟不大于参数T;
[0125] 步骤406:对于符合条件4的每个接口,移动节点M2执行下述操作:移动节点M2选择表名为该接口的接口ID的邻居表,计算该邻居表中每个移动邻居表项中的地址域的地理坐标与响应消息负载中的地址的地理坐标的距离;移动节点M2对符合条件4的所有接口执行上述操作之后,选择符合条件5的邻居表项E3,将响应消息的目的地址更新为邻居表项E3的地址域值,从包含邻居表项E3的邻居表表名所标识的接口发送响应消息,执行步骤410;
[0126] 条件5:该邻居表项的地址域的地理坐标与响应消息负载中的地址的地理坐标的距离最小,并且通过包含该邻居表项的邻居表表名所标识的接口转发响应消息的一跳延迟最小;
[0127] 步骤407:移动节点M2将响应数据C平均分为Y个数据块,对于每个数据块,移动节点M2构建一个响应消息,该响应消息的源地址为接收到的请求消息负载中的地址,目的地址为接收到的请求消息的源地址,负载为接收到的请求消息的源地址,参数T和该数据块;移动节点M2构建Y个响应消息后,创建一个消息集合,该集合由构建的Y个响应消息构成;
[0128] 步骤408:移动节点M2查看消息集合,如果消息集合为空,则执行步骤410,否则执行步骤409;
[0129] 步骤409:移动节点M2从消息集合中随机选取一个响应消息,然后查看自己的Y个接口,执行步骤301~305计算每个接口发送该响应消息的一跳延迟;对于符合条件4的每个接口,移动节点M2执行下述操作:移动节点M2选择表名为该接口的接口ID的邻居表,计算该邻居表中每个移动邻居表项中的地址域的地理坐标与响应消息负载中的地址的地理坐标的距离;移动节点M2对符合条件4的所有接口执行上述操作之后,选择符合条件5的邻居表项E4,将响应消息的目的地址更新为邻居表项E4的地址域值,从包含邻居表项E4的邻居表表名所标识的接口发送响应消息;移动节点M2从消息集合中删除选取的响应消息,执行步骤408;
[0130] 步骤410:如果移动节点M1接收到响应消息,则执行步骤412,否则执行步骤411;
[0131] 步骤411:接收到响应消息的移动节点查看自己的Y个接口,并执行步骤301~305计算每个接口发送接收到的响应消息的一跳延迟;对于符合条件4的每个接口,该移动节点执行下述操作:移动节点选择表名为该接口的接口ID的邻居表,计算该邻居表中每个移动邻居表项中的地址域的地理坐标与接收到的响应消息负载中的地址的地理坐标的距离;该移动节点对符合条件4的所有接口执行上述操作之后,选择符合条件5的邻居表项E5,将接收到的响应消息的目的地址更新为邻居表项E5的地址域值,从包含邻居表项E5的邻居表表名所标识的接口发送更新的响应消息,执行步骤410;
[0132] 步骤412:移动节点M1接收到响应消息后,保存响应消息中的响应数据;如果移动节点M1接收到完成的响应数据C,则执行步骤413,否则执行步骤410;
[0133] 步骤413:结束。
[0134] 图5为本发明所述网络不稳定情况下的数据通信流程示意图。如果所述机会网络物理环境不稳定且移动节点密度较小,如果移动节点M1的通信要求为消息的一跳延迟不大于参数T,参数T的值由移动节点M1设置,那么移动节点M1通过下述过程实现与移动节点M2的通信:
[0135] 步骤501:开始;
[0136] 步骤502:移动节点M1创建一个序列号n,并构建一个请求消息,该请求消息的源地址为移动节点M1的默认接口的地址,目的地址为移动节点M2的默认接口的地址,负载为移动节点M2的默认接口的地址、序列号n和参数T;移动节点M1查看自己的Y个接口,移动节点M1执行步骤301~305计算每个接口发送请求消息的一跳延迟;对于符合条件2的每个接口,移动节点M1执行下述操作:移动节点M1选择表名为该接口的接口ID的邻居表,移动节点M1计算该邻居表的每个移动邻居表项中的地址域的地理坐标与请求消息负载中的地址的地理坐标的距离,移动节点M1从该邻居表中选择符合条件6的邻居表项,将请求消息的目的地址更新为该邻居表项的地址域值,从该邻居表表名所标识的接口发送请求消息;
[0137] 条件6:该邻居表项的地址域的地理坐标与请求消息负载中的地址的地理坐标的距离最小;
[0138] 步骤503:如果移动节点M2接收到请求消息,则执行步骤507,否则执行步骤504;
[0139] 步骤504:接收到请求消息的移动节点如果已经接收到具有相同序列号的请求消息,则执行步骤505,否则执行步骤506;
[0140] 步骤505:接收到请求消息的移动节点丢弃该请求消息,执行步骤514;
[0141] 步骤506:接收到请求消息的移动节点查看自己的Y个接口,并执行步骤301~305计算每个接口发送请求消息的一跳延迟;对于符合条件2的每个接口,该移动节点执行下述操作:移动节点选择表名为该接口的接口ID的邻居表,计算该邻居表的每个移动邻居表项中的地址域的地理坐标与接收到的请求消息负载中的地址的地理坐标的距离,移动节点从该邻居表中选择符合条件6的邻居表项,将请求消息的目的地址更新为该符合条件6的邻居表项的地址域值,从该邻居表表名所标识的接口发送请求消息,执行步骤503;
[0142] 步骤507:移动节点M2接收到请求消息,如果移动节点M2已经接收到具有相同序列号的请求消息,则执行步骤508,否则执行步骤509;
[0143] 步骤508:移动节点M2丢弃接收到请求消息,执行步骤514;
[0144] 步骤509:移动节点M2创建一个序列号n1,并构建一个响应消息,该响应消息的源地址为接收到的请求消息负载中的地址,目的地址为接收到的请求消息的源地址,负载为接收到的请求消息的源地址、参数T、序列号n1和响应数据C;移动节点M2查看自己的Y个接口,并执行步骤301~305计算每个接口发送响应消息的一跳延迟;如果至少存在一个符合条件4的接口,则执行步骤510,否则执行步骤511;
[0145] 步骤510:对于符合条件4的每个接口,移动节点M2执行下述操作:移动节点M2选择表名为该接口的接口ID的邻居表,计算该邻居表的每个移动邻居表项中的地址域的地理坐标与构建的响应消息负载中的地址的地理坐标的距离,移动节点从该邻居表中选择符合条件7的邻居表项,将响应消息的目的地址更新为该符合条件7的邻居表项的地址域值,从该邻居表表名所标识的接口发送请求消息,执行步骤514;
[0146] 条件7:该邻居表项的地址域的地理坐标与响应消息负载中的地址的地理坐标的距离最小;
[0147] 步骤511:移动节点M2将响应数据C平均分为Y个数据块,对于每个数据块,移动节点M2创建一个序列号并构建一个响应消息,该响应消息的源地址为接收到的请求消息负载中的地址,目的地址为接收到的请求消息的源地址,负载为接收到的请求消息的源地址、参数T、构建的序列号和该数据块;移动节点M2构建Y个响应消息后,创建一个消息集合,该集合由构建的Y个响应消息构成;
[0148] 步骤512:移动节点M2查看消息集合,如果消息集合为空,则执行步骤514,否则执行步骤513;
[0149] 步骤513:移动节点M2从消息集合中随机选取一个响应消息,查看自己的Y个接口,执行步骤301~305计算每个接口发送该响应消息的一跳延迟;对于符合条件4的每个接口,移动节点M2执行下述操作:移动节点M2选择表名为该接口的接口ID的邻居表,计算该邻居表中每个移动邻居表项中的地址域的地理坐标与响应消息负载中的地址的地理坐标的距离,从该邻居表中选择符合条件7的邻居表项,将选择的响应消息的目的地址更新为符合条件7的邻居表项的地址域值,从该邻居表表名所标识的接口发送选取的响应消息;移动节点M2从消息集合中删除选取的响应消息,执行步骤512;
[0150] 步骤514:如果移动节点M1接收到响应消息,则执行步骤518,否则执行步骤515;
[0151] 步骤515:接收到响应消息的移动节点如果已经接收到具有相同序列号的响应消息,则执行步骤516,否则执行步骤517;
[0152] 步骤516:接收到响应消息的移动节点丢弃接收到的响应消息,执行步骤521;
[0153] 步骤517:接收到响应消息的移动节点查看自己的Y个接口,并执行步骤301~305计算每个接口发送接收到的响应消息的一跳延迟;对于符合条件4的每个接口,该移动节点执行下述操作:移动节点选择表名为该接口的接口ID的邻居表,计算该邻居表中每个移动邻居表项中的地址域的地理坐标与接收到的响应消息负载中的地址的地理坐标的距离,从该邻居表中选择符合条件7的邻居表项,将接收到的响应消息的目的地址更新为该邻居表项的地址域值,从该邻居表表名所标识的接口发送更新的响应消息;执行步骤514;
[0154] 步骤518:移动节点M1接收到响应消息,如果移动节点M1已经接收到具有相同序列号的响应消息,则执行步骤519,否则执行步骤520;
[0155] 步骤519:移动节点M1丢弃接收到的响应消息,执行步骤521;
[0156] 步骤520:移动节点M1保存接收到的响应消息中的响应数据;
[0157] 步骤521:如果移动节点M1接收到完成的响应数据C,则执行步骤522,否则执行步骤514;
[0158] 步骤522:结束。
[0159] 实施例1
[0160] 基于表1的仿真参数,本实施例模拟了本发明中的低延迟的机会网络实现方法,性能分析如下:当网络性能比较稳定时,移动节点获取数据的延迟较低,当网络性能稳定性比较差时,移动节点获取数据的延迟较大;网络获取数据的平均延迟为1.2s。
[0161] 表1仿真参数
[0162]
[0163] 本发明提供了一种低延迟的机会网络实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。
专利联系人(活跃度排行)
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号