网络模拟平台Network Simulator及其MFC的功能扩充
- 格式:pdf
- 大小:138.34 KB
- 文档页数:6
浅谈Boson NetSim模拟器与VMware虚拟机在中职计算机网络技术教学中的应用1. 引言1.1 Boson NetSim模拟器与VMware虚拟机在中职计算机网络技术教学的重要性在中职计算机网络技术教学中,Boson NetSim模拟器与VMware虚拟机的重要性不言而喻。
随着信息技术的快速发展,计算机网络技术已成为职业教育中至关重要的一部分。
而通过使用模拟器和虚拟机来进行网络技术教学,不仅可以提高学生的实践操作能力,还能够让他们更好地理解和掌握网络知识。
VMware虚拟机在网络技术教学中也扮演着非常重要的角色。
通过虚拟机,学生可以在自己的电脑上模拟多台计算机,构建复杂的网络环境并进行实际操作。
这不仅大大降低了搭建实验环境的成本,还能够提高学生对网络技术的理解和应用能力。
2. 正文2.1 Boson NetSim模拟器的特点与优势1. 功能丰富:Boson NetSim模拟器提供了完整的网络设备模拟,包括路由器、交换机、防火墙等,可以实现真实网络环境的模拟。
学生可以在虚拟网络中进行实际操作,加深对网络设备的理解。
2. 用户友好:Boson NetSim模拟器界面简洁清晰,操作简单易上手。
学生可以快速上手,不需要花费过多时间在软件的学习上,可以更专注于网络技术的学习。
3. 实时反馈:Boson NetSim模拟器可以实时反馈学生操作的结果,帮助学生及时发现和解决网络问题。
学生可以通过实践来巩固理论知识,提高实际操作能力。
4. 多样化实验:Boson NetSim模拟器提供了多种网络实验场景,涵盖了各种网络技术和解决方案,可以帮助学生全面掌握网络知识。
5. 灵活性:Boson NetSim模拟器支持自定义实验,学生可以根据自己的学习需求和兴趣进行实验设计,灵活调整实验内容,更好地提升自己的技能。
Boson NetSim模拟器在中职计算机网络技术教学中具有重要的作用,能够有效辅助学生理论知识的学习,提高实际操作能力,为学生未来的就业和发展奠定良好基础。
路由器模拟软件boson netsim的使用一、实验目的:掌握boson netsim的使用方法二、实验要求:掌握模拟器Boson NetSim的基本用法,能亲自用“Boson Network Designer”设计一个网络结构。
1、绘制拓扑结构,并把它装入到Boson Netsim中。
2、配置PC1的IP地址,子网掩码为,默认网关为。
用ping命令检查PC之间能否通讯。
3、保存配置文件。
4、另外绘制一张拓扑图,由3550交换机和若干PC机组成,把保存的配置文件装入到相应设备中。
查看装入后的配置。
三、实验内容:安装boson netsim破解boson netsim用“Boson Network Designer”加入一台交换机和两台PC机用“boson netsim”测试两台PC机的连通性(注意PC机的IP设定)用“Boson Network Designer”加入两(更多)台交换机和若干台PC机用“boson netsim”测试PC机的连通性安装 boson netsimBoson算得上是目前最流行的,操作最接近真实环境的模拟工具。
可以毫不夸张地说,它就是真实设备的缩影。
与真实实验相比,使用它省去了我们制作网线连接设备,频繁变换CONSOLE线,不停地往返于设备之间的环节。
同时,它的命令也和最新的Cisco的IOS保持一致,它可以模拟出Cisco的中端产品35系列交换机和45系列路由器。
它还具备一项非常强大的功能,那就是自定义网络拓扑结构及连接。
通过Boson我们可以随意构建网络,PC、交换机、路由器都可被模拟出来,而且它还能模拟出多种连接方式(如PSTN、ISDN、PPP等)。
下面就为大家详细介绍该软件的安装、配置和使用技巧。
1、下载Boson并解压,双击netsim6.exe程序开始安装。
选择安装路径后通过点击“下一步”按钮即可完成安装。
安装完成后,双击桌面上的Boson Netsim的图标,即可启动Boson。
Simulator 使用说明书目录1 概述 (3)1.1 文档目的 (3)1.2 AdventNet Simulation Toolkit简介 ..................................................................... 错误!未定义书签。
1.2.1 主要功能说明 (3)1.2.2 产品套件及功能简介 (4)2 A dventNet Simulation Toolkit软件安装 (5)3 A dventNet Simulation Toolkit的使用简介 (5)3.1 SNMP Agent Simulator的使用 (5)3.1.1 使用SNMP Agent Simulator模拟设备的步骤 (5)3.1.2 启动SNMP Agent Simulator工具 (5)3.1.3 导入要模拟设备的MIB (5)3.1.4 设置模拟设备的属性的值 (7)3.1.5 设置运行环境参数 (10)3.1.6 运行和测试模拟的设备 (11)3.1.7 模拟发送陷阱信息 (11)3.2 Network designer的使用 (13)3.2.1 使用Network designer模拟网络环境的步骤 (13)1.启动Network designer工具 (13)3.2.2 启动Network designer工具 (13)3.2.3 创建自定义的设备种类,设置设备种类的共同属性 (14)3.2.4 创建Network (15)3.2.5 添加设备 (16)3.2.6 设置设备属性 (17)3.2.7 启动网络或者设备 (17)3.2.8 陷阱信息设置和发送 (17)Simulator 使用说明书关键词:simulator使用摘要:本文描述了simulator常用功能的使用方法缩略语:1概述1.1文档目的本文描述了simulator使用方法,指导如何使用AdventNet simulation toolkit工具。
OPNET模拟仿真OPNET网络仿真技术及其应用OPNET Network Simulation Technology and its Application 龚慜侯维岩费敏锐(上海市电站自动化技术重点实验室,上海大学机电工程与自动化学院,上海 200072)摘要:网络仿真是一种新的网络设计和优化技术。
介绍了当前先进和流行的OPNET网络仿真软件,并对其主要特性、建模机制以及仿真步骤进行了深入的阐述。
最后,给出了OPNET软件在预测网络性能方面的一个应用实例。
关键词:网络仿真 OPNET 网络建模Abstract:Network Simulation is a new technology of network design and optimization. The advanced and popular software of network simulation OPNET is introduced, and the optimal characteristics, modeling mechanism and simulation steps of OPNET are expatiate in detail. At last an example of application is given to show the effect of OPNET in forecasting the performance of actual network.Keywords:Network Simulation OPNET Network Modeling0 引言在当今日新月异的信息技术时代,人们对网络通信的需求也随之不断提高。
通信网络结构规模日趋庞大复杂,网络的应用越来越多样化,网络的性能也变得愈加难以预测。
无论是构建新网络,还是升级改造现有网络,或者测试新的协议,都需要对网络传输的性能(如网络延时和吞吐率等),以及可靠性和稳定性进行客观的评估,进而降低网络组建的投资风险,使设计的网络有较高的性能和QoS,或者使测试结果能够真实反映新协议的表现。
ns2的基本功能和用法。
NS2是一款广泛使用的离散事件网络仿真器,它可以用来模拟网络协议、网络拓扑结构、传输层协议等各种网络方面的问题。
在本文中,我们将会详细介绍NS2的基本功能和用法,让您了解如何使用这个强大的工具来开展网络仿真和探索。
第一部分:NS2的简介NS2全称Network Simulator 2,是一款免费且开源的网络仿真平台,它可以运行于Linux和Windows操作系统。
NS2是C++编写的,它是由一个模块化的体系结构构建而成的。
NS2可以帮助你模拟和测试各种网络协议和技术,包括但不限于TCP/IP、WiFi、无线通信、移动通信、卫星通信等。
NS2的基本组成部分包括:- OTcl:OTcl是一个面向对象的Tcl解释器,它被用来编写NS2的脚本文件。
它可以帮助您表示仿真模型以及控制仿真场景和参数。
- C++代码:NS2的模拟核心是由C++编写的,它包含了底层的网络协议处理逻辑和数据结构。
- Trace:NS2的Trace模块可以记录仿真过程中所有的事件和消息交换。
我们可以通过Trace来分析仿真结果,并对仿真场景进行可视化。
总结NS2是一个开源且强大的网络仿真器,它的核心部分是由C++编写而成的。
NS2可以帮助您模拟和测试各种网络协议和技术,并提供一个强大的OTcl 脚本语言来控制和配置仿真模型。
第二部分:NS2的基本功能NS2提供了很多强大的功能,如下所示:1. 拓扑结构模拟NS2可以帮助我们模拟各种网络拓扑结构,例如星型、树形结构、层次结构等。
通过定义节点、连接和协议,我们可以很容易地构建复杂的拓扑结构,并进行仿真和测试。
2. 参数设置和控制通过OTcl脚本,我们可以轻松地配置和控制仿真模型。
我们可以设置各种参数,例如发送速率、仿真持续时间、节点位置等等。
此外,我们还可以通过设置事件触发器来控制仿真场景的流程。
3. 模拟协议NS2可以帮助我们模拟各种协议,例如TCP、UDP、ICMP等。
Network-Emulator-Toolkit模拟各种⽹络环境windows1. 背景、⽬标、⽬的(1) 背景:我们在使⽤⽹络时,时常遇到在正常⽹络环境下的代码运⾏⼀切正常,可以复杂的⽹络环境下的各种问题⽆法复现,必须搭建模拟各种⽹络环境,去复现问题,定位问题。
不管是移动平台,还是pc 端; ios XCode已经具备此功能, Android设备,及 windows 平台还是需要我们⾃⼰搭建。
(2) ⽬的:通过Network-Emulator-Toolkit 配置控制⽹络条件,满⾜包括下⾏速度、下⾏丢包率、下⾏延迟、上⾏速度、上⾏丢包率、上⾏延迟、DNS 延迟的设置、以及可抓包。
(3) ⽬标:模拟复杂可复⽤的⽹络环境,复现,定位问题2. ⽅案⽅案可以是1 wireshark、Fiddler、Charles等抓包⼯具提供代理、2.模拟器、3. Network Link Conditioner + 共享 wifi。
本⽂肯定是采⽤ 3,要不标题就错了;介绍⼀款windows下的⽹络模拟器,可以模拟各种丢包或延迟的⽹络(Network Emulator for Windows Toolkit)这⾥简单介绍⼀下使⽤⽅法:软件界⾯:No Loss:默认,不模拟丢包。
Periodic loss: 模拟周期性的丢包。
按填写数量(设为x个),每x个包,就丢⼀个包(one packet is dropped per given number of packets)。
Random loss: 模拟随机丢包,按给定丢包的概率,随机丢包。
Burst loss: 模拟根据给定的可能性进⾏丢包。
当发⽣⼀个丢包事件时,接着连续丢⼏个包(丢包数量控制在最⼤(max)最⼩值(min)之间)。
G-E loss: 模拟发⽣数据包丢失遵循Gilbert-Elliot模型,由两个状态组成:好的状态和坏的状态。
可分别为这2个状态指定数据包丢失率,同时可设置⽹络传输在这两种状态的概率(And the network transit between the two states is at given transition probabilities)Error说明:真实世界中,当数据包经过⽹络传输时,包中的⼀到多个字节(bit)数据可能发⽣错误。
BosonNetSim网络模拟软件配置命令大全*************************************************************** **************************思科路由器常用配置命令大全(A-X)(1)*************************************************************** **************************Access-enable允许路由器在动态访问列表中创建临时访问列表入口Access-group把访问控制列表(ACL)应用到接口上Access-list定义一个标准的IP ACLAccess-template在连接的路由器上手动替换临时访问列表入口Appn向APPN子系统发送命令Atmsig 执行ATM信令命令B 手动引导操作系统Bandwidth 设置接口的带宽Banner motd 指定日期信息标语Bfe 设置突发事件手册模式Boot system 指定路由器启动时加载的系统映像Calendar 设置硬件日历Cd 更改路径Cdp enable 允许接口运行CDP协议Clear 复位功能Clear counters 清除接口计数器Clear interface 重新启动接口上的件逻辑Clockrate 设置串口硬件连接的时钟速率,如网络接口模块和接口处理器能接受的速率Cmt 开启/关闭FDDI连接管理功能Config-register 修改配置寄存器设置Configure 允许进入存在的配置模式,在中心站点上维护并保存配置信息Configure memory 从NVRAM加载配置信息Configure terminal 从终端进行手动配置Connect 打开一个终端连接Copy 复制配置或映像数据Copy flash tftp 备份系统映像文件到TFTP服务器Copy running-config startup-config 将RAM中的当前配置存储到NVRAMCopy running-config tftp 将RAM中的当前配置存储到网络TFTP服务器上Copy tftp flash 从TFTP服务器上下载新映像到FlashCopy tftp running-config 从TFTP服务器上下载配置文件Debug 使用调试功能Debug dialer 显示接口在拨什么号及诸如此类的信息Debug ip rip 显示RIP路由选择更新数据Debug ipx routing activity 显示关于路由选择协议(RIP)更新数据包的信息Debug ipx sap 显示关于SAP(业务通告协议)更新数据包信息Debug isdn q921 显示在路由器D通道ISDN接口上发生的数据链路层(第2层)的访问过程Debug ppp 显示在实施PPP中发生的业务和交换信息Delete 删除文件Deny 为一个已命名的IP ACL设置条件Dialer idle-timeout 规定线路断开前的空闲时间的长度Dialer map 设置一个串行接口来呼叫一个或多个地点Dialer wait-for-carrier-time 规定花多长时间等待一个载体Dialer-group 通过对属于一个特定拨号组的接口进行配置来访问控制Dialer-list protocol 定义一个数字数据接受器(DDR)拨号表以通过协议或ACL与协议的组合来控制控制拨号Dir 显示给定设备上的文件Disable 关闭特许模式Disconnect 断开已建立的连接Enable 打开特许模式Enable password 确定一个密码以防止对路由器非授权的访问*****************************************************************************************思科路由器常用配置命令大全(A-X)(2)*************************************************************** **************************Enable password 设置本地口令控制不同特权级别的访问Enable secret 为enable password命令定义额外一层安全性 (强制安全,密码非明文显示)Encapsulation frame-relay 启动帧中继封装Encapsulation novell-ether 规定在网络段上使用的Novell独一无二的格式Encapsulation PPP 把PPP设置为由串口或ISDN接口使用的封装方法Encapsulation sap 规定在网络段上使用的以太网802.2格式Cisco的密码是sapEnd 退出配置模式Erase 删除闪存或配置缓存Erase startup-config 删除NVRAM中的内容Exec-timeout 配置EXEC命令解释器在检测到用户输入前所等待的时间Exit 退出所有配置模式或者关闭一个激活的终端会话和终止一个EXECExit 终止任何配置模式或关闭一个活动的对话和结束EXECformat 格式化设备Frame-relay local-dlci 为使用帧中继封装的串行线路启动本地管理接口(LMI)Help 获得交互式帮助系统History 查看历史记录Hostname 使用一个主机名来配置路由器,该主机名以提示符或者缺省文件名的方式使用Interface 设置接口类型并且输入接口配置模式Interface 配置接口类型和进入接口配置模式Interface serial 选择接口并且输入接口配置模式Ip access-group 控制对一个接口的访问Ip address 设定接口的网络逻辑地址Ip address 设置一个接口地址和子网掩码并开始IP处理Ip default-network 建立一条缺省路由Ip domain-lookup 允许路由器缺省使用DNSIp host 定义静态主机名到IP地址映射Ip name-server 指定至多6个进行名字-地址解析的服务器地址Ip route 建立一条静态路由Ip unnumbered 在为给一个接口分配一个明确的IP地址情况下,在串口上启动互联网协议(IP)的处理过程Ipx delay 设置点计数Ipx ipxwan 在串口上启动IPXWAN协议Ipx maximum-paths 当转发数据包时设置Cisco IOS软件使用的等价路径数量Ipx network 在一个特定接口上启动互联网数据包交换(IPX)的路由选择并且选择封装的类型(用帧封装)Ipx router 规定使用的路由选择协议Ipx routing 启动IPX路由选择Ipx sap-interval 在较慢的链路上设置较不频繁的SAP(业务广告协议)更新Ipx type-20-input-checks 限制对IPX20类数据包广播的传播的接受Isdn spid1 在路由器上规定已经由ISDN业务供应商为B1信道分配的业务简介号(SPID)Isdn spid2 在路由器上规定已经由ISDN业务供应商为B2信道分配的业务简介号(SPID)Isdntch-type 规定了在ISDN接口上的中央办公区的交换机的类型Keeplive 为使用帧中继封装的串行线路LMI(本地管理接口)机制Lat 打开LAT连接Line 确定一个特定的线路和开始线路配置Line concole 设置控制台端口线路Line vty 为远程控制台访问规定了一个虚拟终端Lock 锁住终端控制台Login 在终端会话登录过程中启动了密码检查Login 以某用户身份登录,登录时允许口令验证Logout 退出EXEC模式Mbranch 向下跟踪组播地址路由至终端Media-type 定义介质类型Metric holddown 把新的IGRP路由选择信息与正在使用的IGRP 路由选择信息隔离一段时间Mrbranch 向上解析组播地址路由至枝端Mrinfo 从组播路由器上获取邻居和版本信息Mstat 对组播地址多次路由跟踪后显示统计数字Mtrace 由源向目标跟踪解析组播地址路径Name-connection 命名已存在的网络连接Ncia 开启/关闭NCIA服务器Network 把一个基于NIC的地址分配给一个与它直接相连的路由器把网络与一个IGRP的路由选择的过程联系起来在IPX路由器配置模式下,在网络上启动加强的IGRPNetwork 指定一个和路由器直接相连的网络地址段Network-number 对一个直接连接的网络进行规定No shutdown 打开一个关闭的接口Pad 开启一个X.29 PAD连接Permit 为一个已命名的IP ACL设置条件Ping 把ICMP响应请求的数据包发送网络上的另一个节点检查主机的可达性和网络的连通性对网络的基本连通性进行诊断Ping 发送回声请求,诊断基本的网络连通性Ppp 开始IETF点到点协议Ppp authentication 启动Challenge握手鉴权协议(CHAP)或者密码验证协议(PAP)或者将两者都启动,并且对在接口上选择的CHAP和PAP验证的顺序进行规定Ppp chap hostname 当用CHAP进行身份验证时,创建一批好像是同一台主机的拨号路由器Ppp chap password 设置一个密码,该密码被发送到对路由器进行身份验证的主机命令对进入路由器的用户名/密码的数量进行了限制Ppp pap sent-username 对一个接口启动远程PAP支持,并且在PAP对同等层请求数据包验证过程中使用sent-username和passwordProtocol 对一个IP路由选择协议进行定义,该协议可以是RIP,内部网关路由选择协议(IGRP),开放最短路径优先(OSPF),还可以是加强的IGRPPwd 显示当前设备名*************************************************************** **************************思科路由器常用配置命令大全(A-X)(3)/doc/8d14600486.html,*************************************************************** **************************思科路由器常用配置命令大全(Reload 关闭并执行冷启动;重启操作系统Rlogin 打开一个活动的网络连接Router 由第一项定义的IP路由协议作为路由进程,例如:router rip 选择RIP作为路由协议Router igrp 启动一个IGRP的路由选择过程Router rip 选择RIP作为路由选择协议Rsh 执行一个远程命令Sdlc 发送SDLC测试帧Send 在tty线路上发送消息Service password-encryption 对口令进行加密Setup 运行Setup命令Show 显示运行系统信息Show access-lists 显示当前所有ACL的内容Show buffers 显示缓存器统计信息Show cdp entry 显示CDP表中所列相邻设备的信息Show cdp interface 显示打开的CDP接口信息Show cdp neighbors 显示CDP查找进程的结果Show dialer 显示为DDR(数字数据接受器)设置的串行接口的一般诊断信息Show flash 显示闪存的布局和内容信息Show frame-relay lmi 显示关于本地管理接口(LMI)的统计信息Show frame-relay map 显示关于连接的当前映射入口和信息Show frame-relay pvc 显示关于帧中继接口的永久虚电路(pvc)的统计信息Show hosts 显示主机名和地址的缓存列表Show interfaces 显示设置在路由器和访问服务器上所有接口的统计信息Show interfaces 显示路由器上配置的所有接口的状态Show interfaces serial 显示关于一个串口的信息Show ip interface 列出一个接口的IP信息和状态的小结Show ip interface 列出接口的状态和全局参数Show ip protocols 显示活动路由协议进程的参数和当前状态Show ip route 显示路由选择表的当前状态Show ip router 显示IP路由表信息Show ipx interface 显示Cisco IOS软件设置的IPX接口的状态以及每个接口中的参数Show ipx route 显示IPX路由选择表的内容Show ipx servers 显示IPX服务器列表Show ipx traffic 显示数据包的数量和类型Show isdn active 显示当前呼叫的信息,包括被叫号码、建立连接前所花费的时间、在呼叫期间使用的自动化操作控制(AOC)收费单元以及是否在呼叫期间和呼叫结束时提供AOC信息Show isdn ststus 显示所有isdn接口的状态、或者一个特定的数字信号链路(DSL)的状态或者一个特定isdn接口的状态Show memory 显示路由器内存的大小,包括空闲内存的大小Show processes 显示路由器的进程Show protocols 显示设置的协议Show protocols 显示配置的协议。
附件二、NetSim网络模拟器的使用Boson netsim for ccnp是Boson公司推出的一款路由器、交换机模拟软件。
它为我们联系路由器、交换机的命令,掌握路由器、交换机工作原理提供了有力的实验环境。
有两个组件:一个是拓扑设计软件(Network designer),一个是实验环境模拟器(Boson netsim)。
进入主界面后同时运行了Boson netsim和Boson lab navigator,Lab navigator是软件内置的一些实验拓扑图,部分正确的配置文件。
包括cisco培训课程的CCNA,BCRAN,BSCI及一些定制的实验。
如果按照cisco的教材来学习,这些内置的实验能更好地按照cisco的课程进度来联系。
Boson netsim运行的界面如图:工具栏的前三个按钮用于快速切换要配置的设备(路由,交换,PC机),第四个按钮用于打开lab navigator,第五个用于查看当前使用的拓扑图,第六个用于打开远程控制面版,等于是使用Telnet登录远程远程的设备来调试。
菜单栏主要包括了文件菜单,模式菜单,设备菜单,工具菜单,注册工具,窗口布局工具和帮助。
其中文件菜单包括:新建:调用拓扑图设计软件重新绘制一个新拓扑装入拓扑图:加载一个之前做好的拓扑图文件粘贴配置文件:粘贴一个来自真实路由器或者交换机的配置文件装入单个设备配置文件(合并):将以前保存的单个设备配置文件装入到当前实验环境中,以合并方式进行装入单个设备配置文件(覆盖):将以前保存的单个设备配置文件装入到当前实验环境中,以覆盖方式进行装入多个设备文件配置文件:将以前保存的所有设备配置文件装入到当前实验环境中保存单设备配置文件:将当前设备的配置文件存盘(保存在硬盘上备下次需要时使用,扩展名是rtr)保存所有设备配置文件:将当前拓扑图中所有设备的配置存盘打印:打印当前拓扑图退出:退出Boson netsim for ccnp模式菜单包括:初级模式:以默认方式使用配置界面高级模式:以Telnet方式访问设备进行配置工具条:显示/隐藏“远程控制面版”设备菜单:选择使用哪个设备,作用相当于工具栏上的快速切换设备图标。
网络模拟器的原理和应用1. 网络模拟器的定义网络模拟器是一种软件工具,用于创建和模拟各种网络环境,以便测试和验证网络应用程序、协议和设备的性能和可靠性。
通过模拟不同的网络参数和条件,网络模拟器可以帮助开发人员预测和识别网络中可能出现的问题,并优化网络性能。
2. 网络模拟器的原理网络模拟器的原理是通过模拟不同的网络条件和参数,包括带宽、延迟、丢包率、网络拓扑等,来创建一个真实网络环境的虚拟副本。
通过在虚拟网络环境中运行测试和实验,开发人员可以评估网络应用程序和设备在不同网络条件下的性能和可靠性。
网络模拟器通常基于软件定义网络(SDN)和虚拟化技术实现。
3. 网络模拟器的应用网络模拟器在各种场景下都有广泛的应用,以下列举了几个常见的应用场景:• 3.1 网络应用程序测试网络模拟器可以模拟各种网络条件,如高延迟、低带宽和不稳定的网络连接,以测试和评估网络应用程序的性能和稳定性。
开发人员可以通过模拟真实网络环境中的不同情况,例如网络拥塞、丢包和延迟,来评估应用程序在面对这些条件时的表现。
• 3.2 网络协议开发和测试网络模拟器可以用于开发和测试各种网络协议,如TCP/IP、UDP和HTTP等。
通过模拟各种网络条件和参数,开发人员可以评估协议的性能、可靠性和稳定性。
网络模拟器还可以帮助开发人员在复杂的网络环境中调试和验证协议的正确性。
• 3.3 网络设备性能评估网络模拟器可以帮助评估各种网络设备的性能和可靠性,如路由器、交换机和防火墙等。
通过模拟真实网络环境中的各种情况,开发人员可以评估设备在不同网络条件下的性能表现,并优化设备的配置和参数。
• 3.4 网络安全演练网络模拟器可以模拟各种网络攻击和恶意行为,如DDoS攻击、入侵和蠕虫传播等。
通过模拟真实的攻击场景,网络模拟器可以帮助安全人员评估系统的脆弱性和安全性,并提供相应的防护措施和建议。
• 3.5 网络故障诊断和排除网络模拟器可以帮助诊断和排除网络故障,如网络拥塞、丢包和延迟等。
6.829 NS 指南Network Simulator 网络模拟器Network Simulator (ns-2)6.829指南为什么使用网络模拟器协议验证控制试验条件花费低,耗时少,协同工作和复杂性好为什么使用NS支持:协议:TCP,UDP,HTTP等流量模型:Web流量,CBR拓扑产生工具可视化工具大量的确认包(人们相信其工作)NS的结构C++ 事件调动程序协议(大多)TCL脚本协议(大多时扩展C++核心)TCL对象为C++对象输出了一个接口(影子对象)系统配置(缺省,等)1 分钟 TCL 指南1 分钟 oTCL 指南ns 1: 产生拓扑我们首先产生一个模拟器Simulator对象,并使用它来产生节点和链路。
以下代码将产生了一个拓扑(2个节点,1条链路),但不会产生任何流量。
注意:我们可以通过允许 $ns at …命令来调度任何独立的tcl代码。
这里我们在5秒后调度结束模拟。
ns 2: 添加代理代理agent在节点间实现不同的连接。
这些连接通常具有如下协议类型:TCP,UDP等。
这里我们给出了一个简单的UDP的实例,由于一个UDP接收器什么也不做,我们使用一个空的接收器。
ns 2: TCP代理当然我们使用TCP来代替UDP。
但是我们必须使用一个特定的接收器来产生应答。
ns 3: 添加源到目前为止,我们的网络没有传输任何数据。
我们需要一个数据源来向我们的代理发送字节。
这里,我们产生了一个固定比特率的源(CBR,constant bit rate source)。
ns 4: 跟踪我们目前的模拟会产生源并产生通过我们链路的流量,但不会给我们带来任何有用的输出。
下面,我们让我们的模拟器为我们跟踪事件。
注意,在完整的代码文件,在代理产生前trace-all和nam-trace-all命令必须被执行,但是各种跟踪命令随后必须被执行:nam 网络图绘制器你可以通过nam命令来执行网络图的绘制。
NS2网络模拟器的原理和应用1. NS2网络模拟器简介NS2(Network Simulator 2)是一个开源的网络模拟器,可以用于从高性能网络到无线移动网络的广泛应用。
NS2是一个离散事件模拟器,可以模拟真实网络环境中的各种网络协议和网络应用。
2. NS2网络模拟器的原理NS2的核心是基于离散事件的模拟器,它采用事件驱动模型来模拟网络中的各种事件。
NS2的模拟对象包括路由器、主机、链路等,每个对象都有自己的状态和行为。
NS2的模拟器通过以下步骤进行模拟:•创建拓扑结构:在NS2中,需要事先定义网络的拓扑结构,即网络中的节点和连接关系。
可以通过使用OTcl(Object TCL)脚本来定义网络拓扑。
•设置通信行为:在NS2中,可以设置节点之间的通信行为,包括传输协议、数据包大小、传输速率等等。
可以通过OTcl脚本来设置节点的通信属性。
•生成事件:NS2中的事件包括节点的发送、接收、路由更新等等。
可以通过OTcl脚本生成相应的事件。
•事件调度:NS2会根据事件发生的时间顺序来调度事件的处理。
在每个时间点,NS2会根据当前时间来决定下一个事件处理的顺序。
•事件处理:根据事件类型,NS2会调用相应的函数来处理事件。
比如,当一个节点发送数据包时,NS2会调用节点的发送函数来处理此事件。
3. NS2网络模拟器的应用NS2的应用非常广泛,主要应用于以下几个方面:3.1 网络协议研究NS2可以用于研究和评估各种网络协议的性能。
可以通过在网络拓扑中设置不同的协议参数和网络条件,来模拟和评估协议的性能指标,例如吞吐量、延迟、丢包率等。
3.2 网络性能优化NS2可以用于优化网络性能,通过对网络拓扑、协议参数和网络条件的调整来提高网络的性能。
可以通过计算模拟结果来评估不同优化策略的效果,从而选择最佳的优化方案。
3.3 网络设备设计和测试NS2可以用于设计和测试网络设备,例如路由器、交换机等。
可以通过在NS2中创建相应的网络拓扑,模拟网络设备的行为和性能,从而评估设备的可靠性和性能。
第 25 卷 第 6 期 2004 年 6 月小型微型计算机系统 M IN I- M ICR O SY ST EM SV ol . 25 N o. 6 June 2004 NS2 网络仿真器功能扩展方法及实现王晓曦, 王秀利, 周津慧, 王永吉( 中国科学院 软件研究所 互联网软件技术实验室, 北京 100080)摘 要: NS 2 作 为开源软件缺少对最 新研究算法的模拟 能力. 在现 有软件基础上对其进 行功能扩展 极其必要, 是模拟 研究新理论新算法的基础. 本文着重探讨网络仿真软件 NS 2 的功能扩展原理及 设计实现, 展示运用 N S 2 仿真器对网络 行为进行研究的过程. 最后对该算法进行模拟实验, 并与已 有 RED 和 PI 算法进行性能对比分析. 关 键 词: 网络仿真器; 网络拥塞控制; NS 2; 功能 扩展; PID 控制 中图分类号: T P393 文献标识码: A 文 章 编 号: 10001220( 2004) 061009-06Function Extension of NS2 Network Simulator and its ImplementationW A N G Xiao-xi, W AN G Xiu-li, ZHO U Jinhui, W A N G Y ong ji( L aborat ory f or I nter net S of tw are T echnol og ies, I nsti tute of S of tw ar e, Ch inese A cad emy of S cie nc es, B eij ing 100080, China)Abstract: NS 2 ( N etw or k Simulator V ersio n 2) as open so urce soft war e, it lacks t he a bility t o simulate some latest developed alg or ithms. T his leads to t he r equir ement o f the functio na l ex tension of the cur rent ver sio n. T his paper fo cuses on the descr iptio n of the ex tension principle and implementation details of NS 2, a nd presents the entire pr ocess of resear ch o n netw or k behavior by using NS 2 sim ulato r. T he str uctur e o f N S2 and the P ID ( P ro po rt ional I nt egr al Differ ent ial ) contr ol principle fo r the netw or k co ng estio n contr ol ar e first described, and then the det ails of the ex tensio n pr inciple and its implementat ion pr ocedur es ar e pr esented w it h the PID cong est ion co ntro l algo rithm as an ex ample. F inally, the simulation of P ID is carr ied out and t he r esult is com par ed w it h t ho se g enerat ed fr om the RED a nd PI alg orithms. Key words: net wo rk simulato r; net wo rk cong est ion contr ol; NS2; functio n ex tensio n; PID co ntro l1 引 言互联网的迅速发展与膨胀对网络规 划和设计提出了新的 挑战. 在网络 研究中, 网络仿真 扮演着越 来越重要的 角色. 它 给研究人员提供了一个方便、 高效的验证和分析方法. 对于 任何一个仿 真软件而 言, 往往 都会缺少 对于一些 最 新出 现的技术、 协议或 方法的支持 与实现. 因此, 能在现有 仿 真软件的基础上, 对其进行功能扩展是极其重要的, 是跟上科 学研究前沿的基础. 在 众多仿 真软件 中, N S 2( N etw o rk Simulato r V er sio n 2) 是 一 个 很 好 的 开 放 源 代 码 软 件 [ 1] . 它 由 位 于 美 国 加 州 的 L N BL 网络研究组于 1989 年开始研究开 发, 其前身 是 REA L netw or k simulato r [ 2] . N S 2 在国内外均 具有极高的 知名度, 是 进行网络研究的首选软件之一. 国内现有 的一些中文文献重 在讨论 N S2 的模块组成、 仿 真脚 本的编 写技巧 等方面 [ 3-5] , 但对 N S2 扩展 原理的 讨论 相 对较少. 本文将着重探讨网 络仿真软件 N S2 的功能扩展 原理及设计实现, 并全面展示了运用 NS 2 仿真 器对网络进行研究 的整个过程.2 NS2 网络模拟器的结构和特点NS 2 是 一种很好 的开源软件, 在国 内外具有极 高的知名 度. 在 A Q M ( A ctive Queue M ana gement 主 动 队 列 管 理 ) 中 [ 6] , 最著 名的 RED 算 法( R ando m Ear ly D etectio n) [ 7] 采用 的是 N S 模拟 器的前 身 REA L [ 2] 进行 的模拟 仿真. 其 他一些 著 名 的 A QM 控 制 算 法, 如 P I ( Pr opo rtional Integ r al) [ 8] 、 REM ( Random Expo nential M ar king ) [ 9] 、 U E [ 10] 等 都 采用 BL NS 2 作为验证算法的模拟平台. 本文 重在 讨 论 对N S 2的 功能 扩 展 , 本 节后 面 部 分 仅对 NS 2 的软件模块和特点进行讨论 . 关于如何编写 T CL 仿真脚 本等方面更详尽的资料, 请 读者参考文献[ 1, 3, 4, 5] . 2. 1 软件模块 NS allino ne 2. 26 包含 11 个模块, 如表 1 所示. 其中, 必选模块缺一不 可, 否则 N S2 不能正常工作, 而可 收稿日期: 2003-10-07 基金项目: 国家自然科学基金项目( 60373053) 资助; 中国科学院与英国皇家学会 联合项目( 20030389, 20032006) 资 助; 中国科学院百人计划项目( BCK 35873) 资助; 教育 部留学回国人员科研启动基金资助项目( 教外司留[ 2003] 406 号) . 作者简介: 王晓曦, 硕 士研究生, 主要研究领域为计算机网络和实时系统; 王秀利, 硕士, 主要研究领域为计算机网络、 入式实时系统; 周津慧, 副研究员, 主要研究领 嵌 域为智能软件工程, 软件 过程技术与质量保证; 王永吉, 研究员, 博士生导师, 主要研究领域为实时系统、 网络优化、 智能软件工 程、 优化理论、 机 器人、 控制理论. { xiaoxi , w xl, jinh ui, yw ang} @ it echs. is cas. ac. cn1010 小 型 微 型 计 算 机 系 统 2004 年选模块能够增 强 NS 2 的 功能. T cl 与 T k 是安 装在 U nix / L inux 环境下的两个包, 它们一起构成了一套开 发系统应用程序 表 1 N S2 模块组成 T able 1 M odule components of N S 2模块 1 2 3 4 5 6 7 8 9 10 11 T c1 Tk O Tc1 T clc1 Ns N am Xg raph G t - tm i Sgh Cw eb Zl ib 版本号 Tc1 releas e 8. 3. 2 Tk releas e 8. 3. 2 rel ease 1. 0a8 Tclc1 release 1. 0b13 N s rel ease 1. 9 N am releas e 1. 9 Xgraph release 12. 1 Georgia Tech In ternet work Topol ogy M odels St an dford G raphBas e CWeb Zl ib r eleas e 1. 1. 4 必选/ 可选 必选 必选 必选 必选 必选 可选 可选 可选 可选 可选 可选SunO S 、 indo w s 等平台 上. 为 了运行 N S 2, 还 要求系 统装有 W C+ + 编译器. 在 W indo w s 平台上有两种安装方式: 一种是安 装 V C + + 6. 0; 一种 是安 装 Cyg Win . N S -allinone-2. 26 包含 了比较完整的工具包, 但是 只能在 Linux 平台 上运行; ・ 使用 两种语 言 C + + 和 O T cl 编 写代码, 兼顾 效率和 灵活性. C + + 程序模块的运行 速度非常快, 适合 用于实现具 体的协议. O T cl 是面向对象的 T CL 脚本程序设计 语言, 适合 用来 进行仿 真的 配置. T clcl 模 块把 出现 在两 种语 言里 的变 量、 对象胶合起来; ・ 具 有支 持多 重协 议、 网络 传输 详细 的图 表 描述 的能 力. NS 2 的 缺点是对 卫星网络提 供的支持 有限, 另 外还存在 一些 Bug, 有些方 面的功能 还有待 进一步 完善, 比如, 对卫星 网络的无线链路支持还不完善, 当开发路由算法时, 开发者需 要较大的工作量来修改各种链路接口的定义.3 NS2 的功能扩充及实现网络研究人员的任务之一是要不断研究新的网络协议和 算法, 为网络发展做前瞻性 的基础研究. 在研究新的网络协议 和算法的过程中, 仅仅进行 理论分析是不够的, 还需要对其进 行模拟验证. 由于是新的协 议和算法, 已有的模拟软件往往无 法直接提供 该协议算 法, N S 2 也不例 外. 这时, 就需 要对 N S 2 的功能进 行扩充, 需要研究 人员自己在 模拟平台 上实现新的 协议算法, 然后 才能按照需 要, 定 义网络拓扑 结构, 设定网络 特性参数, 模拟 网络行为, 观察各 种性能指标 参数, 对算法效 果进行验证. 由此可见, 能够在现有软件平台上对新的协议算 法进行扩充是极其重要的, 是模拟、 验证的基础. 3. 1 NS2 的功能扩充原理及实现 NS 2 对很多 平台都 有支 持, 如 L inux、 indo ws 等. 由于 W 在 Window s 下开发与调 试都比较方便, 现 在越来越多的用户 都 在 Window s 下 安 装 和 运 行 N S 2 软 件. 笔 者 是 在 W indow s2000 下安 装的 ns-2. 26 版本, 并 安装 了 V C + + 6. 0 和 Cy gw in 软件. 详细的安装操作过程可以参照文献 [ 11] . 在表 1 所 示的各个 模块中, N s 无疑 是最重 要的部 分. 成 功安装 后, 在 nssrc-2. 1b9a 目录 下可以 看到许 多子目 录. 它 们各自实 现了相应 的一部分功 能. 比 如 queue 目录下 的文件和图形 用户 界 面 接口 ( G U I ) 应 用程 序 的 环境; O T cl 是 M IT O bject T cl 的简称, 是 T cl 面向对 象的扩 展; T clcl 模 块 包含 T cl/ C+ + 的 接口; N s 是 N S2 的主体代 码模块, 内含 一 个节 点移 动产生 器、 两个 传输事 件产 生器; N am 即 N etw or k A nimato r, 它与 N s 协同工作, 将 N s 仿真过 程动态表现出来; Xg raph 是 X- indow s 应用程序, 完成交互式 测量和绘制、 W 动 画效果, 显示网络运 行的数值特征; Gt itm 产生模 拟 Inter net 网络结构 的拓扑图; SG B 是图形产生器; Cweb 模块是与网 页 相 关 的 工 具; Zlib 是 通 用 数 据压 缩 库 ( da ta compressio n libr ar y) .图 1 N S 模块示意图 Fig . 1 A rchitectur e of N S N S2 软件模块示意图如图 1 所示. 图中粗 框里为 N S2 的 模块, 方框外的 Scr ipt 为脚本文件. N s 解释 脚本, 将输出 写到 输出文件中, 然后调用 N am 或 X gr aph 显示输出文件. 2. 2 软件特点 N S2 的主要优点有: ・ 基于离散事件驱动的仿真方式, 仿真效率高; ・ 面向对象的建模方式, 易于对现实网络进行建模; ・ 真实网络交互; ・ N S 2 与 N A M ( N etw or k A nimato r ) 软 件结合, 能够 动 画显示仿真结果; ・ 多平台的支持. N S2 可以运行在 L inux 、 nix 、 lar is、 U So包含了路 由器的丢 包算法, 而与 T CP 有 关的协议 实现在 tcp 目录下. 此外, ns -sr c- 1 b 9a 目录下还有 一些 makefile 文件. 2. 这些文件 包含了 每次编 译、 成新的 ns. ex e 时, 需要 编译的 生 文件信息. 一般 进 行功 能扩 充 所需 要添 加 的新 协 议都 可 以 在 nssr c- 1b9a 目录下 找到实 现相应 功能的 结构部 分. 可 以在该 2. 目录下直 接添加 实现新 协议的 文件, 这样使 得 N S 的 文件结 构比较 清晰. 然后 再重 新编译 生成 ns. ex e, 使之 加进 新的文 件. 扩充的文 件, 往往可 以通过继承等方法部 分利用 N S 原来 的一些代码. 因此, 需要 使用者对原有的 N S 代码进行仔细研 究. 扩充新协议的具体步骤如下: a. 定义或继承 C+ + 协议类.6 期 王晓曦 等: N S 2 网络仿真器功能扩展方法及实现 1011b . 编写该类成员 函数和协议算法. c. 定义 T CL 相关的类和变量. d. 把 C+ + 代码绑定到 T CL . e. 修改 makefile 文件, 重新编译 生成 ns. ex e 文件. 如 果 所 用操 作系 统是 L inux , 需 要修 改 makefile. in 文 件; 如果 在 Windo ws 操作 系统下, 需要对 makefile. vc 进行相应的改动. 3. 2 改进的 PID 算法简述 在 举例说 明如 何对路 由器 的队 列管理 算法 进行 扩充 之 前, 首先对与队列管理有关的概念进行几点补充. 在路由器拥塞控制算法中有两个容 易混淆的概念: “ 队列 管理” 时序管理” 队列管理算法管理路由器缓冲区中 包队 和“ . 列的长度, 即在必要或合适的时候主动丢掉一些包; 而时序管 理算法决定下次发哪个包和分配各个流 的带宽[ 6] . N S2 已 经 实 现 的 路 由 器 队 列 管 理 算 法 已 有 许 多, 如 Dr opT ail, RED, PI , REM , F Q 等, 但在现 有版本中, NS 2 并 没 有 实现 PID ( Pr opor tio nal Integr al Differentia l) 算 法. 在此 提 出一种改进的 P ID 算法, 并在现有 N S 2 平台上对其进行 扩充 实现. 本文重点讨论如何对这种改进算法进行扩充, 所扩充的 15] PI D 算法的具体原理请参考文献[ 12- . 在 PID 算 法中, 当缓 冲未 满时, 新到 达的 包将按 一定 概 率丢弃( 或标记) . 丢包概率的计算按照下式进行: p= a* ( q - qref ) - ( q - old-qr ef) + c* ( q - o ldold -qr ef) + b* p- old ( 1) 其中 q 为当前队 列长度, qr ef 为期 望队列长度, q - o ld 为 上一时刻队列长度, q- oldo ld 为上两个 时刻的队列长度, a、 、 b c 为 P ID 控制器 的参数, 由相应的网络模型和调度算法提供. 在 R ED 算 法中, 每当有包到 达时, 路由器就将 对丢包 概 率重 新计算. 而 P ID 则不 同, 它对丢 包概 率 p 的更新 并不 是 时刻 进行的. P ID 中有一 个采样 频率, 每过一 个周期, 算法 才 需要 对丢包概率 重新进行 一次计算. 与 RED 相比, 这将省 下 路由器的大量资源. 3. 3 改进的 PID 算法代码结构 下面说 明 PID 队列调度 算法的扩充 方法及实 现. 在此 仅 描述实现的步骤, 并列举部分关键代码. 为实现新的 P ID 算法, 需要建立一个新的 PIDQ ueue 类. 由式( 1) 可以看出, 在 PID Queue 的结 构中应该有一组变 量来 记录 相关参数的 初始值, 如 a、 c 及采 样频率 等. 此 外, 还 需 b、 另有一组参数记录 PIDQ ueue 的一些 历史状态以计算新 的丢 包率, 如上一 时刻队列 长度及丢包 率等. 为此, 我 们提供两 个 结 构: edp 和 edv. Edp( Early dr op paramet ers) 来记 录初始 参 数 情况, 这 些 参数 的数 值 由用 户提 供, 在 程 序中 不 再 更改. Edv ( Early dr op var iables) 来记录 队列的历史状态 信息, 这 些 变 量值在 程序 运行中 根据 队列状 态动 态更 改, 由 P IDQ ueue 自己维护. edp 具体结构如下:st ruct edp { / * U ser s upplied. * / int mean- pkt size; / * avg pkt size, linked int o T cl * / int bytes; / * t rue if queue in bytes, fals e if pack et s * / }; };int s et bit ; / * tr ue t o s et conges t ion in dicat ion bit * / dou ble a, b , c; / * paramet ers t o pid cont roll er * / dou ble w ; int qref; / * sampling f requency ( t imes / s econ d) * / / * desired qu eue s ize * /其中, mean - pkt size 为 平均包 大小; bytes 和 set bit 为两 个标志, byt es 通过 0、 设置指出队列长度是通过缓存中包的 1 个数来 计算还 是通 过字 节来计 算, setbit 指 出当 检测 到拥塞 时是否采用标记位的办法 [ 16] ; a、 c 为 P ID 控 制器中的参数; b、 w 为采样频率; qref 为期望队列长度. edv 具体结构如下:st ruct edv { / * maint ained by PID . * / TracedDoub le v - prob; / * prob . of packet drop bef ore "count ". * / int cou nt ; int cou nt - byt es; int qold, qoldold ; / * # of packet s since last drop * / / * # of byt es s ince l as t drop * /其中, v- pro b 为丢 包概率, count 和 count - bytes 分别为 目前丢包的个 数和丢包字节数, q- old 为上 一时刻队列 长度, q- oldo ld 为上两时刻 队列长度. 由于 P ID 算 法需要每隔一 段时间对丢 包概率更新 一次. 为 了 保 证 这 个 过 程 能 周 期 性 进 行, 需 要 建 立 一 个 P IDCalcT im er 类, 它是 T imerHandler 的子类. PIDQ ueue 类无疑 是最 重要的 类, 它将 完成 PID 的 算法 调度. 以上 结构是对 其建立 的必要 支持. 在 PIDQ ueue 类中, 最主要成员变 量包括: P IDCalcT imer CalcT imer 、edp edp - 、 edv edv - 、 curq( 当前队列长度) 、 acketQ ueue q- . int P PIDQ ueue 类中最主要的方法包括: ・ PID Queue: : PID Queue( co nst char * trace) ; PIDQ ueue 的构造函数, 主要负责将一些 C + + 变量绑定 到 T CL 变 量. 如将 edp - . a 绑定 到 a- , 将 edp - . qref 绑 定到 qr ef - 等. 然后调用 r eset ( ) 对相应变量进行初始化. ・ vo id r eset ( ) ; reset 需要对队列中的变量进行初始化. 这包括edv - . count = 0; edv - . count - b ytes = 0; edv - . v - prob = 0; edv - . qol d = 0; edv - . qol dold = 0; curq- = 0; cal cul at e - p( ) ;最后还需 要调用 calculate- p( ) . 在这里 是第一次 调用该 方法, 对丢包率进行了初始 计算, 此后对丢包率的更新计算周 期进行. ・ vo id enque ( Packet * pkt ) ; 当包 到达路 由器 时调 用此方 法. 它首 先更 新 curq, 如果 缓冲区已满, 则只 有丢包; 如 果未满, 调 用 dr op - early ( ) 方法, 按一定概率丢掉或标记最近到达的包. 如果不丢包, 把新到达1012 的包加入缓冲区中.小 型 微 型 计 算 机 系 统Q ueue / PID set qref - 150 Q ueue/ PID set mean - pkt s ize- 500 Q ueue / PID set set bit - f al se Q ueue/ PID set prob- 0 Q ueue/ PID set cu rq- 0 2004 年・ int dro p - ear ly ( P acket * pkt , int qlen) ; dro p- ear ly 方法在 缓冲未满 时决定 是否提 前丢包. 它 首 先产生一个随机数, 然后比较随机数和丢包率, 当 随机数大于 丢包率时丢包, 返回 1, 否则返回 0. ・ Packet * deque( ) ; 当路由器中有包被发送时调用此方 法. 返回出队列的包, 并对 curq 进行更新. ・ double calculate- p( ) ; calculate- p 根据采 样频率, 每隔一段 时间周期 就执行 一 次, 然后按照式( 1) 对丢包概率重新进行计算. 程序中, 首先得到当前队列长度: > > int qlen = qib - ? q- - byt eLeng th ( ) : q - - leng th ( ) ; 然后对丢包概率进行更新:doubl e p; if ( qib- ) { p = edv - . v - prob + ed p- . a * ( ql en * 1. 0/ edp - . mean- pkt si ze -edp- . qr ef ) + edp- . b* ( edv - . qold * 1. 0/ edp- . m ean- p kt size - edp- . qref ) + edp- . c* ( edv - . qol dold* 1. 0/ edp - . mean- pkt si ze -edp- . qr ef ) ; } el se { p = edv - . v - prob + ed p- . a * ( ql en - edp- . qref ) + edp- . b * ( edv - . qold - edp- . qref ) + edp- . c * ( edv - . qol dol d -edp- . qref ) ; }这些语句对 P ID 算法中的 一些变量值 进行了默认 设置, 包括: 队列长度使用包进行 计算而不是使用字节, 采样频率为 160Hz, 期望队列长度为 150 个包, 平均包大小为 500 字节, 检 测到拥塞时直 接丢包而不是采用标 记位的办法 [ 16] , 设置初始 的丢包率和队列长度为 0. 3. 5 重新编译得到新的 ns. exe 最后 打开 ns- c- 1b9a 目录 下的 makefile. vc 文件, 在 sr 2. 其输出文件列表中加入新协议的输出文件 queue / pid. o . 然后 在 ns - 1 b 9a 根 目录下 执行 nmake makefile. vc, 此命 令将对 2. 新添 加 的协 议文 件 进行 编译. 之后, 新 的协 议 被加 入 到 N S 中, 模拟软件的功能得以扩 充.4 对比仿真实验为了对新 协议的性 能进行分析, 我们 采用如图 2 所示的 网络拓扑结构 对新扩充的 P ID 算法进行仿 真实验, 并将其与 RED 和 PI 算法进行比较.其中 qib- 标 志队 列长度 是用 包的个 数来 表示还 是用 字 节数来表 示. 当 qib - 为 1 时, 表示用字节 数来表示 队列长度. edv - 结构记录了一 组状态变量. 其中 edv- . v- pro b 为上一 时 刻 的 丢 包 概 率 , edv- . qo ld 为 上 一 时 刻 队 列 长 度, edv - . qo ldold 为 上两 时刻队 列长 度. 而 edp- 结 构记 录了一 组初 始 的 参数. 其 中 edp - . mean - pktsize 为平 均 包大 小, edp - . qr ef 为期望队列长度, edp - . a、 - . b 、 - . c 为算法和模型 提供 edp edp 的参数. 上面 的代码和前 面关于丢 包概率的计 算讨论是一 致 的. 随后添加以下代码, 以对状态变量进行更新:edv - . v - prob = p; edv - . qoldold = edv - . qold ; edv - . qold = qlen;图 2 仿真网络拓扑结构 F ig . 2 Simulat ion netw or k topolo gy 瓶颈链路 位于节点 A 和 节点 B 之 间, 链路容量 15M bps ( 3750packets / s , 分组 缺省大 小为 500bytes ) , 延时 5ms . 取图 中的 n 为 60, 所有的 60 个业务源均为持久性的 F T P 业务源. 它们与节点 A 之间的链路容量均 为 10 M bps , 延时 5 ms , 且均 在 0 时刻 启动. 除 节点 A 的 队列 分 别由 RED、 I、 D 控制 P PI 外, 其 余 队 列 均 为 Dr opT ail . R ED 的 高 低 门 限 值 分 别 为 100packet s 和 200packets, PI 和 P ID 的队列长 度的期 望值为 150packet s . 节点的缓 存大小均为 300 packets , 接收端窗口大18] 小采用默认值 20packets [ 17、 . RED 算法中, 采 用自适应的 方法 [ 19] , q - w eig ht 经过计算最 后再 将 新得 到的 丢 包 概率 作 为返 回 值返 回 前, 调 用 CalcT imer . r esched ( 1. 0/ edp - . w ) ; 使得此方法在下一个周期能够再被 自动调用. 3. 4 对 TCL 变量初始化 最 后应该 在 ns- c- 1b9a/ tcl/ lib 目录 下的 nssr 2. default. tcl 文件里, 对 PID 算法中的一些 T CL 变量 设置默认值. 进行 的设置如下:Q ueue/ PID set byt es- fals e Q ueue/ PID set queue - in- byt es - f al se Q ueue/ PID set w - 160为 0. 00027. 而 PI 中, 采 样频 率为 160Hz, a、 分 别 为 1. 822 b - 5 - 5 ( 10) , 1. 816( 10) . 在 P ID 中, 采样频率 为 160Hz , a、 、 分 b c 别 为 1. 596894( 10) - 3 , - 162576 ( 10) - 3 , 1. 565766 ( 10) - 3 . 3. 中 a 、 、 三 个参数 的计算理 论不在 本文的 讨论范 围内, PID b c 有兴趣的读者可以参考文献[ 12-15] .6 期 王晓曦 等: N S 2 网络仿真器功能扩展方法及实现 1013 当 B 到 C 的时 延为 30ms 时 , RED 、 I、 ID 的仿真结 果 P P 如图 3 所示. 图中, 横坐标为时间, 单位为秒, 纵坐标为队列长PI 仍存 在着需 要较长时 间才能 使队列 长度趋 于期望 值的问 题. 相比之下, PID 体现了较好的性能. 表 2 给出了 在 B 到 C 的时延分 别为 30ms 和 70 ms 的不 同情况下, RED 、 和 PID 三 种算法 的链路利 用率和 平均队 PI 列长度.图 3 R ED、 I、 ID 队列长度( d= 30ms) P P F ig . 3 Queue leng th plo ts of RED 、 and PI D ( d= 30ms) PI 度, 单 位为 包的 个数. 从 结果 可以 看出, 当 延时 为 30ms 时, R ED 和 P ID 的队列长度很快稳定到期望 长度, 而 P I 则需 要较长时间才能使队列长度趋于期望值 . 表 2 不同时延下三种算法性能比较 T able 2 P erfo rmance compar ison of t hr ee algo rithms o ver different r ound- ip times trA Q M 算法 RED PI PID d= 30ms d= 70ms d= 30ms d= 70ms d= 30ms d= 70ms 链路利用率 97. 682% 96. 978% 97. 714% 96. 811% 98. 434% 97. 485% 平均队列长度 144. 40 110. 75 202. 57 174. 46 158. 20 137. 62图 4 RED 、 、 ID 队列长度( d= 70ms) PI P . 4 Q ueue lengt h plots o f RED、 and PID ( d = 70m s ) Fig PI 从仿真结 果来看, 在无论 在节点 B 到 C 延时 为 30ms 还 是 70ms 的情况下, 新的 P ID 算 法均体现了良好的 性能. 不仅 链路利用率更好, 而且平均 队列长度更趋于期望值, 队列长度 的抖动也较小. 整体表现优 于 RED 和 P I 算法.5 结 论本文对 N S 2 开放源代码软 件的结构特性进行 了介绍, 并 以 PID 拥塞控制算法为例, 就如何对 N S2 扩展新的算法功能 进行 了详 细描 述. 最 后对 新扩 展 的 P ID 算 法进 行 了仿 真实 验, 并将结果与已有的 R ED 和 P I 算 法做了性能对比分析. 从 实验结果来看, 新的 P ID 算法在上述情 况下体现 了更优的性 能. 基于 反馈机制的 P ID 网络拥塞控制 是目前端 到端拥塞控 制研究 的热点 之一. 在 P ID 算法 中, 根据不 同的 模型 原理计 算得到的 k p 、 i 和 k d 三个 参数是不同 的, 根 据这三个 参数计 k当 B 到 C 的时 延为 70ms 时 , RED 、 I、 ID 的仿真结 果 P P 如图 4 所示. 从结果可以 看出, 当延时 为 70ms 时, R ED 的 队 列出现 了大幅振 荡. 队列 的大幅振 荡一方面增 加了端到端 的 时延抖动; 同时由于空队列出现的概率加大, 链路 利用率的降 低是肯定的, 这两点都违背了最初提出的 A Q M 设计目标. 而1014 小 型 微 型 计 算 机 系 统 2004 年算得到 的 a、 、 也 是不同的. 因此 P ID 算法本 身具有研究 价 b c 值. 在不同的网络条 件下, 建 立相应的 P ID 控制模 型, 并计 算 给出相 应的控制 参数, 对 其进行模 拟仿真和分 析应该是下 一 步工作的内容之一. Ref erence:1 U C N / LBL/ V IN T. N etw ork sim ulat or -N S2 [ EB/ O L ] . ht t p: / / w w w -mas h. cs . ber kel ey. edu/ ns, 1995. 2 K es hav S . REA L : a net work s imul at or [ R ] . T echnical R eport . U nivers ity of Calif ornia, Berk eley, 1988. 3 Liu Ju n, X u Chang-biao, Long Ke-ping. N et w ork s imulat ion dis cus sion based on N S [ J ] . A pplicat ions R es earch O f Comput er , 2002, 19( 9) : 54-57. 4 W ang Y u, Zhao Q ian-chu an . IP n et w ork s imul at ion bas ed on N S 2 [ J] . Comp ut er A pplicat ions and Sof tw are, 2003, 20 ( 3 ) : 28-29, 71. 5 L i Fang-min , Li R en -fa, Y e Ch eng - g. O ut put ing and analyzing qin t h e res ult s of th e net work simu lat or [ J] . Comput er Engineering , 2000, 26( 9) : 14-16, 94. 6 Braden B, Braden B, Clark D , C rowcroft J , Davie B, D eering S . Recomm endat ions on queue management and congest ion avoid ance in t he Int ern et [ S] . RFC2309, 1998. 7 Floyd S, Jacobs on, V . R an dom earl y det ect ion gat ew ays f or con gest ion avoidance[ J ] . IEEE/ A CM T ransact ions on N et w orking , 1993, 1( 4) : 397-413. 8 Hol lot C , M isra V , Tow sl ey D , et al . On design ing improved con t roll ers f or A Q M rout ers support ing T CP f low s[ J ] . IEEE Com put er S ociety , 2001: 1726-1734. 9 Sanjeew a A , St even HL. REM : act ive queue m anagement [ J ] . IEEE N et w ork, 2001, 15( 3) : 48-53. 10 Feng W , K andlur D , Saha D , Shin K . Blu e: a new cl as s of act ive qu eue management algorit hms [ R ] . Tech nical R eport , CSE-T R 387-99, U nivers it y of M ichig an. w w w . eecs . umich. edu / ~ wu chang/ bl ue, 1999.11 N et w ork S imulat or on W indow s 2000 Profess ional [ EB / O L ] . h t tp : / / cyber . cs. nt ou. edu. t w / ~as huro/ w in2k- as huro. ht m . 12 Wang Y J, Schinkel M , S chmi tt -Hart man n T , Hunt K J . PID and PID -like cont roll er design by pol e assig nmen t w it hin D -st able reg ion s[ J] . A s ian Jour nal of C on tr ol , 2002, 4( 4) : 423-432. 13 W ang Y J, S chink el M , Hun t K J . A n engi neering approach t o simu lt an eous st abiliz at ion and s t rong si mult aneous st abiliz at ion w it h D st abi lit y [ C ] . In: Proceedings of 40th IE EE Conf erence on Decis ion and Cont rol. Florida, U S A , 2001, 967-973. 14 S chink el M , W ang Y J, Hunt K J. A robus t an d perform ance or ient at ed con trol ler des ign approach for nondet erminis t ic h ybrid s yst ems [ J] . Int er nat ional Journal of Cont rol , 2002: 1368-1375. 15 Hun t K J, W ang Y J , Sch inkel M , S chmi tt -Hart man n T . Cont roll er design f or h ybrid syst ems using sim ult an eous D -st ab ilisat ion t echnique and it s appl icat ion t o ant i-l ock braking sys tems ( A BS) [ A ] . N onl inear and Hybrid Cont rol in A ut omot ive A pplicat ions [ M ] . Edit ed b y A nders R ant zer. Springer-V erlag, 2002, 97-124. 16 Floyd S. T he addit ion of ex plici t cong est ion not if icat ion ( E CN ) to IP[ EB/ O L] . RFC 3168, 2001. 17 S tevens W . T CP s low s tart , cong est ion avoid ance, f ast r et ransmit , and fast recovery[ S ] . R FC 2001, 1997. 18 A l lman M . TCP congest ion cont rol [ S ] . R FC 2581, 1999. 19 Feng W, K andlur D , Saha D , Shi n K . A s elf -con figu rat ion R ED gat ew ay [ C] . In: Pr oceedings of t he IN FO CO M ' 99. N ew Y ork: IEEE Compu ter Societ y , 1999: 1320-1328.附中文参考文献:3 刘 俊, 徐昌彪, 隆克平. 基于 N S 的网络仿真 探讨[ J] . 计算机应用 研究, 2002, 19( 9) : 54-57. 4 王 宇, 赵 千川. 用网络仿真 软件 N S2 进 行 IP 网 络的仿真[ J] . 计 算机应用与软件, 2003, 20( 3) : 28-29, 71. 5 李方 敏, 李 仁发, 叶澄 清. 网 络仿 真软 件 n s 的结 果输 出和 分析 [ J] . 计算机工程, 2000, 26( 9) : 14-16, 94.。
实验四NetSim网络模拟器的使用Boson netsim for ccnp是Boson公司推出的一款路由器、交换机模拟软件。
它为我们联系路由器、交换机的命令,掌握路由器、交换机工作原理提供了有力的实验环境。
有两个组件:一个是拓扑设计软件(Network designer),一个是实验环境模拟器(Boson netsim)。
进入主界面后同时运行了Boson netsim和Boson lab navigator,Lab navigator是软件内置的一些实验拓扑图,部分正确的配置文件。
包括cisco培训课程的CCNA,BCRAN,BSCI及一些定制的实验。
如果按照cisco的教材来学习,这些内置的实验能更好地按照cisco的课程进度来联系。
Boson netsim运行的界面如图:工具栏的前三个按钮用于快速切换要配置的设备(路由,交换,PC机),第四个按钮用于打开lab navigator,第五个用于查看当前使用的拓扑图,第六个用于打开远程控制面版,等于是使用Telnet登录远程远程的设备来调试。
菜单栏主要包括了文件菜单,模式菜单,设备菜单,工具菜单,注册工具,窗口布局工具和帮助。
其中文件菜单包括:✓新建:调用拓扑图设计软件重新绘制一个新拓扑✓装入拓扑图:加载一个之前做好的拓扑图文件✓粘贴配置文件:粘贴一个来自真实路由器或者交换机的配置文件✓装入单个设备配置文件(合并):将以前保存的单个设备配置文件装入到当前实验环境中,以合并方式进行✓装入单个设备配置文件(覆盖):将以前保存的单个设备配置文件装入到当前实验环境中,以覆盖方式进行✓装入多个设备文件配置文件:将以前保存的所有设备配置文件装入到当前实验环境中✓保存单设备配置文件:将当前设备的配置文件存盘(保存在硬盘上备下次需要时使用,扩展名是rtr)✓保存所有设备配置文件:将当前拓扑图中所有设备的配置存盘✓打印:打印当前拓扑图✓退出:退出Boson netsim for ccnp模式菜单包括:初级模式:以默认方式使用配置界面高级模式:以Telnet方式访问设备进行配置工具条:显示/隐藏“远程控制面版”设备菜单:选择使用哪个设备,作用相当于工具栏上的快速切换设备图标。
⽹络模拟⼯具Netem⽹络模拟⼯具Netem可以模拟时延,丢包,重复包,乱序等功能。
Netem是⽤过命令⾏‘tc’来设置规则的,tc命令是IProute2命令中的⼀部分!1. 设置固定delay 100ms (所有经过eth0的包都被延时了100ms):# tc qdisc add dev eth0 root netem delay 100ms修改# tc qdisc change dev eth0 root netem delay 100ms删除#tc qdisc del dev eth0 root netem delay 100ms2. 设置delay 100ms Jitter 10ms:# tc qdisc change dev eth0 root netem delay 100ms 10ms3. Jitter其实是有相关性的,如果要设置Jitter的相关性25%:# tc qdisc change dev eth0 root netem delay 100ms 10ms 25%4. 设置Jitter为正态分布。
# tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal5. 设置丢包率10%# tc qdisc change dev eth0 root netem loss 10%6. 丢包率也有相关性。
如设置10%的丢包率,但是丢包率之间的相关性为25%# tc qdisc change dev eth0 root netem loss 0.3% 25%7. 包的duplication。
# tc qdisc change dev eth0 root netem duplicate 3%8. 包的corruption。
# tc qdisc change dev eth0 root netem corrupt 0.1%9. 乱序,每第5个包马上发送,其他的包间隔10ms发送。
网络模拟平台Network Simulator及其MFC的功能扩充摘要评价网络协议设计与实现的正确性和性能是网络协议设计过程中的重要问题。
由美国DARPA资助开发的Network Simulator是一种广泛使用的、支持多种协议模拟的网络协议测试平台,目前主要用在UNIX系统上。
用MFC扩充Network Simulator可以帮助协议设计和开发人员在Windows环境下借助Network Simulator进行协议设计和评价。
本文首先介绍Network Simulator,再以实例阐述本文作者设计实现的一种在Windows平台用MFC扩展Network Simulator的方法。
AbstractIt is very important to evaluate the correctness and performance of protocol design and implementation. Network Simulator is a widely-used multi-protocol simulation software which is mostly used on Unix environment. Extending Network Simulator with MFC can assist protocol designer and developer in making better use of Network Simulator on Windows platform. In this paper, we will first make an introduction to Network Simulator, then we’re going to illustrate how we use MFC to extend Network Simulator’s capability through a live example.关键字:Network Simulator、协议测试、MFC、协议设计、网络模拟1.引言随着Internet的迅速发展,网络的规模不断变大,网络的复杂性也不断增加。
为了适应网络发展带来的网络运行环境的改变,新的网络协议或者对已有的网络协议的改进设计不断提出。
对于这些网络协议,如何评价协议设计的正确性,如何评价协议在各种复杂网络环境下的性能,以及如何评价协议的某个实现版本与协议设计目标的一致性是网络协议设计和实现过程中的重要问题。
为了评价协议的正确性和性能,需要做很多测试。
传统的办法可以为协议的运行搭建实际的网络环境,试验协议在真实网络环境下的运行情况。
但是搭建实际网络环境往往代价昂贵,而且不易于比较不同网络环境之间协议的运行结果,真实网络中有很多随机网络事件也无法再现。
因此,搭建真实网络环境对于研究和评价协议设计与实现并不适合。
相对于真实网络,模拟网络是一种廉价、有效的协议测试办法。
模拟网络的实质是让协议在软件模拟的网络环境下运行。
这样可以带来很多好处,比如,模拟网络可以任意的配置协议的运行环境,可以比较协议在不同环境下性能的差别,可以通过仿真让模拟网络直接与真实网络进行数据交互,可以记录模拟网络中事件的发生顺序并且通过可视化工具再现网络事件等等。
在模拟网络中研究协议本身或者研究协议与其他协议之间的交互操作对于理解和评价协议具有非常重要的作用。
Network Simulator就是一种使用最广泛的网络模拟软件。
模拟网络除了能够检验协议设计的正确性以外,还能检验协议实现的正确性。
在模拟网络中,我们可能会发现被测试的协议有错误,这些错误可能是由于协议的设计带来的,也可能是由于协议的实现带来的。
通过模拟网络的测试,这两种错误都能被发现,并且能判断是协议设计的错误还是协议实现的错误。
网络协议测试另一个重要领域是协议的一致性测试。
主要测试网络设备或软件是否符合特定协议规范,如测试某网络路由器是否正确实现动态路由算法。
本文讨论的Network Simulator主要用于网络协议设计的正确性和性能测试与网络设备的一致性测试分属不同的范畴。
在本文的后面部分,我们首先介绍Network Simulator,包括Network Simulator的背景、软件体系结构、用法,然后介绍用MFC扩充Network Simulator的意义和面临的困难,最后通过实例给出了本文作者提出的一种用MFC的扩充Network Simulator的办法。
2.Network Simulator(NS)2.1 NS简介Network Simulator(NS)是VINT计划的一部分。
VINT计划是美国国防部(DARPA)资助,由UC Berkeley、LBL、USC/ISI和Xerox PARC联合开发的一项计划。
该计划的目的是为广域范围Internet协议的设计和开发提供一系列的网络模拟工具。
通过这一系列的工具,网络研究人员或者协议设计人员可以根据协议在模拟网络环境下的测试运行结果,评价或者及时地改进协议的设计。
这样可以大大减少网络协议设计过程中大量简单重复的工作,并且为测试协议的实现提供廉价、客观、有效的方法。
NS是VINT计划一系列工具中最重要的一个。
它可以用软件模拟网络环境,并且包括许多特性以支持大规模的、多协议网络模拟。
这些特性包括:大规模网络环境的模拟、自动网络拓扑生成、协议运行结果的可视化显示以及与真实网络的数据交互等。
良好的可扩展性也是NS一个非常重要的特性。
网络模拟软件必须允许用户很容易的将自己的网络协议实现代码加入到模拟软件中,以实现对网络模拟软件的功能的扩充。
目前的NS的最新版本是2.1版,主要用在各种Unix系统上。
但是NS是公开源码的软件,它也提供了Windows平台上的编译文件,这使得用户可以将NS移植到Windows平台上。
2.2 NS的体系结构NS采用面向对象的软件体系结构,用两种语言开发实现:Otcl和C++。
Otcl是对Unix 上广泛使用的脚本语言Tcl (Tool Command Language)的面向对象的扩展。
NS之所以采用两种语言来开发实现是基于以下考虑:一方面,对网络模拟需要能够高效地处理字节数据、数据包头以及能够进行大量数据的计算,面向对象的高级编程语言C++语言能够满足这种需要。
另一方面,网络研究中经常需要对模拟网络中某些参数或者配置稍加修改,就能够迅速让协议在新的网络环境下运行以比较协议在各种网络环境配置下的运行结果。
因为在每个网络环境下运行的次数并不多,运行时的效率并不要求很高,但希望尽可能的减少编译时间。
解释执行的脚本语言Otcl能够达到这个目的。
在NS中,Otcl和C++各有一个类继承结构,两个结构在逻辑上完全一样。
这个类继承结构中的每一个类在两种语言中都有相应的类的定义。
同一对象在两种语言中的定义通过一一映射的方法,在逻辑上体现为一个对象。
在Otcl和C++语言中都可以访问同一对象中定义的成员变量,调用定义的成员方法。
NS软件体系结构一个设计目的是允许用户很方便的在NS的现有软件体系结构的基础上进行扩展,添加自己的协议和模拟功能。
它的软件模型的可以说是一种类似“组件化”的编程模型。
这种模型下,网络运行环境通过脚本程序来描述。
模拟网络就是由一系列网络组件对象按照一定的拓扑结构组合而成。
图1[3]所示为Network Simulator中各种网络组件对象的类继承结构。
在Otcl和C++中都有对应于图1的类继承结构。
在NS中,网络中的各种实体(如网络节点、网络协议执行体等)都是由一个或多个图1中的对象组合而成,以完成实体的逻辑功能。
比如,NS中网络节点(如图2[3])包括以下对象:节点入口(Node Entry)、地址路由对象(Addr Classifier)、端口路由对象(Port Classifier)、执行各协议功能的代理(Agent)对象。
每个对象都通过C++和Otcl语言定义该对象的行为和属性。
如地址路由对象根据该网络节点接受到的数据包头的目标地址将该数据包发送到与该节点相连的相应链路上。
用户也可以定义自己的地址路由对象或者修改Addr Classifier对象的Classify方法添加自己的路由算法。
2.3 模拟网络的记录和统计对于网络模拟软件来说,一个很重要的特性是能够将网络模拟过程发生的网络事件,以及网络模拟过程中的统计数据记录下来。
一般意义上,网络模拟软件可以在模拟过程中将记录的事件或者统计的结果显示出来,也可以在模拟过程中将事件或者统计结果保留在记录文件中,模拟过程结束以后再用其他的工具显示出网络模拟过程中的发生的事件以及统计的数据。
在NS中采用的是后一种办法,这样用户可以通过可视化的工具(在VINT中采用nam工具)灵活、直观的再现网络模拟的过程。
在NS中有两种跟踪记录对象:Traces对象和Monitor对象。
Traces对象可以统计网络中各个节点或者链路数据包到达、数据包离开和数据丢失等事件。
Monitor对象可以统计网络中数据流量、数据丢包率等。
这两种对象对于评价网络协议的性能有很重要的作用。
2.4 NS的用法要使用NS进行网络协议的测试和评价,必须首先对NS程序进行扩充,将实现待测试的协议代码添加到NS中。
前面介绍过NS采用两种语言的编程模型。
在这种模型下,模拟网络平台的核心由C++语言实现,而网络协议的运行环境由Otcl脚本程序描述。
实现待测试协议的程序既可以用C++语言编写,也可以用Otcl语言编写。
实际上,在NS中,C++和Otcl经常结合使用,以描述某个对象的行为和属性。
具体哪个部分采用哪种语言,可以根据以下标准[1]:需要使用OTCL 需要使用C++ 配置程序或者“运行一次”的程序部分处理网络中数据流量的程序调用C++对象提供的原语能完成的简单操作修改现有网络模拟平台的核心表1 NS中使用OTCL和C++的准则对NS的程序增加和修改以后,重新编译NS,就得到了功能扩充了的NS网络模拟平台。
协议运行的网络环境是由脚本配置文件描述的。
运行NS时,给出网络环境的描述,就可以让网络协议在指定的网络环境下运行了。
3.MFC扩充NS3.1 MFC扩充NS的意义和困难MFC是Microsoft Foundation Class 类库的缩写。
这套类库为Windows平台上的程序员提供大量关于窗口、菜单、对话框、基本数据处理等的类库程序。
对于熟悉MFC的程序员来说,用MFC编写一些程序就像搭积木一样容易。
在MFC的基础上,程序员可以灵活的扩展、重载MFC的代码以满足自己特殊的需要。
许多Windows的程序员都喜欢使用MFC 编写程序。
MFC中大量的基本类和抽象数据类型,可以为程序员提供高效、灵活的数据处理手段。