关 闭

新闻中心

EEPW首页>工控自动化>设计应用> Ad hoc路由协议实现研究

Ad hoc路由协议实现研究

作者: 时间:2009-09-24 来源:网络 收藏

(3)转发与路由混合有些路南协议转发和路由功能没有明显界线,如DSR。该协议要求每个分组(不只是路由控制分组)必需携带一个特殊的DSR头以供用户空间中的DSR守护进程处理。该路由和转发功能结合的方式与现代操作系统内部的路由体系结构不相适应,且很难高效应用。将整个放入内核,或把核心路由表分离出来而将转发功能放入用户空间。而有些情况,违反该分离原则,获得一些优化以减少路由开销。
(4)新的路由模型有些采用非传统的路由模式(如源路由、基于流的转发路由等)。这些路由模式与当前的IP路由体系结构相背离,并且对系统设计提出挑战。在源路由方式下,一个分组要经过的全部路径由源节点决定,并且将这些路由信息编码在分组头部。而传统IP路由转发功能是逐跳的,并且由本地路由表驱动。在基于流的转发方式下每个分组都有一个流ID,网络中的每个节点都有一个流表,转发的过程是根据流ID查找流表,而路由的过程是在每个节点建立流表。
大多数通用操作系统不能灵活支持新的路由模型,因此这些的实现既要修改内核;IP栈又要使用内核扩展机制避开IP栈。
(5)跨层交互无线信道为跨层交互作用提供许多机会。在某些路由算法中,路由协议的设计要使用物理层和链路层参数,如信号强度、链路状态等。概念上应放弃跨层交互,因为虽然跨层设计会提供最优化,但不加选择的访问所有底层参数会严重损害网络体系结构。许多路由协议使用其他层路由协议信息以提高性能,例如每个相邻节点的链路质量信息是某些路由算法所需的。尽管可得到这些信息,但跨越不同的硬件和操作系统时没有统一的标准,需通过标准方式以便获得低层信息,这对开发路由协议非常重要。

本文引用地址://m.amcfsurvey.com/article/202642.htm

3 新的体系结构
首先提出一种通用方法以在通用操作系统中支持按需路由协议,并提出下面机制以增强当前分组转发功能。在内核路由表的每个条目增加一个标志表明该条目是否为按需路由条目,从而当路由不可达时,内核将分组排队缓存而不是直接丢弃。一个路由若具有空的下一条或接口则将缓存以等待路由发现。同时路由表无需包括所可能目的地,使用基于子网标志的路由和默认路由可到达同样的目的。将一种称为按需路由组件 (ODRC)的新组件加入内核分组转发功能以实现按需路由功能。当内核收到一个分组并发现没有向应的路由时,它首先通知用户空间的路由守护进程对该分组的目的地发出路由请求,然后将该分组缓存等待守护进程返回路由发现状态。如果该过程成功完成,则填充相应路由表条目,缓存的分组重新插入转发队列。为解决路由缓存问题,必须在每个路由条目上加入时间戳,记录该条目最后被使用时间。时间戳用于删除一个未使用的过期路由。

4 Linux下的一种实现
4.1 Linux系统网络协议栈体系结构
Linux网络系统有硬件,数据链路层、IP层、INET Socket层、BSD Socket层和应用层5部分。其中在Linux内核中分组包括前4部分。图1为Linux系统基于TCP/IP的网络体系结构。

4.2 Linux系统网络堆栈的IP层
Linux路由系统中主要保存3种路由相关的数据:(1)在物理上与本机相连接的主机地址信息表,即邻居节点表。邻居节点表用neigh_table{} 数据结构表示,以neighbour{}数据结构为节点;(2)在网络访问中判断一个网络地址的数据表,是转发信息库FIB,用来保存路由规则,用 fib_table{)数据结构链表来表示;(3)最近使用过的路由缓存表,称为路由缓存表,用rtable{}数据结构链表表示。



评论


相关推荐

技术专区

关闭