四川大学 - 无线网络技术 - lab1实验报告

更新时间:2024-04-29 09:24:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《无线网络技术》仿真实验报告

实验一:AODV、DSR仿真

专业班级: 软件学院2012级 姓 名: 张柯岩 学 号: 2012141463115

指导教师:

评阅成绩: 评阅意见:

提交报告时间:2015年 5月12 日

目 录

1、实验目的 ……………………………………………………………………

2、实验内容 ………………………………………….……………………… 3、实验环境 …………………………………………………………………. 4、实验步骤 ……….………………………………………………………… 5、仿真现象描述与结果分析 …………………………………………… 6、实验遇到的问题 …………………………………………………………… 7、实验总结 ……………………………………………………………….………

实验1 AODV仿真

一、实验目的

1.掌握无线自组织网络的组网方式 2.掌握AODV路由协议的工程过程 3.利用NS2仿真实现AODV路由协议

二、实验内容

本实验的内容在于利用NS2仿真实现AODV路由协议,模拟ADOV环境。 AODV是应用最广泛的按需路由协议之一,它是DSDV算法的改进,但中间节点不需事先维护路由。AODV中节点移动可能会导致原来路由不可用,它采用逐跳路由转发分组,同时加入了组播路由协议扩展,从路由查找回复RREP。整个通信过程是对称的,路由可逆,所以AODV协议不支持单向路由。

四、实验环境

AODV仿真采用的实验平台为Cygwin + ns-allinone-2.34,在标准的ns2中已集成了相应的模块。

五、实验步骤

1.在“home/<用户名>/”目录下新建目录存放仿真脚本AODV.tcl和AODV_topo.scn。 2.在Cygwin中进入存放脚本的目录,输入ns AODV.tcl,回车运行。

3.若要以NAM方式运行仿真动画,则在Cygwin中输入startxwin进入启动XWin。 4.然后再输入ns AODV.tcl,则可看到仿真动画。

六、仿真现象描述与结果分析(包括实验截图)

1.

s 0.021945000 _4_ MAC --- 0 AODV 55 [0 ffffffff 4 800] ------- [4:255 -1:255 30 0] [0x2 1 1 [2 0] [4 4]] (REQUEST)

由节点4以AODV的方式发送请求,在此条记录的附加信息中存有目的节点和源节点,分别为2和4。

2.

r 0.024537028 _3_ MAC --- 0 AODV 48 [0 ffffffff 4 800] ------- [4:255 -1:255 30 0] [0x2 1 1 [2 0] [4 4]] (REQUEST)

r 0.024537045 _6_ MAC --- 0 AODV 48 [0 ffffffff 4 800] ------- [4:255 -1:255 30 0] [0x2 1 1 [2 0] [4 4]] (REQUEST)

s 0.028038640 _6_ MAC --- 0 AODV 55 [0 ffffffff 6 800] ------- [6:255 -1:255 29 0] [0x2 2 1 [2 0] [4 4]] (REQUEST)

r 0.030630674 _7_ MAC --- 0 AODV 48 [0 ffffffff 6 800] ------- [6:255 -1:255 29 0] [0x2 2 1 [2 0] [4 4]] (REQUEST)

r 0.030630679 _3_ MAC --- 0 AODV 48 [0 ffffffff 6 800] ------- [6:255 -1:255 29 0] [0x2 2 1 [2 0] [4 4]] (REQUEST)

r 0.030630685 _4_ MAC --- 0 AODV 48 [0 ffffffff 6 800] ------- [6:255 -1:255 29 0] [0x2 2 1 [2 0] [4 4]] (REQUEST)

s 0.034265280 _3_ MAC --- 0 AODV 55 [0 ffffffff 3 800] ------- [3:255 -1:255 29 0] [0x2 2 1 [2 0] [4 4]] (REQUEST)

r 0.036857308 _4_ MAC --- 0 AODV 48 [0 ffffffff 3 800] ------- [3:255 -1:255 29 0] [0x2 2 1 [2 0] [4 4]] (REQUEST)

r 0.036857319 _6_ MAC --- 0 AODV 48 [0 ffffffff 3 800] ------- [3:255 -1:255 29 0] [0x2 2 1 [2 0] [4 4]] (REQUEST)

s 0.041111740 _7_ MAC --- 0 AODV 55 [0 ffffffff 7 800] ------- [7:255 -1:255 28 0] [0x2 3 1 [2 0] [4 4]] (REQUEST)

r 0.043703770 _1_ MAC --- 0 AODV 48 [0 ffffffff 7 800] ------- [7:255 -1:255 28 0] [0x2 3 1 [2 0] [4 4]] (REQUEST)

r 0.043703775 _6_ MAC --- 0 AODV 48 [0 ffffffff 7 800] ------- [7:255 -1:255 28 0] [0x2 3 1 [2 0] [4 4]] (REQUEST)

r 0.043703788 _9_ MAC --- 0 AODV 48 [0 ffffffff 7 800] ------- [7:255 -1:255 28 0] [0x2 3 1 [2 0] [4 4]] (REQUEST)

s 0.049408978 _9_ MAC --- 0 AODV 55 [0 ffffffff 9 800] ------- [9:255 -1:255 27 0] [0x2 4 1 [2 0] [4 4]] (REQUEST)

r 0.052001009 _1_ MAC --- 0 AODV 48 [0 ffffffff 9 800] ------- [9:255 -1:255 27 0] [0x2 4 1 [2 0] [4 4]] (REQUEST)

r 0.052001025 _10_ MAC --- 0 AODV 48 [0 ffffffff 9 800] ------- [9:255 -1:255 27 0] [0x2 4 1 [2 0] [4 4]] (REQUEST)

r 0.052001026 _7_ MAC --- 0 AODV 48 [0 ffffffff 9 800] ------- [9:255 -1:255 27 0] [0x2 4 1 [2 0] [4 4]] (REQUEST)

r 0.052001027 _8_ MAC --- 0 AODV 48 [0 ffffffff 9 800] ------- [9:255 -1:255 27 0] [0x2 4 1 [2 0] [4 4]] (REQUEST)

s 0.054564680 _8_ MAC --- 0 AODV 55 [0 ffffffff 8 800] ------- [8:255 -1:255 26 0] [0x2 5 1 [2 0] [4 4]] (REQUEST)

s 0.055363225 _1_ MAC --- 0 AODV 55 [0 ffffffff 1 800] ------- [1:255 -1:255 27 0] [0x2 4 1 [2 0] [4 4]] (REQUEST)

r 0.057156701 _11_ MAC --- 0 AODV 48 [0 ffffffff 8 800] ------- [8:255 -1:255 26 0] [0x2 5 1 [2 0] [4 4]] (REQUEST)

????????????

以上为途径节点的一系列转发,具体转发顺序不作赘述。

3.

s 0.069561861 _12_ MAC --- 0 AODV 55 [0 ffffffff c 800] ------- [12:255 -1:255 25 0] [0x2 6 1 [2 0] [4 4]] (REQUEST)

节点12转发请求

r 0.072153890 _10_ MAC --- 0 AODV 48 [0 ffffffff c 800] ------- [12:255 -1:255 25 0] [0x2 6 1 [2 0] [4 4]] (REQUEST)

r 0.072153891 _2_ MAC --- 0 AODV 48 [0 ffffffff c 800] ------- [12:255 -1:255 25 0] [0x2 6 1 [2 0] [4 4]] (REQUEST)

节点2收到请求,并发现自己是目标节点

s 0.073143891 _2_ MAC --- 0 ARP 35 [0 ffffffff 2 806] ------- [REQUEST 2/2 0/12] 节点2向节点12发出连接请求

r 0.075095921 _12_ MAC --- 0 ARP 28 [0 ffffffff 2 806] ------- [REQUEST 2/2 0/12] s 0.077340921 _12_ MAC --- 0 ARP 35 [0 2 c 806] ------- [REPLY 12/12 2/2] 节点12收到节点2发出的请求并返回请求 s 0.078844951 _2_ MAC --- 0 ACK 5 [0 c 2 0] r 0.079196982 _12_ MAC --- 0 ACK 5 [0 c 2 0]

节点2和节点12互相发送ack确认,建立连接

r 0.079836951 _2_ MAC --- 0 ARP 28 [0 2 c 806] ------- [REPLY 12/12 2/2]

s 0.081761951 _2_ MAC --- 0 AODV 51 [0 c 2 800] ------- [2:255 4:255 30 12] [0x4 1 [2 4] 10.000000] (REPLY)

节点2向节点12发送AODV返回请求

4.

s 0.086719982 _12_ MAC --- 0 ARP 35 [0 ffffffff c 806] ------- [REQUEST 12/12 0/10] ??

s 0.099336067 _10_ MAC --- 0 ARP 35 [0 ffffffff a 806] ------- [REQUEST 10/10 0/9] ??

s 0.110352207 _9_ MAC --- 0 ARP 35 [0 ffffffff 9 806] ------- [REQUEST 9/9 0/7] ??

s 0.123928351 _7_ MAC --- 0 ARP 35 [0 ffffffff 7 806] ------- [REQUEST 7/7 0/6] ??

s 0.135904455 _6_ MAC --- 0 ARP 35 [0 ffffffff 6 806] ------- [REQUEST 6/6 0/4] ??

一路Trace回去不断在中间节点建立连接具体顺序为2-12-10-9-7-6-4

4.

r 0.146570590 _4_ MAC --- 0 AODV 44 [0 4 6 800] ------- [2:255 4:255 25 4] [0x4 6 [2 4] 10.000000] (REPLY)

s 0.148220590 _4_ MAC --- 0 tcp 47 [0 6 4 800] ------- [4:0 2:0 30 6] [0 0] 0 0 节点4最后收到了返回请求,然后开始向2发送tcp报文

5.

r 0.174070853 _12_ MAC --- 0 ACK 5 [0 c 2 0]

r 0.174710823 _2_ MAC --- 0 tcp 40 [0 2 c 800] ------- [4:0 2:0 25 2] [0 0] 6 0

节点2收到来自节点4的tcp报文,节点2和节点4的连接建立完成,不断传输tcp报文

七、实验遇到的问题

对于AODV.tr文件即trace记录不是很能够理解并看懂,在阅读过无线Trace格式的说明书后,并结合图形化界面的模拟,基本明白了AODV路由协议的工作流程。 在NAM模拟中,有些转发的顺序和异常没有能够理解。

八、实验总结

基本掌握了AODV路由协议的工作流程,能够通过实验模拟AODV环境并说明其工作流程。基本掌握了利用NS2仿真实现AODV路由协议的方法。

实验2 DSR仿真

一、实验目的

1. 掌握无线自组织网络的组网方式和网络结构 2. 掌握DSR路由协议的实现过程和原理 3. 利用NS2平台仿真实现DSR协议

二、实验内容

本实验的内容在于利用NS2仿真实现DSR路由协议,模拟DSR环境。

DSR中移动节点都维护一个存放路由的快速缓冲区。每当某一移动节点要发送分组时,首先查询本地高速路由缓冲区,确定是否存在可用路由。如存在则沿路由发送数据,否则发送一个包含源和目标节点地址的路由请求分组,启动路由发现过程。中间节点收到该请求后,查询本地缓冲区,如无到达目标节点的路由,则将本节点地址加入请求分组后转发,直至将分组转发到目标节点或有到达目标节点路由的中间节点。该节点返回一个路由应答分组,包含了从源到目标路径上所有节点的序列。每个发送的数据分组中都将包含该路径节点序列。因此,中间节点不需保存路由信息,不再需要周期性路由广播和邻居发现。

四、实验环境

DSR仿真采用的实验平台为Cygwin + ns-allinone-2.34,在标准的ns2中已集成了相应的模块。

五、实验步骤

1.在“home/<用户名>/”目录下新建目录存放仿真脚本DSR.tcl和DSR_topo.scn。 2.在Cygwin中进入存放脚本的目录,输入ns DSR.tcl,回车运行。

3.若要以NAM方式运行仿真动画,则在Cygwin中输入startxwin进入启动XWin。 4.然后再输入ns DSR.tcl,则可看到仿真动画。

六、仿真现象描述与结果分析(包括实验截图)

1.

s 0.032047650 _4_ MAC --- 1 DSR 39 [0 ffffffff 4 800] ------- [4:255 12:255 32 0] 1 [1 1] [0 1 0 0->0] [0 0 0 0->0]

由节点4以DSR的方式发出请求,信息中包含源节点4和目标节点12

2.

r 0.034127677 _3_ MAC --- 1 DSR 32 [0 ffffffff 4 800] ------- [4:255 12:255 32 0] 1 [1 1] [0 1 0 0->0] [0 0 0 0->0]

r 0.034127695 _6_ MAC --- 1 DSR 32 [0 ffffffff 4 800] ------- [4:255 12:255 32 0] 1 [1 1] [0 1 0 0->0] [0 0 0 0->0]

s 0.062926416 _4_ MAC --- 2 DSR 39 [0 ffffffff 4 800] ------- [4:255 12:255 32 0] 1 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.065006444 _3_ MAC --- 2 DSR 32 [0 ffffffff 4 800] ------- [4:255 12:255 32 0] 1 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.065006461 _6_ MAC --- 2 DSR 32 [0 ffffffff 4 800] ------- [4:255 12:255 32 0] 1 [1 2] [0 2 0 0->0] [0 0 0 0->0]

s 0.068518604 _6_ MAC --- 2 DSR 55 [0 ffffffff 6 800] ------- [4:255 12:255 32 0] 2 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.071110639 _7_ MAC --- 2 DSR 48 [0 ffffffff 6 800] ------- [4:255 12:255 32 0] 2 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.071110643 _3_ MAC --- 2 DSR 48 [0 ffffffff 6 800] ------- [4:255 12:255 32 0] 2 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.071110649 _4_ MAC --- 2 DSR 48 [0 ffffffff 6 800] ------- [4:255 12:255 32 0] 2 [1 2] [0 2 0 0->0] [0 0 0 0->0]

s 0.075177614 _3_ MAC --- 2 DSR 55 [0 ffffffff 3 800] ------- [4:255 12:255 32 0] 2 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.077769642 _4_ MAC --- 2 DSR 48 [0 ffffffff 3 800] ------- [4:255 12:255 32 0] 2 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.077769653 _6_ MAC --- 2 DSR 48 [0 ffffffff 3 800] ------- [4:255 12:255 32 0] 2 [1 2] [0 2 0 0->0] [0 0 0 0->0]

s 0.082840706 _7_ MAC --- 2 DSR 75 [0 ffffffff 7 800] ------- [4:255 12:255 32 0] 3 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.086072736 _1_ MAC --- 2 DSR 68 [0 ffffffff 7 800] ------- [4:255 12:255 32 0] 3 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.086072740 _6_ MAC --- 2 DSR 68 [0 ffffffff 7 800] ------- [4:255 12:255 32 0] 3 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.086072753 _9_ MAC --- 2 DSR 68 [0 ffffffff 7 800] ------- [4:255 12:255 32 0] 3 [1 2] [0 2 0 0->0] [0 0 0 0->0]

s 0.092411721 _1_ MAC --- 2 DSR 99 [0 ffffffff 1 800] ------- [4:255 12:255 32 0] 4 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.096411752 _9_ MAC --- 2 DSR 92 [0 ffffffff 1 800] ------- [4:255 12:255 32 0] 4 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.096411752 _7_ MAC --- 2 DSR 92 [0 ffffffff 1 800] ------- [4:255 12:255 32 0] 4 [1 2] [0 2 0 0->0] [0 0 0 0->0]

s 0.098081665 _9_ MAC --- 2 DSR 99 [0 ffffffff 9 800] ------- [4:255 12:255 32 0] 4 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.102081695 _1_ MAC --- 2 DSR 92 [0 ffffffff 9 800] ------- [4:255 12:255 32 0] 4 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.102081711 _10_ MAC --- 2 DSR 92 [0 ffffffff 9 800] ------- [4:255 12:255 32 0] 4 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.102081712 _7_ MAC --- 2 DSR 92 [0 ffffffff 9 800] ------- [4:255 12:255 32 0] 4 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.102081714 _8_ MAC --- 2 DSR 92 [0 ffffffff 9 800] ------- [4:255 12:255 32 0] 4 [1 2] [0 2 0 0->0] [0 0 0 0->0]

s 0.112050117 _10_ MAC --- 2 DSR 127 [0 ffffffff a 800] ------- [4:255 12:255 32 0] 5 [1 2] [0 2 0 0->0] [0 0 0 0->0]

s 0.112711832 _8_ MAC --- 2 DSR 127 [0 ffffffff 8 800] ------- [4:255 12:255 32 0] 5 [1 2] [0 2 0 0->0] [0 0 0 0->0]

D 0.116306164 _9_ MAC LQI 2 DSR 127 [0 ffffffff a 800] ------- [4:255 12:255 32 0] 5 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.116946145 _12_ MAC --- 2 DSR 120 [0 ffffffff a 800] ------- [4:255 12:255 32 0] 5 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.117607853 _11_ MAC --- 2 DSR 120 [0 ffffffff 8 800] ------- [4:255 12:255 32 0] 5 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.117607858 _5_ MAC --- 2 DSR 120 [0 ffffffff 8 800] ------- [4:255 12:255 32 0] 5 [1 2] [0 2 0 0->0] [0 0 0 0->0]

r 0.117607869 _0_ MAC --- 2 DSR 120 [0 ffffffff 8 800] ------- [4:255 12:255 32 0] 5 [1 2] [0 2 0 0->0] [0 0 0 0->0]

s 0.118299599 _11_ MAC --- 2 DSR 159 [0 ffffffff b 800] ------- [4:255 12:255 32 0] 6 [1 2] [0 2 0 0->0] [0 0 0 0->0]

s 0.119772157 _5_ MAC --- 2 DSR 159 [0 ffffffff 5 800] ------- [4:255 12:255 32 0] 6 [1 2] [0 2 0 0->0] [0 0 0 0->0]

s 0.121300013 _0_ MAC --- 2 DSR 159 [0 ffffffff 0 800] ------- [4:255 12:255 32 0] 6 [1 2] [0 2 0 0->0] [0 0 0 0->0]

通过中间节点不断转发路由信息,直到最后节点12接收到请求

3.

s 0.121352184 _12_ MAC --- 0 ARP 35 [0 ffffffff c 806] ------- [REQUEST 12/12 0/10] ??

s 0.135952269 _10_ MAC --- 0 ARP 35 [0 ffffffff a 806] ------- [REQUEST 10/10 0/9] ??

s 0.149272409 _9_ MAC --- 0 ARP 35 [0 ffffffff 9 806] ------- [REQUEST 9/9 0/7] ??

s 0.163872553 _7_ MAC --- 0 ARP 35 [0 ffffffff 7 806] ------- [REQUEST 7/7 0/6] ??

s 0.176552657 _6_ MAC --- 0 ARP 35 [0 ffffffff 6 806] ------- [REQUEST 6/6 0/4] ??

一路Trace回去不断在中间节点建立连接具体顺序为12-10-9-7-6-4

4.

r 0.189202792 _4_ MAC --- 4 DSR 76 [0 4 6 800] ------- [12:255 4:255 250 4] 6 [0 2] [1 2 6 4->12] [0 0 0 0->0]

SFESTs 0.189227792 _4_ 0 [4 -> 12] 1(1) to 6 [4 |6 7 9 10 12 ]

s 0.190212792 _4_ MAC --- 0 tcp 99 [0 6 4 800] ------- [4:0 12:0 32 6] [0 0] 0 0 节点4最后收到了返回请求,然后开始向12发送tcp报文

5.

r 0.217292995 _12_ MAC --- 0 tcp 92 [0 c a 800] ------- [4:0 12:0 28 12] [0 0] 5 0 SFESTs 0.217317995 _12_ 6 [12 -> 4] 1(1) to 10 [12 |10 9 7 6 4 ]

s 0.218622995 _12_ MAC --- 6 ack 99 [0 a c 800] ------- [12:0 4:0 32 10] [0 0] 0 0

节点12收到tcp报文并返回ack,节点4和节点12连接建立完成,不断传输tcp报文

七、实验遇到的问题

对于DSR.tr文件即trace记录不是很能够理解并看懂,在阅读过无线Trace格式的说明书后,并结合图形化界面的模拟,基本明白了DSR路由协议的工作流程。 在NAM模拟中,有些转发的顺序和异常没有能够理解。

八、实验总结

基本掌握了DSR路由协议的工作流程,能够通过实验模拟DSR环境并说明其工作流程。基本掌握了利用NS2仿真实现DSR路由协议的方法。

(1) DSR协议如何进行路由发现和路由建立?

具体分别见上实验结果分析。

(2) DSR与其它自组织网络路由协议相比有何不同?试仿真分析之。

DSR中移动节点都维护一个存放路由的快速缓冲区。每当某一移动节点要发送分组时,首先查询本地高速路由缓冲区,确定是否存在可用路由。如存在则沿路由发送数据,否则发送一个包含源和目标节点地址的路由请求分组,启动路由发现过程。中间节点收到该请求后,查询本地缓冲区,如无到达目标节点的路由,则将本节点地址加入请求分组后转发,直至将分组转发到目标节点或有到达目标节点路由的中间节点。该节点返回一个路由应答分组,包含了从源到目标路径上所有节点的序列。每个发送的数据分组中都将包含该路径节点序列。因此,中间节点不需保存路由信息,不再需要周期性路由广播和邻居发现。

我们可以从以下几个方面对AODV和DSR定性比较:

1 算法基本类型:AODV采用逐跳路由的算法,每一个节点仅仅是记住下一跳;DSR使用源路由算法,每一个节点记住整个路由。

2 路径支持 :AODV单一路径;DSR多路径支持,一条路径损坏可以使用路由缓存中其他路径。

3 周期性广播 :AODV为了维护路由还周期性地发送Hello分组;DSR不需要周期性广播。 4 逻辑结构 :二者均是平面式路由,协议中所有节点地位平等。

5 单向链路支持 :AODV依赖于对称性的链路;DSR可以处理非对称性链路的网络。 6 路由获取时机 :DSR首先检查缓存是否存在未过期的到目的节点的路由,如果存在,则直接使用可用的路由,否则启动路由发现过程;AODV只要需要到新节点的路径就启动路由发现过程。

通过仿真比较AODV和DSR的结果:

在MANET中,路由协议AODV与DSR都是不错的选择。二者都有很高的分组递交率,同时路由开销也是可以接受的。

由于AODV报文开销小,在流量负载较高的情况下,应用AODV更好些;由于DSR路由开销小,且支持对称链路和多路由,所以在网络节点更换频繁情况下,DSR性能更优。因此应该根据实际情况的需要选择恰当的路由协议,以符合相应的环境。某些条件下必须考虑网络的大小和网络的拥塞程度,还可以把这些路由协议结合起来使用以更好地提供通信服务。

本文来源:https://www.bwwdw.com/article/issg.html

Top