- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MANET 的体系结构:
MANET 协议的特点:
在冲突性的无线媒体中,尽量可靠的进行路由选择,并使得控制开销最小;
能快速检测拓扑的变化OPNET 中的反应式 MANET:
Ad-Hoc 按需距离向量路由:AODV
动态源路由:DSR OPNET 中的主动式 MANET:
地理路由协议:GRP
优化链路状体路由:OLSR
OSPFv3 的 MANET 扩展
在初始化的时候(manet_magr/manet_rte_mgr):
注册自己(进程)
确定 MANET 协议的配置
创建子进程,并储存其菌柄
等待唤醒
manet_mgr 的唤醒
由路由进程唤醒:发送数据包给 IP
由 IP(CPU)唤醒:发送数据包给 DSR/AODV 子进程
Manet_rte_mgr 的唤醒:
由 UDP 通过流中断唤醒:发送给 OLSR 子进程的包
OLSR 子进程在联通的端口号上直接发送包给 UDP
AODV
反应式的协议,需要的时候才去发现路由;
路由发现:通过 RREQ 路径记录+RREP 和 反向路径记录实现
路由维护:Hellos
路由差错:RERR
扩展环搜索:TTL 和网络直径
AODV 更新 IP 公共路由表
支持 IPV4 和 IPV6
可以在主机、工作站、服务器和路由器上使用
AODV 的路由维护:
AODV 的本地修复:
AODV 的控制流程:
AODV 的控制包类型:
Hello(TTL=1 的路由回复),路由请求,路由回复,路由差错
支持的功能在 aodv_pkt_support.ex.c 中定义
只有一种包格式:models/std/manet/aodv.pk.m 包到达时的处理函数:在 aodv_rte.pr.m 进程中
(1)aodv_rte_pkt_arrival_handle():
获取”options”字段,然后得到元素的类型,根据类型的不同,将 void*转换成适当的数据结构类型(另外一种方法是使用“structure union”)
AodvT_Packet_Option 在 aodv_pkt_support.h 中定义发送 AODV 控制包:
(1)首先创建 AODV 包,然后用 aodv_rte_ip_datagram_create 将其封装 IP 中(方针 ip_encap 模块的功能)
路由请求:广播
Hello/route reply/route error:单播,当发送包的时候,需要安装ManetT_Nexthop_info*。
AODV 的路由表:
数据结构:AodvT_Route_Table 和 AodvT_Route_Entry,定义在aodv.h 中
虽然 AODV 路由表有一个指向 IP 转发表的指针,但是仍然维护了一个单独的表,因为 AODV 可能有一个软状态,这时的改变不会反映在 IP 中
路由操作的 API 定义在 models/std/manet/aodv_route_table.ex.c 中AODV 的请求表:
维护一个路由请求数据库,其目的是为了减小复制。数据结构: AodvT_Request_Table,
AodvT_Orig_Request_Entry,AodvT_Forward_Request_Entry, AodvT_Request_Expiry,它们定义在 aodv.h 中
请求操作的 API 定义在/models/std/manet/aodv_request_table.ex.c
中
AODV 的包队列:
IP 如果没有发现路由,就将应用数据重定向给 AODV
包队列是“逐目的(per destination)”的:哈希表。数据结构: AodvT_Packet_Queue 和 AodvT_Packet_Entry 定义在 aodv.h 中
应用包的 API 在 models/std/manet/aodv_packet_queue.ex.c 中定义
发送包到目的地:aodv_rte_all_pkts_to_dest_send
→manet_rte_to_cpu_packet_send_options 需要注意的是:
每个节点只能运行一个 MANET 协议。可以在多个接口上部署 MANET 协议,其它的继承协议(legacy protocol)可以和 MANET 一起运行。扩展协议(OSPFv3-MANET)是一个特例,应将它堪称一个继承协议。
MANET 控制包为全局广播(255.255.255.255)。对于多接口设备而言,即是其它的接口没有运行 MANET,MANET 包夜要在那些接口上广播(OSPFv3- MANET 例外)。
利用传统路由架构的 MANET 重分配(redistribution)支持。只有AODV 和 OSPFv3-MANET 支持真正
文档评论(0)