⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 基于tcp-ip网络的管理结构和标记.htm

📁 internet协议集
💻 HTM
📖 第 1 页 / 共 2 页
字号:
      mandatory.</P>
      <P>OBJECT: atNetAddress { atEntry 3 }<BR>Syntax: 
      NetworkAddress<BR>Definition: 与介质相关物理地址相对应的网络地址<BR>Access: 
      read-write.<BR>Status: mandatory.</P>
      <P>第四个对象类型也可能被定义在MIB中:</P>
      <P>OBJECT: atEntry { atTable 1 }<BR>Syntax: <BR>AtEntry ::= SEQUENCE 
      {<BR>atIndex<BR>INTEGER,<BR>atPhysAddress<BR>OCTET 
      STRING,<BR>atNetAddress<BR>NetworkAddress<BR>}<BR>Definition: 
      地址映射表中的入口<BR>Access: read-write.<BR>Status: mandatory.</P>
      <P>每个对象类型的实便包括由前三个对象类型实例表示的信息。把这种定义出的对象类型称为列表(list)。同样的,列表类型的集合可以组成表(table)。例如,第五个对象的定义如下:</P>
      <P>OBJECT: atTable { at 1 }<BR>Syntax: SEQUENCE OF AtEntry<BR>Definition: 
      地址映射表<BR>Access: read-write.<BR>Status: mandatory.</P>
      <P>上面的地址映射表就是由AtEntry的集合构成的。让我们想一下如何获得表中的对象。下面我们看一个例子,下面是一个对象类型:</P>
      <P>{ atPhysAddress }</P>
      <P>而下面是与协议相关的对象实例:</P>
      <P>{ atNetAddress } = { internet "10.0.0.52" }</P>
      <P>这两个量组成的偶对将可以参照atPhysAddress的实例。这里的atPhyAddress是任何与atNetAddress相关值为{ 
      internet "10.0.0.52 }的地址映射表入口的一部分。下来我们看看如何访问一个包中的集合对象(list),将对象类型命名为:</P>
      <P>{ atEntry }</P>
      <P>然后指定与协议相关的对象实例:</P>
      <P>{ atNetAddress } = { internet "10.0.0.52" }</P>
      <P>上面的对象实例访问表中入口的所有实例,其中表与atNetAddress的值 { internet "10.0.0.52" }相关。</P>
      <P>每个管理协议均提供了访问非集合对象类型的机制,每个管理协议也说明了它是否支持访问集合对象类型。而且,协议必须指定当一个对象类型/实例对访问多个类型的实例时会返回哪个实例。为支持不同的管理协议,所有能够使对象能够区分的信息由对象类型的实例定义在MIB中。</P>
      <P>3.3. 管理对象宏</P>
      <P>可以使用OBJECT-TYPE宏来处理MIB中的定义。这个宏允许一个对象类型的主要访问采取统一的表示方式。</P>
      <P>OBJECT-TYPE MACRO ::=<BR>BEGIN<BR>TYPE NOTATION ::= "SYNTAX" type (TYPE 
      ObjectSyntax)<BR>"ACCESS" Access<BR>"STATUS" Status<BR>VALUE NOTATION ::= 
      value (VALUE ObjectName)</P>
      <P>Access ::= "read-only"<BR>| "read-write"<BR>| "write-only"<BR>| 
      "not-accessible"<BR>Status ::= "mandatory"<BR>| "optional"<BR>| 
      "obsolete"<BR>END</P>
      <P>根据上面定义的对象类型,我们可以看到下面定义在MIB中的定义:</P>
      <P>atIndex OBJECT-TYPE<BR>SYNTAX INTEGER<BR>ACCESS read-write<BR>STATUS 
      mandatory<BR>::= { atEntry 1 }</P>
      <P>atPhysAddress OBJECT-TYPE<BR>SYNTAX OCTET STRING<BR>ACCESS 
      read-write<BR>STATUS mandatory<BR>::= { atEntry 2 }</P>
      <P>atNetAddress OBJECT-TYPE<BR>SYNTAX NetworkAddress<BR>ACCESS 
      read-write<BR>STATUS mandatory<BR>::= { atEntry 3 }</P>
      <P>atEntry OBJECT-TYPE<BR>SYNTAX AtEntry<BR>ACCESS read-write<BR>STATUS 
      mandatory<BR>::= { atTable 1 }</P>
      <P>atTable OBJECT-TYPE<BR>SYNTAX SEQUENCE OF AtEntry<BR>ACCESS 
      read-write<BR>STATUS mandatory<BR>::= { at 1 }</P>
      <P>AtEntry ::= SEQUENCE {<BR>atIndex<BR>INTEGER,<BR>atPhysAddress<BR>OCTET 
      STRING,<BR>atNetAddress<BR>NetworkAddress<BR>}</P>
      <P>4. MIB扩展</P>
      <P>每个Internet标准MIB文档都将前面文档标记为过时的。在下面标记处标记的名字是在改变版本时没有进行过改变的:</P>
      <P>{ mgmt version-number }</P>
      <P>新版本可以会宣布老的对象类型过时,但不删除它们的名字;通过添加非集合对象类型到列表(list)中对象类型而扩展一个对象类型的定义;要么就索性定义新的对象。新版本不能在未改变对象名字的情况下改变对象的语义。这样就保证了相同的名字在不同的版本下会有相同的语义,这样在实现起来就比较方便。但是,管理代表可能会返回一个对象,它是需要对象的一个超集。考虑到健壮性,管理程序应该忽略掉这些附加信息。但是我们要注意:如果一个实例没有和希望的对象类型相同的语法,控制将会失败。在监视和控制的情况下,由一个操作返回的对象名必须和操作要求的对象名一致。</P>
      <P>5. 定义</P>
      <P>RFC1155-SMI DEFINITIONS ::= BEGIN<BR><BR>EXPORTS -- 
      EVERYTHING<BR>internet, directory, mgmt,<BR>experimental, private, 
      enterprises,<BR>OBJECT-TYPE, ObjectName, ObjectSyntax, 
      SimpleSyntax,<BR>ApplicationSyntax, NetworkAddress, IpAddress,<BR>Counter, 
      Gauge, TimeTicks, Opaque;<BR><BR>-- the path to the root<BR><BR>internet 
      OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }<BR><BR>directory OBJECT 
      IDENTIFIER ::= { internet 1 }<BR><BR>mgmt OBJECT IDENTIFIER ::= { internet 
      2 }<BR><BR>experimental OBJECT IDENTIFIER ::= { internet 3 
      }<BR><BR>private OBJECT IDENTIFIER ::= { internet 4 }<BR>enterprises 
      OBJECT IDENTIFIER ::= { private 1 }<BR><BR><BR>-- definition of object 
      types<BR><BR>OBJECT-TYPE MACRO ::=<BR>BEGIN<BR>TYPE NOTATION ::= "SYNTAX" 
      type (TYPE ObjectSyntax)<BR>"ACCESS" Access<BR>"STATUS" Status<BR>VALUE 
      NOTATION ::= value (VALUE ObjectName)<BR><BR>Access ::= "read-only"<BR>| 
      "read-write"<BR>| "write-only"<BR>| "not-accessible"<BR>Status ::= 
      "mandatory"<BR>| "optional"<BR>| "obsolete"<BR>END<BR><BR>-- names of 
      objects in the MIB<BR><BR>ObjectName ::=<BR>OBJECT IDENTIFIER<BR><BR>-- 
      syntax of objects in the MIB<BR><BR>ObjectSyntax ::=<BR>CHOICE 
      {<BR>simple<BR>SimpleSyntax,<BR><BR>-- note that simple SEQUENCEs are not 
      directly<BR>-- mentioned here to keep things simple (i.e.,<BR>-- prevent 
      mis-use). However, application-wide<BR>-- types which are IMPLICITly 
      encoded simple<BR>-- SEQUENCEs may appear in the following 
      CHOICE<BR><BR>application-wide<BR>ApplicationSyntax<BR>}<BR><BR>SimpleSyntax 
      ::=<BR>CHOICE {<BR>number<BR>INTEGER,<BR><BR>string<BR>OCTET 
      STRING,<BR><BR>object<BR>OBJECT 
      IDENTIFIER,<BR><BR>empty<BR>NULL<BR>}<BR><BR>ApplicationSyntax 
      ::=<BR>CHOICE 
      {<BR>address<BR>NetworkAddress,<BR><BR>counter<BR>Counter,<BR><BR>gauge<BR>Gauge,<BR><BR>ticks<BR>TimeTicks,<BR><BR>arbitrary<BR>Opaque<BR><BR>-- 
      other application-wide types, as they are<BR>-- defined, will be added 
      here<BR>}<BR><BR><BR>-- application-wide types<BR><BR>NetworkAddress 
      ::=<BR>CHOICE {<BR>internet<BR>IpAddress<BR>}<BR><BR>IpAddress 
      ::=<BR>[APPLICATION 0] -- in network-byte order<BR>IMPLICIT OCTET STRING 
      (SIZE (4))<BR><BR>Counter ::=<BR>[APPLICATION 1]<BR>IMPLICIT INTEGER 
      (0..4294967295)<BR><BR>Gauge ::=<BR>[APPLICATION 2]<BR>IMPLICIT INTEGER 
      (0..4294967295)<BR><BR>TimeTicks ::=<BR>[APPLICATION 3]<BR>IMPLICIT 
      INTEGER (0..4294967295)<BR><BR>Opaque ::=<BR>[APPLICATION 4] -- arbitrary 
      ASN.1 value,<BR>IMPLICIT OCTET STRING -- 
      "double-wrapped"<BR><BR>END<BR></P></TD></TR></TBODY></TABLE></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -