沈阳理工大学学士学位论文
(5)第一个死亡节点出现的轮次与总轮次的百分比(Appearance Rate of the round which the first node dead,ARR)。
4.3.4 理论分析
由4.3节对SFD的描述可知SFD具有下列性质:
性质1.SFD的时间复杂度TC和消息域MF与Flooding相同。
说明:Flooding和SFD中每个节点的动作只需要一个循环即可完全描述,因此,它们的TC均为O(n)。二者都满足分布式特性=>二者均只需一跳信息,即二者消息域相同,均为1hop。
综上所述,新算法的时间复杂度和洪泛算法一致,同时保持了洪泛算法可以分布式实现的优点。
性质2.SFD较Flooding节能。
说明:SFD的能量由初始化、路由建立阶段和数据传输阶段三部分构成,Flooding的能耗由初始化和数据传输阶段两部分构成。
易知二者在初始化阶段的能耗是相同的。
在SFD的路由建立阶段,RREQ报文沿多路径转发给Sink,每次转发后,接收的节点除了根据报文自带的TTL外还会根据自己的位置信息判断是否丢弃该报文。如果报文的TTL-1≠0且节点较上一跳离Sink更近,则节点等待Δt时间看是否有更优的RREQ到来。以此来转发较优的RREQ。
因为多跳可能优于少跳,故节点等待Δt时间是很必要的,有利于减少报文的转发量,并有利于找到更优的路径。
当RREQ到达Sink后,Sink将沿它的反路径传送RREP报文直到Source。 可见,路由建立阶段,节点是有选择的重传,网络中报文的冗余量并不大,且越接近Sink,转发报文的节点越少。
虽然,Flooding没有路由建立阶段,但它在数据传输阶段毫无目的的转发数据报文。网络中数据的冗余量很大。而在数据传输阶段,SFD根据路由建立阶段建立的路由转发报文。故SFD报文转发的目的性很强。同时,RREQ和RREP报文的位数都较小,在整个传输过程中能耗较小。故SFD较Flooding节能。
分析:Δt的确定(Δt为节点等待能耗更小的RREQ的等待时间)
说明:假设时隙等长,数据包正好能在一时隙内从一个节点传送到另外一个节点。
32
沈阳理工大学学士学位论文
所有节点同步。第一次,一个包在等待若干个时隙后发送。其中等待的时隙数是从{0,1,…,W0}中随机选择的一个数,W0≥1是表示最小竞争尺度。若某节点发送的包出现了冲突,则该节点的竞争窗口大小乘以系数α。
Px?2?1?2Pe? ?1?Pe??1?2Pe(5.1)
设PS表示每个节点在每个时隙发送报文的概率,n表示对每个节点而言参与竞争发送报文时隙的节点数,对于每个节点来说n的值等于其1hop邻居数。则对二元的指数退避策略,有 又:
Pe?1?其他n?1个节点都不发送报文的概率
?1?(1?PS)n?1(5.2)
将(5.2)代入(5.1)得
px?1??1?Pe?1n?1 (5.3)
其中n取参与竞争发送报文时隙的节点数的平均值,即
n??r2?
(5.4)
(5.4)中r为节点的传输范围,ρ为网络中节点密度(node/m2)。
平均的来说,设节点在发送第i+1(i=0,1..)个报文时(即已发送i个报文)将等待Si个时隙,则
Wi?1ai?1Si??Wi?aiW0
22??(5.5)
考虑Wi=α,又算法采用的是二元指数退避策略,故α=2。所以,发送第i+1个报文时的平均时间Ti可由下面的表达式计算:
Ti??iWj?12j?0??ij?0aj?1i?2i?1?1 ?22(5.6)
故传输时间的期望值E (T)如下:
E?T???Ti?Pi??Ti?P?1?Pe???iei?0i?0i?0???i?2i?1?1i?Pe?1?Pe? 2(5.7)
因为网络中的某个节点收到来自某个Source的RREQ后,该RREQ可能不是最
33
沈阳理工大学学士学位论文
优的。通常跳数少的报文会比跳数多的报文先到达。但是多跳可能优于少跳。如果节点一收到RREQ报文就转发则节点可能错过更优的RREQ。考虑让节点等待一段时间后再将收到来自同Source的最优的RREQ转发。用报文传输时间的期望值E( T)近似的表示每个节点传送一个报文的时间。考虑等待2hop的情况。则另节点的等待时间:
?i?2i?1?1i?t?2E?T??2???Pe?1?Pe???i?2i?1?1?Pei?1?Pe?
2i?0i?0???(5.8)
其中i的取值从0到∞,∞是理论上的值,实际取值时由节点能发送的最多数据报文数来代替∞。节点能发送的最多数据报文数=节点的初始能量/发送一个数据报文的能量。故i的取值范围由节点的初始能量及网络的能耗模型决定。而Ps、Pc之间则相互制约,且通过每个节点参与竞争发送报文时隙节点数的平均值来计算,该平均值仍是由网络规模和节点的传输范围决定的。故算法能自适应地根据网络的分布情况、节点规格等参数计算出不同的等待时间。
34
沈阳理工大学学士学位论文
5 Flooding路由协议的MATLAB仿真
5.1 MATLAB仿真平台介绍
MATLAB 是一种对技术计算高性能的语言。它集成了计算,可视化和编程于一个易用的环境中,在此环境下,问题和解答都表达为我们熟悉的数学符号。典型的应用有: (1) 数学和计算 (2) 算法开发
(3) 建模,模拟和原形化 (4) 数据分析,探索和可视化 (5) 科学与工程制图
(6) 应用开发,包括图形用户界面的建立
MATLAB是一个交互式的系统,其基本数据元素是无须定义维数的数组。这让你能解决很多技术计算的问题,尤其是那些要用到矩阵和向量表达式的问题。而要花的时间则只是用一种标量非交互语言(例如C或Fortran)写一个程序的时间的一小部分。 .
名称“MATLAB”代表matrix laboratory(矩阵实验室)。MATLAB最初是编写来提供给对由LINPACK和EINPACK工程开发的矩阵软件简易访问的。今天,MATLAB使用由LAPACK和ARPACK工程开发的软件,这些工程共同表现了矩阵计算的软件中的技术发展。
MATLAB已经与许多用户输入一同发展了多年。在大学环境中,它是很多数学类、工程和科学类的初等和高等课程的标准指导工具。在工业上,MATLAB是高产研究、开发和分析所选择的工具。
MATLAB以一系列称为工具箱的应用指定解答为特征。对多数用户十分重要的是,工具箱使你能学习和应用专门的技术。工具箱是是MATLAB函数(M-文件)的全面的综合,这些文件把MATLAB的环境扩展到解决特殊类型问题上。具有可用工具箱的领域有:信号处理,控制系统神经网络,模糊逻辑,小波分析,模拟等等。
35
沈阳理工大学学士学位论文
MATLAB的优势和特点: (1) 友好的工作平台和编程环境
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。 (2) 简单易用的程序语言
MATLAB一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。 (3) 强大的科学计算机数据处理能力
MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如距阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。 (4) 出色的图形处理功能
36