当前位置:文档之家› 网络模拟器NS2中仿真功能的问题分析及改进

网络模拟器NS2中仿真功能的问题分析及改进

第21卷第2期 系统 仿 真 学 报© V ol. 21 No. 22009年1月 Journal of System Simulation Jan., 2009网络模拟器NS2中仿真功能的问题分析及改进况晓辉1, 赵 刚1,2, 郭 勇1,3(1.北京系统工程研究所, 北京 100101; 2.清华大学计算机科学与技术系, 北京 100084; 3.国防科技大学信息系统与管理学院, 长沙 410073)摘 要:网络仿真技术为解决大规模网络规划、应用和协议设计面临的挑战提供了新的途径。

作为广泛应用的网络模拟器,NS2为建立可扩展的网络仿真环境奠定了重要基础。

在描述NS2仿真功能实现的基础上,重点分析了NS2仿真功能存在的不足。

针对发现的问题,提出并实现了NS2仿真功能扩展,最后验证了仿真功能扩展的正确性。

关键词:网络仿真;NS2;报文转换;功能扩展中图分类号:TP393 文献标识码:A 文章编号:1004-731X (2009) 02-0427-05Improvement of Emulation Function in Network SimulatorKUANG Xiao-hui 1, ZHAO Gang 1,2, GUO Yong 1,3(1. Beijing Institute of System and Engineering, Beijing 100101, China; 2. Department of Computer Science and Technology,Tsinghua University, Beijing 100084, China; 3. Department of Information System and Management of NUDT, Changsha 410073, China)Abstract: Network emulate technology which enables real hosts and a real network to interact with a virtual network, becomes a very important way to resolve the challenge faced in network plan, application and protocol design. As a famous network simulator, NS2 proposed a foundation to construct network emulate platform. The emulation function of NS2 was described firstly. Based on analysis the problem of emulation function in NS2, the extension of NS2 emulation function was proposed and implemented. The correctness of extension was dominated in the end. Key words: network emulation; NS2; packet reform; function extension引 言互联网的迅速发展与膨胀对网络的规划、应用和协议的设计提出了新的挑战。

在试验环境中对网络规划、新的应用和协议进行评估是应对上述挑战的有效手段之一[1-3]。

当前构建复杂网络试验环境的实现技术主要包括测试床、网络模拟(network simulation )和网络仿真(network emulation )[4]等三种类型。

测试床具有逼真度高的优点,但是造价较高、规模和复杂性有限。

网络模拟具有可控性强、灵活性高、代价低以及能够实现复杂网络拓扑等优点,但是对于网络流量以及实现细节支持不够,交互性不高。

网络仿真综合了测试床和网络模拟的优点。

在仿真环境中,网络应用运行在实际的硬件平台上,且能够与实际的环境交互,扩展性和灵活性较高,同时网络试验环境可配置、可控制、可重复,能够生成真实网络流量,从而成为当前构建网络试验环境的重要技术。

当前网络仿真技术研究思路分为两种:一种思路是将仿真网络看作简单的延迟黑盒(simple delay lines ),仅关注网络出入口的设置,该思路具有硬件要求低的优点。

相关研究包括:Dummynet [5],NIST net [6]等。

另一种思路是通过建立虚拟网络模拟进行实时网络仿真。

真实网络流量能够通过仿真收稿日期:2007-06-10 修回日期:2008-02-09作者简介:况晓辉(1975-), 男, 湖南新化, 博士, 副研究员, 研究方向为计算机网络, 信息安全;赵刚(1969-), 男, 河北保定, 研究员, 研究方向为计算机网络, 信息安全; 郭勇(1966-), 男, 湖南常德, 研究员, 研究方向为计算机网络, 计算机软件。

器,虚拟网络能够根据交互生成网络流量。

相关的研究包括VINT/nse [7],ModelNet [8],NetBed [9], Virtual Routers [10],PlanetLab [11]以及IP-TNE [1]等。

随着网络复杂性的提高,基于延迟黑盒的网络仿真环境难以满足应用需求。

因此,建立在网络模拟基础上的仿真环境成为网络仿真技术的研究重点。

在网络模拟器实现中,NS2 [12]能够支持有线和无线、本地或卫星、局域网和广域网等各种网络类型以及网络分层模型,具有强大的二次开发能力以及可扩展、易配置和编程的事件驱动特性,为构建网络仿真平台提供了良好基础。

然而,NS2已有的仿真功能在IP 地址支持、路由机制、协议支持等方面存在不足,难以满足网络技术研究和协议设计开发的实际需求。

本文在深入分析NS2仿真功能的基础上,重点分析了已有功能存在的不足,描述并实现了NS2仿真功能扩展,解决了IP 地址支持、动态路由以及拓扑验证的问题。

最后,通过试验验证了仿真功能的正确性和有效性。

1 NS2网络仿真功能分析事件驱动的网络模拟器NS2是DARPA 支持的VINT 项目中的核心部分,由Berkeley, USC/ISI 、 LBL 和Xerox PARC 等大学和实验室合作开发,其目的是构造虚拟的网络平台和模拟工具,以支持网络协议的研究、设计和开发。

1.1 仿真功能NS2仿真模块实现了模拟器与实际网络的连接功能,2009年1月系统仿真学报 Jan., 2009包括分接代理对象、网络对象和协议仿真对象等,它们与NS2模拟器的关系如图1所示。

分接代理对象负责真实网络报文与模拟网络报文的转换。

分接代理对象关联的网络对象是接收和发送实际数据的入口点。

协议仿真对象实现对特定协议的仿真支持。

1.1.1 仿真功能中相关对象分接代理(Tap agent)分接代理类是从代理基类派生而来的类,能够产生模拟报文。

分接代理用来设置公共报头中长度、类型等字段。

其中,类型设置为 PT_LIVE 表明该模拟报文中包含真实网络数据。

分接代理能够发送数据包给关联的网络对象,并从关联的网络对象接收数据包。

每个分接代理只能关联到一个网络对象,但一个仿真节点可以绑定多个分接代理。

IPTapAgent和TCPTapAgent为Tap Agent的派生类,它将真实报文转换为模拟器中的IP报文或TCP报文,使得模拟器中已有的IP agent或TCP agent可理解此类报文,并对报头中的相关字段进行处理。

同时, IPTapAgent和TCPTapAgent 还负责将模拟报文转换为真实报文。

在转换过程中,通过将模拟报头中的IP报头和TCP报头与真实报文中的报头进行映射,实现真实节点与模拟节点在网络层和传输层的交互。

网络对象(Network Objects)网络对象提供一个以特定访问模式(只读、只写、读写)进入实际网络Link、RawIP或UDP等协议层的入口。

NS2提供三个网络对象:Pcap/BPF、IP网络对象、IP/UDP网络对象。

· Pcap/BPF 网络对象――提供LBNL包捕获库的扩展接口。

其中,PcapLiveNetwork采用混杂方式从网络接口驱动中捕获链路层数据帧,PcapFileNetwork支持从特定格式的文件中获取链路层数据帧。

· IP 网络对象――提供访问IP报文的能力,该对象以原始套接字方式运行。

以Network/IP为基类可以派生出实现更高层协议网络对象。

IP网络对象的配置相当简单,它跟任何特定的物理网络接口都没有联系;系统的 IP 路由能力可以把报头中含有目的地址的数据包发送到适当的接口。

·IP/UDP 网络对象――IP/UDP是Network/IP的子类,它提供实现UDP 报文访问能力,同时支持 IP 组播操作的功能。

协议仿真对象协议仿真对象实现对特定协议的仿真功能,目前NS2的仿真模块仅部分实现了ICMP、ARP、以及NAT等协议的仿真,提供的网络对象包括:IcmpAgent、PingResponder、ArpAgent以及NatAgent、TCPDestNat、TCPSrcNat、TCPSrcDestNat等。

· ICMP协议仿真对象――包括IcmpAgent、Ping- Responder,其中Agent/IcmpAgent,实现ICMP协议中的重定向功能,而PingResponder实现对ICMP ECHO类型ICMP 报文的响应。

· ARP协议仿真对象(ArpAgent)――实现ARP请求响应功能,可通过ArpAgent对象的命令设置接口、接口绑定的IP地址等。

· 网络地址转换对象――NatAgent是网络地址转换基类。

TCPDestNat、TCPSrcNat、TCPSrcDestNat等对象分别实现目的地址转换、源地址转换以及源/目的地址转换。

1.1.2 NS2仿真工作模式NS2仿真工作模式包括非透明模式和协议模式两种类型。

在非透明模式中,NS2把网络中的数据看成是不能被解释的数据包,实际的网络数据仅作为模拟报文的载荷,不对其进行任何处理。

在协议模式中,NS2通过仿真对象对真实网络报文进行解析、处理和响应。

协议模式协议模式下,绑定仿真对象的节点作为真实网络流量的目的节点,通过对真实报文进行分析,产生对应的响应报文,并将其封装为模拟报文,通过仿真网络发送到真实网络中。

如图2所示,NS2中的TCP agent 可以与实际的 TCP 服务器实现交互访问,也能接收来自外部应用程序的数据。

相关主题