基于TCP/IP的网络管理包含3个组成部分:

  • 一个管理信息库MIB:MIB包含所有代理进程的所有可被查询和修改的参数
  • 关于MIB的一套公用的结构和表示符号,即SMI(管理信息结构)
  • 管理进程和代理进程之间的通信协议,即SNMP(简单网络管理协议)

SNMP在运输层大多使用UDP

协议

关于管理进程和代理进程之间的交互信息,SNMP定义了5种报文:

  1. get-request操作:从代理进程处提取一个或多个参数值
  2. get-next-request操作
  3. set-request操作:设置代理进程的一个或多个参数值
  4. get-response操作:返回的一个或多个参数值。此操作由代理进程发出,其是前面3种操作的响应操作
  5. trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生

封装成UDP数据报的5种操作的SNMP报文格式如下:

  • PDU:协议数据单元,也即是分组
  • 共同体:一个字符串。这是管理进程和代理进程之间的口令,明文格式,默认值是public
  • 请求标识:由管理进程设置,由代理进程在get-response中返回。作用是使客户进程能够将服务器进程发出的响应和客户进程发出的查询进行匹配
  • 差错状态字段:一个整数,由代理进程标注,指明有差错发生
  • 差错索引字段:一个整数偏移量,由代理进程标注,指明当有差错发生时,差错发生在哪个参数,且只有在发生noSuchName、readOnly、badValue差错时才进行标注
  • 在get、get-next和set的请求数据报中,包含变量名称和变量值的一张表。对于get和get-next操作,变量值部分被忽略,也就是不需要填写。

管理信息结构(SMI)

INTEGER
OCTER STRING
DisplayString
OBJECT IDENTIFIER 下一节中详讲
NULL
IpAddress
PhysAddress
Counter
Gauge
TimeTicks
SEQUENCE
SEQUENCE OF

对象标识符(OBJECT IDENTIFIER)

对象标识是一种数据类型,它指明一种“授权”命名的对象。 “授权”的意思就是这些标识不是随便分配的,它是由一些权威机构进行管理和分配的。

对象标识是一个整数序列,以点(“.”)分隔。这些整数构成一个树型结构,类似于DNS或Unix的文件系统,如图:

图中所有的MIB变量都从1.3.6.1.2.1这个标识开始,树上的每个结点同时还有一个文字名。如标识1.3.6.1.2.1就和iso.org.dod.internet.memt.mib对应

管理信息库(MIB)

MIB被划分成若干个组,如上面的图25-6所示,system、 interfaces、at、ip、tcp、udp等。现在讨论udp组中的变量。

udp组

UDP组的结构如下:


system组

interface组

本组定义了一个简单变量和一个表格变量:

at组

ip组

多个简单变量+3个表格变量:

icmp组

tcp组

实例标识

当对MIB变量进行操作(如查询和设置变量的值时),必须对MIB的每个变量进行标识。只有叶子结点是可操作的。

简单变量的实例标识

通过在其对象标识后面添加“.0”来处理。

如上图25-8中的计数器udpInDatagrams,它的对象标识是1.3.6.1.2.1.7.1,它的实例标识是1.3.6.1.2.1.7.1.0,相对应的文字名称是iso.org.dod.internet.mgmt.mib.udp.udpInDatagrams.0。这个变量处理后通常可以缩写为udpInDatagrams.0

表格的实例标识

以上图25-8中的UDP监听表为例:

字典式排序

MIB中按照对象标识进行排序时有一个隐含的排序规则。MIB表格是根据其对象标识按照字典的顺序进行排序的。这就意味着图25-12中的6个变量排序后的情况如图25-13所示。

从这种字典式排序中可以得出两个重要结论:
1.在表格中,一个给定变量(在这里指udpLocalAddress)的所有实例都在下个变量(这里指udpLocalPort)的所有实例之前显示。这暗示表格的操作顺序是“先列后行”的次序。这是由于对对象标识进行字典式排序所得到的,而不是按照人们的阅读习惯而排列的。

2.表格中对行的排序和表格中索引的值有关。在图25-13中,67的字典序小于161,同样161的字典序小于520

Trap

6种特定的trap类型,第7种trap类型是由供应商自己定义的特定类型:

一些简单的例子

TCP/IP详解之:SNMP的更多相关文章

  1. 《TCP/IP详解卷1:协议》第1章 概述-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  2. 『TCP/IP详解——卷一:协议』读书笔记——01

    从今日起开始认真研读TCP/IP详解这本经典制作,一是巩固我薄弱的计算机网络知识,二来提高我的假期的时间利用率.将心得与思考记录下来,防止白看-哦耶 2013-08-14 18:47:06 第一章 概 ...

  3. TCP/IP详解学习笔记- 概述

    TCP/IP详解学习笔记(1)-- 概述1.TCP/IP的分层结构      网络协议通常分不同层次进行开发,每一层分别负责不同的同信功能.TCP/IP通常被认为是一个四层协议系统.      如图所 ...

  4. 《TCP/IP详解 卷1:协议》系列分享专栏

    <TCP/IP详解卷1:协议>是一本详细的TCP/IP协议指南,计算机网络历久不衰的经典著作之一. 作者理论联系实际,使读者可以轻松掌握TCP/IP的知识.阅读对象为计算机专业学生.教师以 ...

  5. 《TCP/IP详解 卷1:协议》第3章 IP:网际协议

    3.1 引言 IP是TCP/IP协议族中最为核心的协议.所有的TCP.UDP.ICMP及IGMP数据都以IP数据报格式传输(见图1-4).许多刚开始接触TCP/IP的人对IP提供不可靠.无连接的数据报 ...

  6. 第8章 应用协议 图解TCP/IP 详解

    第8章 应用协议 图解TCP/IP 详解 8.1 应用层协议概要 应用层协议的定义 TCP和IP等下层协议是不依赖上层应用类型.实用性非常广的协议.而应用协议则是为了实现某种应用而设计和创造的协议. ...

  7. 网络编程TCP/IP详解

    网络编程TCP/IP详解 1. 网络通信 中继器:信号放大器 集线器(hub):是中继器的一种形式,区别在于集线器能够提供多端口服务,多口中继器,每个数据包的发送都是以广播的形式进行的,容易阻塞网络. ...

  8. 《TCP/IP详解 卷1:协议》第4章 ARP:地址解析协议

    4.1 引言 本章我们要讨论的问题是只对TCP/IP协议簇有意义的IP地址.数据链路如以太网或令牌环网都有自己的寻址机制(常常为48 bit地址),这是使用数据链路的任何网络层都必须遵从的.一个网络如 ...

  9. TCP/IP详解 读书笔记(一):概述

    分层 网络协议通常分不同层次进行开发,每一层负责不同的职责,一个协议簇指的是一组不同层次上的多个协议的组合. TCP/IP通常被认为是一个四层协议系统: 链路层:主要是处理与电缆或其他传输媒介的物理接 ...

  10. TCP/IP详解学习笔记

    TCP/IP详解学习笔记(1)-基本概念 TCP/IP详解学习笔记(2)-数据链路层 TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议 TCP/IP详解学习笔记(4)-ICMP协议, ...

随机推荐

  1. nginx配置文件(反向代理+集群+动静分离)

    1.nginx纯反向代理配置(nginx.conf): #user nobody;worker_processes 4;error_log logs/error.log info;pid logs/n ...

  2. Python3.5入门学习记录-File

    在Python中,操作文件对象使用open函数来创建,下表列出了常用的操作file的函数: 序号 方法及描述 1.file.close() 关闭文件.关闭后文件不能再进行读写操作. 2.file.fl ...

  3. OpenCV——CvSeq动态结构序列

    动态结构序列CvSeq是所有OpenCV动态数据结构的基础. 分为两类: 稠密序列 稀疏序列 (1) 稠密序列都派生自CvSeq,他们用来代表可扩展的一维数组 - 向量.栈.队列和双端队列.数据间不存 ...

  4. Delphi Length函数

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  5. C++程序设计实践指导1.10二维数组元素换位改写要求实现

    改写要求1:改写为以单链表和双向链表存储二维数组 改写要求2:添加函数SingleLinkProcess()实现互换单链表中最大结点和头结点位置,最小结点和尾结点位置 改写要求3:添加函数Double ...

  6. Centos安装php提示virtual memory exhausted: Cannot allocate memory

    由于内存不够,需要在php配置的时候./configure最后添加上 --disable-fileinfo >>./configure --prefix= ...........   -- ...

  7. JS多选日期

    项目需要一个可以选择多个日期的日期选择框,从网上找到一个单选的选择框源码 (http://blog.5d.cn/user2/samuel/200503/61881.html),修改成可以多选. 使用方 ...

  8. 单机/伪分布式Hadoop2.4.1安装文档

    转载自官方文档,最新版请见:http://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoop-common/SingleCluster.h ...

  9. 一种无new创建对象的方法

    var L=function(){ var obj = { age:38, live:true, job:"web dev" }; obj.name = "zhouhui ...

  10. Web框架-Django基础

    一.django简介 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内 ...