SNMP协议分析及其在嵌入式操作系统下的实现.docx

上传人:b****2 文档编号:272516 上传时间:2023-04-28 格式:DOCX 页数:40 大小:349.70KB
下载 相关 举报
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第1页
第1页 / 共40页
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第2页
第2页 / 共40页
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第3页
第3页 / 共40页
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第4页
第4页 / 共40页
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第5页
第5页 / 共40页
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第6页
第6页 / 共40页
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第7页
第7页 / 共40页
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第8页
第8页 / 共40页
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第9页
第9页 / 共40页
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第10页
第10页 / 共40页
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第11页
第11页 / 共40页
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第12页
第12页 / 共40页
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第13页
第13页 / 共40页
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第14页
第14页 / 共40页
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第15页
第15页 / 共40页
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第16页
第16页 / 共40页
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第17页
第17页 / 共40页
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第18页
第18页 / 共40页
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第19页
第19页 / 共40页
SNMP协议分析及其在嵌入式操作系统下的实现.docx_第20页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

SNMP协议分析及其在嵌入式操作系统下的实现.docx

《SNMP协议分析及其在嵌入式操作系统下的实现.docx》由会员分享,可在线阅读,更多相关《SNMP协议分析及其在嵌入式操作系统下的实现.docx(40页珍藏版)》请在冰点文库上搜索。

SNMP协议分析及其在嵌入式操作系统下的实现.docx

SNMP协议分析及其在嵌入式操作系统下的实现

xxxx大学xx毕业论文

 

SNMP协议分析及其在嵌入式操作系统下的实现

 

学生:

fy04040019@

学号:

FY04040019

专业:

通信工程

导师:

 

xxxx大学

二OO七年十一月

SNMP协议分析及其在嵌入式操作系统下的实现

摘 要

本文以嵌入式SNMP代理的开发为背景,分别介绍了SNMP协议和嵌入式系统。

在SNMP协议部分,介绍了网络管理和协议的概念,并详细分析了SNMP协议;在嵌入式系统部分阐述了嵌入式系统的概念、特点、结构及嵌入式Linux软件开发过程。

在此基础上,给出了利用Net-SNMP软件开发包实现嵌入式Linux操作系统下的SNMP代理的实例。

关键词:

网络管理,SNMP,网管代理,嵌入式系统

 

AnalysisofSNMPProtocolandImplemetationofSNMPAgentinEmbeddedSystem

ABSTRACT

ThisdocumentisbasedondevelopmentofembeddedSNMPagent,includinganalysisofSNMPprotocolanddescriptionofembeddedsystem.AtthepartofanalysisofSNMPprotocol,thisdocumentintroducestheconceptofnetworkmanagementandprotocolandlaborsSNMPprotocol.Then,aninstantisgiventoexplainhowtoimplementSNMPagentinembeddedsystem.

KEYWORDS:

NetworkManagement,SNMP,Agent,andEmbeddedSystem

目录

目录3

第一章绪论5

1.1、背景介绍5

1.2、论文所做的工作5

1.3、论文结构5

第二章简单网络管理协议(SNMP)6

2.1、网络管理6

2.1.1、网络管理模型7

2.1.2、网络管理原则7

2.2、通信协议7

2.2.1、协议分层概念8

2.2.2、面向连接和无连接协议8

2.3、简单网络管理协议(SNMP)8

2.3.1、管理信息结构SMI9

2.3.2、管理信息库MIB9

2.3.3、SNMPv1通信模型11

2.3.4、SNMPv1消息格式11

2.3.5、SNMPv1的5种协议数据单元(PDU)12

2.3.6、SNMPv1的消息实例13

2.3.7、SNMPv2和SNMPv315

2.4、小结15

第三章嵌入式系统17

3.1、嵌入式系统定义17

3.2、嵌入式系统特点18

3.2.1、硬件特点18

3.2.2、软件特点18

3.3、嵌入式典型硬件结构19

3.4、嵌入式Linux操作系统19

3.5、嵌入式Linux系统开发20

3.5.1、嵌入式软件开发特点21

3.5.2、嵌入式Linux软件开发步骤22

3.6、小结22

第四章嵌入式SNMP代理的实现23

4.1、需求分析23

4.2、系统设计23

4.3、开发环境24

4.3.1、Net-SNMP软件开发包24

4.3.2、MG-SOFT的MIB工具24

4.4、开发过程24

4.4.1、建立开发环境25

4.4.2、编写MIB25

4.4.3、编写程序代码27

4.4.4、调试代理程序28

4.4.5、固件更新29

4.5、小结29

第五章结束语31

参考文献32

致谢

第一章绪论

1.1、背景介绍

人类正处于以计算机通信网络为中心的时代。

网络技术日新月异,网络的复杂性在不断增长,网络数量、网络设备越来越多,而且许多设备都是来自不同的厂家,因此,网络管理的问题也就越来越重要了。

由于SNMP协议简单,易于实现,它得到了广泛的应用,成为网络管理事实上的工业标准。

嵌入式系统是计算机系统的一个分支,与通用计算机系统相对。

嵌入式系统的范围相当广泛,基本上,计算机系统中不属于通用计算机系统的,都可以归为嵌入式系统,它在数量上远远超过了各种通用计算机系统。

在嵌入式设备上实现SNMP代理是发展趋势。

目前,大部分网络设备都支持SNMP协议。

1.2、论文所做的工作

本文研究了简单网络管理协议(SimpleNetworkManagementProtocol,SNMP)和嵌入式操作系统的相关理论,并且将SNMP协议应用于嵌入式操作系统。

论文主要包括下列内容:

1.简单网络管理协议(SNMP)分析。

包括引入网络管理和协议的概念,介绍管理信息结构(SMI)和管理信息库(MIB),以及对简单网络管理协议(SNMP)的分析。

2.嵌入式系统定义及其特点。

介绍了嵌入式系统的定义,特点和软硬件构架。

并着重分析了嵌入式Linux软件开发过程。

3.SNMP协议在嵌入式操作系统下的实现。

用一个实例来介绍SNMP代理在嵌入式系统下的实现。

1.3、论文结构

本文共分五章,其内容如下:

第一章:

绪论。

介绍论文课题研究的背景,给出论文的研究内容。

第二章:

简单网络管理协议(SNMP)。

讲述了网络管理和协议的概念;详细分析了简单网络管理协议(SNMP),包括管理信息结构(SMI),管理信息库(MIB)以及SNMP的三个版本(SNMPv1,SNMPv2c和SNMPv3)。

第三章:

嵌入式系统。

介绍嵌入式系统,包括其结构和特点;分析嵌入式Linux软件开发过程。

第四章:

嵌入式网络管理代理的实现。

介绍介绍SNMP协议软件开发包和相关应用工具;分析SNMP协议在嵌入式操作系统下的实现过程。

第五章:

结束语。

总结本文的研究工作。

第二章简单网络管理协议(SNMP)

自从上个世纪中叶世界上第一个分组交换的计算机通信网ARPANET投入运行以来,计算机与通信技术的结合得到飞速发展,并且产生了国际互联网(Internet),人类进入了以计算机通信网络为中心的时代。

目前,Internet还在以超常的速度发展。

根据2006年7月的CNNIC第十八次调查报告显示,截止至2006年6月30日,我国互联网发展的数据见下表:

表2-1我国互联网信息统计表

统计项目

数量

单位

上网用户总人数

12,300

万人

上网计算机

5,450

万台

WWW站点数约

788,400

IP地址总数

84,786,688

国际线路的总容量

214,175

M

与此同时,网络技术也是日新月异,网络的复杂性在不断增长,网络数量、网络设备越来越多,而且许多设备都是来自不同的厂家,因此,网络管理的问题也就越来越重要了。

2.1、网络管理

网络管理也就是管理网络,它可以分为两类。

第一类是网络应用程序管理、用户帐号管理和读写权限的管理,使用时间的管理等等。

它们都是与软件有关的网络管理问题。

这里不作讨论。

本文关心的是第二类,对网络硬件设备的管理。

这一类包括工作站、服务器、网卡、路由器、网桥和集线器等等。

他们不象你的用户,在有问题的时候知道打电话来告诉你,当一个路由器出问题的时候它并不会通知你,这就给你维护网络的正常运行带来了困难。

更不幸的是,这些设备通常情况下都分布在各个不同的地方,因此检查网络故障非常麻烦。

那么,这类设备该如何管理?

为了解决这个问题,厂商们已经在一些设备中设立了网络管理的功能,这样你就可以远程地操作它们,如改变它们的参数、询问它们的状态,还能够让它们在某一特定类型的事件发生时发送告警给你。

这些设备通常被称为"智能"设备,它们能够帮助你更好的管理网络。

2.1.1、网络管理模型

网络管理通常被分为四个部分:

1.被管设备。

即你想要监视的设备。

2.网管代理。

它是运行在被管理设备上,用来跟踪被管理设备状态,读写被管理设备参数的特殊软件。

3.网管工作站。

它与在不同的被管理设备中的网管代理通信,通过网管代理来管理被管设备。

4.网络管理协议。

网管工作站和网管代理用来交换信息的一套规则。

被管设备

网络管理协议

 

图2-1网络管理模型图

2.1.2、网络管理原则

当设计和构造网络管理的基础结构时,需要遵循下列两条在工业界被广泛承认的网络管理的原则:

1.由于管理信息而导致的通信量增加不应明显地增加被管理网络的负担。

2.被管理设备上的协议代理不应明显地增加系统处理的额外开销,以至于影响该设备的主要功能。

2.2、通信协议

通信协议就是相互通信的双方或多方传递和交互信息的一些规范。

如同人与人之间相互交流是需要遵循一定的规矩一样,计算机之间的相互通信需要共同遵守一定的规则,这些规则就被称为网络协议。

一台计算机只有在遵守网络协议的前提下,才能在网络上与其他计算机进行正常的通信。

常见的协议有:

TCP/IP协议、IPX/SPX协议、NetBIOS协议等等。

在互联网上被广泛采用的是TCP/IP协议,用户如果要访问Internet,必须在自己计算机的网络协议中添加TCP/IP协议。

2.2.1、协议分层概念

通信协议通常被分为几个层次,每层完成自己单独的功能。

通信双方只有在对等的层次间才能进行交互。

图2-2协议分层通信

2.2.2、面向连接和无连接协议

通信协议要么是面向连接的,要么是无连接的。

在无连接方法中,通信子网的任务仅仅是搬移比特而没有其它的行为。

在面向连接方法中,通信子网在两个端点之间建立了一条数据通信信道(电路),提供可靠的连接服务。

在传输控制协议/因特网协议(TCP/IP)组中,TCP是面向连接的,而UDP则是无连接的。

2.3、简单网络管理协议(SNMP)

简单网络管理协议(SimpleNetworkManagementProtocol,SNMP)首先是由Internet工程任务组织(InternetEngineeringTaskForce,IETF)的研究小组为了解决Internet上的路由器管理问题而提出的。

由于SNMP协议简单,易于实现,它得到了广泛的应用,成为网络管理事实上的工业标准。

SNMP管理也叫Internet管理,之所以被称为SNMP管理是因为它不光可以管理Internet还可以管理内部网(intranet)和电信网等等。

SNMP是一种应用层协议,它被设计成与下层协议无关,因此,SNMP可以在IP,IPX,AppleTalk,OSI以及其它的传输协议上被使用。

SNMP是无连接协议,这种机制减轻了网管代理的负担,它不必为了建立和维护可靠连接而耗费资源。

而尽量少给被管理网络增加负担符合了网络管理的原则。

SNMP是一系列协议组和规范,它主要由三个部分组成。

1.管理信息结构(StructureofManagementInformation,SMI)

2.管理信息库(ManagementInformationBase,MIB)

3.简单网络管理协议(SNMP)

有关SNMP的定义与协议的运行方式被详细的描写在RFC1155、RFC1212、RFC1157、RFC1213四份文件中,其中RFC1155和RFC1212是关于SMI的,RFC1213定义的MIB-II就是目前使用的版本,而SNMP协议则被定义在RFC1157中。

2.3.1、管理信息结构SMI

管理信息结构SMI定义了被管对象的规范说明。

SMI中没有任何的对象实例,它只关心抽象的对象类型。

每个对象类型都有自己的名字、语法和编码模式。

名字是用来标识对象的,它在系统中必须唯一。

对象类型的语法通过ASN.1定义。

编码则是通过基本编码规则(BasicEncodingRule,BER)来完成,它用标记、长度和值(TLV)对在SNMP协议间传递的信息进行编码。

2.3.2、管理信息库MIB

如果说管理信息结构SMI是一套规则,那么管理信息库MIB则是根据这套规则定义出来的一组对象。

网络中的被管对象就是通过MIB被访问。

Internet管理机构定义了Internet管理信息库,它有两个版本,一个是MIB-I,另一个是MIB-II,目前使用的版本是MIB-II。

MIB中的对象是以树状分层结构进行组织的,如图:

tcp(6)

ip(4)

interface

(2)

system

(1)

mib-2

(1)

private(4)

experimental(3)

mgmt

(2)

directory

(1)

internet

(1)

dod(6)

org(3)

iso

(1)

 

 

enterprise

(1)

IBM

(2)

 

图2-3MIB树

 

MIB树的分枝实际上就是数据对象的逻辑分组。

而树叶就是被管对象。

为了便于使用,MIB树的每个分枝都有一个专用的名字和一个数字形式的对象标识符(ObjectIdentifier,OID)。

如同DNS和IP地址的关系一样,专用名字的作用是为了方便人的记忆而设的,OID才是真正在通信中供机器使用的。

例如:

system组的sysDescr对象,它的OID是1.3.6.1.2.1.1.1,你也可以用iso.org.dod.internet.mgmt.mib-2.system.sysDescr来表示它,而且,大多数人想看到的都是这种文字的表述方法,毕竟,要记住一长串不相干的数字可不容易。

这也是为什么MIB浏览器都用文字格式来表示数据对象,如图:

图2-4通过浏览器查看MIB

MIB中的对象定义,尽可能涵盖所有的网络设备的功能,不足的部分则由厂商自行定义,即开发所谓的私有MIB。

私有MIB属于MIB中的对象{1.3.6.1.4.1},即enterprises(企业)。

开发网络设备的公司一般都有自己的私有MIB节点,例如IBM为{1.3.6.1.4.1.2},Cisco为{1.3.6.1.4.1.9},Novell为{1.3.6.1.4.1.23}等等。

MIB节点有专门的组织管理,如果需要一个私有的MIB节点,可以向该组织申请。

具体的方法是发送电子邮件到iana-mib@isi.edu进行申请。

另外,要注意区分MIB和数据库。

数据库中存放的是静态的数据,而MIB是不会储存数据的,MIB中定义的对象只是提供了一条访问被管对象数据的路径。

当你通过iso.org.dod.internet.mgmt.mib-2.system.sysName去读取设备的系统名称的时候,MIB并不会给你结果,而是网管代理根据你提供的“路径”去拿sysName的数据给你。

至于,这个数据是什么,存在什么地方,MIB是不知道的。

2.3.3、SNMPv1通信模型

1990年开发的SNMPv1是SNMP的第一个版本。

大多数情况下SNMP都是在TCP/IP里实现的,下图描述了SNMP在TCP/IP体系上的通信过程:

图2-5SNMP通信过程

2.3.4、SNMPv1消息格式

SNMPv1采用基于共同体(Community)的访问策略,同时它的安全性也是由共同体来管理的。

SNMP管理站(SNMPManager),SNMP代理(SNMPAgent)和共同体名称(CommunityName)构成了一个共同体。

只有在同一个共同体里面的SNMP管理站和SNMP代理才能相互通信。

这种通信可以包括来自SNMP管理站的询问消息、来自SNMP代理的应答消息或者来自代理给管理站的告警(Trap)消息。

一条SNMP消息由三个部分组成:

版本(Version)、共同体名称(Community Name)和SNMP协议数据单元(SNMPProtocolDataUnit,SNMPPDU),其结构如下:

版本

共同体名称

SNMPPDU

图2-6SNMP消息结构

1.版本:

用于说明现在使用的是哪个版本的SNMP协议。

“0”表示SNMPv1。

2.共同体名称:

当前使用的共同体名称,通信双方必需事先知道这个名称才能进行通信。

  

3.SNMPPDU:

SNMPv1的PDU有五种类型,它们是:

GetRequest-PDU,GetNextRequest-PDU,GetResponse-PDU,SetRequest-PDU和Trap-PDU。

2.3.5、SNMPv1的5种协议数据单元(PDU)

SNMPv1规定了5种协议数据单元PDU(也就是SNMP报文),用来在管理进程和代理进程之间进行信息交换。

下图描述了SNMP的这5种报文操作。

图2-7SNMP的5种报文操作

一般情况下,在代理进程端是用161端口来接收get或set报文,而在管理进程端是用162端口来接收trap报文。

下面介绍封装成UDP数据报的5种操作的SNMP报文格式。

1.Get/setPDU:

PDU类型

RequestID

错误状态

错误索引

变量绑定列表

图2-8SNMPget/setPDU

2.TrapPDU:

 

PDU类型

企业OID

代理地址

标准告警类型

特殊告警类型

时间戳

变量绑定列表

图2-9SNMPTrapPDU

1)PDU类型:

五种PDU类型在RFC1157中被定义成如下形式:

表2-2SNMPPDU类型定义

类型

长度

Get-request

0

Get-next-request

1

Set-request

2

Get-response

3

Trap

4

2)RequestID:

用于跟踪消息,确定它是否被成功收到。

这是因为SNMP协议是无连接的,不保证数据的可靠传输,对于消息的可靠性要系统自己来完成。

3)错误状态:

用一个不为零的数来指示是否有错误发生。

4)错误索引:

对错误状态的补充说明。

5)变量绑定列表:

由多个变量绑定组成,每个变量绑定由对象标识符和它的值组成。

6)时间戳:

从上一次初始化以来经历的时长。

2.3.6、SNMPv1的消息实例

本段我们将通过分析数据包来看看,SNMP消息实际上的样子。

图2-10SNMPget消息

图2-10是一个被发送到被管设备的SNMP消息,它请求读取sysName。

下面我们将用4张图来层层分解这条消息。

图2-11TLV结构

SNMP协议间传递的信息用标记、长度和值(TLV)进行编码。

由图2-11可以看到,整个消息就是一个TLV结构,十六进制的26表明后面数据的长度是38个字节。

数据中的各个部分也是按TLV结构编码的,这里就不再一一说明了。

图2-12SNMP消息的三个部分

图2-12中可以看到,在这条消息中,Version的值是‘0’,它表示消息中使用的是SNMPv1。

通过将十六进制的数字转为字符,可以得到CommunityName是‘public’。

图2-13SNMPPDU结构

图2-13显示了以下信息:

1.PDU类型:

GetRequest

2.RequestID:

39

3.错误状态:

0

4.错误索引:

0

图2-14变量绑定

图2-14是一个对变量绑定的分解,其中变量是OID:

1.3.6.1.2.1.1.5.0(iso.org.dod.internet.mgmt.mib-2.system.sysName.0),它的值在这里为空(NULL)。

2.3.7、SNMPv2和SNMPv3

1993年发布的SNMPv2最大的改动在于提供了SNMPv1所没有的安全功能。

但是,由于协议工作小组在安全性的认识上有较大的分歧,最终还是沿用了SNMPv1的基于共同体的安全模式。

作为SNMPv2的修改版本,SNMPv2工作小组在1996年发布了SNMPv2c。

实际中使用的第二版就是SNMPv2c,这里面‘c’表示Community-based,SNMPv2c也就是Community-basedSNMPv2。

RFC1901中有关于SNMPv2c的描述,它与SNMPv1之间有一个很大的问题,就是不兼容,例如:

SNMPv2c中新增了一个数据类型——Counter64,它不能被SNMPv1解析。

SNMPv2c重大改进有三:

1.新增get-bulk消息,可以使用此消息请求和接收大批量的数据。

2.增加了manager-to-manager消息,允许管理站之间直接通信。

3.升级了管理信息结构(SMI),并且扩充了MIB。

SNMPv1和SNMPv2c都是基于共同体的访问模式,在安全性方面没什么不同,SNMPv3满足了SNMP在管理上的安全要求。

SNMPv3采用基于用户的安全模型(User-basedSecurityModel,USM)和基于视图的访问控制模型(View-basedAccessControlModel,VACM)。

RFC2574和RFC2575分别描述了USM和VACM。

基于用户的安全模型(USM),类似于传统的用户名加密码的管理方式。

它对消息进行身份验证和加密解密,而在SNMP的前两个版本中,消息都是以明文传送的,其中也包括了共同体名称。

基于视图的访问控制模型(VACM)用于控制对SNMP的访问,它可以控制谁能访问网络元素,它们能访问什么,以及它们的访问权限(读/写)。

VACM在RFC2575中描述。

2.4、小结

本文涉及的网络管理是对网络硬件设备的管理,管理站和被管设备用来互通信息的一组规则被称为网络管理协议。

现在使用最为广泛的网络管理协议叫简单网络管理协议(SNMP),SNMP是一种应用层的无连接协议,它一般在TCP/IP体系中应用,但这并不是说SNMP只能用在TCP/IP体系中。

SNMP被设计成与协议无关,所以它可以在IPX,AppleTalk,OSI以及其它的传输协议上被使用。

SNMP包括管理信息结构(SMI),管理信息库(MIB)和简单网络管理协议(SNMP)三个部分。

管理信息结构SMI是一套规则,而管理信息库MIB则是根据这套规则定义出来的一组对象。

MIB中的对象是以树状分层结构进行组织的。

要注意MIB和存储数据的管理数据库是不一样的。

SNMPv1的安全模式是基于共同体(Community)的。

SNMPv1中定义了5种报文操作(get-request、get-next-request、set-request、get-response和trap),前3个是SNMP管理站发给SNMP代理的,后两个是代理发给管理站的。

SNMPv2最大的改动在于提供了SNMPv1所没有的安全功能。

但是并没有得到实施,它的最终版本SNMPv2c还是基于共同体的。

另外,SNMPv2c对SNMPv1不向后兼容。

SNMPv3主要改动在安全方面。

SNMPv3采用基于用户的安全模型(USM)和基于视图的访问控制模型(VACM)。

 

第三章嵌入式系统

上个世纪40年代,美国诞生了第一台电子计算机。

从此,人类在计算领域中进入了一个完全崭新的时代。

计算机的发展可以分为五代:

第一代:

电子管计算机。

第二代:

晶体管计算机。

这一时期操作系统的雏形开始形成。

第三代:

集成电路计算机。

第四代:

大规模集成电路计算机。

微处理器(CPU)就是从这里开始的,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2