基于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)从待检设备网关链表中删除当前已被处理过的节点并判断是否继续处理。
以上算法会在搜索过程到达指定深度后停止,通过检索拓扑信息链表,便可得到该深度范围内所有路由设备的拓扑结构。
作者:五岳
出处:http://www.cnblogs.com/wuyuegb2312
对于标题未标注为“转载”的文章均为原创,其版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
基于SNMP的路由拓扑发现算法收集的更多相关文章
- 基于大规模语料的新词发现算法【转自matix67】
最近需要对商品中的特有的词识别,因此需新词发现算法,matrix的这篇算法很好. 对中文资料进行自然语言处理时,我们会遇到很多其他语言不会有的困难,例如分词——汉语的词与词之间没有空格,那计算机怎么才 ...
- 模块度与Louvain社区发现算法
Louvain算法是基于模块度的社区发现算法,该算法在效率和效果上都表现较好,并且能够发现层次性的社区结构,其优化目标是最大化整个社区网络的模块度. 模块度(Modularity) 模块度是评估一个社 ...
- 社区发现算法 - Fast Unfolding(Louvian)算法初探
1. 社团划分 0x1:社区是什么 在社交网络中,用户相当于每一个点,用户之间通过互相的关注关系构成了整个网络的结构. 在这样的网络中,有的用户之间的连接较为紧密,有的用户之间的连接关系较为稀疏.其中 ...
- 基于RYU的拓扑发现
基于RYU的拓扑发现 前言 本次实验是一个基于RYU的拓扑发现功能.参考了呈神的实现方式,并加了一些自己实现方式,做了一些数据结构的改动. 数据结构 link_to_port 字典 有两种关系: 一是 ...
- 基于DFA敏感词查询的算法简析
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中需要对敏感词做一个过滤,首先有几个方案可以选择: a.直 ...
- SNMP 原理及配置简述 net-snmp-utils net-snmp 第2版基于SNMP 群体名(community name) 第3版引入了安全性更高的访问控制方法 SNMP协议操作只有4种 Apache的php_snmp 模块
SNMP 原理及配置简述 net-snmp-utils net-snmp 第2版基于SNMP 群体名(community name) 第3版引入了安全性更高的访问控制方法 SNMP协议操作只有4种 ...
- 基于SNMP的交换机入侵的内网渗透
前言:局域网在管理中常常使用SNMP协议来进行设备的管理和监控,而SNMP的弱点也成为了我们此次渗透的关键. 使用SNMP管理设备只需要一个community string,而这个所谓的密码经常采用默 ...
- SVD++:推荐系统的基于矩阵分解的协同过滤算法的提高
1.背景知识 在讲SVD++之前,我还是想先回到基于物品相似的协同过滤算法.这个算法基本思想是找出一个用户有过正反馈的物品的相似的物品来给其作为推荐.其公式为:
- 社区发现算法问题&&NetworkX&&Gephi
在做东西的时候用到了社区发现,因此了解了一下有关社区发现的一些问题 1,社区发现算法 (1)SCAN:一种基于密度的社团发现算法 Paper: <SCAN: A Structural Clust ...
随机推荐
- << CocoaPods安装和使用教程 >>github code4app以及cocoachina 苹果官方文档
developer.apple.com 英文搜索各个技术的官方介绍文档, 前提是英文过关 cocoachina ios最新新闻, 信息 code4app上有许多组件 http://www.code4a ...
- jquery获取和设置表单数据
1.需求 正好做到设置和获取表单数据的功能,做个整理 2.计划安排 3.计划实施 1.获取值 <!--1获取普通文本框的值--> <input type="text&quo ...
- angularjs表达式中的HTML内容,如何不转义,直接表现为html元素
在模板中直接: 在ionic中直接使用: <p class="contentwen" ng-bind-html="detial.content">& ...
- [转载]Eclipse.ini的相关说明
原文链接:http://www.cnblogs.com/yan5lang/archive/2011/05/24/2055867.html Eclipse的启动由$ECLIPSE_HOME/eclips ...
- Oracle Database 11g Express Edition学习笔记
修改字符集 使用用户system,通过sqlplus程序连接到Oracle数据库,输入以下命令,查看字符集: SQL> select userenv('language') from dual; ...
- OpenCV图像的二值化
图像的二值化: 与边缘检测相比,轮廓检测有时能更好的反映图像的内容.而要对图像进行轮廓检测,则必须要先对图像进行二值化,图像的二值化就是将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出 ...
- windows下的socket网络编程
windows下的socket网络编程 windows下的socket网络编程 clinet.c 客户端 server.c 服务器端 UDP通信的实现 代码如下 已经很久没有在windows下编程了, ...
- typedef使用大全(转)
typedef使用大全(转) 一.数组typedef到处都是,但是能够真正懂得typedef使用的不算太多.对于初学者而言,看别人的源码时对到处充斥的typedef往往不知所错,而参考书又很少,所以在 ...
- 如何将ADT项目导入Android studio及常見問題
ADT导出Android studio项目 右键-->ExportAndroid/Generate Gradle build files--> Android studio导入项目 Fil ...
- Apache2.4.6 添加虚拟主机
apache2.4 与 apache2.2 的虚拟主机配置写法有所不同 apache2.2的写法: <VirtualHost *:80> ServerName domain.com Doc ...