Page 1

环 / 球 /IT

网络模拟和仿真技术

北京航空航天大学计算机学院  方维维  王锐 / 文

什么是网络模拟

拟,从 而 获 取 特 定 的 网 络 特 性 参

“模拟” (simulation)是通过建立 真实系统的模型来研究系统在一定 条件下的行为,它通过建立实际系 统的数学模型并按照相同的运行机

数,观察特定的网络行为。 网络上各种事件如丢包、延迟 的发生都是在各可能的离散时间 点发生的,因此网络模拟是对随

理模拟真实系统的动态行为。它是 脱离真实系统独立运行的,主要分 为连续模拟(Continuous simulation) 信需要。然而由于网络的不可控、 和离散事件模拟(Discrete event 易变和不可预测等特性的存在,给 simulation),前者用于模拟随时间 新的网络方案的验证、分析和比较 连续变化的系统,而后者则假设系 带来了极大的困难。虽然构建试验 统的变化由事件触发,系统状态的

机 离 散 事 件 的 模 拟 ,这里的“事 件”即网络状态的变化。在模拟软 件 内 部 ,事 件 由 各 种 虚 拟 网 络 模 型产生。同时,软件内部一般都存

随着网络技术的发展,研究人 员不断开发出新的网络协议、算法 和应用,以适应日渐增长的网络通

床(Testbed)可以部分解决此类问题, 变化是基于离散的事件点发生的。 但是试验床的造价高昂,且对大规 网络模拟(Network simulation) 模网络试验的支持较差。在这种情 通过构造可控、可重现网络状况的 况下,网络模拟和仿真作为一种新 虚拟网络环境,在数学建模和统计 的网络设计和规划技术,无疑给网 分 析 的 基 础 上 对 网 络 行 为 进 行 模 络研究提供了方便、高效的验证和 分析工具。

在一个离散事件驱动的事件调度 器(Event Scheduler), 它是模拟软 件 的 核 心 组 成 部 分 。事 件 调 度 器 维护一个按照发生时间进行排序 的事件列表(Event List),遵循先 进先出FIFO(First In First Out) 的方式执行事件。模拟核心处理 完当前事件之后即把当前事件从

图 1   模拟软件执行流程

计算机教育  2005.12

5 1


环 / 球 /IT

事件列表中删除,同时获取列表 中下一个时间点发生的事件并执 行,如图 1 所示。事件执行到事件 列表为空即事件全部执行完毕为

的两个博士共同创建的,后来由此 成立了 OPNET Technologies Inc. 公司进行开发成为著名的商业网络 模拟软件。Modeler 为 OPNET 中主

止。值得注意的是,这里的发生时 间参考的是模拟软件内部的模拟 时钟,而不是外界物理时钟,模拟 时钟代表了模拟的时间推进速度,

要的核心模拟组件,它结合了基于 包的分析方法和基于统计的数学建 模 方 法 ,采 用 层 次 性 的 模 拟 方 式 (Hierarchical Network Modeling),

是 一 个 抽 象 的 时 间 ,并 不 一 定 和 外界的墙钟对应。 图 2 展示了使用网络模拟软件 的主要步骤。网络模型构造和模拟

节点模块建模完全符合 O S I 模型, 共提供了 3 层建模机制,底层为进 程(Process Level)模型, 通过状态机 来描述协议对各对象进行仿真;上

试验这两个部分都是需要不断调试 和修改的过程,以提高最终验证结 果的准确度和精度。构造时也不能 设置过多无用的参数,使得网络模

层为节点(Node Level)模型, 由相应 的协议模型构成,反映设备特性; 最上层为网络(Network Level)模型。 其中的各种代码都是完全公开的,

型过于臃肿庞大,降低模拟效率, 可能导致仿真精度不高甚至存在较 大的误差。

注释也很详尽,使得用户比较容易 理解其操作。 Modeler 主要使用工程来管理 一组模拟场景,软件提供了相关的

网络模拟相关软件 早期的网络模拟主要使用 C / C + + 或者其他一些通用性程序设计 语言,由 于 网 络 系 统 逐 渐 变 得 复 杂,网络事件的不确定性又往往很 难表征出来,不同的研究人员可能 会采用不同的设计方法和结构,得 到的结果不尽相同,缺乏公认的可 靠标准。随着计算机网络技术的快 速发展,也出现了很多专门的网络 模拟软件。下面简单介绍几种比较 流行的网络模拟软件。 1.NS2

图 2   使用模拟软件的流程

C++ 和 OTcl(Object TCL)两种编程 语言实现。N S 2 定义了相关的模块 用于记录模拟的结果,可以指定文 件名对模拟过程及相关参数进行跟 踪。它提供了 Xgraph 用来以图形的 方式显示模拟结果,Nam(Network Animator)用来动态展示模拟场景的 动画效果。N S 2 将各种网络设备抽 象为节点,因此不能对具体设备的

NS2(Network Simulator V2)是 美国 D A R P A 支持的 V I N T 项目的核 网络处理能力进行模拟。 NS2 是一个开放源代码的网络模 心部分,由 LBNL、UC Berkely 和 ISI 联合开发。它是一个可扩展的、 拟软件,可以根据需要对其模型库 易配置的、可编程的离散事件驱动 和核心组件进行修改和扩充。主页 的模拟器,网络模型库包括拓扑模 型、流量模型和协议模型等。为了 兼顾效率和运行速度,N S 2 采用

5 2

计算机教育  2005.12

编辑器(Editor)对各种网络模型进行 可视化编辑和属性控制。主要的编 辑器有项目编辑器,节点模型编辑 器,进程模型编辑器等等。编辑完 模拟场景之后可以直接进行模拟, 并搜集各种数据,O P N E T 提供了相 应的功能生成结果图表或者将结果 导入到电子表格中,进一步进行绘 制和分析。 OPNET 的功能相比 NS2 显得更 加强大,它不但可以模拟 I P 网络, 还可以模拟其他各种网络和设备, 如 A T M 网络、F D D I 网络等,并且 可以提供针对各种具体的厂商设备 的性能模拟,因此被广泛地使用于 网络设备生产企业和运营商,如

Cisco 和 AT&T。某些特殊模块需要 是:http://www.isi.edu/nsnam/ns 。 单 独 购 买 使 用 。 在 军 事 领 域 , 2.OPNET OPNET 的HLA(High Level O P N E T 最早是于 1 9 8 6 年 M I T Architecture)分布式模拟也得到了


环 / 球 /IT

广泛的应用。O P N E T 公司主页:

真对象一样的数据和执行同样的程

要和外界墙钟同步。由于仿真系统

http://www.opnet.com  。 3.OMNET++ O M N E T + + 是面向对象的离散 事件模拟环境,由布达佩斯理工大

序,从而获得相应的结果。网络仿 真(Network emulation)可以看作网 络模拟和试验方法的结合。网络仿 真系统使用仿真接口( E m u l a t i o n

和真实网络之间存在交互,那么必 然事件的调度要采取实时的方式。 为了使内部时间能够接近外部真实 时间的推进,就需要对事件调度器

学电信系的 Andras Varga 开发。它 主要用于通信网络的模拟,不过由 于其通用和灵活的结构,也同时被 应用于复杂信息系统、硬件体系结

interface)作为真实网络应用程序和 仿真系统之间的桥梁,它可以将外 界真实网络中的 IP 报文转化为仿真 系统内的虚拟 IP 报文,也可以将虚

进行修改,不是一个事件处理完马 上就推进到下一事件的时间点,而 是参考外部真实时钟,在合适的真 实时间对下一事件进行处理。

构的模拟。 拟 IP 报文转化为外界真实 IP 报文, 网络仿真的作用主要有两种, O M N E T + + 和 N S 2 一样,也使 从而使得仿真系统内部的虚拟网络 一是通过在仿真系统内部实现算法 用了混合式的建模方式。其中简单 和外界真实网络能够相互作用。 和协议,通过真实网络的流量负载 组件(Modules)使用 C++ 进行编程, 网络仿真和网络模拟的侧重点 来检测协议模型的行为;二是为协 并使用 O M N E T + + 所特有的 N E D (Network Discription)语言组合成复 杂的更高级的组件和模块,模块是 可以任意重用的。在 NED 中,模块

并不相同:网络模拟用于网络协议 和算法的设计,其工作过程是纯计 算 过 程 ,是 模 拟 器 内 部 的 工 作 流 程;而网络仿真用于测试实际的网

议实现或者网络应用程序构建一个 虚拟的网络运行环境,让网络报文 经过虚拟网络,通过虚拟的网络环 境来影响真实的数据流,例如使用

之间通过门( G a t e s ) 来进行消息 (Message)传输。最后 OMNET++ 提 供了编译器进行编译,编译得到可

络应用程序,和外界真实网络有交 互,所构造的虚拟网络和外界真实 网 络 是 需 要 进 行 同 步 的 。 也就是

报文丢失、乱序、拥塞等等手段来 触发协议实现的拥塞控制机制等, 来评测协议实现的性能。

执行文件并进行配置之后,就可以 脱离 O M N E T + + 平台进行模拟了。 这也是 O M N E T + + 和以上两种模拟 软件的不同之处。

说,仿真软件内部规定某一时刻第 n 秒发生的事件,也是从仿真过程 开始之后外界时钟推进到第 n 秒发 生的事件。

使用仿真软件的过程和模拟软 件基本类似,主要就是按照软件的 具体要求将外部网络应用的流量从 仿真接口接入并和仿真软件同时运

目前,O M N E T + + 和前两者相比 仿真系统和外界交互的情况如 还不是很完备,研究中使用的也多, 图 3 所示,从图 3 可以看出,系统 支持的模型相对较少,主要有IP 网络 总体结构与模拟软件基本类似,主 模型、IPv6模块、FDDI和令牌环网等。 要的不同是仿真接口和内部时钟需

行即可,这里就不详细说明了。

网络仿真相关软件 网络仿真是一个新兴的研究领

它也是开放源码的模拟器,可以根据 需要添加和修改。O M N E T + + 社区主 页:http://www.omnetpp.org  。 除了这三种模拟软件之外,研 究机构还开发了其他各种模拟软 件,这里就不一一叙述了。

什么是网络仿真 作为模拟发展的高级阶段, “仿真” (Emulation)通过构造仿真系 统来全部或者部分的模拟外界系 统,使得仿真系统能够接受和被仿

图 3   网络仿真系统与外界交互

计算机教育  2005.12

5 3


环 / 球 /IT

域,目前处于起步阶段,软件并不 是相当成熟,下面将选择部分作简 单介绍。

基于通道(Channel)的保守同步任务 有:延迟( 固定延迟时间和变化延迟 调度器(Conservative Parallel Discrete 时间);包乱序;包丢失(随机或拥塞 Event Simulation, PDES)TasKit。 相关);包复制;流量限制等。如果用

1.NS Emulator UC Berkely 的研究人员在 NS2 的基础上增加了网络仿真模块, 开 发出 N S 的 仿 真 版 本—— N S

T a s K i t 将仿真时间看作一组 L P (Logical Process)的集合, LP之间 通过时间戳事件消息(Timestamped Event Message)进行通信。 IP-TNE中

户需要,还可以自定义对包的操作。 NistNet 主页:http://www-x.antd. nist.gov/nistnet/ 。 除了这三种仿真软件之外,国

Emulator,简称 NSE。NSE 在 NS 的 基础上增加了网络仿真接口和实时 事 件 调 度 器 。数 据 包 通 过 B P F (Berkely Packet Filter)提供的包过

网络数据包的读入采用 P C A P 库 (Packet Caputre),写出使用原始套 接口,并且读入和写出都采用了单 独的线程,大大提高了仿真系统的

际上的研究机构还开发了其他各种 类型的仿真软件,这里就不一一叙 述了。

滤功能进行输入,输出则采用原始 套接口(Raw Socket)写出到真实网 络中,   仿真接口提供虚实数据包的 转换。它实现的是串行离散事件的

处理效率。IP-TNE 主页:http:// warp.cpsc.ucalgary.ca/。 3.NistNet NistNet由美国National Insti-

从 20 世纪 80 年代开始,发达国 家就开始研发相关的网络模拟和仿 真软件用于研究和开发,并得到了

仿真,内部仿真引擎只有一个主进 程进行处理,因此效率不是非常 高,外部真实网络负载较大时不能 及时地处理网络上的数据包。目前

tute of Standard and Technology (NIST)的信息技术实验室先进网络 技术课题组开发。和上述两种系统 不同的是,它被实现为 Linux 操作

广泛的使用和推广。由于我国网络 发展时间相对稍晚,加之美国对高 端的网络产品的限制等原因,我国 在网络模拟和仿真方面的投入较

NSE 还处于不断完善中。NSE 主页: http://www.isi.edu/nsnam/ns/ ns-emulation.html 。 2.IP-TNE

系统的内核扩展模块,并提供了一 个可视化的 G U I 界面用于用户操 作和搜集结果进行分析,这样就把 运行 NistNet 的 Linux 主机变成了

少,直到 20 世纪 90 年代后期才由各 高校和通信研发公司陆续引进和使 用 OPNET 和 N S 2 等软件。在处理大 型网络和复杂网络的应用方面,网

IP-TNE 是 Internet Protocol Traffic and Network Emulator的缩 写, 由加拿大Calgary大学的TeleSim 项目组开发。它采用了并行仿真技

一个仿真广域网 /Internet 的虚拟 网络环境。 NistNet 所支持的包类型包括 IP, UDP, TCP, ICMP, IGMP 等。

络模拟和仿真技术还不是很成熟, 不少的问题亟需解决,因此该领域 还需要投入相当的人力和物力,以 达到更好的应用效果,进一步促进

术(Parallel Emulation), 内核是一个

它可以对真实的数据包进行的操作

网络通信产业的研究和开发。

结束语

广东省高职高专“高校杯”软件设计大赛 广东省第十五届“高校杯” (高职高专组)软件设计大赛于 2005 年 11 月 19 日在广东机电职业技术学院 顺利开幕,本次大赛由广东省计算机学会主办、广东机电职业技术学院承办。据介绍,本次大赛有来自广东 轻工职业技术学院等三十二所高职院校的近九十件作品参赛,大赛规定参赛作品须是学生独自设计完成,教 师承担的研究项目不能参加评选。大赛评比程序包括作品申报、作品审核、展示与答辩、作品评比四个环节。 本次大赛的一等奖分别由来自广东机电职业技术学院的黄志敏、余锐龙、肖辉锋(平面建筑紧急逃生 性能测试器) ,广东省经济管理学院的霍霈、何建烽(魔方工程) ,广东科学技术职业学院的陈周全、尹俊 岳、韦锦枫(鹰眼教学卫士实验室助手),华师增城学院的于雷(迷你传说)获得。

5 4

计算机教育  2005.12

paper1  

weiwei fang paper1

Read more
Read more
Similar to
Popular now
Just for you