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