网络仿真期末设计实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

重庆邮电大学研究生堂下考试答卷

学年第学期

考试科目网络仿真

姓名

年级

专业

网络仿真期末设计实验报告

指导教师实验时间:第周至第周

学院专业

学号姓名实验室

一、实验专题题目:无线移动Ad Hoc网络路由协议建模与仿真实现

二、实验目的和要求

1. 无线移动Ad Hoc网络路由协议学习

学习并掌握无线移动Ad Hoc网络路由协议的基本原理。

2. 无线收发机管道模型介绍

学习并了解无线收发机管道模型。

3. 分组建模

学习并掌握控制分组和数据分组建模的基本方法和技能。

4. 无线移动Ad Hoc网络节点建模

学习并掌握无线移动Ad Hoc网络节点建模的基本方法和技能。包括:(1)src进

程建模;(2)sink进程建模;(3)routing进程建模;(4)MAC层和物理层建模;

(5)分组流的连接。

5. 网络建模

学习并掌握无线移动Ad Hoc网络建模的基本方法和技能。

6. 配置参数、运行和调试仿真

学习并掌握收集统计量、配置参数、运行和调试仿真的基本方法和技能。

7. 仿真结果分析

学习并掌握仿真结果分析的基本方法和技能。

三、实验硬软件条件

计算机一台,装有Windows操作系统、Visual C++6.0编程软件和OPNET

网络仿真软件。

四、实验结果

(一)专题

本次仿真实现以下功能:

⑴无线节点SEND以广播方式发送数据包,无线节点RCV接受数据包;

⑵分别统计发送数据包的个数与接收数据包的个数;

1.网络仿真场景图

节点SEND为发送节点,将SEND的地址(NODE_ADDRESS和Wireless LAN MAC Address)设置为0,且在source层发送有格式的数据包;

节点RCV为接收节点,将RCV的地址(NODE_ADDRESS和Wireless LAN MAC Address)设置为1,只接收数据包,不产生数据包。

2.节点进程图

本次仿真的节点模型一共有如上图所示的进程模型,以下为各层关键代码:

① source层:

pkptr = op_pk_create_fmt ("two_node_format"); //创建

two_node_format格式的包

op_pk_nfd_set(pkptr,"DATA", uf_pkptr); //写入数据

op_pk_nfd_set(pkptr,"source_address" , node_address); //写入本节点地址

op_pk_nfd_set(pkptr,"dest_address", 1); //写入目的地址为1

② wlan_route层:

本进程模型一共有4个状态机:

• init完成初始化(包括统计量);

• appl layer arril接收从source层到来的数据包,并统计发送数据包的个数;

pk_send_count = pk_send_count + 1; //统计发送的数据包

op_stat_write(pk_send_cnt_stathandle,pk_send_count);

• mac layer arri接收从mac层到来的数据包,并统计收到数据包的个数;

if(dest == node_addr) //判断本节点是否是目的地址 {

pk_rcv_count = pk_rcv_count +1; //统计收到的数据包 op_stat_write(pk_rcv_cnt_stathandle,pk_rcv_count);

op_pk_send(pkptr,SIN_OUT_STRM);

}

else

op_pk_destroy(pkptr); //不是目的地址,销毁包

3. 仿真统计量结果及分析

仿真参数设置为:SEND节点发送速率为每秒一个数据包,仿真时间为100秒;

本次仿真收集的全局统计量:发包数(send packet count)和收包数(rcv packet count);

①发包数(send packet count):

由图可见,统计出一共发了98个包。这是由于每秒发一个包,且开始仿真时间为2秒,故一共发了98个包。

②收包数(rcv packet count):

由图可见,统计出了一共收了98个包,和发包数一致。

③分析:统计出来的发包数和收包数均为98个包,可知收发一致,本次

仿真达到预期的结果,仿真成功。

(二)专题改进

1. 改进一:

当两个节点的距离大于send节点的通信范围时,要实现两个节点的通信,可以增大send节点的发送功率,从而扩大其通信范围,也可以在两个节点之间增加一个节点,作为转发节点。本设计采用后一种方案,改进场景如下所示:

改进结果及分析

(1)send节点发包数

(2)rcv节点收包数

结果分析:

由于在send与rcv节点之间增加一转发节点trans,该转发节点不发送数据包,只实现转发数据包的功能。当它收到数据包时,先判断目的地址,如果该数据包的目的地址是它本身,则向上层传递;如果收到数据包的目的地址不是它自己的地址,则在rout层进行转发。Rcv节点在trans节点的通信范围之内,所以能收到send节点发送给它的数据包。这样即实现了send与rcv节点之间的通信。

2.改进二:

节点数目改为6个,6个节点随机的产生非本身节点地址的目的地址,且6个节点都

发送和接收数据包(以广播方式发包);增加了数据包更新和最大转发次数;增加了对丢包率的统计。改进场景如下所示:

相关文档
最新文档