无限路由相关协议简介及代码注释
相关路由协议数据库:http://www.baisi.net/thread-3016715-1-1.html
主要有:AODV,DSDV,DSR,TORA,WRP,ZRP
AODV
定义
AODV(Adhoc on-demand distance vector routing)是一种按需驱动的路由协议。当一个节点需要向网络中的其他节点发送数据时,在缺乏通往目标节点的路由路径情况下,则必须以多播方式发送起始点路由请求(RREQ)报文。该报文包含起始节点与目的节点的网络层地址信息。相邻节点接收到该RREQ报文后会进行如下处理:若发现存在通往目标节点的路由路径,则向起始点发送单播型路由响应(RREP);否则继续转发该RREQ报文以完成路径查找。
当网络资源充足的条件下,在AODV协议中可以通过持续发送hello报文来维持路由信息的一致性。当某个链路发生中断时,在相关节点将发送ERROR报文以通知那些因此失去连接而无法到达的目标节点,请它们删除不再可达的路由记录并采取相应措施修复已有的路由连接。关于RREQ与RREP的具体查询机制,请参见图2与图3
图2[1]
图3[1]
AODV特点
AODV采用了基于UDP的编码方式,并归类于应用层协议。在寻址过程中频繁调用应用层协议的操作增加了额外的实现复杂度。
(2) IEEE802.15.4标准中规定采用127字节作为帧长度,并规定 MAC 头部和尾部校验字段的最大使用量为 25 字节;此外,在 IPv6 头部与 UDP 头部之间所占的空间分别为...
48字节,只剩下54字节的空余。
(3)在LR—WPAN架构中,其网络架构较为简单;规模较小;节点位置具有可变性;首要关注的重点包括简便性和能效等关键问题.AODV在路由机制及数据包配置方面未涉及这些关键点[1].
无线需求驱动型平面矢量路由协议(Ad Hoc On-Demand Distance Vector Routing, AODV),作为无线网状网络(亦称无线mesh网络)中的一种典型路由协议,在该领域中被用于实现节点间的通信路径选择。该协议通过动态生成路径来满足信息传输的需求,并支持单播与多播数据包的转发功能。
实现技术
该系统采用基于事件驱动的[路由协议]机制,在目标节点接收数据包时才触发源节点的路由查找过程。与传统的因特网[路由协议]不同的是这类[协议]采用了静态路由机制即无需考虑路径上的[节点]是否需要发送数据包就可以完成查询工作。每个网络设备都维护一个用于记录到达其他网络设备信息的[路由表]定期交换网络拓扑信息以动态更新自身所掌握的网络路径从而实现对网络变化的有效跟踪与响应。这种设计原理类似于动态规划中的"按需服务"机制能够在复杂的网络环境中提供高效的通信支持。
在AODV协议下,网络在未建立连接请求时处于静态状态。这意味着当一个网络节点需要建立连接时会发送一个连接建立请求。其他所有AODV节点将此请求转发,并记录源节点以及返回源节点所需的临时路由信息。当接收连接请求的节点了解到达目的节点所需的路由时(即目标网络中的目标地址),它会将此路由信息按照先前记录的返回源节点所需的临时路由发回给源端口。这样,在链路断开后出现路由错误时会被回送给源端口(即发送者),此时发送者就会重新发起路由查找过程以获取新的路径信息。
大多数协议的复杂性源于为了提升网络性能而缩减消息数量。例如,在每个节点发起的路由请求中都会分配一个唯一编号,在此编号的基础上,节点能够避免重复转发相同的路由请求。此外,路由请求会指定一个"生存时间"参数,这有助于减少其被重传的频率。最后,如果某个路由请求未能成功传输,其他相关路由请求将在原先超时时间基础上延长一倍的"生存时间"后重新发送。
相关的路由协议
针对该问题存在多种解决方案。其中一种解决方案是动态源路由协议(Dynamic Source Routing, DSR)。DSR通过有效地优化网络通信效率实现了信息传输的最佳化路径选择。另外一种有效的方法是优化的链路状态路由协议(OSR)。OSR通过持续收集各节点之间的通信数据,并维护每个节点的最佳路径表从而实现了快速而可靠的连接建立。值得注意的是该系统需要高性能计算资源和较大的内存容量同时频繁扫描其他节点以建立连接的过程会带来巨大的计算负担对于其他可能的选择请参阅无线自组网相关协议列表
DSR
这种路由机制被应用于移动自组网络(MANET)中采用的动态源路由协议(Dynamic Source Routing, DSR),它在网络层运行并作为TCP/IP协议族的一部分发挥作用。
动态源路由协议(Dynamic Source Routing Protocol, DSR)是一种专为多跳无线AdHoc网络设计的简洁且高效的路由机制。其通过自动生成与维护所有路由来实现数据传输,在节点移动或其他网络状态变化的情况下也能保证数据分组成功可靠地传输。该协议采用快速响应的服务模式以确保数据分组能够及时可靠地传输,在任何情况下都能有效应对节点移动或其他潜在的问题。
DSR路由协议由两个核心组件构成——路径发现(Route Discovery)机制与路径维护(RouteMaintenance)机制。路径发现机制在源端设备(如路由器或交换机)尚未掌握完整路径的情况下会被激活,在此状态下该设备会向目的设备发送数据分组,并且无法确认其是否抵达目的地。当源端设备正沿某条通往目标设备的线路运行时(即当前采用某条通往目标节点的路径),该设备若发现该主干路已中断,则会尝试通过偶然获取的信息重新连接到目标网络或者重新发起路径搜索过程以寻找到新的连接通路。值得注意的是,在DSR[ routing protocol ]中,并不需要依赖某个特定网络层次的周期性分组数据包(如定期发送的状态信息包或者链路探测报文)。相反地,在这种协议下所有的网络状态都被视为"可选的状态"(soft states),因为这些状态一旦建立就不再强制要求维持下去;如果这些状态仍然被系统所需求,则系统可以在必要时迅速恢复这些连接关系而不影响整体性能
DSR路由协议的标准版本主要采用"源路由"这一概念作为基础架构。节点通过其内部缓存存储已知的源路由信息,并在检测到新的路径时进行补充记录。每个节点发送的数据分组在其头字段中包含即将经过的一系列完整的、有序排列的信息
DSR选项头格式如下:
该系统头部采用了具备良好扩展性的TLV格式。除了固定部分之外的部分,不同类型的选项(option)同样以TLV格式附加在固定部分之后。
选项的种类包括:
路由请求(Route Request)
路由应答(RouteReply)
确认请求(ACKRequest)
确认(ACK)
源路由(Source Route)
Destination-SequencedDistance Vector routing---DSDV
源文档 <http://en.wikipedia.org/wiki/DSDV>
Destination-SequencedDistance-Vector Routing (DSDV) isa table-driven routing scheme for ad hoc mobile networks based on the Bellman-Ford algorithm. It was developed by C. Perkins andP.Bhagwat in 1994. The main contribution of the algorithm was to solvethe routing loop problem. Each entry in the routing table contains a sequencenumber, the sequence numbers are generally even if a link is present; else, anodd number is used. The number is generated by the destination, and the emitterneeds to send out the next update with this number. Routing information isdistributed between nodes by sending full dumps infrequently and smaller incremental updates morefrequently.
For example therouting table of Node A in this network is
| Destination | Next Hop | Number of Hops | Sequence Number | Install Time |
|---|---|---|---|---|
| A | A | 0 | A 46 | 001000 |
| B | B | 1 | B 36 | 001200 |
| C | B | 2 | C 28 | 001500 |
Clearly, thetable includes a detailed description of all possible paths that can be reached by node A together with the next hop, the number of hops, and the sequence number.
Contents
[hide]
[edit]Selection of Route
When a router receives new information, it applies the most recent sequence number. If this number matches an existing entry in the table, the route associated with the superior metric is selected. Outdated records are those not updated for an extended period. Both such records and paths that utilize these nodes in their routing are removed.
[edit]Disadvantages
DSDV operates regularly to maintain or refresh its routing tables. This process consumes battery power and limits the available bandwidth even during idling.
When the network topology changes, a new sequence number must be assigned before the network reconverges; consequently, DSDV is not well-suited for highly dynamic networks. (This phenomenon also occurs in all distance-vector protocols, where traffic in unaffected network regions remains unaffected.)
当网络拓扑发生变化时,在网络重新收敛之前必须分配新的序列号;因此,DSDV不适合高度动态的网络。(这种现象也出现在所有距离向量协议中,在不受拓扑变化影响的网络区域中交通仍然不受影响)
[edit]Influence
While DSDV is not widely employed today[citation needed], other protocols have indeed utilized similar techniques. The most well-known sequenced distance vector protocol is AODV (http://en.wikipedia.org/wiki/AODV), which leverages its reactive nature to employ simpler sequencing heuristics. Meanwhile, Babel (http://en.wikipedia.org/wiki/Babel_(protocol)) endeavors to enhance DSDV's robustness, efficiency, and applicability while maintaining its position within the realm of proactive protocols.
[edit]References
Perkins, Charles E., along with Bhagwat, Pravin, published a seminal work in 1994 (pdf). The paper titled Highly Dynamic Destination-Sequenced Distance-Vector Routing (DSDV), which focuses on routing strategies for mobile devices details an innovative approach to dynamic routing in mobile computing environments. The research was retrieved on October 20, 2006.
源文档 <http://en.wikipedia.org/wiki/DSDV>
TORA
TORA(Temporally Ordered Routing Algorithm)协议
Ad Hoc中的一种路由选择的技术。
将每个节点划分为一个区域;该区域涉及若干个节点;这些参与计算距离的点之间的关系。
在特定范围内,在该区域内所设定的距离被定义为区域半径;每个节点仅仅关注其直接邻居的信息以完成相关的计算任务
在网络拓扑结构方面,在路由区域内部进行动态更新。因此,在网络拓扑发生变化时即使网络情况较为复杂也能够有效适应。
规模显著的大范围数据更新仅限于局部范围。因为各区域间的距离均超过1单位,因此会导致多个区域发生重叠;这与分群路径有关
当节点S欲与节点D进行通信时,则该查询消息将首先基于现有路径上的路由信息进行处理
按照既定的路由规则向其对应于该区域设置的半径值的那个目标发送该路由请求至边界节点(即与该边界节点之间跳跃次数正好等于预先设定好的区域半径值的那个目标)。
一个跳跃值由边界节点(如上所述)进行后续处理。同时逐层传播直至抵达D点时触发响应
针对这一请示,在Query消息中增加到
遵循节点间的跳数限制规则,并且每当一条信息经过一个节点时,其跳数值减少1。此时若跳数值域已降到0,则会立即丢弃该消息。
域内部遵循先验式路由协议策略(如DSDV),而TORA则只需少量的相关查询信息即可完成路径选择过程
这些信息只是发给周边节点的信息。
因为区域半径相对于整个网络来说较小,在这种情况下区域内拓扑消耗只是整体
该网络仅占极少部分。此外,在每个节点处存储的信息量也大幅减少。
相比而言,在现有体系下实现反应式路由发现机制的效率较低。此外,在实现上述功能的同时能够实现对目标节点的定位与连接。
基于多个路由。然而,在实施混合式路由的过程中会面临诸多挑战。其中需要考虑的问题包括簇的选择与维护、以及后续步骤的协调。
如何恰当选择验式与反应式的应用范围,并就大流量传输这一领域中的大规模数据传输问题展开深入探讨
