Linux环境下OLSR协议的定时器实现与事件调度

需积分: 50 11 下载量 196 浏览量 更新于2024-08-10 收藏 4.26MB PDF 举报
"Linux系统 OLSR路由协议 事件调度 定时器 事件时间序列" 在电子科技大学的一篇硕士学位论文中,作者严雯探讨了在Linux系统下实现和改进OLSR(Optimal Link State Routing)路由协议的问题。OLSR是一种适用于AdHoc网络的主动路由协议,具有简单、实用和高性能的特性。论文详细阐述了如何在Linux环境下构建OLSR协议,同时提出了对协议的一种改进方案。 在实现OLSR协议的过程中,事件调度扮演了关键角色。在OLSR协议中,路由维护涉及一系列事件,如周期性发送控制消息和信息表项的过期操作。Linux系统通过SIGALRM信号函数和事件时间队列(TimerQ队列)来支持这些定时和顺序控制操作。定时器在OLSR协议的实现中至关重要,用于定期触发协议所需的各个任务。论文中采用了setitimer或alarm函数来设置定时器,因为它们允许一次性或重复设置定时器,并且可以选择定时对象。当定时时间到达时,系统会向进程发送SIGALRM信号,进程随即处理这个信号。 事件时间序列的管理是通过事件时间队列(TimerQ队列)来完成的,解决了多个定时器的需求。TimerQ队列中的每个成员包含事件处理函数、相关参数和事件发生时间。这种结构使得多个事件可以按照时间顺序有序地执行。 在OLSR协议的基础之上,论文提出了一个名为SRM SB·OLSR的改进方案,该方案结合了多路径机制和带宽感知功能。SRM SB·OLSR提供了单路径带宽感知路由和多路径带宽感知路由。单路径算法优先考虑带宽因素,选择带宽最宽的最短路径作为最优路由。多路径算法则在单路径的基础上引入多条不相交的路径,通过源路由机制和加权分配的循环调度算法确保业务流在多条路径间精确分配并行传输。实验结果表明,相比于原始的OLSR协议,SRM SB·OLSR能在网络负载较重时避免数据流通过高负载路径,降低丢包率和传输延迟,同时通过多路径路由有效地平衡网络负载。 关键词涉及:OLSR协议、带宽感知、多路径路由和源路由机制。这项工作突显了在Linux系统中实现和优化路由协议的重要性,尤其是在动态网络环境中提供高效、可靠的路由服务。