急需一篇关于“通信网络仿真研究”的论文
1
题目:基于无线传感器网络的仿真平台研究
一.导言
传感器网络(WSN)日新月异,各种网络方案和协议越来越复杂,网络规模越来越大。对于网络研究人员来说,掌握网络仿真的重要性不言而喻。WSN仿真可以在可控的环境下研究WSN应用,包括操作系统和网络协议栈,可以模拟大量的节点,可以观察不可预测的干扰和噪声导致的节点间不可预测的交互,获得节点间的详细细节,从而提高节点投入运行后的网络成功率,减少投入运行后的网络维护工作。目前用于无线传感器网络的仿真工具主要有NS2、TinyOS、OPNET、OMNET++等。TinyOS是专门针对无线传感器网络的特点开发的。
二、无线传感器网络仿真简介
在传感器网络中,单个传感器节点有两个突出的特征。一个特点是它的并发性非常密集;另一个特点是传感器节点高度模块化,这使得无线传感器网络的仿真需要解决可扩展性和仿真效率、分布和异步特性、动态性、综合仿真平台等问题。
第三,无线传感器网络常用仿真工具
无线传感器网络常用的仿真工具有NS2、OPNET、OMNET++和TinyOS。下面简单介绍一下他们各自的性能和特点。
3.1 NS2
NS是一个可扩展、可配置、可编程的时间驱动仿真工具,它是在真实仿真器的基础上发展起来的。在NS的设计中,使用了C++和OTCL两种编程语言,而C++是一种运行速度相对较快但转换较慢的语言,所以使用C++实现网络协议,编写NS底层的仿真引擎。OTCL是一种脚本语言,运行速度很慢,但可以快速转换,这只是C++的补充。因此,OTCL用于配置仿真中的各种参数,并建立仿真的整体结构。OTCL脚本通过调用引擎中的各种属性和方法定义网络的拓扑结构,配置源节点和目的节点建立链接,生成所有事件的调度,运行和跟踪仿真结果,还可以对结果进行相应的统计处理或绘制。NS可以提供有线网络。NS中的很多协议都非常接近真实代码,真实性和可靠性都非常高。
3.2 OPNET
OPNET是MIL3公司在MIT研究成果的基础上开发的网络仿真软件产品。OPNET的主要特点包括以下几个方面:(1)采用面向对象技术,对象的属性可以任意配置,每个对象属于一个具有相应行为和功能的类,通过定义新的类可以满足不同的系统需求;(2)OPNET为各种通信网络和信息系统提供处理组件和模块;(3) OPNET采用图形界面建模,为用户提供三层(网络层、节点层、流程层)建模机制来描述真实系统;(4) OPNET在进程级使用有限状态机对其他协议和进程进行建模,用户模型和OPNET内置模型会自动生成C语言,实现高效率、高离散事件的可执行仿真流程;(OPNET内置了很多性能分析器,会自动收集仿真过程的结果数据;(6)OPNET预定义了几乎所有常用的商业模型,如均匀分布、泊松分布、Olam分布等。
3.3 OMNET++版
OMNET++是一个面向对象的离散事件仿真工具,提供了基于过程和事件驱动的仿真支持。OMNET++采用混合建模方法,使用OMNET++特有的ned(网络描述)语言和C++进行建模。OMNET++主要由仿真内核库、网络描述语言编译器、图形网络编译器、仿真程序图形用户界面、仿真程序命令行用户界面和图形矢量输出工具六部分组成。NED是OMNET++的主要模型拓扑描述语言,可以用来描述一个网络模型。网络描述包括以下组件:输入语句、通道定义、系统模块定义、简单模块定义和复合模块定义。NED用于描述网络并生成一个. NED文件,C++编译器不能直接使用该文件。首先。NED文件需要使用OMNET++提供的编译工具NEDC编译成. cpp文件。最后用C++编译器把这些文件和用户自己设计的简单模块程序连接成可执行程序。
3.4 TinyOS
TinyOS是专门为传感器开发的操作系统。TinyOS上的编程语言是NESC(网络嵌入式系统的C语言)。
NesC语言是C语言的扩展,意在将组件化/模块化的思想与TinyOS的事件驱动执行模型相结合。nesC组件有两种:模块和配置。在模块中主要是编译代码,在连接配置文件中主要是把组件和模块连接成一个整体。
TinyOS程序采用模块化设计,因此其程序核心往往很小,可以突破传感器存储资源的限制,使得TinyOS可以有效地运行在无线传感器网络上,进行相应的管理工作。TinyOS的特点主要体现在以下几个方面:
(1)基于组件的架构。TinyOS组件通常可以分为以下三类:硬件抽象组件、综合组件和高级软件组件;硬件抽象组件将物理硬件映射到TinyOS组件模型。合成硬件组件模拟高级硬件的行为。高级软件模块完成控制、路由和数据传输。}
(2)事件驱动架构。事件驱动分为硬件驱动和软件事件驱动。硬件事件驱动是指硬件发出中断,然后进入中断处理功能。软件驱动程序通过singal关键字发送事件。
(3)任务和事件并发模型。任务用在对时间要求不是很严格的应用中,任务是对等的,也就是执行的时候是按顺序来的,不能互相抢占。TinyOS根据简单的FIFO队列处理任务。事件用于时间关键的应用程序中,它们可以优先于任务和其他事件。
(4)分相操作。在TinyOS中,因为任务不能互相抢占,所以TinyOS不提供任何阻塞操作。为了使一个长时间的操作尽快完成,一般是通过把对这个操作的需求和这个操作的完成分开来实现,以获得更高的执行效率。
(5)轻质螺纹。轻量级线程(TinyOS中的task)以FIFO模式调度,不允许轻量级线程之间的抢占;硬件处理线程(在TinyOS中称为硬件处理器),即中断处理线程可以中断用户的轻量级线程和低优先级中断处理线程,快速响应硬件中断。
(6)主动消息。每个消息维护一个应用层和一个处理器。当目标节点收到这个消息时,它会将消息中的数据作为参数,传递给应用层的处理器进行处理。应用层的处理器一般完成消息数据的解包操作、计算处理或发送响应消息。
TinyOS操作系统中常见的仿真平台有TOSSIM和Avrora。
(1)TOSSIM(TinyOS Simulation)是一个模拟器,支持基于TinyOS的应用程序在PC上运行。TOSSIM运行与传感器硬件相同的代码,仿真编译器可以直接从Tinyos应用程序的组件列表中编译生成仿真程序。
(2)Avrora是一个为Atmel和Mica2节点上用AVR微控制器语言编写的程序提供仿真分析的工具。其主要特点如下:1)为AVR单片机提供周期精确模拟,使静态程序准确运行。它可以模拟片上设备驱动程序,并为片外程序提供常规接口。2)可以添加监控代码来报告仿真程序的运行性能,或者可以在仿真后收集统计数据并生成报告;3)提供了一套分析程序的基本监视器,有助于分析程序的执行方式和资源使用情况。4)Avrora可以用gdb调试程序;5) Avrora可以为程序提供程序流程图,通过程序流程图可以清晰的表达机器码程序的结构和组织;6) Avrora提供了分析能耗的工具,可以设置设备的带电大小;7) Avrora可以用来限制一个程序的最大堆栈空间。它将提供一些关于当前程序中最大堆栈结构的信息报告,以及一些关于空间和时间消耗的信息报告。
3.5性能比较
TinyOS使用行为建模来模拟跨层协议;仿真程序移植到节点上,无需二次编码。
通过对上述仿真软件的分析比较,我们可以清楚地看到各个仿真软件的特点和适用范围,可以根据研究需要选择合适的仿真软件,使我们的学习和研究事半功倍。
结束语
网络仿真技术为通信网络规划和优化提供了一种科学有效的方法。网络仿真在我国是近几年才发展起来的,但国外的网络仿真技术已经相当成熟。我们应该大胆借鉴国外的先进技术,推动国内网络仿真技术的快速发展。
参考
1于海滨,曾鹏等。智能无线传感器网络。科学出版社,2006,P283 ~ P303,
2石怀伟,李,,,网络仿真技术与OPNET应用实践,计算机系统应用,2006.3 .
3,吴,基于OMNeT++的TCP/IP协议仿真,兰州交通大学学报(自然科学版),2005年8月。
4袁宏林,徐晨,张国安,TOSSIM:无线传感器网络仿真环境,传感器与仪器,第22卷,第7期-1,2006
2
集群虚拟服务器仿真建模研究
来源:电子技术应用作者:李金娣叶雨凝
阐述了集群虚拟服务器的工作原理和三种负载均衡方法,通过实例讨论了虚拟服务器的模拟和建模方法,创建了测试和模拟系统性能的输入和系统模型,并根据Q-Q图和累积分布函数验证了其概率分布。
关键词:集群虚拟服务器负载均衡仿真建模概率分布
随着互联网流量和数据流量的快速增长,新的应用层出不穷。虽然Intemel服务器的处理能力和计算强度相应增加,但是业务量的发展超出了之前的预估,以至于过去按照最优配置搭建的服务器系统都无法承受。在这种情况下,如果放弃现有设备,简单升级硬件,就会浪费现有资源。因此,当前和未来的网络服务不仅要提供更丰富的内容、更好的交互性和更高的安全性,还要承担更高的访问量,这就要求更高的性能、更大的可用性、良好的可扩展性和优异的性价比。因此,集群虚拟服务器技术和负载均衡机制应运而生。
集群虚拟服务器可以将一些真实的服务器聚集在一起,形成一个可扩展的、高可用的、可靠的整体。负载均衡基于现有的网络结构,提供了一种廉价、有效、透明的方法来建立服务器集群系统,扩展网络设备和服务器的带宽,增加吞吐量,增强网络数据处理能力。提高网络的灵活性和可用性。利用负载均衡机制,可以将大量的并发访问或数据流量分配给多个节点设备分别处理。系统的处理能力大大提高,用户的等待时间大大减少。
在实际应用中,虚拟服务器包含真实服务器越多,整个服务器的性能指标(如响应延迟、吞吐量等)就越高。),但是价格越高。集群中的信道或其他部分也可能进入饱和。因此,需要根据实际应用设计虚拟服务器的仿真模型,根据实际系统的实测数据确定随机变量的概率分布类型和参数。通过Q-Q图和累积分布函数等方法验证响应或传播延迟等性能指标的概率分布,并通过仿真软件和工具(如Automod)提前分析服务器的运行状态和性能特征,使得集群系统整体性能稳定,提高了虚拟服务器设计的客观性和可靠性,降低了服务器建设的投资风险。
1集群虚拟服务器架构
一般来说,需要在集群虚拟服务器上建立一个互联网协议伪装机制,即IP伪装,然后创建一个IP端口转发机制,再在真实服务器上给出相关设置。图1显示了集群虚拟服务器的一般架构。集群虚拟服务器通常包括:RealServers和Load Balmlcer。
因为虚拟服务器的网络地址转换方式是基于IP伪装的,所以对后台真实服务器的操作系统没有特殊要求,可以是windows操作系统,Lmux或者其他操作系统。
负载均衡器是服务器集群系统的唯一入口。当客户请求到达时,均衡器会根据实际服务器负载和设定的调度算法从实际服务器中选择一个服务器,然后将请求转发给选择的服务器,并记录调度情况。当该请求的其他消息到达时,该消息也将被转发到先前选择的服务器。由于所有操作都在操作系统的核心空间完成,调度开销很小,所以负载均衡器具有很高的吞吐量。整个服务器集群的结构对客户是透明的,他们只看到一个虚拟服务器。
实现负载均衡集群的方案有很多,其中之一是Linux虚拟服务器LVS(Linux Virtual Server)。LVS实现负载均衡有三种技术:网络地址转换、直接路由和IP隧道。
根据IETF标准,网络地址转换允许整个组织以公共IP地址出现在互联网上。负载均衡器通过网络地址翻译,重写请求报文的目的地址,并根据预设的调度算法将请求调度到后端的真实服务器;当真实服务器的回复报文经过均衡器时,报文的源地址被重写,内部私网地址被翻译成合法的网络IP地址,然后返回给客户,完成整个负载调度过程。
直接路由的应答连接的调度和管理与网络地址转换相同,但它的消息是直接转发到真实服务器的。在直接路由响应中,均衡器不修改或封装IP报文,而是将数据帧的MAC地址改为所选服务器的MAC地址,然后在局域网上发送修改后的数据帧。因为数据帧的MAC地址是选择的服务器,所以服务器肯定能收到数据帧,并从中获取IP报文。当服务器发现报文的目的地址在本地网络设备中时,服务器对报文进行处理,然后根据路由表回复报文,直接返回给客户。
IP隧道是一种将一个IP消息封装在另一个IP消息中的技术。这种技术可以将发往某个端口地址的数据报文封装后转发到另一个IP地址。用户使用IP隧道技术将请求消息打包转发给后端服务器,回复消息可以直接从后端服务器返回给客户。这样负载均衡器只负责调度请求,回复直接返回给客户,不需要处理回复包,这将大大提高整个集群系统的吞吐量,有效降低负载均衡器的负载。IP隧道技术要求所有服务器必须支持IP Yunnehng或lP。封装协议。
2集群虚拟服务器消息延迟的确定
通过一个具有5台真实服务器的实际系统,利用网络地址转换技术实现Linux虚拟服务器,可以获得请求和响应消息的时间戳文件。根据这些文件,可以计算出集群虚拟服务器仿真建模所需的数据。
为了确定随机变量的分布类型和参数,需要计算以下延迟:(1)运输延迟);从客户到负载均衡器;(2)响应延迟);负载平衡器的;(3)从负载平衡器到真实服务器的传播延迟;(4)真实服务器的响应延迟;(5)从真实服务器到负载平衡器的传播延迟;f61负载均衡器对真实服务器的响应延迟;(7)从负载平衡器到客户的传播延迟。
在实际系统生成的时间戳文件中,详细描述了上述延迟时间。该文件包含以下内容:
当一个服务请求到达集群虚拟服务器系统时,它生成一个具有唯一序列号的同步请求包,将消息转发给一个真实的服务器,并在服务器和客户端之间建立连接,每个连接都有一个唯一的端口号;服务器通过连接处理确认请求包,直到服务器接收到完整的请求包。对于每种类型的请求消息,系统给出相应的回复消息。因此,在不同的消息时间戳文件中,如果两条记录具有相同的端口号、消息类型和序列号,则它们是相同的请求或响应消息,通过减去相关时间戳可以得到集群虚拟服务器系统仿真建模所需的延迟数据。这些延迟可以通过C++程序来计算。
3系统仿真模型
如图2,上面提到的实际集群虚拟服务器系统的仿真模型,所有在负载均衡器中传递或处理的消息,每个通道和五个真实服务器都是请求或回复消息。
4随机变量模型的确定
用随机变量模拟集群虚拟服务器,需要确定其随机变量的概率分布,以便在模拟模型中对这些分布进行采样,得到所需的随机变量。
4.1实际虚拟服务器延迟数据概述
在实际的虚拟服务器的负载均衡器中,每个通道和五台真实服务器,请求和回复消息都有一定的延迟。一些消息延迟的统计数据如表1所示。
从表L中的数据可以看出,消息延迟的中位数和均值相差很大,所以其概率分布是非对称的;变异系数不等于l,所以概率分布不会是指数分布,而可能是γ分布或其他分布。
4.2随机变量的概率分布
图3是第一实际服务器和负载平衡器之间的信道消息传播延迟的直方图,其中t是消息延迟时间,h(t)是消息延迟间隔的数量。从图3可以看出,信道中的分组传播时延数据近似服从γ分布或对数正态分布。
描述γ分布需要两个参数:形状参数α和比例参数(Scahj)。这两个参数与均值m和方差v之间的关系是非线性的:
对数正态分布的描述还需要形状参数σ和比例参数μ,这两个参数与均值m和方差v的关系也是非线性的:
方程(1)~(4)可以通过MLE(最大似然估计(MLE)法或最速下降法得到。表2显示了通过这两种方法获得的从第一个真实服务器到负载均衡器的信道中的分组延迟概率分布参数。
累积分布函数和Q-Q图可用于验证并进一步确定上述信道中消息传播延迟的概率分布。利用表2中的参数,可以得到γ分布的累积分布函数,如图4所示,其中t为消息延迟时间,F(t)为消息延迟的累积分布函数。为了比较,图中还画出了实验分布。γ分布和对数正态分布的Q-Q图如图5所示。
从图4和图5可以看出,γ分布非常符合该信道中的数据包传播延迟数据分布。其他信道消息延迟直方图具有类似的形状。经过计算分析,这些信道中消息传播延迟的概率分布也近似服从γ分布。
根据表1中的数据和相关的直方图,很难确定负载均衡器和真实服务器中消息延迟的理论分布。因此,采用实验分布作为其模型。
5模型模拟
在建立如图1所示的集群虚拟服务器的系统仿真模型并确定其随机变量的分布特性后,可以使用Brooks Automation开发的仿真软件Automod输入模型,在Automod环境下通过编程对集群虚拟服务器进行仿真分析。
在Automod仿真过程中,软件提供的资源可以直接作为处理各种报文数据的单元。系统各部分的消息排队活动可以通过排队直接实现;创建一个负载生成器,它相当于一个在Inlemtet上使用虚拟服务器的客户。
采用Automod属性变量可以解决负载均衡器的双向消息处理功能问题。负载均衡器使用循环调度算法,即假设所有真实服务器具有相同的处理性能,它依次将请求调度到不同的服务器。
验证模拟模型可以从两个方面进行比较:(1)负载均衡器、每个真实服务器和通道中排队的响应或传播消息的数量;(2)真实服务器和负载均衡器的cPU利用率。比如在使用实际的响应或传播消息来延迟数据时,如果在Automod的仿真模型中设置了较低的资源量,那么在仿真过程中会发现大部分负载被阻塞在真实服务器的队列中,即真实服务器处理消息的能力太低,无法与实际系统情况相比;如果设置了更高的资源量,就意味着服务器的并行处理能力会增加,真实服务器的利用率会增加,负载很少或者没有卡在真实服务器的队列中。因此,Automod中的仿真模型资源可以根据实际情况进行调整。
如果在Automod中增加了负载生成器的负载生成率,就相当于增加了用户的访问量。通过观察队列中的负载保持率,可以发现系统的最大消息处理能力,以及系统各个部分在回答消息时可能存在的瓶颈。比如负载生成率翻倍,虽然系统仍然可以处理所有消息,但是每台真实服务器的平均利用率会达到80%左右。显然,此时系统响应消息的“瓶颈”是真实服务器,所以需要在系统中添加新的真实服务器。
通过包括五个真实服务器的真实虚拟服务器系统。收集和计算模拟和建模的样本数据。根据系统消息延迟的中值、均值、变异系数和直方图,确定系统随机变量的概率分布。利用最大似然估计法和最速下降法得到信道概率分布的具体参数。根据Q-Q图和累积分布函数,进一步验证并最终确定信道的概率分布形式。利用Automod软件进行仿真建模和编程。借助于模拟结果,可以发现虚拟服务器的最大处理能力和可能的“瓶颈”。通过及时定位系统的“瓶颈”,可以有针对性地进一步研究和改进系统,有效提升系统性能。所采用的仿真方法也可用于其他领域的仿真建模或分析。
在仿真模型中,为了比较不同的虚拟服务器系统,需要进一步增加负载平衡方法和调度算法。样本数据还需要进一步扩展,以避免消息延迟的自相关。