预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

小议基于嵌入式Linux操作系统的AODV路由协议 1.引言 无线AdHoc网,又称移动多跳无线网、移动分组无线网、无线自组网等,是一种无中心、不需要固定基础设施支持的无线网络。它是由一组带有 无线收发装置的移动终端组成的一个多跳无线网络,不依赖于固定基础设施,网络中的移动终端通过自身的无线收发设备来收发信息。当通信终端 不在彼此通信范围时,可以借助其它的中间终端节点进行数据转发,从而构成多跳网络。因此,AdHoc网络的移动终端兼备主机和路由器的功 能。 由于无线AdHoc网络的无中心、自组织、节点可移动等特点,AdHoc具有可以快速临时组网、无须架设基础设施、网络抗毁性强等优点,目前 的应用领域包括军事通信、灾后应急部署与野外作业、传感器网络、个人通信、与移动通信系统结合等。AODV协议是AdHoc网络的主流路由协 议之一。 2.AODV路由协议 AODV实际上是DSR(DynamicSourceRoutingProtocol)和DSDV(Destination-SequencedDistance-Vector)的综合,以DSDV为基础,采 用DSR中的按需路由思想进行改进。它采用了DSR中路由发现和路由维护的基础原理,结合了DSDV的逐跳(hop-by-hop)路由,顺序编号和 路由维护阶段的周期更新机制。与DSDV保存完整的路由表不同的是,基于按需路由思想的AODV只有在有需要的时候才建立路由,这与DSDV 相比的好处是能减少大量维护路由所需的开销。与DSR相比,AODV的优势在于源路由并不需要包括在每一个数据分组中,这样能减少路由协议 的开销。AODV协议可以实现在移动终端动态的、自发的路由,使移动终端很快的获得通向所需目的地的路由,而且不用维护当前没有使用的路 由信息,还能对链路状态和拓扑的变化做出快速的反应。AODV使用路由请求序列号来保证无环路。避免了通常Bellman-foul算法的无穷计数 (count-to-infinite)的问题,并且提供了很快的收敛速度。鉴于AODV路由协议功能强大而又便于实现的优点,故其成为嵌入式系统下移植Ad Hoc协议的首选。 3.嵌入式Linux系统 3.1Linux系统的网络系统体系结构简介 实现AODV协议,主要是利用Linux的网络系统,利用其TCP/IP协议栈的处理机制。从整体上看,基于TCP/IP的Linux网络系统基本可以分 为BSD套接口层、INET套接口层、传输层、网络层和设备接口五个部分。 套接字(Socket)的产生是为了方便互联网应用程序的编程,它为应用程序提供统一的接口,应用程序使用套接字接口来实现网络通信。BSD套 接口就是向上为应用程序提供的一种统一接口。在BSD套接字下,根据不同的协议族有不同的套接字与之相连。INET是处理Internet协议的套接 字。它提供处理TCP和UDP或直接处理IP数据报文的接口。网络层用于实现IP协议。而IP层与各种网络硬件设备的交互是由设备接口来完成 的。 3.2网络接口Netfilter Netfilter是Linux2.4内核提供的包过滤框架。Netfilter可以在内核空间非常高效地进行包过滤,网络地址转换(NAT)和包重组。它提供了一个抽 象、通用化的框架。该框架包括以下三个部分: 1)为每种网络协议(IPv4等)定义一套钩子函数,这些钩子函数在数据分组流经协议栈的几个关键监测点时被调用。这些关键点称为hook点。 在这几个hook点中,协议栈将把数据分组及钩子函数标号作为参数调用Netfilter框架。 2)内核的任何模块可以对每种协议的一个或多个钩子进行注册,实现挂接,这样当某个数据分组被传递给Netfilter框架时,内核能检测出是否有 模块对该协议和钩子函数进行了注册。若已经进行注册,则按优先级调用该模块注册时使用的回调函数,这样这些模块就有机会检查、修改、丢弃 该分组或指示Netfilter将该分组缓存到用户空间的队列。 3)那些被传递到用户空间的数据可以被用户进程处理。处理后将该数据分组重新注入到内核协议栈中进行再次处理。 对于IPv4协议Netfilter提供了五个监测点,具体的定义如下: NF_IP_PRE_RUTING:刚刚进入网络层的数据分组通过此监测点(刚刚进行完版本号,校验和等检测),源地址转换在此点进 行;NF_IP_LOCAL_IN:经路由查找后,送往本机的数据包通过此监测点;NF_IP_FORWARD:要转发的数据分组通过此检测 点;NF_IP_POST_ROUTING:所有马上将要通过网络设备出去的数据分组通过此检测点,内置的目的地址转换功能(包括地址伪装)在此点进 行;NF_IP_LOCAL_