-1-一、实验目的1.学习熟悉使用OPNET仿真软件,实现对网络场景的仿真。学习并掌握包交换有线网络的基本知识。2.数据包建模。学习并掌握数据包建模的基本方法和技能。3.有线链路建模。学习并掌握有线链路建模的基本方法和技能。4.中心交换节点建模学习并掌握中心交换节点建模的基本方法和技能。包括hub进程建模和包流的连接。5.周边节点建模学习并掌握周边节点建模的基本方法和技能,包括:src进程建模;sink进程建模;proc进程建模;包流的连接。6.网络建模。学习并掌握包交换有线网络建模的基本方法技能。7.配置参数、运行和调试仿真学习并掌握收集统计量、配置参数、运行和调试仿真的基本方法和技能。8.仿真结果分析。学习并掌握仿真结果分析的基本方法和技能。二、实验过程专题1:实现包交换1、定义包格式(1)从File菜单列表中选择PacketFormat,单击OK按钮。这时打开包格式编辑器。(2)单击CreateNewField工具按钮,然后将光标移到编辑窗口中,单击鼠标左键,接着单击右键。这时一个新的包域出现在编辑窗口中。设置包域的属性,定义好的包域名称和大小。图1.包格式定义(3)从File菜单中选择Save,命名包格式。2、定义链路模型(1)从File菜单列表中选择LinkModel,打开链路模型编辑器。-2-(2)找到链路类型支持属性框,设置支持的包格式,除了ptdup外的链路类型对应的Supported属性设置为no,表明该链路只支持点对点双工连接。(3)在packetformats属性右边对应的InitialValue栏中单击鼠标左键。“SupportsAllPacketFormats”和“SupportsUnformattedPackets”复选框取消,同时将新增加包设置为Support。图2.链路模型定义3、创建中心节点定义节点模型,中心交换节点:四对发信机和收信机(每对收发信机对应一个周边节点),一个中心交换处理进程(按地址转交包)。(1)从File菜单列表中选择NodeModel,打开节点模型编辑器。(2)在编辑窗口中放置一个进程模块,四个点对点发信机,和四个点对点收信机。图3.中心进行模型定义(3)给每个对象命名,并用包流将每个收信机和发信机和hub相连。查看包流的连接情况。-3-图4.包流连接(4)在收信机或收发信机模块上选择EditAttributes,设置参数。图5.属性设置(5)创建hub进程模型,从File菜单列表中选择ProcessModel,这时打开进程模型编辑器。创建idle状态,建立状态转移。(6)编辑函数块按钮,输入代码,完成编辑。图6.代码编辑4、创建外围节点创建周边节点模型,当周边节点生成一个包时,它必须给这个包指定一个目的地址,然后将它发往中心节点。如果周边节点接收到一个包时,它必须计算该包的端对端延时。因此周边节点必须包括一个业务生成模块、一个进程模块和一对点对点收发信机来完成这些任务。创建周边节点模型和创建中心节点模型过程类似,不做详述。5、构建网络现在已建好了底层的节点、进程和链路模型,依据层次化建模的思想,现在可以构建网络模型了。(1)从OPNETModeler主窗口中的File菜单列表中选择Project,-4-命名Scenario,创建一个对象模板。图7.对象模板(2)放置节点,依据网络拓扑放置节点,并连接节点,验证连接。图8.连接验证(3)设置节点属性。6、运行仿真现在已建好网络,设置参数,运行仿真。图9.统计量参数设置图10.配置参数设置三、实验结果1.基本实验(专题1:包交换)(1)仿真场景-5-中心节点:1个,周边节点:4个。网络场景如下:图11.基本实验场景(2)节点模型图12.Hub节点模型图13.周边节点模型(3)进程模型图14.Hub进程模型图15.周边节点进程模型(4)仿真结果及分析-6-1、时延统计图16.时延(间隔4s与间隔40s发包)图17.平均时延(间隔4s与间隔40s发包)2、带宽利用率图18.hub-node0宽带利用率(间隔4s与间隔40s发包)-7-图19.hub-node0宽带利用率对比(间隔4s与间隔40s发包)图20.hub-node0叠加对比(间隔4s与间隔40s发包)结果分析:图16和图17是包的产生时间间隔分别为4秒和40秒时的端对端延时比较图。其中,纵坐标为端对端延时,横坐标为时间。可以看出,包产生时间间隔为4秒时的端对端延时始终高于包产生时间间隔为40秒时的端对端延时;在平均时延方面,两者相差不大。这是符合实际情况的。图18、19和图20是包的产生时间间隔分别为4秒和40秒时的链路带宽利用率比较图。其中,纵坐标为链路利用率,横坐标为时间。可以看出,在经过一定时间的初始状态的振荡之后,两组仿真都逐渐达到稳定状态,包产生时间间隔为4秒时的链路利用率始终高于包产生时间间隔为40秒时的链路利用率。原因是间隔4秒包产生量高于间隔40秒,因此占有带宽的时间较多,因此链路利用率增加,这一-8-仿真结果也符合时间情况。2.改进实验(1)改进内容a、增加节点数量在改进实验中,增加了周边节点的数量,同时在场景四中增加了子网数目,使得交换网络数目为2,交换节点数目为2。另外,在改进实验中,修改了交换节点的节点模型及进程模型。场景截图如下:图21.扩展场景2图22.扩展场景3图23.扩展场景4图24.扩展场景4(分别对应的两个子网)其中四个场景下对应的中心交换模型:-9-图25.扩展场景2(中心交换模型)图26.扩展场景3(中心交换模型)图27.扩展场景4(中心交换模型)b、增加统计量图28.增加统计量(示图一)-10-图29.增加统计量(示图二)图30.增加统计量(头文件模块)图31.增加统计量(函数部分代码)图32.增加统计量(初始状态代码)-11-c、修改包格式图33.修改后包格式(2)仿真结果及分析图34.四个场景运行对比(发包间隔4秒)图35.时延结果对比(四个场景下发包间隔均为4秒)-12-图36.发包数目对比(四个场景下发包间隔均为4秒)图37.接收包数目对比(四个场景下发包间隔均为4秒)图38.node0-hub0的链路利用率对比(四个场景下发包间隔均为4秒)-13-结果分析:图35是四个场景下的时延结果对比,其中包括三个扩展场景2、3、4和初始场景。仿真的参数设置中包的产生时间间隔分别为8秒。其中横坐标为仿真时间,纵坐标为网络时延。从图形中我们可以看出,随着网络节点数目的不断增加,网络规模的扩大,网络的负载增加,网络的时延在不断增加,如图示场景3和场景2的时延要大于基本场景,而两个子网组成的场景4其时延又远远大于其他三个场景,这与实际情况是相符的。图36和37是网络发送和接受包数目的对比,随着仿真时间的增加,网络发包和收包数目呈增长趋势,而随着吧不同网络场景下节点数目的增加,网络的发包和收包数目也不断增加,场景4依次大于3、2场景;同时经过估算,其显示的结果与实际发包数相同,符合实际。图38为不同网络场景下的node0-hub0的链路利用率对比,其中纵坐标为链路利用率,横坐标为仿真时间。可以看出,在经过仿真初始期状态的振荡之后,四组仿真都逐渐达到稳定状态,由于包的产生间隔为4秒,包的发送量较大,因此线路的利用率较高,四个场景的利用率均在2.5到2.8之间,仿真结果合理。四、实验心得及体会