当前位置:文档之家› 基于NS2平台AdHoc网络路由协议仿真分析 毕业论文

基于NS2平台AdHoc网络路由协议仿真分析 毕业论文

安徽建筑工业学院

毕业设计(论文)课题:基于NS2平台移动网络节点切换应用研究子课题:基于NS2平台AdHoc网络路由协议仿真分析专业:网络工程专业

班级: 07网络工程1班

学生姓名:

学号:

指导老师:

2011 年 6 月 2 日

目录

摘要 (3)

Abstract (4)

第一章概述 (5)

1.1 课题研究背景 (5)

1.2 AdHoc网络特点及其路由协议 (7)

1.2.1 AdHoc网络特点 (7)

1.2.2 AdHoc路由协议分类 (8)

1.3 选题意义 (9)

1.4 本文内容安排 (9)

第二章 TCP/UDP技术 (11)

2.1 TCP技术 (11)

3.2 UDP技术 (14)

第三章 AdHoc无线路由技术 (15)

第四章实验平台搭建 (18)

4.1 ubuntu实验环境 (18)

4.2 NS2的安装 (18)

4.2.1 NS2简介 (18)

4.2.2 NS2的安装 (19)

4.2.3 NS的仿真过程 (22)

第五章实验设计及实现 (23)

5.1关键代码的实现 (23)

5.2 程序运行 (24)

5.3 无线环境下吞吐量,延时和丢包测试 (26)

5.4 AdHoc路由对比分析 (31)

第六章总结 (41)

致谢 (43)

参考文献 (44)

附录 (46)

基于NS2平台下移动网络节点切换应用研究

——AdHoc网络路由协议的仿真分析

电子与信息工程学院网络工程专业 2007级1班张冠男

指导老师邱述威

摘要

Ad Hoc无线网络由一组无线移动节点组成,是一种不需要依靠现有固定通信网络基础设施的、能够迅速展开使用的网络体系,所需人工干预最少,是没有任何中心实体、自组织、自愈的网络;各个网络节点相互协作、通过无线链路进行通信、交换信息,实现信息和服务的共享;网络节点能够动态地、随意地、频繁地进入和离开网络,而常常不需要事先示警或通知,而且不会破坏网络中其他节点的通信。移动Ad Hoc网络节点可以快速地移动,必须既作为路由器又作为主机,能够通过数据分组的发送和接收而进行无线通信。因此,网络节点在网络中的位置是快速变化的,缺少通信链路的情况也是经常发生的。无线路由策略就显得很重要,AdHoc无线网络路由协议的特殊性,近年来提出了多种Adhoc网络路由协议,IETF的MANET工作小组目前正专注于AdHoc网络路由协议的研究,提出了许多协议草案,如DSR,AODV,ZRP等路由协议;另外,专业研究人员也发表了大量关于AdHoc网络路由协议的相关文章,提出了许多关于AdHoc的网络路由协议,如DSDV,WRP等根据路由触发原理,目前的路由协议大致可以分为先验式路由协议?反应式路由协议和混合式路由协议3种。

关键字:AdHoc网络,先验式,反应式,混合式

Abstract

Ad Hoc wireless network by a group of wireless mobile nodes, is a fixed communication network does not need to rely on existing infrastructure that can quickly expand network system used,Human intervention required at least, is no central entity, self-organization, self-healing network;Mutual cooperation in various network nodes, to communicate via wireless link to exchange information to achieve the sharing of information and services; network node to dynamically and free.Mobile Ad Hoc network node can quickly moving, and must not only as a router and as host, can pass the sending and receiving data packet and wireless communication. Therefore, network nodes in a network of rapid change the position is the lack of communication link, also often happen. Wireless routing strategies appears very important, AdHoc the particularity of the wireless network routing protocols in recent years, puts forward many AdHoc network routing protocols, the IETF MANET working group is currently focused on AdHoc network routing protocol of research, puts forward many protocols, like AODV, ZRP DSR, such routing protocol;In addition, professional researchers have also published AdHoc network routing protocol on a large, and puts forward the relevant article about many of AdHoc network routing protocols, like DSDV, according to the principle WRP etc, the current routing trigger routing protocol can be roughly divided into a priori type routing protocol? Reactive routing protocols and hybrid routing protocol 3 kinds.

Key word : AdHoc networks, transcendental type, reactive type, hybrid type

第一章概述

TCP/UDP技术广泛应用于现代通信网络中,担负着数据传输的重要任务。随着网络技术的发展,用户终端不仅可以在固定网络中享受Internet 的各项服务,而且可以在任何时候、任何地点通过无线网络切换享受网上冲浪的便捷。但是在切换过程中,系统链路会出现丢包和延迟等现象。影响这些的关键因素就是无线网络的路由策略问题,无线路由策略严重影响其网络性能。所以,分析TC/UDPP协议下无线通信网络路由策略的各种性能是十分有必要的

无线网络通常可以分为有中心网络和无中心网络,前者需要固定基础设施的支持,移动主机之间的通信通常借助基站来完成,例如蜂窝移动通信系统;后者主要是指移动Ad hoc网络,它不需要固定的基础设施,能够快速地自动组网。与有中心网络相比,Ad hoc网络灵活、健壮、投资少,特别适合于作战指挥、抢险救灾以及应付突发事件和执行临时任务的场合。在Ad hoc网络中,每个移动节点兼备路由器和主机两种功能。作为主机,移动节点需要运行面向用户的应用程序;作为路由器,它需要运行相应的路由协议,根据路由策略和路由表参与数据分组转发工作和路由维护工作。考虑到Ad hoc网络中节点是移动的,网络的拓扑结构不断变化,传统的用于因特网的路由协议(如RIP、OSPF等)无法适应Adhoc网络的实际需要,同时由于移动节点的计算能力和存储容量较低并且能源受限,要求路由协议尽量简单,这又增加了Ad hoc网络中路由协议设计的难度。

1.1 课题研究背景

TCP/UDP协议的概述

TCP协议由IETF 组织在上世纪八十年代提出,其英文全称是Transmission Control Protocol ,中文翻译为传输控制协议。TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议。TCP的工作方式是采用三次握手的传输机制,在因特网协议族

中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。

UDP 是User Datagram Protocol的简称,中文名是用户数据包协议,是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。它是IETF RFC 768是UDP的正式规范。UDP 协议基本上是IP协议与上层协议的接口。UDP协议适用端口分别运行在同一台设备上的多个应用程序。在网络中它与TCP协议一样用于处理数据包。

面向连接的TCP

“面向连接”就是在正式通信前必须要与对方建立起连接。一个TCP 连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂。首先主机A向主机B发出连接请求数据包,这是第一次对话;主机B向主机A 发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包,这是第二次对话,主机A再发出一个数据包确认主机B的要求同步,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。

TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。

面向非连接的UDP

“面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。UDP与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!

UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。正因为UDP协议没有连接的过程,所以它的通信效果高;但也正因为如此,它的可靠性不如TCP协议高。

TCP协议和UDP协议各有所长、各有所短,适用于不同要求的通信环

境。TCP协议和UDP协议之间的差别如表1-1所示:

表 1-1 TCP协议和UDP协议

TCP协议中包含了专门的传递保证机制,当数据接收方收到发送方传来的信息时,会自动向发送方发出确认消息;发送方只有在接收到该确认消息之后才继续传送其它信息,否则将一直等待直到收到确认信息为止。与TCP不同,UDP协议并不提供数据传送的保证机制。如果在从发送方到接收方的传递过程中出现数据报的丢失,协议本身并不能做出任何检测或提示。UDP协议称为不可靠的传输协议。相对于TCP协议,UDP协议的另外一个不同之处在于如何接收突发性的多个数据报。UDP并不能确保数据的发送和接收顺序。事实上,UDP协议的这种乱序性基本上很少出现,通常只会在网络非常拥挤的情况下才有可能发生。

1.2 AdHoc网络特点及其路由协议

1.2.1 AdHoc网络特点

Ad Hoc无线网络由一组无线移动节点组成,是一种不需要依靠现有固定通信网络基础设施的、能够迅速展开使用的网络体系,所需人工干预最少,是没有任何中心实体、自组织、自愈的网络;各个网络节点相互协作、通过无线链路进行通信、交换信息,实现信息和服务的共享;网络节点能够动态地、随意地、频繁地进入和离开网络,而常常不需要事先示警或通知,而且不会破坏网络中其他节点的通信。移动Ad Hoc网络节点可以快速地移动,必须既作为路由器又作为主机,能够通过数据分组的发送和接收而进行无线通信。因此,网络节点在网络中的位置是快速变化的,缺少通信链路的情况也是经常发生的。

Ad Hoc无线网络是一种移动通信和计算机网络相结合的网络,网络中的每个节点都兼有路由器和主机两种功能。AdHoc网络的特点主要体现在以下4方面:

1.动态变化的网络拓扑结构:AdHoc网络中没有固定的通信设施和中

央管理设备,网络节点可以随机地以任意速度朝任何方向移动,

加上无线发射装置发送功率的变化、环境的影响以及信号之间的

互相干扰等因素,都会造成网络拓扑结构的动态变化。

2.有限的资源:提供给AdHoc网络中移动主机的工作能量是有限的,

而且移动主机损耗能量越多,将降低AdHoc网络功能;另一方面,

网络本身提供带宽有限以及信号之间的冲突和干扰,使移动主机

可得到的有限的传输带宽将远远小于理论上的最大带宽。

3.多跳通信:两个网络节点由于受到可用资源的限制,不能处在同

一个覆盖网络内,可采用AdHoc网络多跳通信,实现不同覆盖网络

之间的源主机与目的主机之间的通信。

4.较低的安全性:AdHoc网络节点间通信通过无线信道,传输的信息

非常容易受到监听、重发、篡改、伪造等各种攻击,如果路由协

议一旦遭受到上述恶意攻击,整个自组网络将无法正常工作。这

些特点对设计AdHoc网络路由算法提出了特殊的要求,一个合理的

路由算法必须考虑有限的网络资源、动态变化的网络拓扑结构、

提高网络吞吐量等方面的因素。

1.2.2 AdHoc路由协议分类

AdHoc网络的路由协议大致可以分为先验式(Proactive)路由协议、反应式(Reactive)路由协议以及混合式路由协议。先验式路由协议又称为表驱动路由协议,在这种路由协议中,每个节点维护一张包含到达其它节点的路由信息的路由表。当检测到网络拓扑结构发生变化时,节点在网络中发送更新消息,收到更新消息的节点将更新自己的路由表,以维护一致的、及时的、准确的路由信息,所以路由表可以准确地反映网络的拓扑结构。源节点一旦要发送报文,可以立即获得到达目的节点的路由。因此

这种路由协议的时延较小,但是路由协议的开销较大;反应式路由协议,又称为按需路由协议,是一种当需要发送数据时才查找路由的路由算法。在这种路由协议中,节点不需要维护及时准确的路由信息,当向目的节点发送报文时,源节点才在网络中发起路由查找过程,找到相应的路由。与先验式路由协议相比,反应式路由协议的开销较小,但是数据报传送的时延较大。在Ad hoc网络中单纯采用先验式或反应式路由协议都不能完全解决路由问题。在高速动态变化的Ad hoc网络中,使用单纯的先验式路由协议会产生大量的控制报文,并且很多控制报文经常是无用的;如果单独采用反应式路由协议,需要为每个报文查找路由,这也是不合理的(特别是当连续向某个目的节点发送多个报文时)。由此可见,应用结合先验式和反应式路由协议优点的混合式路由协议是一种较好的折衷方案。在局部范围内使用先验式路由协议,维护准确的路由信息,并可缩小路由控制消息传播的范围,当目标节点较远时,通过查找发现路由,这样既可以减少路由协议的开销,时延特性也得到了改善。

1.3 选题意义

Ad Hoc路由的研究是目前移动网络的重要任务。针对不同的研究方法,研究人员分别从不同的控制机制入手,试想从单方向的改进或者提出新的办法。随着MIPv6技术研究的不断推进和网络不断实施,提高无线路由的性能显得非常紧迫。但是究竟现有的控制机制在目前的网络中性能如何,存在的问题在本文就目前已经使用的反应式和先验式无线路由协议进行分析,并作了综合比较,并且在无线网络中通过NS2模拟做了详细的分析,这对以后研究无线传输具有重要的意义。

1.4 本文内容安排

论文第一章概括性的叙述了TCP/UDP协议、AdHoc网络特点及其路由协议为深入研究无线路由协议的性能提供了理论基础。

第二章分析了TCP技术的内容,分别从TCP的包的类型、工作方式、与UDP业务的比较、四种拥塞控制算法的分析等方面做了详细的分析,这

对于研究无线路由的各项性能是十分重要的,也是研究的基础。

第三章是整个论文的重点,详细介绍了无线路由技术的内容,分别就典型的四种无线路由协议做了详细的分析。为第五章的实验设计提供理论基础和指导。

第四章主要是ubuntu环境的介绍,NS2软件的介绍,实验平台的搭建过程。

第五章也是本文的重点,主要是实验程序的设计,实验的进行,包括详细的实验步骤,获取数据,这是本文分析无线传输延迟、吞吐量、丢包和无线路由性能的主要实践依据。有大量的数据都在这一章中得出。

第六章是本文的总结,包括研究过程中存在的各种问题,对研究的总结,未来的展望。

第二章 TCP/UDP技术

2.1 TCP技术

TCP报文是TCP层传输的数据单元,也称为报文段。格式如表3-1所示:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

表2-1 TCP报文首部格式

TCP就是根据其特殊的报文结构,在传输的过程中检测和判断报文的

丢失与否。由于其报文中含有多项确认标志,它所提供的服务都是端对端的,可靠的,面向连接的服务,适合于多种要求稳定的传输业务,例如FTP业务是最常见的一种。

1. TCP的工作方式

TCP提供可靠的连接服务,采用三次握手确认建立连接:位码即TCP标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence number(顺序号码) Acknowledge number(确认号码)。

举例说明,TCP客户端需要和TCP服务端建立连接,过程如图2-1所示:

图2-1 TCP 三次握手过程

2. TCP 传输控制策略

TCP 传输数据时,当传输窗口cwnd 的数据量大于可接收窗口cwnd ,这时候大量数据积压在传输窗口,出现数据拥塞,导致丢包;TCP 每传输出一个数据包后都会等待接收方的ACK 确认信息才决定是否重传这部分数据,当TCP 在超过正常的RTT (一个回环时间)内没有收到对方的ACK ,它将继续传输这部分数据,直至收到ACK 信息。这两种情况都会导致TCP 数据吞吐量大量下降,严重影响网络性能。为了解决这个问题,TCP 加入了拥塞控制策略,包括慢启动、拥塞避免、快速重传和快速恢复四种算法。算法中主要用到三个窗口变量:

(1)拥塞窗口(cwnd):限定源端在拥塞控制中在一定时间内允许传送的最大数据量,是来自源端的流量控制。

(2)通告窗口(awnd):连接建立及传输过程中,接收端向源端通告的最大可接收速率,是来自接收端的流量控制。

(3)有效窗口(win):源端数据发送的实际窗口大小,限定为win =min(cwnd ,awnd)。

TCP 拥塞控制的四个阶段:

启动阶段

当连接刚建立或超时时,进入慢启动阶段。当新建TCP

连接时,拥塞

close

listen

窗口(cwnd)被初始化为一个数据包大小。源端按cwnd大小发送数据,每收到一个ACK确认,就增加一个数据包发送量,这样慢启动阶段cwnd随RTT 呈指数级增长。慢启动采用逐渐增大cwnd的方法,可以防止TCP在启动一个连接时向网络发送过多的数据包而造成不必要的数据丢失和网络拥塞,并且它还能够避免采用单纯的AIMD算法造成的吞吐量增加过慢的问题。为了防止cwnd的无限制增长引起网络拥塞,引入一个状态变量:慢启动阈值ssthresh。

当cwnd

当cwnd>ssthresh时,使用拥塞避免算法,减缓cwnd的增长速度。拥塞避免阶段

当TCP源端发现超时或收到3个相同的ACK确认帧时,即认为网络将发生拥塞,此时进入拥塞避免阶段。在拥塞避免阶段,慢启动域值ssthresh将被设置为当前cwnd的一半,当发生超时时,cwnd被置为初始值1。此时,如果cwnd =ssthresh,则执行拥塞避免算法,即cwnd在每次收到一个ACK确认时只增加1/cwnd个数据包。拥塞避免阶段cwnd随RTT呈线性增长。

快速重传和快速恢复阶段

在拥塞避免阶段,当数据包超时时,cwnd被置为1,重新进入慢启动阶段,这会导致过大地减小发送窗口尺寸,降低TCP连接的吞吐量。因此,引入了快速重传和快速恢复机制。在快速重传阶段,当源端收到3个或3个以上重复的ACK时,就判定数据包丢失,同时将ssthresh设置为当前cwnd的一半,并重传丢失的包,进入快速恢复阶段。在快速恢复阶段,每收到重复的ACK,则cwnd加1;收到非重复ACK时,置cwnd=ssthresh,转入拥塞避免阶段;如果发生超时重传,则置ssthresh为当前cwnd的一半,cwnd=1,重新进入慢启动阶段。这种方法避免了数据包超时后就重新进入慢启动阶段,提高了TCP连接的吞吐量。

3.2 UDP技术

UDP报头由4个域组成,其中每个域各占用2个字节,具体如表3-1:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1819 20 21 22 23 24 25 26 27 28 29 30 31

表3-1 UDP报头结构

UDP协议使用端口号为不同的应用保留其各自的数据传输通道。UDP和TCP协议正是采用这一机制实现对同一时刻内多项应用同时发送和接收数据的支持。数据发送一方(可以是客户端或服务器端)将UDP数据报通过源端口发送出去,而数据接收一方则通过目标端口接收数据。有的网络应用只能使用预先为其预留或注册的静态端口;而另外一些网络应用则可以使用未被注册的动态端口。因为UDP报头使用两个字节存放端口号,所以端口号的有效范围是从0到65535。一般来说,大于49151的端口号都代表动态端口。数据报的长度是指包括报头和数据部分在内的总字节数。因为报头的长度是固定的,所以该域主要被用来计算可变长度的数据部分(又称为数据负载)。数据报的最大长度根据操作环境的不同而各异。从理论上说,包含报头在内的数据报的最大长度为65535字节。不过,一些实际应用往往会限制数据报的大小,有时会降低到8192字节。

UDP协议使用报头中的校验值来保证数据的安全。校验值首先在数据发送方通过特殊的算法计算得出,在传递到接收方之后,还需要再重新计算。如果某个数据报在传输过程中被第三方篡改或者由于线路噪音等原因受到损坏,发送和接收方的校验计算值将不会相符,由此UDP协议可以检测是否出错。这与TCP协议是不同的,后者要求必须具有校验值。许多链路层协议都提供错误检查,包括流行的以太网协议,也许想知道为什么UDP也要提供检查和。其原因是链路层以下的协议在源端和终端之间的某些通道可能不提供错误检测。虽然UDP提供有错误检测,但检测到错误时,UDP不做错误校正,只是简单地把损坏的消息段扔掉,或者给应用程序提供警告信息。

第三章 AdHoc无线路由技术

4种典型的AdHoc网络路由算法:

1.目的序列距离矢量路由协议(DSDV)

DSDV对Bellman-Ford路由算法进行了改进。在DSDV中,每个移动节点都需要维护一个路由表。路由表表项包括目的节点、跳数和目的地序号,其中目的地序号由目的节点分配,主要用于判别路由是否过时,并可防止路由环路的产生。每个节点周期性必须与邻节点交换路由信息,当然也可以根据路由表的改变来触发路由更新。路由表更新有两种方式:一种是全部更新(Fulldump),即拓扑更新消息中将包括整个路由表,主要应用于网络变化较快的情况;另一种方式是部分更新(Incrementalupdate),更新消息中仅包含变化的路由部分,通常适用于网络变化较慢的情况。在DSDV中只使用序列号最高的路由,如果两个路由具有相同的序列号,那么将选择最优的路由(如跳数最短)。NS实现DSDV 路由协议的具体策略如下:一个没有找到路由的分组到达节点后首先被缓存,同时节点发送路由查询消息,直到接收到来自接收端的路由响应消息。当缓存溢出时,新来的分组将被丢弃。分组到达目的节点后将直接由地址解复用器送到相应的端口,而后由端口将分组送到目的代理。

2.动态源路由协议(DSR)

DSR是一种基于源路由的按需路由协议,它使用源路由算法而不是逐跳路由的方法。DSR主要包括两个过程:路由发现和路由维护。当节点S向节点D发送数据时,它首先检查缓存是否存在未过期的到目的节点的路由,如果存在,则直接使用可用的路由,否则启动路由发现过程。具体过程如下:源节点S将使用洪泛法发送路由请求消息(RREQ),RREQ包含源和目的节点地址以及唯一的标志号,中间节点转发RREQ,并附上自己的节点标识。当RREQ消息到达目的节点D或任何一个到目的节点路由的中间节点时(此时,RREQ中已记录了从S到D或该中间节点的所经过的节点标识),D或该中间节点将向S发送路由应答消息(RREP),该消息中将包含

S到D的路由信息,并反转S到D的路由供RREP消息使用。此外,中间节点也可以使用路由缓存技术(Routing Cache)来对协议作进一步优化。DSR 的优点:①节点仅需要维护与之通信的节点的路由,减少了协议开销;②使用路由缓存技术减少了路由发现的耗费;③一次路由发现过程可能会产生多条到目的点的路由。DSR的缺点:①每个数据报文的头部都需要携带路由信息,数据包的额外开销较大;②路由请求消息采用洪泛方式,相邻节点路由请求消息可能发生传播冲突并可能会产生重复广播;③由于缓存,过期路由会影响路由选择的准确性。NS实现的DSR协议中,采用DSR 的节点与其它移动节点有些不同,在DSR节点中,所有分组被送到路由代理,路由信息可通过数据分组进行捎带确认。

3.临时按序路由算法(TORA)

TORA是一个基于链路反转方法的自适应的分布式路由算法,主要用于高速动态的多跳无线网络。作为一个由源端发起的按需路由协议,它可以找到从源到一个目的节点的多条路由。TORA的主要特点是:当拓扑发生改变时,控制消息只在拓扑发生改变的局部范围传播。因此,节点只需维护相邻节点的路由信息。协议由3部分构成:路由产生、路由维护和路由删除。初始化时,目的节点的高度(即传播序列号)被置为0。然后由源端广播一个含有目的节点ID的QRY分组,一个高度不为0的节点响应一个UPD 分组。收到UPD分组的节点的高度将比产生该UPD分组的节点的高度大1,并且具有较大高度值的节点被规定为上游节点。通过这种方式能够创建一个从源到目的节点的一个有向无环路图(DAG)。当节点移动时,路由需要重建。在路由删除阶段,TORA通过广播一个CLR分组来删除无效的路由。TORA存在的一个问题是当多个节点同时进行选路和删除路由时会产生路由振荡现象。NS中,每个节点为所有可能的目的节点运行一个分离的TORA进程。TORA运行在IMEP(IMEP:InternetMANETEncapsulation Protocol)之上,IMEP主要用来提供路由消息的可靠传送并可以向邻居节点通知链路的改变。

4. Ad Hoc按需距离矢量路由协议(AODV)

AODV是DSDV算法的改进,但它与DSDV的区别在于它是反应式路由协

议。为了找到通往目的节点的路由,源端将广播一个路由请求分组,邻居节点依次向周围节点广播此分组直到该分组被送到一个知道目的节点路由信息中间节点或目的节点本身。一个节点将丢弃重复收到的请求分组,路由请求分组中的序列号用来防止路由环路,并能判断中间节点是否响应了相应的路由请求。当节点转发路由请求分组时,它会将其上游节点的标志ID录入路由表,从而能够构建一条从目的节点到源节点的反向路由。当源端移动时,它会重新发起路由发现算法;如果中间节点移动,那么与其相邻的节点会发现链路失效并向其上游节点发送链路失效消息并一直传到源节点,而后源节点根据情况重新发起路由发现过程。NS中,AODV的实现组合DSR和DSDV协议。它既具有DSR协议的路由发现和路由维护功能,同时又使用了DSDV采用的逐跳路由、序列号和Beacon消息。

第四章实验平台搭建

4.1 ubuntu实验环境

Ubuntu是Linux的一个版本,是一款免费的操作系统,Ubuntu 项目完全遵从开源软件开发的原则;并且鼓励人们使用、完善并传播开源软件。也就是Ubuntu目前是并将永远是免费的。任何人可以任意方式下载、修改、修正和使用组成自由软件的代码。因此,除去自由软件常以免费方式提供这一事实外,这种自由也有着技术上的优势:进行程序开发时,就可以使用其他人的成果或以此为基础进行开发。对于非自由软件而言,这点就无法实现,进行程序开发时,人们总得白手起家。基于上述原因,自由软件的开发是迅捷、高效和激动人心的!用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变。这让Linux吸收了无数程序员的精华,不断壮大。NS2在linux环境下运行比在windows下更稳定,出现更少的错误,还可以更改linux内核,使得仿真效果更好。

4.2 NS2的安装

4.2.1 NS2简介

NS 是Network Simulator 的英文缩写,字面翻译即为网络模拟器,又称网络仿真器。NS2 则是网络仿真器的第2 版,它是一种面向对象的网络仿真器,本质上是一个以离散事件模拟器,其本身有一个虚拟的时钟,所有的仿真都是由离散事件驱动的。

目前NS2可以用于仿真各种不同的通信网络。它功能强大,模块丰富,已经实现的一些仿真模块有:网络传输协议,如TCP和UDP;业务源流量产生器,

如FTP、Telnet、Web CBR和VBR;路由队列管理机制,如Droptai、RED和CBQ;路由算法,如Dijkstra,以及无线网络的WLAN,Ad hoc路由,移动IP和卫星通信网络等。NS2也为进行局域网的仿真而实现了多播以及一些MAC子层协议。

NS2使用了被称为分裂对象模型的开发机制,采用C++和Otcl两种开发语言进行开发。仿真用户只要通过简单易用的Tcl/OTcl脚本编写出仿真代码,对仿真拓扑、节点、链路等各种部件和参数进行方便快速的配置。NS可以说是Otcl的脚本解释器,它包含仿真事件调度器、网络组件对象库等。网络组件模拟网络设备或节点的通信,他们通过制定仿真场景和仿真进程,交换特定的分组来模拟真实网络情况,并将执行情况记录到日志文件(称为Trace文件)中,以提供给仿真用户进行分析解读,获取仿真结果。NS采用这种分裂模型即提高了仿真效率,加快了仿真速度,又提供了仿真配置的灵活性和操作的简便性。

4.2.2 NS2的安装

NS2在ubuntu中的安装步骤如下:

1. 下载ns-allinone-

2.31.tar.gz 并解压(tar–xzvfns-allinone-2.31.tar.gz)

2. 选择安装位置:将解压缩得到的ns-allinone-2.31文件夹剪切到你的文件夹下(既想要安装到的位置)

3. 在终端里安装:

(1).打开一个终端(位置:应用程序>系统工具>终端);

在终端里输入sudo-i,回车;按提示输入密码,回车,进入root限操作;(2). 下载并安装下一步安装ns -2.31时所必需的系统包:

首先,在终端里输入apt-get install build-essential进行下载、安装,这一步是为了gccand some essential的安装,如图4-1:

图4-1 安装build-essential

接着,在终端里输入apt-get install tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev进行下载、安装,这一步是为了tcland tk的安装,如图4-2:

图4-2 安装tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev 最后,在终端里输入apt-get install libxmu-dev进行下载、安装,这一步是为了nam的安装,图4-3。

相关主题
文本预览
相关文档 最新文档