CN108616465B - 支持携带存储转发机制的移动自组织网络路由方法 - Google Patents
支持携带存储转发机制的移动自组织网络路由方法 Download PDFInfo
- Publication number
- CN108616465B CN108616465B CN201810239889.7A CN201810239889A CN108616465B CN 108616465 B CN108616465 B CN 108616465B CN 201810239889 A CN201810239889 A CN 201810239889A CN 108616465 B CN108616465 B CN 108616465B
- Authority
- CN
- China
- Prior art keywords
- node
- data
- forwarding
- priority
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/252—Store and forward routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
- H04W40/04—Communication route or path selection, e.g. power-based or shortest path routing based on wireless node resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/24—Connectivity information management, e.g. connectivity discovery or connectivity update
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明属于无线传感器网络和移动自组织网络技术领域,为提出一种支持存储携带转发机制的移动自组织网络路由协议,用于解决目前现有的无线自组织网络路由协议在其所针对的场景外不能高效工作的问题。为此,本发明采用的技术方案是,支持携带存储转发机制的移动自组织网络路由方法,使用传输控制协议/用户数据报协议Socket接口,节点通过邻居探测机制构建出优先级转发表;机会转发方式通过查询优先级转发表选取转发节点集;若数据转发失败,则网络处于间歇性连接状态,此时实现数据的网络层存储;周期性的邻居探测机制探测到网络恢复全连通状态时,则对数据进行重新封装及转发。本发明主要应用于自组织网络路由场合。
Description
技术领域
本发明属于无线传感器网络和移动自组织网络技术领域,涉及一种支持存储携带转发机制的移动自组织网络路由协议的设计与实现。具体讲,涉及支持携带存储转发机制的移动自组织网络路由协议。
背景技术
现有的移动自组织网络路由协议都是针对单一场景而设计的,例如MANET(移动自组织网络)协议是针对全连通的场景而设计的,在缺乏端到端路径情况下MANET协议不能正常工作;DTN(时延容忍网络)在全连通的场景下路由效率并不高并且应用程序的开发要面向Bundle(覆盖层)接口。因此针对间歇性和全连通共存的场景,本发明借鉴DTN存储-携带-转发机制,设计了一种具备容断能力的MANET路由协议——SCFP(支持携带存储转发机制的移动自组织网络路由协议)协议。
现有的国内外对DTN与MANET路由相结合方面的研究大致可以分为两类:1)基于MANET和DTN整合方法;2)根据网络环境,在DTN和MANET之间进行自适应切换。
基于DTN和MANET整合的方法,文献[1]-文献[6](文献[1]:Ott J,Kutscher D和Warman C于2006年公开的《Integrating DTN and MANET routing》;文献[2]:KRETSCHMERC,RHRUP S和SCHINDELHAUER C于2009年公开的《DT-DYMO:delay-tolerant dynamic MANETon-demand routing》;文献[3]:JOHN W和VANIA C于2010年公开的《HYMAD:hybrid DTN-MANET routing for dense and highly dynamic wireless networks》;文献[4]:ESPOSITO F和MATTA I于2009年公开的《Pre DA:predicate routing for DTNarchitectures over MANET》;文献[5]:Samuel H和Zhuang W于2009年公开的《PreissB.DTN based dominating set routing for MANET in heterogeneous wirelessnetworking》;文献[6]:Pant R,Tupan A和Mekbungwan Petal于2010年公开的《DTNoverlay on OLSR network》)是将DTN和MANET协议进行结合,利用MANET和DTN工作在不同的协议层实现两者的相互补充。在网络场景中,网络整体上是不连通的,但在一个小范围内的节点可以组成一个相对稳定的拓扑结构,这些稳定区域可以采用MANET协议进行路由,而这些小范围的拓扑之间可以采用DTN路由协议。这类方法所针对的网络场景本质上仍为间歇性连接场景,MANET协议只是利用此场景下部分节点的局部连接特性来减小数据传输延迟。因此,需要对现有的MANET和DTN协议进行修改,使二者路由信息能够彼此获知,使得此种方式不具有普适性。
自适应切换方法,文献[7]-文献[12](文献[7]:Tie X,Venkataramani A和Balasubramanian A于2011年公开的《R3:robust replication routing in wirelessnetworks with diverse connectivity characteristics》;文献[8]:Kawamoto Y,Nishiyama H和Kato N于2013年公开的《Toward terminal-to-terminal communicationnetworks:A hybrid MANET and DTN approach》;文献[9]:Ito M,Nishiyama H和Kato N于2013年公开的《A novel routing method for improving message delivery delay inhybrid DTN-MANET networks》;文献[10]:Musolesi M,Hailes S和Mascolo C于2005年公开的《Context-aware Adaptive Routingfor Delay Tolerant Mobile Networks》;文献[11]:Delosieres L和Nadjm-Tehrani S于2012年公开的《Batman store-and-forward:thebest of the two worlds》;文献[12]:Xiaoshan Chang,Zenghua Zhao,Bingxue Diao和Tao Li于2016年公开的《Experimental Study of Disruption-Tolerant TransportProtocol for Mobile Ad Hoc Networks with Connection Diversity》)需要节点根据所处的网络环境进行自适应切换,这就要求节点能够对网络环境做出准确判断,因而会导致数据传输延迟较高。
这两类方法都需要节点同时运行MANET和DTN协议,对无线节点来说不仅意味着过高的能耗,而且协议切换时需要对数据包格式进行转换,这不可避免造成效率上的损失。此外,使用DTN协议时应用程序面向的是Bundle接口,对于大多数的互联网用户来说更希望面向Socket(套接字)编程。
文献[13](张万松,王师原,徐悦竹和印桂生于2014年公开的《一种在DTN网络中基于节点属性模型的散发等待路由方法》)判定所有邻节点的运动夹角,并根据节点运动属性模型公式确定源节点向该邻节点传递消息副本的个数。此方法导致一个消息存在多个副本造成了数据冗余,且节点运动夹角具有瞬时性,不能确保该节点始终按一个方向运动,因此不能保证数据包能够准确投递给目的节点。文献[14](王占伟和邹光楠于2015年公开的《一种面向空间环境DTN网络的数据转发方法》)通过查询周期性构建的虚拟拓扑路由表寻找接收节点,当接收节点处于空闲状态时,发送节点的bundle层构造bundle块根据路由算法进行数据转发。若没有接收节点则启动bundle层的托管机制等待可用的下一跳连接。该发明中路由表不具有实时性,且每次查询只选择一个接收节点,不能确保网络获得较好的投递率。
现有的中国发明专利,文献[15](李长乐,董伟伟和郭涛于2016年公开的《基于链路质量和节点转发能力的路由协议涉及方法》)采用机会转发方式,根据优先级表确定邻节点集,转发过程中一次选择一个优先级最高的节点作为中继节点进行数据的转发,若此次转发失败,则重新选取次优节点再次进行转发。此方法虽然采用了机会转发方式选择了邻节点集,但在数据转发过程中仍然只选取一个节点进行数据转发,转发失败时需要源节点重启邻节点选取机制,再次进行数据转发,因此增加了端到端时延且造成了网络资源的浪费。本发明提出的SCFP选取转发节点集后,每个节点都将接收到需转发数据,优先级最高的节点转发失败后次优节点立即转发,因此降低了端到端时延,且无需源节点重新发送数据而节省了网络资源。
【参考文献】
[1]Ott J,Kutscher D,Warman C.Integrating DTN and MANET routing[C]Proceedings of the 2006SIGCOMM workshop on Challenged networks.ACM,2006:221-228.
[2]KRETSCHMER C,RHRUP S,SCHINDELHAUER C.DT-DYMO:delay-tolerantdynamic MANET on-demand routing[A].The 29th IEEE International Conference onDistributed Computing Systems Workshops[C].Montreal,Quebec,Canada,2009.493-498.
[3]JOHN W,VANIA C.HYMAD:hybrid DTN-MANET routing for dense and highlydynamic wireless networks[J].Computer Communications,2010,33(13):1483-1492.
[4]ESPOSITO F,MATTA I.Pre DA:predicate routing for DTN architecturesover MANET[A].Proceedings of the 28th IEEE Conference on GlobalTelecommunications,GLOBECOM'09[C].2009.5018-5023.
[5]Samuel H,Zhuang W,Preiss B.DTN based dominating set routing forMANET in heterogeneous wireless networking[J].Mobile Networks andApplications,2009,14(2):154-164.
[6]Pant R,Tupan A,Mekbungwan Petal.DTN overlay on OLSR network[C]//Proceedings of the Sixth Asian Internet Engineering Conference.ACM,2010:56-63.
[7]Tie X,Venkataramani A,Balasubramanian A.R3:robust replicationrouting in wireless networks with diverse connectivity characteristics[C]//Proceedings of the 17th annual international conference on Mobile computingand networking.ACM,2011:181-192.
[8]Kawamoto Y,Nishiyama H,Kato N.Toward terminal-to-terminalcommunication networks:A hybrid MANET and DTN approach[C].Computer AidedModeling and Design of Communication Links and Networks(CAMAD),2013IEEE 18thInternational Workshop on.IEEE,2013:228-232.
[9]Ito M,Nishiyama H,Kato N.A novel routing method for improvingmessage delivery delay in hybrid DTN-MANET networks[C]Global CommunicationsConference(GLOBECOM),2013IEEE.IEEE,2013:72-77.
[10]Musolesi M,Hailes S,Mascolo C.Context-aware Adaptive RoutingforDelay Tolerant Mobile Networks[C]Proc.WOWMOM.2005.
[11]Delosieres L,Nadjm-Tehrani S.Batman store-and-forward:the best ofthe two worlds[C]//Pervasive Computing and Communications Workshops(PERCOMWorkshops),2012IEEE International Conference on.IEEE,2012:721-727.
[12]Xiaoshan Chang,Zenghua Zhao,Bingxue Diao,Tao Li.ExperimentalStudy of Disruption-Tolerant Transport Protocol for Mobile Ad Hoc Networkswith Connection Diversity.In Proceedings of ISPA August 2016.
[13]张万松,王师原,徐悦竹,印桂生.一种在DTN网络中基于节点属性模型的散发等待路由方法[P].中国发明专利,CN104168189A.2014-11-26.
[14]王占伟,邹光南.一种面向空间环境DTN网络的数据转发方法[P].中国发明专利,CN102883397B.2015-07-08.
[15]李长乐,董伟伟,郭涛.基于链路质量和节点转发能力的路由协议涉及方法[P].中国发明专利,CN105657777A.2016-06-08。
发明内容
为克服现有技术的不足,本发明旨在提出一种支持存储携带转发机制的移动自组织网络路由协议,用于解决目前现有的无线自组织网络路由协议在其所针对的场景外不能高效工作的问题。为此,本发明采用的技术方案是,支持携带存储转发机制的移动自组织网络路由方法,使用传输控制协议/用户数据报协议Socket接口,节点通过邻居探测机制构建出优先级转发表;机会转发方式通过查询优先级转发表选取转发节点集;若数据转发失败,则网络处于间歇性连接状态,此时实现数据的网络层存储;周期性的邻居探测机制探测到网络恢复全连通状态时,则对数据进行重新封装及转发;其中,基于优先级的机会转发具体步骤如下:
1.1路由度量设计
路由度量routing metric是路由算法用以确定到达目的节点最佳路径的度量标准,在间歇性连接与全连通并存的网络场景下,路由度量需要满足3个条件:1)路由度量能够反应全连通和间歇性连接的网络特性,保证最佳的路由性能;2)尽可能小的路由开销;3)路由过程不产生回路;综合考虑全连通状态下链路时延、间歇性连接状态下最小期望延迟估计、节点存储能力三个指标,路由开销计算公式为
Cost=ω1DelayNorm+ω2MEEDNorm+ω3BufferNorm (1)
其中ω1、ω2、ω3为权重,根据SCFP协议实际的运行环境选取;由于三个指标之间存在不同的量纲,因此DelayNorm、MEEDNorm,BufferNorm分别为归一化处理后的传输延迟、最小期望延迟估计和节点存储空间,最小估计期望延迟MEED是在最小期望延迟MED基础上经过指数滑动平均处理得到的,两个节点接触状态与等待时延的关系,当接触状态up时,意味着节点彼此进入对方的通信范围,等待时延变为0,对应的MEED值计算公式如下:
D=αD+(1-α)di (2)
C=βC+(1-β)ci (3)
其中di为断开的时间间隔,ci为连通的时间,D为平均不连通时间,C为平均连通时间,α,β为调和因子;
1.2机会转发
节点根据优先级转发表选择到目的节点开销最低的几个节点作为转发子集,并将排序结果放在数据包的头部,收到数据包的节点按照定义好的顺序进行转发,优先级最高的节点在收到数据包后立即回复ACK并向下一个转发子集转发数据,优先级低的节点将数据放入发送缓冲区等待Twait时间,发送缓冲区定义为等待转发的数据,在Twait时间内侦听到高优先级节点发送ACK则丢弃已收到的数据包,反之,优先级次之的节点回复ACK并转发数据,转发子集中节点的相互协调需要彼此间能够侦听到,但存在转发节点不存在直接邻接关系的情况,造成数据的重复发送,为此,每个节点记录过去一段时间本节点转发的数据包,一个数据包用包括源地址、目的地址和ID的三元组做唯一标识,其中ID为源节点生成的数据包编号,转发过程中保持不变,节点在收到数据时先查询是否收到过该数据包,如果收到过则丢弃数据包,反之使数据包进入机会转发流程。
网络层数据的存储和转发
节点按照转发策略进行转发时,如果经过多次重传仍没有发送成功,则认为网络发生了间歇性中断,因此当前节点为最优的数据存储节点,存储策略是按照数据的目的地址进行存储的,即把发往同一目的节点的数据包存储到同一个文件中,存储区管理策略如下:
1)基于优先级策略:根据数据包到达目的节点路径代价设置优先级,通过查询优先级表得到,到达目的节点的代价越高,优先级越低。在节点存储空间紧张的情况下,保留优先级高的消息,优先级低的消息被丢弃;
2)相同优先级清除策略:对于优先级相同的节点,根据数据存入时间进行清除,在节点存储空间不足的情况下,越早存入的数据先被清除;
节点通过邻居探测机制探测到目的节点出现或者有到达目的的路径时,从存储的文件中读取数据封装成标准数据格式,进行重新转发,在将存储的数据恢复为标准的格式时是将数据重新填充到数据data和尾tail之间,内核线程负责打开存储数据的文件,将文件读取到一个缓冲区,然后创建sk_buff结构体,将数据拷贝到相应的数据存储区,sk_buffer是linux TCP/IP堆栈中用于管理数据缓存的结构。
网络状态维护
采用邻居探测机制对网路进行维护,邻居探测机制有两个作用:1)邻居节点根据上文中的路由度量计算出本节点和邻居节点之间的链路开销,为优先级转发表的构建提供数据;2)当网络由间歇性连接恢复为全连通时通过邻居探测机制发现到达目的节点的路径,实现存储数据包的重传;
优先级转发表记录节点经由各个邻居节点到达目的节点的路径开销,为此需要每个节点运行邻居探测机制了解本节点与邻居节点之间的直连链路开销,节点之间通过交换各自了解的信息和运行相应的算法构建出优先级转发表;
邻居探测机制可通过周期性发送HELLO分组和接收邻居节点返回HELLO ACK分组实现链路开销的计算,具体通过三种方式:1)只在节点计算出与邻居节点之间的链路开销变化幅度超过20%时发送更新报文;2)在本节点向邻居节点发送数据包过程中停止发送HELLO分组;3)当链路不存在时推迟路由更新产生,直到本节点与邻居节点链路恢复时间超过预定值。
机会转发中在网络发生间歇性中断或者由于外界干扰导致数据包转发失败的情况下,需要节点对于转发出去的数据在维护缓冲区放置,如果在规定时间内收到下一组转发节点的ACK,表明数据转发成功,节点可将该数据删除,反之节点对数据包进行重传;重传规则如下:
1)SCFP协议从优先级表中选择一组比原先转发子集次之的节点作为新的转发子集替换原先的转发子集;
2)如果转发节点较少无法产生新的转发子集,继续采用原有的转发子集;
3)设定重传次数为2次;
如果数据包经过多次重传仍然没有发送成功,则可以认为此时网络发生了间歇性中断,SCFP协议进入网络层存储阶段。
本发明的特点及有益效果是:
本发明针对的是间歇性连接与全连通共存的网络场景,在此种环境下,现有的路由协议均不能取得较好的性能。对于MANET协议不具有极端环境下处理方案的问题,本发明在传统MANET路由协议基础上实现了DTN存储-携带-转发机制,提高了网络的可靠性。并为所针对场景设计了新的路由度量,以充分反映该种网络的特性。此外,路由过程中节点采用机会转发的方式转发数据,提高了网络的投递率并降低网络时延。
附图说明:
附图1是SCFP功能模块图;
附图2是MEED等待时延与接触状态;
附图3是机会转发流程;
附图4是实验床拓扑结构;
附图5是仿真场景一;
附图6是仿真场景而节点运动轨迹;
附图7吞吐率比较图。(a)是1跳吞吐率,(b)是2跳吞吐率,(c)是3跳吞吐率;
附图8是实验二投递率比较;
附图9是仿真场景一中不同跳数下的投递率;
附图10不同节点通信性能示意图。(a)是仿真场景二中不同节点密度下端到端时延,(b)是不同节点密度下投递率,(c)是不同节点密度下转发次数;
附图11是滑动窗口;
附图12是优先级格式;
附图13是sk_buff结构图;
附图14是缓冲区结构图;
附图15是SCFP在协议栈中的位置;
附图16SCFP分组示意图。(a)是SCFP分组格式,(b)是SCFP固定头部;
附图17是SCFP模块在OpenWRT内核中的位置。
具体实施方式
本发明提供如下技术方案:
支持存储携带转发机制的移动自组织网络SCFP路由协议,在该方法中针对节点稀疏且大部分时间处于全连通状态,某些时刻处于间歇性连接状态下的网络场景,旨在全连通场景下获得较高的吞吐率;在间歇性连接场景下提高投递率;保持应用层接口不变,仍然使用TCP/UDP(传输控制协议/用户数据报协议)Socket接口。SCFP协议必须在网络层实现存储-携带-转发功能,才能对应用层保持透明。SCFP路由流程图及总体功能模块如附图1,节点通过邻居探测机制构建出优先级转发;机会转发方式通过查询优先级转发表选取转发节点集;若数据转发失败,则网络处于间歇性连接状态,此时实现数据的网络层存储;周期性的邻居探测机制探测到网络恢复全连通状态时,则对数据进行重新封装及转发。SCFP设计需要解决如下几个问题:
1)SCFP协议采用机会转发的方式根据优先级转发表选择一组节点作为转发节点并安排好个节点的转发次序,提高数据转发成功的概率。在转发子集中,优先级最高的节点收到数据后立即转发并回复ACK(确认字符),若为转发成功则优先级次之节点重复上述动作。
2)SCFP协议在网络发生间歇性中断的情况下,为了减少数据的丢失,在网络层对数据进行存储和管理。当节点存储数据时,需要频繁探测到目的节点的路径是否恢复,如果网络恢复到全连通状态,那么节点重新发送存储的数据。
3)SCFP协议针对的是间歇性连接与全连通并存的场景,使每个节点只维护到目的节点的状态估计,并不对数据能否成功转发到目的节点做出保证,以此来解决路由频繁更新的问题。在此场景下,现有的路由度量已不再适用,需要设计出满足此种场景下网络特性且开销较小,不产生回路的新的路由度量。
SCFP具体设计分为以下几个部分:
1.基于优先级的机会转发
SCFP摒弃传统MANET确定下一跳的路由方式,采用机会转发方式充分利用无线信道的广播特性选择下一跳转发节点集来完成转发,从而提高传输的可靠性。此外,机会转发可以减少数据包转发的次数,从而间接提高网络的吞吐率。采用机会转发的方式需要解决两个问题:1)如何为转发节点分配转发次序。2)由于可能会有多个转发节点同时接收到数据,为避免数据重复发送以及节点同时发送造成的冲突碰撞需要对转发节点进行协调。因此,针对我们所研究的场景设计新的路由度量来充分体现场景特性,以此构建优先级转发表来解决问题一,通过引入ACK机制解决问题二。
1.1路由度量设计
路由度量(routing metric)是路由算法用以确定到达目的节点最佳路径的度量标准,在间歇性连接与全连通并存的网络场景下,路由度量需要满足3个条件:1)路由度量能够反应全连通和间歇性连接的网络特性,保证最佳的路由性能。2)尽可能小的路由开销。3)路由过程不产生回路。综合考虑全连通状态下链路时延、间歇性连接状态下最小期望延迟估计、节点存储能力三个指标,路由开销计算公式为
Cost=ω1DelayNorm+ω2MEEDNorm+ω3BufferNorm (1)
其中ω1、ω2、ω3为权重,根据SCFP协议实际的运行环境选取,当网络大部分时间处于全连通状态时ω1比例较高,反之则ω2、ω3比例较高。由于三个指标之间存在不同的量纲,因此DelayNorm、MEEDNorm,BufferNorm分别为归一化处理后的传输延迟、最小期望延迟估计和节点存储空间。最小估计期望延迟(MEED)是在最小期望延迟(MED)基础上经过指数滑动平均处理得到的,以减少MED值频繁变化造成路由不稳定的情况。MEED计算方法如附图2,两个节点接触状态与等待时延的关系,当接触状态up时,意味着节点彼此进入对方的通信范围,等待时延变为0,对应的MEED值计算公式如下:
D=αD+(1-α)di (2)
C=βC+(1-β)ci (3)
其中di为断开的时间间隔,ci为连通的时间,D为平均不连通时间,C为平均连通时间,α,β为调和因子。
1.2机会转发
机会转发过程如附图3。节点根据优先级转发表选择到目的节点开销最低的几个节点作为转发子集,并将排序结果放在数据包的头部。收到数据包的节点按照定义好的顺序进行转发。优先级最高的节点在收到数据包后立即回复ACK并向下一个转发子集转发数据。优先级低的节点将数据放入发送缓冲区等待Twait时间(发送缓冲区定义为等待转发的数据),在Twait时间内侦听到高优先级节点发送ACK则丢弃已收到的数据包。反之,优先级次之的节点回复ACK并转发数据。转发子集中节点的相互协调需要彼此间能够侦听到,但存在转发节点不存在直接邻接关系的情况,造成数据的重复发送。为此,每个节点记录过去一段时间本节点转发的数据,一个数据可用三元组(源地址,目的地址,ID)唯一标识,其中ID为源节点生成的数据包编号,转发过程中保持不变。节点在收到数据时先查询是否收到过该数据包,如果收到过则丢弃数据包,反之使数据包进入机会转发流程。
机会转发方式给转发子集中的每个节点转发数据的机会,从而提高数据转发成功的概率。然而在网络发生间歇性中断或者由于外界干扰导致数据包转发失败的情况下,需要节点对于转发出去的数据在维护缓冲区(维护缓冲区用于本节点已经发送出去等待来自下一个转发列表中节点的确认的数据)放置一段时间,如果在规定时间内收到下一组转发节点的ACK,表明数据转发成功,节点可将该数据删除。反之节点对数据包进行重传。重传规则如下:
1)SCFP协议从优先级表中选择一组比原先转发子集次之的节点作为新的转发子集替换原先的转发子集。
2)如果转发节点较少无法产生新的转发子集,继续采用原有的转发子集。
3)设定重传次数为2次。
如果数据包经过多次重传仍然没有发送成功,则可以认为此时网络发生了间歇性中断,SCFP协议进入网络层存储阶段。
2.网络层数据的存储和转发
节点按照转发策略进行转发时,如果经过多次重传仍没有发送成功,则认为网络发生了间歇性中断,因此当前节点为最优的数据存储节点。本发明设计的存储策略是按照数据的目的地址进行存储的,即把发往同一目的节点的数据包存储到同一个文件中。由于间歇性中断时间具有不确定性,可能造成节点需要长时间保存数据,这将导致节点后续存储空间越来越小。因此设计存储区管理策略如下:
1)基于优先级策略:根据数据包到达目的节点路径代价设置优先级,可通过查询优先级表得到。到达目的节点的代价越高,优先级越低。在节点存储空间紧张的情况下,保留优先级高的消息,优先级低的消息被丢弃。
2)相同优先级清除策略:对于优先级相同的节点,根据数据存入时间进行清除。在节点存储空间不足的情况下,越早存入的数据先被清除。
节点通过邻居探测机制探测到目的节点出现或者有到达目的的路径时,从存储的文件中读取数据封装成标准数据格式,进行重新转发。内核线程负责打开存储数据的文件,将文件读取到一个缓冲区,将数据拷贝到相应的数据存储区。
3.网络状态维护
采用邻居探测机制对网路进行维护,邻居探测机制有两个作用:1)邻居节点根据上文中的路由度量计算出本节点和邻居节点之间的链路开销,为优先级转发表的构建提供数据;2)当网络由间歇性连接恢复为全连通时通过邻居探测机制发现到达目的节点的路径,实现存储数据包的重传。
优先级转发表记录节点经由各个邻居节点到达目的节点的路径开销,为此需要每个节点运行邻居探测机制了解本节点与邻居节点之间的直连链路开销。节点之间通过交换各自了解的信息和运行相应的算法构建出优先级转发表。
邻居探测机制可通过周期性发送HELLO分组和接收邻居节点返回HELLO ACK分组实现链路开销的计算。为降低开销、减少更新,可通过三种方式:1)只在节点计算出与邻居节点之间的链路开销变化幅度超过20%时发送更新报文;2)在本节点向邻居节点发送数据包过程中停止发送HELLO分组;3)当链路不存在时推迟路由更新产生,直到本节点与邻居节点链路恢复时间超过预定值。
下面结合实施例和附图对本发明作进一步的说明。
本发明使用滑动窗口来实现对节点之间断开和接通时间的估计,如附图11所示,seq表示HELLO分组的ID号,1表示收到对应ID的HELLO分组,0表示丢失了HELLO分组。滑动窗口维护30个大小的窗口,用于记录本节点发送出去的HELLO分组收到HELLO ACK和丢失情况。为防止外部干扰导致的HELLO分组丢失,规定连续丢失三个HELLO分组则认为该节点和邻居节点发生了一次断开,由此根据公式4计算出MEED值。MEED算法中的α和β参数参照TCP协议对于RTT样本值的估计均设置为7/8。
对于三个指标存在不同量纲的问题,采用min-max离差标准化处理方式,计算公式为
计算出的链路开销存储在邻居表数据中。邻居表中记录本节点到邻居节点的链路开销和点的MAC等信息,邻居结构中的last_ack_time字段记录本节点最后一次收到邻居节点HELLO ACK的时间。若当前系统时间与last_ack_time差值超过MEED,则认为该邻居节点不存在,从邻居表中删除此节点信息并产生更新报文。
本发明通过一个二维数组实现优先级转发表,格式如表3。由于通过索引方式查询优先级表,所有用一个一维数据记录IP地址和索引之间的映射关系。节点查询优先级表获得转发子集中的节点排序结果并添加到数据包的头部,格式如附图12,其中选项类型域表示何种SCFP选项;选项长度域长度为8bits;ID字段域表示数据包的编号。每个节点在向下一组节点转发数据时将本节点的地址放入上一跳地址域中,下一组转发节点不再将上一跳节点作为转发节点,避免产生回路。节点通过数据包头部信息获知自身转发顺序,之后按照机会转发策略进行数据的转发。
表3优先级表
所有的数据包根据加入的时间被组织成一个双向链表。一个新的数据包加入后会为其启动一个内核定时器,超时时间设置为Twait。Twait依据节点的转发次数设定,第n个节点等待时间如公式6,其中Tsend由多个部分组成如公式7。IEEE(国际电工电子工程学会)802.11采用CSMA/CA(载波侦听多路访问/冲突避免)协议竞争信道,节点在发送数据包之前会在DCF帧间距(DCF inter-frame sapce,DIFS)时间段TDIFS内对信道进行监听,如果信道忙会随机退避时间Tbackoff,否则发送数据,发送数据需要时间Ttrans。
Twait(n)=(n-1)*Tsend (6)
Tsend=TDIFS+Tbackoff+Ttrans (7)
每个数据包加入时需要记录创建时间,并设置超时时间为Ttimeout=N*Tsend,其中N表示节点选择的转发子集中节点的个数。如果在Ttimeout时间内收到来自转发列表中的确认,那么节点可将维护缓冲区的数据删除,反之SCFP协议启动重传机制,如果重传失败则在网络层存储。
网络层的数据存储通过在sk_buffer结构体(见附图13)中维护数据包存储区的指针信息(包括头head,数据data,尾tail,结束end指针)和各层操作数据时所需的必要信息,sk_buffer是linux TCP/IP堆栈中用于管理数据缓存的结构,而数据包真正存储在内存中一个单独的区域内。在内存中建立一个具有10个单元的缓冲池,每个单元长度为2000byte,如附图14。每个缓冲区单元通过一个变量来设置是否填充完毕;重传失败处理例程负责将超时的数据填充到缓冲单元;内核线程负责检查缓冲区单元是否填充完毕,如果填充完毕就将数据写入到文件中(文件以目的地址进行命名方便查找),并将缓冲池单元设置为空,以便重传失败处理例程可以继续使用该单元进行数据的填充。对于存储到外存的数据,本发明采用列表记录文件创建时间、存储数据的目的地址、优先级和文件创建时间。
恢复连接重传数据包时,1)调用内核函数alloc_skb函数分配一个struct sk_buff结构,分配的空间大小为MAC头部、SCFP选项、IP头部、传输层头部和应用层数据以及两个数据字节对齐空间。2)进行初始定位,确定data指针从什么位置开始写入数据。通过skb_reserve函数预留数据的存储空间,将data和tail指针下来所需字节长度,并调用skb_push函数在data和tail指针之间预留SCFP选项、IP(网际协议)头部、传输层头部和应用层数据长度。3)从文件中读取的数据拷贝到真正的数据区。4)重新设置MAC层、IP层、传输层头部指针,将其指向正确的位置。所有填充完毕后,调用发包函数进行发送。
如附图15所示为SCFP协议在协议栈中的位置,SCFP协议插入到IP分组和传输层头部之间,使用一个固定长度的头部来存放控制消息,如附图16。其他分组选项添加到固定头部之后,SCFP协议的结束由头部长度字段来控制,协议号域用于指明传输层使用的协议,IP头部的protocol域修改为SCFP协议号168,IP头部total_length域加上SCFP固定头部长度和选项长度。SCFP协议作为一个内核模块在OpenWRT系统中实现,如附图17所示,通过虚拟出一个网络接口并借助Linux下Netfilter框架实现其功能。
为验证本发明SCFP协议的性能,在实验床以及仿真软件NS2(网络模拟2)中对SCFP进行评估。实验床搭建如附图4,采用iptables工具对MAC(媒体介入控制)层地址进行过滤,实现一个强制多条环境,借助Linux下crontab工具模拟出网络间歇性连接和全连通动态变化的场景。仿真场景一如附图5,与实验床相一致来验证实验床结果的可靠性。仿真场景二如附图6,红蓝箭头表示数据包转发路径,橙色箭头表示节点运动方向。网络拓扑在1500m*1500m的区域内,实验参数如表1,仿真时间为600s,每秒产生一个512B的数据包。
表1实验参数
实验一设计一个UDP套接字程序,NodeA作为客户端不断向NodeD服务器端发送字符串,测试SCFP协议在网络层实现数据存储的功能,结果如表2。实验结果表明,SCFP洗衣在发生间歇性中断的情况下能够实现网络层存储,在回复全连通的情况下能够实现数据重新封装和转发。
表2实验结果
实验二分别测试了1跳、2跳和3跳情况下SCFP协议的吞吐率和投递率,并与PROPHET(先知路由)及DSR(动态源路由协议)协议作对比。吞吐率实验结果如附图7,从图中可以得出SCFP协议吞吐率比DSR低15%左右,这是因为SCFP协议在后台需要运行发送HELLO分组的线程、数据文件写入与重新封装线程造成系统负载过重。由于在回复全连通的情况下使用PROPHET协议开销高,因此SCFP协议吞吐率要比PROPHET高。DSR作为反应式路由协议发现到达目的路径时间长,而SCFP工作在内核空间效率要比DSR协议高。投递率实验结果如附图8,SCFP协议在不同跳数下投递率均比DSR高,说明SCFP协议上实现的存储携带转发机制能够改善传统MANET的投递率。
实验三测试仿真场景一中不同跳数下的投递率,实验结果如附图9,可得SCFP协议随着跳数增加投递率远高于DSR协议,表明网络间歇性终端情况下SCFP协议实现数据存储,并在网络恢复的情况下实现数据重发,可明显改善投递率。
实验四测试仿真场景二中对各协议在不同节点密度中投递率、数据包转发次数和端到端时延的对比,结果如附图10。实验结果说明SCFP协议随着节点密度增加,投递率平稳上升,数据包转发次数最小且增长缓慢,端到端时延平缓下降,相比于DSR与PROPHET具有稳定而良好的性能。
Claims (4)
1.一种支持携带存储转发机制的移动自组织网络路由方法,其特征是,使用传输控制协议/用户数据报协议Socket接口,节点通过邻居探测机制构建出优先级转发表;机会转发方式通过查询优先级转发表选取转发节点集;若数据转发失败,则网络处于间歇性连接状态,此时实现数据的网络层存储;周期性的邻居探测机制探测到网络恢复全连通状态时,则对数据进行重新封装及转发;其中,基于优先级的机会转发具体步骤如下:
1.1路由度量设计
路由度量routing metric是路由算法用以确定到达目的节点最佳路径的度量标准,在间歇性连接与全连通并存的网络场景下,路由度量需要满足3个条件:1)路由度量能够反应全连通和间歇性连接的网络特性,保证最佳的路由性能;2)尽可能小的路由开销;3)路由过程不产生回路;综合考虑全连通状态下链路时延、间歇性连接状态下最小期望延迟估计、节点存储能力三个指标,路由开销计算公式为
Cost=ω1DelayNorm+ω2MEEDNorm+ω3BufferNorm (1)
其中ω1、ω2、ω3为权重,根据SCFP协议实际的运行环境选取;由于三个指标之间存在不同的量纲,因此DelayNorm、MEEDNorm,BufferNorm分别为归一化处理后的传输延迟、最小期望延迟估计和节点存储空间,最小估计期望延迟MEED是在最小期望延迟MED基础上经过指数滑动平均处理得到的,两个节点接触状态与等待时延的关系,当接触状态up时,意味着节点彼此进入对方的通信范围,等待时延变为0,对应的MEED值计算公式如下:
D=αD+(1-α)di (2)
C=βC+(1-β)ci (3)
其中di为断开的时间间隔,ci为连通的时间,D为平均不连通时间,C为平均连通时间,α,β为调和因子;
1.2机会转发
节点根据优先级转发表选择到目的节点开销最低的几个节点作为转发子集,并将排序结果放在数据包的头部,收到数据包的节点按照定义好的顺序进行转发,优先级最高的节点在收到数据包后立即回复ACK并向下一个转发子集转发数据,优先级低的节点将数据放入发送缓冲区等待Twait时间,发送缓冲区定义为等待转发的数据,在Twait时间内侦听到高优先级节点发送ACK则丢弃已收到的数据包,反之,优先级次之的节点回复ACK并转发数据,转发子集中节点的相互协调需要彼此间能够侦听到,但存在转发节点不存在直接邻接关系的情况,造成数据的重复发送,为此,每个节点记录过去一段时间本节点转发的数据包,一个数据包用包括源地址、目的地址和ID的三元组做唯一标识,其中ID为源节点生成的数据包编号,转发过程中保持不变,节点在收到数据时先查询是否收到过该数据包,如果收到过则丢弃数据包,反之使数据包进入机会转发流程。
2.如权利要求1所述的支持携带存储转发机制的移动自组织网络路由方法,其特征是,网络层数据的存储和转发具体地:
节点按照转发策略进行转发时,如果经过多次重传仍没有发送成功,则认为网络发生了间歇性中断,因此当前节点为最优的数据存储节点,存储策略是按照数据的目的地址进行存储的,即把发往同一目的节点的数据包存储到同一个文件中,存储区管理策略如下:
1)基于优先级策略:根据数据包到达目的节点路径代价设置优先级,通过查询优先级表得到,到达目的节点的代价越高,优先级越低,在节点存储空间紧张的情况下,保留优先级高的消息,优先级低的消息被丢弃;
2)相同优先级清除策略:对于优先级相同的节点,根据数据存入时间进行清除,在节点存储空间不足的情况下,越早存入的数据先被清除;
节点通过邻居探测机制探测到目的节点出现或者有到达目的节点的路径时,从存储的文件中读取数据封装成标准数据格式,进行重新转发,在将存储的数据恢复为标准的格式时是将数据重新填充到数据data和尾tail之间,内核线程负责打开存储数据的文件,将文件读取到一个缓冲区,然后创建sk_buff结构体,将数据拷贝到相应的数据存储区,sk_buffer是linux TCP/IP堆栈中用于管理数据缓存的结构。
3.如权利要求1所述的支持携带存储转发机制的移动自组织网络路由方法,其特征是,网络状态维护:
采用邻居探测机制对网路进行维护,邻居探测机制有两个作用:1)邻居节点根据上文中的路由度量计算出本节点和邻居节点之间的链路开销,为优先级转发表的构建提供数据;2)当网络由间歇性连接恢复为全连通时通过邻居探测机制发现到达目的节点的路径,实现存储数据包的重传;
优先级转发表记录节点经由各个邻居节点到达目的节点的路径开销,为此需要每个节点运行邻居探测机制了解本节点与邻居节点之间的直连链路开销,节点之间通过交换各自了解的信息和运行相应的算法构建出优先级转发表;
邻居探测机制可通过周期性发送HELLO分组和接收邻居节点返回HELLO ACK分组实现链路开销的计算,具体通过三种方式:1)只在节点计算出与邻居节点之间的链路开销变化幅度超过20%时发送更新报文;2)在本节点向邻居节点发送数据包过程中停止发送HELLO分组;3)当链路不存在时推迟路由更新产生,直到本节点与邻居节点链路恢复时间超过预定值。
4.如权利要求1所述的支持携带存储转发机制的移动自组织网络路由方法,其特征是,机会转发中在网络发生间歇性中断或者由于外界干扰导致数据包转发失败的情况下,需要节点在维护缓冲区放置转发出去的数据,如果在规定时间内收到下一组转发节点的ACK,表明数据转发成功,节点可将该数据删除,反之节点对数据包进行重传;重传规则如下:
1)支持携带存储转发机制的移动自组织网络路由SCFP协议从优先级表中选择一组比原先转发子集次之的节点作为新的转发子集替换原先的转发子集;
2)如果转发节点较少无法产生新的转发子集,继续采用原有的转发子集;
3)设定重传次数为2次;
如果数据包经过多次重传仍然没有发送成功,则可以认为此时网络发生了间歇性中断,SCFP协议进入网络层存储阶段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810239889.7A CN108616465B (zh) | 2018-03-22 | 2018-03-22 | 支持携带存储转发机制的移动自组织网络路由方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810239889.7A CN108616465B (zh) | 2018-03-22 | 2018-03-22 | 支持携带存储转发机制的移动自组织网络路由方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108616465A CN108616465A (zh) | 2018-10-02 |
CN108616465B true CN108616465B (zh) | 2020-10-30 |
Family
ID=63658781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810239889.7A Expired - Fee Related CN108616465B (zh) | 2018-03-22 | 2018-03-22 | 支持携带存储转发机制的移动自组织网络路由方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108616465B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109600312B (zh) * | 2019-01-04 | 2021-03-12 | 南京邮电大学 | 一种面向智能终端自组网的BATMAN-Adv协议优化设计方法 |
CN111726777B (zh) * | 2020-06-30 | 2023-04-07 | 北京经纬恒润科技股份有限公司 | 一种数据传输方法及装置 |
CN114760241B (zh) * | 2022-04-28 | 2023-06-02 | 中国科学院计算技术研究所 | 一种用于数据流架构的计算设备中的路由方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102223365A (zh) * | 2011-06-03 | 2011-10-19 | 杭州华三通信技术有限公司 | 基于ssl vpn网关集群的用户接入方法及其装置 |
CN102421161A (zh) * | 2012-01-04 | 2012-04-18 | 北京工商大学 | Epidemic机制下基于优先级的机会网络路由算法 |
CN102932275A (zh) * | 2012-11-20 | 2013-02-13 | 中国空间技术研究院 | 一种应用于容延时网络的优先级报文转发方法 |
CN103781141A (zh) * | 2013-10-24 | 2014-05-07 | 深圳市金溢科技有限公司 | 车载自组织网络的单播路由转发方法、芯片及通信系统 |
CN103856399A (zh) * | 2014-03-17 | 2014-06-11 | 山东大学 | 一种基于稳定性的Ad Hoc备份路由算法 |
US8982708B1 (en) * | 2012-09-24 | 2015-03-17 | Rockwell Collins, Inc. | Priority aware dynamic routing protocol for ad-hoc networks |
CN105228180A (zh) * | 2015-09-29 | 2016-01-06 | 江苏大学 | 一种基于节点转发能力估计的车载容迟网络路由方法 |
CN105657777A (zh) * | 2016-03-14 | 2016-06-08 | 西安电子科技大学 | 基于链路质量和节点转发能力的路由协议设计方法 |
CN107333312A (zh) * | 2017-08-01 | 2017-11-07 | 陕西师范大学 | 机会网络中的路由选择方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8514698B2 (en) * | 2006-11-21 | 2013-08-20 | The Boeing Company | Routing and forwarding of packets over a non-persistent communication link |
-
2018
- 2018-03-22 CN CN201810239889.7A patent/CN108616465B/zh not_active Expired - Fee Related
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102223365A (zh) * | 2011-06-03 | 2011-10-19 | 杭州华三通信技术有限公司 | 基于ssl vpn网关集群的用户接入方法及其装置 |
CN102421161A (zh) * | 2012-01-04 | 2012-04-18 | 北京工商大学 | Epidemic机制下基于优先级的机会网络路由算法 |
US8982708B1 (en) * | 2012-09-24 | 2015-03-17 | Rockwell Collins, Inc. | Priority aware dynamic routing protocol for ad-hoc networks |
CN102932275A (zh) * | 2012-11-20 | 2013-02-13 | 中国空间技术研究院 | 一种应用于容延时网络的优先级报文转发方法 |
CN103781141A (zh) * | 2013-10-24 | 2014-05-07 | 深圳市金溢科技有限公司 | 车载自组织网络的单播路由转发方法、芯片及通信系统 |
CN103856399A (zh) * | 2014-03-17 | 2014-06-11 | 山东大学 | 一种基于稳定性的Ad Hoc备份路由算法 |
CN105228180A (zh) * | 2015-09-29 | 2016-01-06 | 江苏大学 | 一种基于节点转发能力估计的车载容迟网络路由方法 |
CN105657777A (zh) * | 2016-03-14 | 2016-06-08 | 西安电子科技大学 | 基于链路质量和节点转发能力的路由协议设计方法 |
CN107333312A (zh) * | 2017-08-01 | 2017-11-07 | 陕西师范大学 | 机会网络中的路由选择方法 |
Non-Patent Citations (1)
Title |
---|
"Experimental Study of Disruption-Tolerant Transport Protocol for Mobile Ad-Hoc Networks with Connection Diversity";Xiaoshan Chang等;《2016 IEEE Trustcom/BigDataSE/ISPA》;20160826;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108616465A (zh) | 2018-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7911978B1 (en) | Adaptive topology discovery in communication networks | |
US5987011A (en) | Routing method for Ad-Hoc mobile networks | |
US9800493B2 (en) | Routing messages in a computer network using deterministic and probalistic source routes | |
Xie et al. | A network layer protocol for UANs to address propagation delay induced performance limitations | |
Johnson et al. | RFC 4728: The dynamic source routing protocol (DSR) for mobile ad hoc networks for IPv4 | |
US9094324B2 (en) | Diverse path forwarding through trial and error | |
CN108616465B (zh) | 支持携带存储转发机制的移动自组织网络路由方法 | |
Sung et al. | Reliable data broadcast for zigbee wireless sensor networks | |
Chakrabarti et al. | Load balancing and resource reservation in mobile ad hoc networks | |
CN102148756A (zh) | 一种基于6LoWPAN邻居发现的树状路由方法 | |
CN109041156B (zh) | 具有逐跳确认机制的无线路由方法 | |
JP2007159099A (ja) | 複数のサービスノードへのディスジョイントなルートを発見する方法および装置 | |
Duquennoy et al. | Five-nines reliable downward routing in RPL | |
Alipio et al. | Cache-based transport protocols in wireless sensor networks: A survey and future directions | |
JP4611319B2 (ja) | ネットワークアーキテクチャ | |
US10230634B2 (en) | Route optimization using star-mesh hybrid topology in localized dense ad-hoc networks | |
CN110380977B (zh) | 一种面向移动自组网与因特网混合环境的路由融合方法 | |
JP2006101428A (ja) | 無線ネットワークの制御装置及び制御方法、制御プログラム並びに記録媒体 | |
EP2335383B1 (en) | Network nodes | |
WO2007058516A1 (en) | Method for transmitting file based on multiplex forwarder | |
Hassan et al. | Design of an energy‐efficient and reliable data delivery mechanism for mobile ad hoc networks: a cross‐layer approach | |
Shaikh et al. | A comparative study of data transport protocols in wireless sensor networks | |
Rabarijaona et al. | Hierarchical mesh routing implementation for indoor data collection | |
CN106332145A (zh) | 一种移动Ad‑hoc网络中TCP连接性能的优化方法 | |
Ashfaq et al. | Optimizing Message Delivery in Opportunistic Networks with Replication-Based Forwarding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20201030 Termination date: 20210322 |