基于snmp的网络拓扑结构发现内容摘要:
上,因此使用它在主机间通讯时无需先建立连接。 这种方法降低了系统开销,但对报文到达的正确性不做保证。 SNMP 将管理问题分为两个部分,并为每个部分定义了标准。 第一部分是有关信息通信规则的,协议定义了管理机上的客户软件如何与代理通信,同时定义了管理机与代理交换消息的格式和含义以及名字与地址的形式。 第二部分有关被管理的数据,协议定义网络设备必须保存的数据项和每个数据项的名字以及用于表示名字的语法。 SNMP 管理模型 SNMP 的网络管理模型如图 所示,包括四个关 键元素 [1]: 南华大学计算机学院毕业论文 第 10 页 图 SNMP 管理模型 l)管理工作站 :一般是一个单机设备或者是一个共享网络中的一员。 无论是哪种情况,管理站都是管理者作为网络管理员与网络管理系统的接口。 2)管理代理 :当前主流路由器、交换机等设备现在都支持 SNMP 操作,即对来自管理站的 SNMP 信息查询和请求做出响应,同时还可能异步的通过 Trap操作主动向管理站提供一些重要的非请求信息。 3)管理信息库 :描述了所有可以由 SNMP 管理的信息的集合,其中每个信息元素都称为一个对象。 任何支持 SNMP 协议的代理都应该能够对 MIB 中定义的对象的信息的查询做出响应,任何使用 SNMP 协议的网络管理站也都应该知道它能够从代理那里得到的信息都在 MIB 定义的范围内。 4)网络管理协议 :管理站和代理之间是通过 SNMP 网络管理协议连接的, SNMP协议是一个应用层协议,使用网络层提供的 UDP 传输服务来传递消息、标准的代理监听端口为 161。 当一个网管应用要求得到代理端的信息的时候,它就向SNMP 核心进程提出这个请求,核心进程从本地的 MIB 中得到所需的对象的信息,然后构造 SNMP 请求报文,最后将此报文使用 UDP 协议发送 到代理进程的 161 端口上。 代理进程在收到这个请求后,访问其本地的 MIB 库以取出管理站所需信息,南华大学计算机学院毕业论文 第 11 页 然后构造 SNMP 响应报文,最后使用 UDP 协议将此报文发送给管理站。 管理站的SNMP 核心进程再将得到的信息传递给管理站上的网管应用就完成了一次信息交换。 SNMP 协议报文和通信原语 1)SNMP 协议报文 (l)SNMP 协议的报文格式如下 [1]: 图 SNMP 报文格式 (2)一个 SNMP 实体传递一个报文给另一个 SNMP 实体的过程 : 首先,利用上面的格式 ,构造一个 PDU。 其次,连同源地址、目的地址和共同体名,将该 PDU 传给认证服务,由认证服务进行必要的数据转换,然后返回结果。 再次,协议实体构造一个 SNMP 报文,包括一个版本号、共同体名和由认证服务返回的结果。 最后,用基本编码规则,为报文进行编码,并将编码结构传给传输服务。 (3)一个 SNMP 实体在接收 SNMP 报文时的过程 : 首先,对报文进行基本语法检查,如果解析错误,就抛弃该报文。 其次,验证 SNMP 版本号,如果不匹配,就抛弃报文。 南华大学计算机学院毕业论文 第 12 页 最后,协议实体将用户名字、源地址、目的地址和报文中的 PDU 部分传给认证服务 :如果失败,认证服务给 SNMP 协议实体发信号,指示它产生一个 SNMP Trap报文以及抛弃该报文。 2)变量绑定 当管理站想要得到一个特定代理的特定 MIB 组中的所有标量对象信息时,它 可以发送一个请求所有标量的报文,并且得到一个包含所有值的响应。 这样可以减轻网络管理的通信负担。 为了实现上述的对象交换,所有的 SNMPPDU 都包括一个变量绑定的域。 这个域由一系列对象实例标识符和这些对象实例的值组成。 3)通信原语 SNMP 定义了 5 种通信原语实现管理进程和代理进程之间的交互信息,它们分别是 [1]:(l)Getrequest 原语 :get request PDU 由网络管理站的 SNMP 实体发出。 它包括的域山前血的报文格式中给出。 PDU类型说明这是 getrequest PDU。 Requestid 是发送实体为每个请求分配一个编号,用以标识同一代理的多个未完成的请求, variablebinding 是经过 2)操作的被请求的对象实例列表。 管理代理的 SNMP 实体在接收一个 Getrequest PDU 后,通过返回一个 getresponse PUD 作为响应。 如果代理的 SNMP 实体能够为收到的 PDU 中变量绑定列表的所有变量提供值,则 getresponse PDU 为变量绑定域中每个变量赋一个值。 如果其中任何一个变量的不能得到,则所有变量的值均不返回。 (2)Getnextrequest 原语 :与 getrequest 操作有相同的数据格式和相同的数据交换模式。 它们的操作都是原子同步方式,即要么所有的请求值都被返回,要么一个也不返回。 不同之处是 :getrequest PDU 的变量绑定列表中的每个变量指的是将要被返回的对象实例,而对于 getnextrequest PDU,每个变量将要返回的是按字典排序的下一个对象实例的 值。 Getnextrequest PDU 的工作模式使得管理站可以动态发现一个 MIB 视图的结构,同时也为检索一个未知的表提供了有效的方法。 这时,代理返回的是列表中每个对象标识的按字典排序的下一个对象实例的值。 (3)Setrequest 原语 :由管理进程发出,请求设置进程中一个或多个变量的值。 南华大学计算机学院毕业论文 第 13 页 (4)Getresponse 原语 :由代理进程发出的,向管理进程返回的一个或多个变量的值,它是 setrequest 操作的相应。 (5)Trap 原语 :代理进程主动发出的报文,通知管理进程有某事发生。 使用 SNMP 协议 时所涉及的内容 管理信息库 MIB 管理信息库 MIB(Management Information Base)是网络管理系统中所有被管理元素信息的数据库 [23]。 数据库中的元素是网管中的被管资源,且被管资源以对象来表示,每个对象表示被管资源某一方面的属性。 通过对这些对象的存取访问,就可以得到网络设备的所有静态或动态内容,涵盖网络性能、配置、路由和故障等各个方面。 每个对象又包含若干信息变量,每个信息变量包含如下信息 :变量名、变量的数据类型、变量的读写属性、变量的值。 l)MIB 的 数据结构 MIB 是一个树形结构的数据库,树中的每个节点都是一个对象, MIB 就是由一系列的对象组成,如 下 图所示 : 南华大学计算机学院毕业论文 第 14 页 图 MIB 的树型结构 ROOT 为 MIB 树的根节点,它有三个子树 : ISO(1):由 ISO 管理。 CCITT(0):由 CCITT管理。 ISOjointCCITT(2):由 150 和 CCITT 共同管理。 在 ISO(l)节点下由一些其它的子树,其中 0rg(3)是 ISO 为其他组织定义的子树。 在 (3)子树下,一个值得引起注意的特殊节点 是 dod(6),该节点被分配给了美国国防部使用。 dod(6)节点下的 一个 子树 inter(l)分配给 Inter体系结构委员会来管理。 在 inter(1)节点下包括了四棵子树 : (l)directory(1)子树 system(1) Interface(2) at(3) ip(4) icmp(5) tcp(6) udp(7) egp(8) (3) Ccitt(0) ISOjointCcitt(2) Intemet(l) Diretory(1) dod(6) Mgmt(2) Private(4) Enterprises(1) Experimental(3) MIBⅡ Root ISO(1) 南华大学计算机学院毕业论文 第 15 页 该子树保留给 051 目录服务,以备将来使用。 (2)mgmt(2)子树 该子树用于那些在 IAB( Inter 体系结构委员会 )所批准认可的管理信息库的定义,目前有两个版本 :MIBI 和 MIBⅡ。 由于在任何配置中都只能有一个MIB 存在,因此两个版本的 MIB 提供相同的对象标识符。 现在 使用的大多是 MIBⅡ。 Mgmt(2)子树的 MIB(2)子树下定义了目前使用最广泛的各种对象,一般称它们“组”。 在它下面定义的组分别为 : System 组 :提供被管理设备的总体信息。 Interfaces 组 :提供网络实体的物理层接口的信息,包括配置信息和每个接口上发生的事件的统计信息。 IP 组 :提供了一个网络节点中有关 IP 实现和操作的信息。 在网络管理系统中使用非常广泛。 At 组 :设备的地址转换信息,在 MIBⅡ 下,该组内容在 IP 组中。 ICMP 组 :包括了有关 ICMP 的实现和操作的信息。 保存了对各种类型的 ICMP 信息的接受和发送的统计结果。 TCP 组 :主要用于对流量控制、丢失重传和网络拥挤等问题的解决。 UDP 组 :提供有关 UDP 发送和接收的数据包信息。 EGP 组 :由有关实体的 EGP 信息和一个记录每个 EGP 邻居信息的表组成。 SNMP 组 :包括有关 SNMP 实现和操作的信息。 (3)experimental(3)子树 该子树下包含了在 Inter 试验中使用的对象。 (4)private(4)子树 该子树用来指定用户扩展定义的对象。 网络管理系统访问最多的部分是该子树下的 enterprises(l)节点。 该节点下的每 个子树分配给一个企业,而企业必须先向认 B 登记注册它们自己的厂商代码,然后就可以在该代码下创建它们自己的对象。 2)从代理获得 MIB 变量的实现 南华大学计算机学院毕业论文 第 16 页 为了对 MIB 对象有更深的了解,这里对 MIB 变量获取的过程进行简单介绍。 代理作为服务器方,后台运行着一个等待进程,这个进程不断等待来自网络管理者的服务请求,当收到来自代理的请求时,经过语法分析、消息认证等过程后,从自己的 MIB 库中得到管理者所请求的 MIB 变量的值,最后取出相应的应答。 从代理获取 MIB 变量要经过如下几步 : (l)建立管理者和代理之间的连接 首先,作为客户 方的管理者要主动和服务方的网络代理建立通信机制, 因为SNMP 是基于无连接的用户数据报协议 (UDP),所以这里使用无连接的数据报层。 首先构造 Socket,然后使用 bind 系统调用进行地址绑定是用来给已建立的socket 分配任一地址和端口号。 把 inter 地址设为 INADDRANY,系统将会在可选择 的 本机地址中选择一个可用的地址进行绑定。 绑定后,就可以利用此套接口进行通信了。 (2)构造协议数据单元 (PDU) SNMP 消息是通过 SNMPPDU 来传送的,所以在发送 SNMP 消息之前必须构造协议数据单元 (PDU)。 根据用户的输入信息,构造一个 PDU 数据结构,构造一个可以用来传送信息的 PDU,将所请求的对象放入变量绑定列表,并将变量绑定加入到 PDU 中。 (3)协议数据单元构造好后,发送请求。 Send to 系统调用将获取目的地址并发送报文。 (4)接受代理的响应。 (5)读取数据。 SNMP API 基于 SNMP 的网络拓扑发现的基础就是利用 SNMP 协议向网络设备发送 SNMP get 请求,因此实现 SNMP 协议就成为整个系统实现的关键一步。 我们可以利用许多公司提供的 SNMP的开发工具包 (SNMP API)来开发网络拓扑发现的相应程 )子。 南华大学计算机学院毕业论文 第 17 页 目前比较流行的 SNMP 的开发工具包就是 CMU 大学的 UCDSnmp[18], Hp 公司的 Snmp++[19], Advent 公司的 Jsnmp[20]和 Microsoft 公司的 winSNMP,它们各有优缺点。 这里笔者就不一一介绍了。 南华大学计算机学院毕业论文 第 18 页 第 三 章 网络 拓扑 发现算法 的研究 这里笔者将讨论和分析几种主要拓扑发现的算法,它们将上一章中介绍的几种网络拓扑基本技术组合在了一起。 笔者觉得通过对这些算法的 介绍,能够扩充读者的思路,以便比较各个 网络拓扑发现的算法 的优缺点。 基本算 法 本论文讨论的拓扑发现算法是在下述算法的基础上扩展完成的,该算法的描述如下: 确定一个 IP 地址的“临时”集合,这些 IP 地址对应着存在或不存在的主机和路由器。 对集合里的每一个元素,作如下处理 : a、验证这个 IP 地址是否可达。 b、如果可达,将此地址不重复的加入到“永久”集合中。 c、一用这个地址产生更多的 IP地址,并把这些新产生的地址加入到临时集合中。 对基本算法的一些说明 : 算法中存在两个集合,分别为临时集合和永久集合。 临时集合中存放着等待被访问的 IP 地址,这些地址也许并不存在。 永久集合中存 放着实际存在并可达的 IP。基于snmp的网络拓扑结构发现
相关推荐
介绍 .NET 平台是 Microsoft 公司推出的一套开发框架和工具,它为开发数据库应用程序提供了很好的数据环境和强大的开发工具。 .NET Framwork运行库( Common Language Runtime,简称 CLR)为 C代码执行和管理提供了支持,并且 .NET Framwork提供的类库简化了 C编程。 .NET Framwork( .NET 框架) 是整个 .NET
方案 第 15 页 /共 90 页 办公自动化软件 工程计算软件 工程设计 软件 工程图学 技术制图的相关国家标准 投影基础 机件表示法 零件图 标准件与常用件 装配图 测绘 计算机辅助制图 运动学与机构 机构结构及动力学分析 机械的效率与自锁 机械的平衡 机械的运转状态及速度波动调节方法 机构设计 机构系统的方案设计 机器人机构与运动学 数控机床传动机构 工程材料 工程材料分类及特点
材 料 员: 杨继增 领 工 员: 赵金水 联 络 员: 姜伟滢 邵慧娟 既有线防护员:张超 顾秋实 张海斌 何武林 施工计划 边跨现浇段计划于 2020 年 11 月 10 日开始施工,于 2020 年 12 月 10 日完成。 材料采购和供应计划 根据工程结构及总体施工计划以及工程的进展情况,合理的调配材料,确保施工过程合理、有序,均衡生产,分阶段、分批量合理调配材料
工序 50:找正钻夹具定位心轴跳动在 内,以φ 60孔为基准钻 4φ 9到尺寸; 工序 60:钳工去锐边毛刺。 工序 70:零件终检。 ,设计毛坯 —— 零件综合图 ( 1)确定机械加工余量。 钢质模锻件加工余量根据国家有关标准确定。 确定时,根据估算的锻件质量、加工精度及锻件形状复杂系数,可查得零件内外表面加工余量。 ①锻件质量:根据零件成品质量为 ,估计毛坯质量为。 ②加工精度:除φ
工序 2: 铣 孔的外侧面 长 春 大 学 课程设计纸 共 25 页 第 19 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 工序 3: 钻,扩 孔 长 春 大 学 课程设计纸 共 25 页 第 20 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊