速读原著-TCP/IP(SNMP协议)

2020-03-17 11:00:58 浏览数 (1)

第25章 SNMP: 简单网络管理协议

25.2 协议

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

  1. g e t - r e q u e s t操作:从代理进程处提取一个或多个参数值。
  2. g e t - n e x t - r e q u e s t操作:从代理进程处提取一个或多个参数的下一个参数值(关于“下一个(n e x t)”的含义将在后面的章节中介绍)。
  3. s e t - r e q u e s t操作:设置代理进程的一个或多个参数值。
  4. g e t - r e s p o n s e操作:返回的一个或多个参数值。这个操作是由代理进程发出的。它是前面3中操作的响应操作。
  5. t r a p 操作:代理进程主动发出的报文,通知管理进程有某些事情发生。

前面的3个操作是由管理进程向代理进程发出的。后面两个是代理进程发给管理进程的(为简化起见,前面3个操作今后叫做g e t、g e t - n e x t和s e t操作)。图2 5 - 1描述了这5种操作。

既然这些操作中的前 4种操作是简单的请求 -应答方式(也就是管理进程发出请求,代理进程应答响应),而且在S N M P中往往使用U D P协议,所以可能发生管理进程和代理进程之间数据报丢失的情况。因此一定要有超时和重传机制。

管理进程发出的前面 3种操作采用U D P的1 6 1端口。代理进程发出的 Tr a p操作采用U D P的1 6 2端口。由于收发采用了不同的端口号,所以一个系统可以同时为管理进程和代理进程(参见习题2 5 . 1)。 图2 5 - 2是封装成U D P数据报的5种操作的S N M P报文格式。

在图中,我们仅仅对I P和U D P的首部长度进行了标注。这是由于: S N M P报文的编码采用了A S N . 1和B E R,这就使得报文的长度取决于变量的类型和值。关于 A S N . 1和B E R的内容将在后面介绍。在这里介绍各个字段的内容和作用。

版本字段是0。该字段的值是通过S N M P版本号减去1得到的。显然0代表SNMP v1。 图2 5 - 3显示各种P D U对应的值(P D U即协议数据单元,也就是分组)。共同体字段是一个字符串。这是管理进程和代理进程之间的口令,是明文格式。默认的值是p u b l i c。

对于g e t、g e t - n e x t和s e t操作,请求标识由管理进程设置,然后由代理进程在 g e t -r e s p o n s e中返回。这种类型的字段我们在其他U D P应用中曾经见过(回忆一下在图1 4 - 3中D N S的标识字段,或者是图1 6 - 2中的事务标识字段)。这个字段的作用是使客户进程(在目前情况下是管理进程)能够将服务器进程(即代理进程)发出的响应和客户进程发出的查询进行匹配。这个字段允许管理进程对一个或多个代理进程发出多个请求,并且从返回的众多 应答中进行分类。

差错状态字段是一个整数,它是由代理进程标注的,指明有差错发生。图2 5 - 4是参数值、名称和描述之间的对应关系。

差错索引字段是一个整数偏移量,指明当有差错发生时,差错发生在哪个参数。它是由代理进程标注的,并且只有在发生 n o S u c h N a m e、r e a d O n l y和b a d V a l u e差错时才进行标注。

在g e t、g e t - n e x t和s e t的请求数据报中,包含变量名称和变量值的一张表。对于 g e t和g e t - n e x t操作,变量值部分被忽略,也就是不需要填写。

对于t r a p操作符(P D U类型是4),S N M P报文格式有所变化。我们将在 2 5 . 1 0节中当讨论到t r a p时再详细讨论。

0 人点赞