SNMP的5種協議資料單元

2021-04-15 00:43:02 字數 2597 閱讀 8358

snmp規定了5種協議資料單元pdu(也就是snmp報文),用來在管理進 程和**之間的交換。

get-request操作:從**程序處提取乙個或多個引數值

set-request操作:設定**程序的乙個或多個引數值

get-response操作:返回的乙個或多個引數值。這個操作是由代 理程序發出的,它是前面三種操作的響應操作。

trap操作:**程序主動發出的報文,通知管理程序有某些事情發生。

前面的3種操作是由管理程序向**程序發出的,後面的2個操作是**程序發給管理程序的,為了簡化起見,前面3個操作今後叫做get、get-next和set操作。圖1描述了snmp的這5種報文操作。請注意,在**程序端是用熟知埠161倆接收get或set報文,而在管理程序端是用熟知埠162來接收trap報文。

圖1 snmp的5種報文操作

圖2是封裝成udp資料報的5種操作的snmp報文格式。可見乙個snmp報文共有三個部分組成,即公共snmp首部、get/set首部trap首部、變數繫結。

圖2 snmp報文格式

(1)公共snmp首部

共三個字段:

 版本

寫入版本欄位的是版本號減1,對於snmp(即snmpv1)則應寫入0。

 共同體(community)

共同體就是乙個字串,作為管理程序和**程序之間的明文口令,常用的是6個字元「public」。

 pdu型別

根據pdu的型別,填入0~4中的乙個數字,其對應關係如表2所示意圖。

表2 pdu型別

pdu型別

名稱 0

get-request

1

get-next-request

2

get-response

3

set-request

4

trap

2)get/set首部

 請求識別符號(request id)

這是由管理程序設定的乙個整數值。**程序在傳送get-response報文時也要返回此請求識別符號。管理程序可同時向許多**發出get報文,這些報文都使用udp傳送,先傳送的有可能後到達。設定了請求識別符號可使管理程序能夠識別返回的響應報文對於哪乙個請求報文

 差錯狀態(error status)

由**程序回答時填入0~5中的乙個數字,見表3的描述

表3 差錯狀態描述

差錯狀態 名字

說明 0

noerror

一切正常 1

toobig

**無法將回答裝入到乙個snmp報文之中 2

nosuchname

操作指明了乙個不存在的變數 3

badvalue

乙個set操作指明了乙個無效值或無效語法 4

readonly

管理程序試圖修改乙個唯讀變數 5

generr

某些其他的差錯

 差錯索引(error index)

當出現nosuchname、badvalue或readonly的差錯時,由**程序在回答時設定的乙個整數,它指明有差錯的變數在變數列表中的偏移。

(3)trap首部

 企業(enterprise)

填入trap報文的網路裝置的物件識別符號。此物件識別符號肯定是在圖3的物件命名樹上的enterprise結點下面的一棵子樹上。

 trap型別

此欄位正式的名稱是generic-trap,共分為表4中的7種。

trap型別

名字 說明

0

coldstart

**進行了初始化 1

warmstart

**進行了重新初始化 2

linkdown

乙個介面從工作狀態變為故障狀態 3

linkup

乙個介面從故障狀態變為工作狀態 4

authenticationfailure

從snmp管理程序接收到具有乙個無效共同體的報文 5

egpneighborloss

乙個egp相鄰路由器變為故障狀態 6

enterprisespecific

**自定義的事件,需要用後面的「特定**」來指明

當使用上述型別2、3、5時,在報文後面變數部分的第乙個變數應標識響應的介面。

 特定**(specific-code)

指明**自定義的時間(若trap型別為6),否則為0。

 時間戳(timestamp)

指明自**程序初始化到trap報告的事件發生所經歷的時間,單位為10ms。例如時間戳為1908表明在**初始化後1908ms發生了該時間。

(4)變數繫結(variable-bindings)

指明乙個或多個變數的名和對應的值。在get或get-next報文中,變數的值應忽略。 

SNMP的5種協議資料單元

snmp規定了5種協議資料單元pdu 也就是snmp報文 用來在管理程序和 之間的交換。前面的3種操作是由管理程序向 程序發出的,後面的2個操作是 程序發給管理程序的,為了簡化起見,前面3個操作今後叫做get get next和set操作。圖4描述了snmp的這5種報文操作。請注意,在 程序端是用熟...

snmp協議的學習。

snmp是乙個構建在tcp udp上的遠端監控應用。他能夠監控網路中的主機的一些狀態資訊,比如記憶體使用率,cpu占有率,磁碟占有率。snmp的目標就是管理網際網路的上眾多廠商生產的各種軟硬體平台。其主要分為兩個部分 安裝在待監控主機上的snmp伺服器端,用於收集主機的資訊。安裝在監控主機上的snm...

PDU (協議資料單元)

編輯 協議資料單元pdu protocol data unit 是指對等 層次之間傳遞的資料單位。協議資料單元 protocol data unit 物理層的 pdu是 資料位 bit 資料鏈路層的 pdu是 資料幀 frame 網路層的pdu是 資料報 packet 傳輸層的 pdu是 資料段 s...