基于SNMP的路由拓扑发现算法收集

简介:

一、三层(网络层)发现

 

算法来源:王娟娟.基于SNMP的网络拓扑发现算法研究.武汉科技大学硕士学位论文,2008

数据结构:

待检路由设备网关链表:存放指定深度内待检路由设备的网关信息,处理后删除。

拓扑信息链表:存放从已检测路由设备的网关信息。

子网信息链表:存放网关信息对应的子网信息。

基本思想:

  类似于广度优先,在指定深度内运行算法,最后根据拓扑信息链表获得所有路由及其互联关系,根据子网信息链表各路由设备连接的子网及子网内所有活动主机的信息。

需要获得的信息:

  路由信息如下图所示。

 

点击可查看补充说明。

  

算法流程:

(1)初始化三个链表。

(2)向初始路由设备发送PDU征询数据包,从初始路由设备返回的应答数据包解析出每条记录中的路由相关信息:若当前记录的ipRouteType值为3,则将ipRouteNextHop值加进拓扑信息链表,将ipRouteNextHop、ipRouteDest、ipRouteMask、ipRoutelflndex、ifDescr值加进子网信息链表;若当前记录的ipRouteType值为4,则将ipRouteNextHop和ipAdEntAddr值加进拓扑信息链表,若待检设备网关链表中无节点的IP地址与此ipRouteNextHop相同,则将ipRouteNextHop加进待检设备网关链表,将该节点的跳数值赋为2,表示该路由设备距本地网关所在设备有一跳距离。

(3)在待检设备网关链表不为空且当前节点的深度不大于指定获取深度的情况下,继续进行下述处理:取出待检设备网关链表当前节点记录的ipRouteNextHop,封入PDU征询数据包发给相应路由设备,从设备返回的应答数据包解析出每条记录中的路由相关信息:若当前记录的ipRouteType值为3,则将ipRouteNextHop值加进拓扑信息链表,将ipRouteNextHop、ipRouteDest、ipRouteMask、ipRoutelflndex、ipDescr值加进子网信息链表;若当前记录的ipRouteType值为4,则将ipRouteNextHop和ipAdEntAddr值加进拓扑信息链表,若子网信息链表中无节点的IP地址与此ipRouteNextHop相同,则将ipRouteNextHop)JH进待检设备网关链表,将该节点的跳数加一。

(4)从待检设备网关链表中删除当前已被处理过的节点并判断是否继续处理。

以上算法会在搜索过程到达指定深度后停止,通过检索拓扑信息链表,便可得到该深度范围内所有路由设备的拓扑结构。

 
 
 
二、二层(链路层)发现
(各算法所依据的定理略.)
  算法一
算法来源:王娟娟.基于SNMP的网络拓扑发现算法研究.武汉科技大学硕士学位论文,2008
  (1)节点探测:根据本机IP地址和Mask确定探测的节点范围,然后向这些节点用异步的方式发送ICMP回应请求包来确定活动主机。
  (2)确定子网内各个交换机之间以及交换机与路由器之间的连接关系:首先,根据交换机地址转发表构造每台交换机的上下行端口;其次,从子网中的各交换机中选取其地址转发表中具有最多转发MAC地址数的交换机,将其设定为当前“生成树”的根交换机。然后遍历根交换机的所有下行端口(除与管理站连接的上行端口外),应用定理1(两台交换机中的各一个端口,分别穿过这两个端口可到的MAC地址集合的并集为空)确定与根交换机各端口具有简单连接关系的其它各交换机和相应端口,将其划分为各个子树;最后,在各端口对应的交换机子树中确定与根交换机的下行端口直接连接的交换机Sj后(根据定理2来判断),就将根交换机从生成树中删除,新生成的树是原来的生成树的子树,然后以Si作为新子树的根交换机,递归执行这个过程,直至每个交换机子树中只包含一个交换机,这个交换机即为叶结点。另外,交换机与路由器之间的连接可由定理3确定。
  (3)确定各个主机与交换机之间的连接关系:利用ICMP回应请求/响应报文,将从根交换机出发,按层次遍历生成树中的各个交换机,判定其叶端口,根据定理4,则该端口对应的地址转发表中所包含的所有主机均与该端口直接连接。
 
 
算法二
算法来源:王娟娟.基于SNMP的网络拓扑发现算法研究.武汉科技大学硕士学位论文,2008
     刘亚莉,孙亚民基于SNMP的网络拓扑结构自动发现研究.微型机与应用,2004,23(4)
  (1)利用子网所连接的出口路由器ARP缓存来确定节点探测范围,利用SNMP读取路由器的ipNetToMediaTable相应表项得到子网中可能的活动节点。
  (2)首先利用基于交换机生成树的拓扑发现算法检测支持生成树协议的交换机之间的连接关系,快速发现链路层的主干网络拓扑,对于不支持生成树协议的交换机,先视为主机,利用主机定位定理在已有的交换机拓扑上进行定位,缩小算法判定范围,然后利用交换机地址转发表的拓扑发现算法(具体参考算法1的定理2)补全链路层的交换机拓扑,从而得到完整的链路层网络拓扑结构。
  (3)在得到完整的交换机拓扑基础上,利用主机定位定理可以快速确定各个主机在交换机生成树中的位置。
 
 
算法三
算法来源:王娟娟.基于SNMP的网络拓扑发现算法研究.武汉科技大学硕士学位论文,2008
  (1)根据本机IP地址和Mask确定探测的节点范围,然后向这些节点用异步的方式发送ICMP回应请求包来确定活动主机。
  (2)确定交换机之间的连接:可以通过PING子网内所有的交换机,依次获取每个交换机的地址转发表及其本身的MAC地址,根据定义2判定每个交换机的上行端口、下行端口和本地端口,根据定理1找出交换机之间的连接关系。
  (3)确定交换机与主机的连接:对于本地端口集合,检查其每个端口的转发表,如果某个端口的地址转发表包含路由器的MAC地址,则此本地端口与对应的路由器相连;如果某个端口的地址转发表中包括某个主机的MAC地址,则此本地端口与对应的主机直接相连。
 
注:最初完成此文时,表中有误,下一跳网关IP和路由类型两项OID错位。这一点已于10月20日修复







本文转自五岳博客园博客,原文链接:www.cnblogs.com/wuyuegb2312/archive/2011/09/30/2195707.html,如需转载请自行联系原作者
目录
打赏
0
0
0
0
20
分享
相关文章
基于多路径路由的全局感知网络流量分配优化算法matlab仿真
本文提出一种全局感知网络流量分配优化算法,针对现代网络中多路径路由的需求,旨在均衡分配流量、减轻拥塞并提升吞吐量。算法基于网络模型G(N, M),包含N节点与M连接,并考虑K种不同优先级的流量。通过迭代调整每种流量在各路径上的分配比例,依据带宽利用率um=Σ(xm,k * dk) / cm来优化网络性能,确保高优先级流量的有效传输同时最大化利用网络资源。算法设定收敛条件以避免陷入局部最优解。
动态路由的主流算法
【8月更文挑战第3天】BGP 协议使用的算法是路径矢量路由协议(path-vector protocol)。它是距离矢量路由协议的升级版。
基于机会网络编码(COPE)的卫星网络路由算法matlab仿真
**摘要:** 该程序实现了一个基于机会网络编码(COPE)的卫星网络路由算法,旨在提升无线网络的传输效率和吞吐量。在MATLAB2022a中测试,结果显示了不同数据流个数下的网络吞吐量。算法通过Dijkstra函数寻找路径,计算编码机会(Nab和Nx),并根据编码机会减少传输次数。当有编码机会时,中间节点执行编码和解码操作,优化传输路径。结果以图表形式展示,显示数据流与吞吐量的关系,并保存为`R0.mat`。COPE算法预测和利用编码机会,适应卫星网络的动态特性,提高数据传输的可靠性和效率。
基于WSN网络的定向步幻影路由算法matlab仿真
该文探讨了无线传感器网络中的位置隐私保护,对比了NDRW路由与定向步幻影路由在安全时间和能耗方面的性能。在MATLAB2022a中进行测试,结果显示NDRW路由提供最长的安全时间,尤其在长距离传输时,且在近距离下能耗低于幻影路由。幻影路由虽消耗更多能量,但通过随机步创造幻影源以增强安全性。NDRW路由利用非确定性随机游走策略,避免拥堵并提高效率,而幻影路由则引入方向性控制,通过启发式算法优化路径选择。
基于ACO蚁群优化算法的WSN网络路由优化matlab仿真
摘要(Markdown格式): - 📈 ACO算法应用于WSN路由优化,MATLAB2022a中实现,动态显示迭代过程,输出最短路径。 - 🐜 算法模拟蚂蚁寻找食物,信息素更新与蚂蚁选择策略确定路径。信息素增量Δτ += α*τ*η,节点吸引力P ∝ τ / d^α。 - 🔁 算法流程:初始化→蚂蚁路径选择→信息素更新→判断结束条件→输出最优路由。优化WSN能量消耗,降低传输成本。
算法BFS经典例题(迷宫,多源BFS,BFS解决拓扑排序,FloodFill算法)
算法BFS经典例题(迷宫,多源BFS,BFS解决拓扑排序,FloodFill算法)
Java数据结构与算法:拓扑排序
Java数据结构与算法:拓扑排序
|
9月前
|
数据结构与算法——拓扑排序(引例、拓扑排序、伪代码、代码、关键路径问题)
数据结构与算法——拓扑排序(引例、拓扑排序、伪代码、代码、关键路径问题)
117 0
【计算机网络】—— IP协议及动态路由算法(下)
【计算机网络】—— IP协议及动态路由算法(下)
125 0
【计算机网络】—— IP协议及动态路由算法(上)
【计算机网络】—— IP协议及动态路由算法(上)
419 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等