一种基于簇的容迟网络的路由算法CB-NIMF
2009-07-03
作者:钟朝薪, 屈玉贵
摘 要:在“ferry”概念的基础上,提出容迟网络中一种新的路由算法CB-NIMF(Cluster-Based Node Initiated Message Ferrying),在该算法下,利用普通节点之间的网络拓扑结构和通信能力,缩短了数据采集网络中普通节点向“ferry”移动的非正常工作时间,降低了隐性的数据丢失,增加了节点的工作时间以及采集的数据量。
关键词:容迟网络; ferry; 簇; 路由
Internet作为当今全球信息交互的工具,无疑已经取得了巨大的成功。它使用了大量的通信协议(TCP/IP协议族)来确保通信的正常工作。组成Internet的成千上万的子网内的所有设施都使用这些协议来进行数据路由以及确保信息交换的可靠性。不过,Internet上工作的协议都是基于一个假设才能正常工作的:所有的通信链路都稳定地、不间断地连接在一起。近几年,无线传感器网络、移动Ad-Hoc网络等发展迅速,不过这类网络都存在着相同的问题,即网络的链路连接是间断性的,传统Internet上的协议并不能直接使用。针对以上问题,FALL K于2003年在参考文献[1]中给出了一个解决该问题的框架,即DTN网络。之后,关于DTN网络的研究越来越受到重视[2-6]。
2004年, ZHAO Wen Rui提出了“ferry”的概念[2]: “ferry”的移动路径是固定的,不存在随机性,该路径称为路由路径,并且假设网络中的其他正常节点只产生数据,并不参与路由过程。“ferry”路由的基本思想是:整个网络的路由由快速移动的“ferry”节点完成,当经过某一个节点时,“ferry” 节点从该节点上获取要传输的数据,然后沿着路由路径移动。当遇到目的节点时,把数据传输给目的节点。在参考文献[2]中,提出了一种普通节点和“ferry”节点信息通信的路由算法:NIMF(Node-Initiated Message Ferrying)。在NIMF路由算法中,当节点上有数据要传输时,它将停止当前工作并向“ferry”的路由路径移动;在“ferry”节点要传输数据给普通节点时,也需要普通节点移动到“ferry”的路由路径。如图1所示,其中黑点表示节点,黑色方块表示“ferry”,实圆圈是“ferry”的路由路径。当有数据传输时,所有节点都会独自按照最短的距离移动到圆圈的位置,然后等待“ferry”。
当一个用于数据采集的DTN网络使用NIMF进行路由时,可以把数据丢失分为两部分:由于路由超时而导致的数据丢失,对此本文称之为显性数据丢失;由于节点移动,节点离开工作地点到再次返回工作地点这段时间称为节点的非正常工作状态,由此导致的数据丢失本文称之为隐性数据丢失。如果节点离 “ferry”路由路径很远,往返的时间将会严重影响数据采集的正常工作,隐性数据丢失问题将会比较严重,其影响甚至可能超过了显性数据的丢失。而且,随着网络规模的增大,节点数目增多,这种损失就会越大。针对NIMF在节点移动时间上的缺陷,本文利用节点之间的网络结构,将节点按位置先组成一个个簇,并且在簇内建立一个逻辑树,让节点也参与数据路由,以减少网络中节点的移动时间,从而有效降低节点因移动而导致的隐性数据丢失。由于节点的非正常工作时间减少,因节点处于正常工作状态的时间就会相应增多,这也增大了节点在固定时间内的数据采集量。
1 CB-NIMF的设计
当网络规模比较大,节点和“ferry”路由路径离得较远时,节点的非正常工作时间会比较长,因此会造成隐性数据丢失问题。对此,本文提出一种新的路由: CB-NIMF。在一个用于数据收集的DTN网络中,节点分布一般会有一定的规律,比如,在比较重要的区域,一般会有较多的节点,即节点的分布一般是不均匀的,很容易形成一个个区域簇。在这些簇内,各个节点和路由路径的距离是不相同的,有些离节点很近甚至就在节点的路由路径上,而有些节点则离得比较远。CB-NIMF利用网络中节点与“ferry”路由路径之间距离的差异让普通节点也进行数据路由工作,尽量减少由于节点移动而导致的隐性数据丢失。在CB-NIMF中,对“ferry”的功能进行一定的强化。“ferry”除了进行数据路由之外,还将进行网络分簇并替簇内的节点建立一个逻辑树。
1.1 分簇
在CB-NIMF中,假设每个节点都知道了“ferry”的路由路径,同时都能准确定位自己在网络中所处的位置——可以通过GPRS之类来获得。在布置网络的时候,每个节点首先获取自己的位置坐标,计算与“ferry”路由路径之间的距离,然后通过一次长距离的通信,将该坐标和距离发送给“ferry”节点。“ferry”在收集到网络中节点的坐标位置后,根据节点的位置分布,将距离比较靠近的节点分配成一个簇。如图2所示,其中虚线圆圈覆盖的范围是一簇。当某个节点位于两个簇之间时,“ferry”节点将根据以下方法来确定将该节点加入哪一个簇:
(1)当某个簇A中不存在与该节点距离比较小的节点,
而在另一个簇B中存在与该节点距离较小的节点时,“ferry”将会把该节点加入簇B的树。
(2)当该节点在2个网络簇中都存在与它距离差不多一样的节点时,“ferry”节点将分别比较该节点在2个树中的深度,同时选择将其加入深度较小的那个逻辑树所在的簇。如果该节点在两棵逻辑树中的深度一样时,“ferry”将会把该节点加入节点数目较少的那个簇。
1.2 逻辑树的形成
当“ferry”接收到所有节点的坐标,并把节点分配到相应的簇之后,它将根据节点与自己路由路径的距离,建立一棵逻辑树。首先,簇中距离最小的节点将会成为该簇与“ferry”通信的门节点。以门节点为根,将簇内其他所有节点以距离为因素来组成逻辑树:在形成的树中,父节点与“ferry”路由路径的距离总是比其子节点与“ferry”路由路径的距离要短。为了使簇内所有节点的移动距离总和最小化,可以使用Prim算法来生成一棵最小生成树。在成功建立了树之后,“ferry”替每个节点计算它们各自在树中的深度,然后用深度来标记节点。如果2个节点在树中的深度一样,就称这2个节点在树中属于同一层次。然后,“ferry”把节点的深度以及其父节点和子节点的坐标位置都通过一次长距离通信发送给节点。最终结果如图3所示,其中虚圆包围的是簇,a、b、c、d、e是各个簇的门节点,虚线形成的是一个逻辑树。
1.3 网络中的数据传输
当把网络分成N个簇之后,整个网络中的数据传输主要可以分为两类:簇内数据传输和簇间数据传输。当一个节点有数据需要传输时,它首先判断目的节点和自己是不是属于同一个簇,如果是同一个簇内的节点,则按照簇内数据传输的方式进行路由。发送节点首先判断自己与目的节点之间深度的大小,当目的节点深度比自己小时,发送节点将向父节点移动,把数据传输给父节点后返回原位置正常工作;当目的节点深度比自己大时,发送节点将向自己一个子节点移动,把数据传输给自己的子节点后返回原位置正常工作;当目的节点深度和自己一样时,发送节点将向与自己最为临近的同层次节点移动,数据传输完成后返回原位置正常工作。
当发送节点和目的节点不属于同一个簇时,路由过程将经由门节点和“ferry”来完成。当一个簇内有节点要传输数据后,它将会向父节点移动,在与父节点相遇后,把数据传输给父节点,然后返回原位置开始正常工作;而父节点在接收到数据后,将会开始新一轮的路由选择过程,这一过程将一直持续到数据到达门节点。当门节点要传输数据时,它将会向“ferry”的路由路径移动,成功地把数据传输给“ferry”后,返回正常工作。而“ferry”将会把要路由的数据按照目的节点所在簇分类,当遇到一个簇的门节点时,将所有目的节点位于该簇内的数据转发给该门节点。然后该门节点将按照簇内数据路由的过程将接收到的数据发送到各个目的节点。如图4所示,其中路径1属于簇内数据传输,不需经过 “ferry”;路径2属于簇间数据传输,经由门节点和“ferry”来完成。
2 节点平均的非正常工作时间
在CB-NIMF路由方式中,笔者把普通节点N的非正常工作时间分成两个部分TNm和TNw,其中,TNm是节点N移动到父节点所需要的时间,这个时间当网络初始化完成之后就是固定不变的,可以用两个节点之间的距离来衡量;TNw是节点N在父节点的初始位置等待父节点的时间。这样,节点N的非正常工作时间为:
对于门节点,Tw是 “ferry” 沿路由路径移动一圈所需时间的一半。假设“ferry”移动一圈所需要的时间是T,则门节点的平均等待时间Tw=T/2。那么门节点移动一次的非工作时间的平均值是:
从上述不等式(9)右边的最后一项可以看出,在簇内层次越高的节点,其移动时间受“ferry”路由周期的影响就越低。事实上,当n≥3时,T/(2×4n)≤T/192,当且仅当Twk=Tab时取等号,而且,在一个正常工作的网络中, Twk>>Tab,则不等式的最后一项其分母将会变得更大,因此,可以认为当节点在簇内的层次k≥3之后,节点的非正常工作时间就与“ferry” 的路由周期关系不大,甚至可以忽略 “ferry”的路由周期的影响,只与节点间的距离有关而已。
3 仿真结果
本文使用了C语言实现了CB-NIMF的仿真过程。为了简化非正常工作时间的分析,在仿真过程中,并没有把能量和延迟等因素考虑在内。
系统概述:
在假设的DTN网络模型中,所有节点随机分布在网络内, “ferry” 的路由路径是固定的。
(1)将整个网络分成50×50的方格,只有处于同一个方格内的节点才能进行正常通信。
(2)每个节点都拥有与 “ferry”进行长距离通信的能力,不过由于长距离通信消耗的能量比正常通信消耗的能量大得多,节点只会在网络初始化时期通过该长距离通信向 “ferry”通知自己的坐标数据以及从 “ferry”处获取初始化信息。
(3)在模型中,ferry每一个系统时间前进一个单位格,即ferry在当前的方格只停留一个单位时间,普通节点只有与ferry处于同一方格内才能进行普通数据传输。
(4)每个节点的移动速度是每个单位时间可以前进一个单位格,包括斜对角方向的单元格。
为了比较网络中节点数目导致的NIMF和CB-NIMF两种算法节点移动时间的差异,当网络中节点数目分别为10、25、50、75、100、125、150、175、200时,分别仿真了两种算法下节点的移动时间,结果如图5所示:当网络中节点数目较少时,CB-NIMF和NIMF 两种方式中的总节点移动时间相差不多,但是随着网络中节点数目增加,CB-NIMF 方式下总节点移动时间将会比NIMF方式下总节点移动时间越来越少,也就是说,当节点数目比较大的时候,CB-NIMF比NIFM具有明显的优势。这也与前面的分析一致,当节点的数目增多,簇内节点的数目相应增多,高层次的节点将会增加,而层次越高的节点,其非正常工作时间与“ferry”路由周期T的关系就越小,甚至可以说只与节点间的距离有关。而在一个基于NIMF的DTN网络中,每个节点的非正常工作时间都与 “ferry” 路由周期T密切相关,导致网络中所有节点的非正常工作时间总和与节点数目以及T成正比。
当节点数目较少时,每次簇内的节点会比较少甚至可能只有1~2个节点存在。因为本算法规定每个簇内只有一个节点能与“ferry” 节点进行直接通信,如果簇内节点很少时,采用CB-NIMF方式并不合适。不过,一般用于数据采集的传感器网络,其节点数目都比较多。而从前面的研究中看出,随着网络中节点数目的增加,CB-NIMF的优势也会逐渐增加。因此,CB-NIMF相比较于NIMF还是有巨大优势的。
本文针对用于数据采集且基于“ferry”的容迟网络中采用NIMF路由时节点移动时间过长的缺陷,根据网络中普通节点也可以进行数据路由以及网络分布的特点,提出新的基于簇的路由算法CB-NIMF,理论推导和仿真结果说明,CB-NIMF能有效地减少节点的移动时间,从而增加节点在固定时间内的数据采集量。
参考文献
[1] FALL K. A delay-tolerant network architecture for challenged internets. In Proc.SIGCOMM 2003,2003.
[2] ZHAO Wen Rui. Mostafa ammer ellen zegura. A message ferrying approach for data delivery in sparse mobile Ad Hoc networks. In ACM MobiHoc 2004,2004.
[3] GU Y, BOZDAG D, EKICI E, et al. Partitioning based mobile element scheduling in wireless sensor networks. In Proc.2nd Annual IEEE Conference on Sensor and Ad Hoc Communications and Networks,2005.
[4] ZHAO W, AMMAR M, ZEGURA E. Controlling the mobility of multiple data transport ferries in a delay-tolerant network. In Proc.INFOCOM 2005,2005.
[5] JEA D,SOMASUNDARA A, SRIVASTAVA M. Multiple controlled mobile elements(data mules) for data collection
in sensor networks. In DCOSS 2005,2005.
[6] ZHANG Zhen, FEI Zong Ming. Route design for multiple ferries in delay tolerant networks. Wireless Communications and Networking Conference, 2007. WCNC IEEE, 2007.