0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用NET技术实现的SNMP通信,为监控系统后续功能奠定基础

电子设计 作者:电子设计 2018-11-07 08:06 次阅读

随着计算机网络技术的飞速发展,通信网络结构越来越复杂,通信网络使用的设备也越来越复杂,由于网络的大型化和复杂化,如何有效地进行网络管理日益成为们普遍关注的问题。网络管理的目标是最大限度地增加网络的可用时间,提高网络设备的利用率、网络性能、服务质量和安全性,简化多厂商混合网络环境下的管理和控制网络运行成本,提供网络的长期规划。

SNMP(Simple Network Management Protocol,简单网络管理协议)易于实现和广泛的TCP/IP应用基础,可以在多厂商混合网络环境下,通过提供单一的网络操作控制环境来管理所有子网和被管理设备,以集中的、统一的方式远程控制网络,以排除故障和重新配置网络设备而获得厂商的支持。

然而,实现SNMP编程常见方法是使用网络管理应用SNMP的API,大多数API都提供了一个很大的函数库,比如WinsNMP.由于。NET有丰富的、可复用的标准类库,采用。NET开发越来越受到开发人员的青睐。为了简化SNMP网络管理系统的开发复杂度、开发出高效易扩展的代码,采用把复杂的WinSNMP的API函数封装成一个个相关的。NET类,从而简化了SNMP网络管理软件开发的复杂性。用于它把SNMP编程中的核心部分都面向对象化封装起来,因此开发人员不必了解SNMP底层机制,只要了解。NET的编程知识和SNMP编程的流程,就可以快速开发出高效的SNMP程序。

1 SNMP概述

SNMP(Simple Network Management Protocol,简单网络管理协议)首先是有IETF的研究小组为了解决Internet上的路由器的管理问题而提出的。1989年SNMPv1发行时,虽然能显示出管理大部分Internet设备的强大能力,但是也暴露出明显不足:给网络带来沉重负担、网络中数据的安全性差。1993年IETF发布了新的SNMP v2,然后再增加了安全机制的同时,也增加了实施的复杂性。随着网络安全重要性的发展,SNMPv3诞生了,其体系结构不仅体现了模块化的设计思想,还能简单地实现功麓模块的增加和修改。从总体上说,SNMP的设计原则是简单性和可扩展性。简单性是通过信息类型限制、请求响应或协议而实现的;可扩展性是通过将管理信息模型与协议、被管理对象的详细规定(MIB)分离而实现的。

1.1 SNMP通信模型

SNMP通信管理模型采用的是管理站/管理代理模型,共有4个组成部分:管理站、管理代理、管理信息库和网络管理协议,如图1所示。

利用NET技术实现的SNMP通信,为监控系统后续功能奠定基础

图1 SNMP网络管理模型

它们之间的关系是:管理站通过与管理代理发送/接受/响应SNMP请求来完成对管理代理的监控管理工作、所有管理设备的信息都被储存在管理代理实体的管理信息库中、管理站和管理代理之间交互的数据格式和规则都由SNMP来规范。每个部分的具体介绍如下:

1)管理站 一个单独的设备或者是共享网络中的一员,为管理站和网络管理系统提供接口

2)管理代理 一般的网络终端如路由器、交换机等在设备出厂时都已经配置好相关的SNMP管理代理,对于不支持SNMP协议的设备,如果网络终端是主机的话,可以在"控制面板"的"添加/删除程序"的"添加/删除windows组件".安装"简单网络管理协议".

3)管理信息库(MIB) 存放了网络设备上被管对象资源的所有信息,每个被管对象有一个惟一对象的对象标识符(OID)。管理信息库本身就是一个定义如何把对象标识符组合成逻辑相关的集合。

4)网络管理协议(SNMP) 主要有以下3个功能:取值(Get)使网管站能读取代理处对象的值;设置值(Set)使网管站能设置管理代理处对象的值;告警信息(Trap)使管理代理能够向管理站通报重要事件。

1.2 SNMP协议数据单元

在SNMP中,信息按照SNMP报文格式在管理站和管理代理之间进行交换,一共有Get-Request操作、Get-Next-Request操作、Set-Request操作、Get-Response操作、Trap操作一共5种报文类型。如图2所示。

利用NET技术实现的SNMP通信,为监控系统后续功能奠定基础

图2 SNMP报文的工作机制

前面3个操作是由管理站向管理代理发出的,后面2个操作是管理代理发给管理站的。这里值得注意的一点是,在管理代理一端使用熟知端口161来接受get或set报文,而在管理站一端是用熟知端口162来接受trap报文。

2 SNMP通信的关键

2.1 数据类型的规范定义

在基于SNMP通信的监控系统中,每个被管理设备都维护一个包含统计信息及其他数据的数据库,被称作管理信息库(Management Infor-mation Base,MIB)。每个MIB的每项都包含一个信息:对象类型、语法、访问及状态等。MIB中的各项内容由管理信息结构(Structure of Management Information,SMI)来定义,SMI为MIB提供了一个通用框架,同时规定了在MIB中使用时的数据类型,即如何表示和命名MIB对象。一个对象类型的命名明确代表一个对象,成为对象标识符。它是一个由圆点分隔的整数序列,这些对象标识符按照类似DNS域名系统的树状结构来排列的,一个对象标识符(OID)唯一标识一个MIB对象。另外,MIB还要严格遵守ASN.1(Abstract Syntax Notation One,抽象语法标记)的语法格式,ASN.1提供了一套正规格式用来描述对象结构,而且不管对象数据的具体指代。

本文中最常用到的几个数据的规范如表1所示。

表1 ASN.1规范下的数据定义

利用NET技术实现的SNMP通信,为监控系统后续功能奠定基础

2.2 SNMP通信的关键函数

SNMP规定使用用户数据报协议(UDP)作为第4层传输协议,在数据传输过程中,网络一步步把UDP数据封装成SNMP报文的形式来保障管理站和管理代理之间的数据顺利交互,而UDP使用的是无连接服务,所以SNMP无需在管理站和管理代理之间保持连接,但可能发生数据报丢失的情况,因此一定要有超时和重传机制。主要实现的几个函数如下:

利用NET技术实现的SNMP通信,为监控系统后续功能奠定基础

.NET使用以上几个函数完成基本的SNMP通信,首先,用RequestAsync函数建立SNMP请求,然后用sendToBegin函数发送此SNMP请求,同时管理代理端有监听函数,收到SNMP请求后会做出响应并给管理站返回需要的信息,此时,管理站用ReceiveBegin函数接受返回来的信息。在此通信过程中有可能发生数据丢失,RetryAsyncRequest和Request函数就是为此而设计的重传请求函数和重传协议函数。

3 .NET技术实现

把UDP的Socket通信封装好之后,运用。NET技术进行具体的SNMP控制,下面以Get-Request操作和Set-Request操作为例子来演示。NET技术编程的快速、便捷。

利用NET技术实现的SNMP通信,为监控系统后续功能奠定基础

利用NET技术实现的SNMP通信,为监控系统后续功能奠定基础

在主程序中执行了这两段代码,都返回了开发者想要的结果。最重要的是,使用。NEET技术封装了SNMP底层通信的编程,使整个程序看起来简单易懂。

4 结束语

随着网络规模和复杂性的发展,一个功能健全的安全监控管理软件自然成为网络管理者的最大愿望NET的开发语言之一C#的主要特点就是简单易用。由于C#把对编程中的很多部分都对象化,编程人员不需要了解函数的具体实现,在使用的时候,着重注意函数的参数类型和个数以及对象与函数之间的对应关系,就可以很方便地实现各种参数的传输、修改等等。如此一来,整个基于SNMP的网站监控管理系统的开发周期就大大缩短。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    7494

    浏览量

    87934
  • 交换机
    +关注

    关注

    21

    文章

    2639

    浏览量

    99620
  • 通信网络
    +关注

    关注

    21

    文章

    2038

    浏览量

    52031
收藏 人收藏

    评论

    相关推荐

    智能监控技术的多样性奠定发展道路

    智能分析技术不断成熟,“可控式、移动式、手机式”违法抓拍提供机遇,其有抓拍范围大、灵活便捷等先天优势。通过固定式与“可控式、移动式、手机式”智能监控系统相互补充,可构建形成全方位立体
    发表于 08-01 10:06

    【无线电版】基于W5500的嵌入式SNMP代理端实现

    Agent已经运行,当然要实现一个复杂的网络管理功能还需要NetSNMP中很多其他指令在此不一一列举。五总结本文给出了基于W5500的嵌入式系统
    发表于 04-09 10:07

    net-snmp移植到arm过程

    linux下net-snmp移植流程1)./configure --prefix=/hom/arm-linux/snmp --host=arm-linux --enable-mini-agent
    发表于 01-04 14:37

    【终极福利】《利用LabVIEW轻松玩转远程视频监控》05 LabVIEW与外部互联之 .net实现

    【终极福利】《利用LabVIEW轻松玩转远程视频监控》05 LabVIEW与外部互联之 .net实现本教程利用LabVIEW轻松
    发表于 07-10 07:56

    【终极福利】《利用LabVIEW轻松玩转远程视频监控》05 LabVIEW与外部互联之 .net实现(第2节)

    `【终极福利】《利用LabVIEW轻松玩转远程视频监控》05 LabVIEW与外部互联之 .net实现(第2节)本教程利用LabVIEW轻松
    发表于 07-18 19:40

    AN_基于FreeRTOS+LwIP的SNMP实现方案

    、路由器和其他网络设备的远程管理和监视。利用SNMP协议可以更好地管理和监控网络。管理工作站可以远程管理所有支持该协议的网络设备,如监视网络状态、修改网络设备配置、接收网络事件警告等。SNMP
    发表于 11-02 07:03

    基于SNMP的网络监控系统

    主要介绍基于SNMP(Simple Network Management Protocol)的网络监控系统。该系统运用PERL和PHP实现
    发表于 07-06 15:20 33次下载

    基于ASP.NET和ADO.NET的太阳能电站远程监控系统

    叙述了应用微机、单片机技术构成的太阳能电站远程监控系统的结构与功能,对利用ASP.NET和ADO
    发表于 08-14 16:28 38次下载

    基于NET的挖掘机实时监测系统设计与实现

    介绍了如何基于.NET 实现对挖掘机的实时监控。该实时监控系统基于MVC 模式和B/S 模式,采用三层逻辑设计结构,
    发表于 12-16 14:58 9次下载

    利用LonWorks技术实现通信基站的动力环境监控

    利用LonWorks技术实现通信基站的动力环境监控 一、 概述 电信部门的通信基站往往担负着
    发表于 05-27 10:33 715次阅读

    基于CANbus和SNMP的起重力矩监控系统

    基于CANbus和SNMP的起重力矩监控系统 在工程机械的控制系统中,计算机技术
    发表于 10-30 10:32 708次阅读
    基于CANbus和<b class='flag-5'>SNMP</b>的起重力矩<b class='flag-5'>监控</b><b class='flag-5'>系统</b>

    基于.NETSNMP通信实现

    随着网络规模的扩大和复杂性的提高,网络安全越来越受到网络管理者的重视, SNMP 以设计简单最大优势,得到了广大厂商的支持和应用。基于开发一个功能健全的网络监控
    发表于 05-30 15:57 30次下载
    基于.<b class='flag-5'>NET</b>的<b class='flag-5'>SNMP</b><b class='flag-5'>通信实现</b>

    如何利用PLC的通信功能实现供水泵站的远程监控

    如何利用PLC的通信功能实现供水泵站的远程监控
    发表于 09-04 10:05 13次下载
    如何<b class='flag-5'>利用</b>PLC的<b class='flag-5'>通信</b><b class='flag-5'>功能</b><b class='flag-5'>实现</b>供水泵站的远程<b class='flag-5'>监控</b>

    net-snmp 技术用资料

    net-snmp 技术用资料
    发表于 09-05 10:22 7次下载
    <b class='flag-5'>net-snmp</b> <b class='flag-5'>技术</b>用资料

    什么是SNMPSNMP是如何工作的?

    用于监控和管理各种设备,包括路由器、交换机、服务器和打印机等。 SNMP工作原理如下:一个网络中的设备分为两类,SNMP代理和SNMP管理系统
    的头像 发表于 12-27 13:58 1605次阅读