Ad hoc网络作为一种新型的具有多跳性、自组织性、无中心点,不需要基础通信设施等特性的网络。它已经开始被作为下一代通信网络的应用方案之一。
本课题的目标是实现在Linux平台上利用NS仿真软件,实现对使用DSR路由协议的Ad hoc网络进行TCP传输FTP数据情况的仿真。为实现本课题目标主要进行了如下工作:
(1) 查阅大量与Ad hoc网络相关的资料,对Ad hoc网络中的DSR路由协议进行了解;
(2) 熟悉Linux操作系统,并掌握Linux操作系统的基本shell命令;
(3) 熟悉并掌握NS仿真软件的使用方法,和NS中的Tcl、awk脚本语言;
(4) 利用Tcl脚本语言编写网络仿真程序并生成tr文件和nam文件,运行nam文件可以看见网络中节点和链路的运行情况。
(5) 利用NS中gawk功能编写网络性能分析程序,用已编写好的分析程序对仿真后生成的tr文件进行分析,并用NS中的gunplot功能把分析结果绘制成图,通过图表对仿真网络性能进行分析。
实现本课题的重点就是在相同的场景下,在利用DSR协议的Ad hoc网络中建立不同数量的TCP链路传输FTP文件情况进行分别仿真。从分析的结果情况看:每种情况的投包率都在99%以上,这是因为每个节点向下一个节点发送数据分组后,如在指定时间内没有收到下一个节点的确认消息,将继续发送这个数据分组,直到数据发送次数超过一定量才丢弃,所以各情况之间的相互差距很小。网络端到端延时短,是因为每个分组包都含有完整路由信息从而减小了端到端延时。网络中部分节点的丢包数和转发包数随着链路数量的增加而增加,是因为同一个节点位于几条不同链路中,为多条链路转发数据。
本论文中引用了大量参考文献,通过这些文献对Ad hoc网络情况有了较深入的了解和认识。尤其是对Ad hoc网络中的DSR路由协议实现过程已基本掌握。现在的Ad hoc网络研究还属于前沿研究,现在的研究成果还主要集中在实验室中的测试,还没有在大面积的真实环境中进行实际的测试。现在已经提出的路由协议在实际中的表现情况还有待观察,Ad hoc网络还有很多不够完善的地方需要解决。本论文也存在很多的不足之处,需要进一步完善增加仿真的项目,时仿真得到的结果更合理。
通过对仿真Ad hoc网络的结果分析可以看出随着链路的增加,网络中链路性能没有出现明显下降,每条投包率基本上维持在99%,丢包数量极少。因为DSR是按需路由协议只有在发送数据的时候才建立连路,并且在每个节点都含有重发缓存来存放发往下一个节点地数据,在没有收到下一节点回复与所发送数据包对应的ACK分组,节点会重发数据直到发送数据次数超过一定量才会丢弃。另一个原因就是TCP协议是一个面向连接的,可靠的传输协议,保证高的投包率。分析网络端到端延时可以看见有些链路出现有部分数据包延时较长,这主要是由两种原因引起的,第一种是源节点没有到目的节点路由时,需要发起路由发现过程引起较长的延时,另一种情况网络中节点在不断运动使源节点到目的节点的链路出现断裂,需要重新发起路由发现过程而引起较长的延时情况。对链路计算平均延时可以看出链路在平均延时都很小,没有出现较大的抖动。三种情况总体的端到端延时都很短,这是因为网络中一个路由不能被使用时,源节点可以使用在缓存中的其它路由而不用重新发起路由发现过程,还有每个分组都包都携带有全部的路由信息,可以减少分组等待节点寻找下一跳节点所用的延时,可以看出DSR协议的很适用于Ad hoc网络。网络中有些节点的转发包数量很高,通过nam动画演示观察可以发现这些节点是链路的中间节点,对链路中的数据进行转发,当然这些节点的丢包数量也较其他节点多。同时网络中有些节点离源节点和目的节点较远,所以没有进入到链路中去,这些节点的转发包数量就为零也没有丢包出现。随着链路数量的增加,部分节点的丢包数和转发包数也跟随增加,这主要是由于部分节点处于几条不同的链路当中,它们为这几条链路转发数据,所以丢包数和转发包数伴随着链路数量的增加而增加。比较三种情况分析中发现随着链路的增加,部分链路发送数据量出现下降,而新增加的链路发送数据量很高。
总体来说,利用DSR协议的Ad hoc网络的网络性能高,有较高的投包率,较低的丢包率和数据错误,而且链路的延时没有受到链路增加有较大的影响基本维持在很低的水平。节点的移动会引起链路的断裂,源节点在路由缓存中查找其它到目的节点路由,如果路由缓存中有其它路由存在就不需要重新发起路由发现过程,这样就减小路由开销。但是由于DSR 协议设计上也存在缺点,DSR中的每一个分组都携带全部路由信息使网络开销较大,DSR要纪录所有路由信息,这样就会消耗大量的缓存。