SNMPv2標準的核心就是通信協議———它是一個請求/應答式的協議。
這個協議提供了在manager與agent、manager與manager之間交換管理信息的直觀、基本的方法。
每條SNMPv2的報文都由一些域構成:
如果發送方、接收方的兩個Party都采用了驗證(authentication)機制,它就包含與驗證有關的信息;否則它為空(取NULL)。驗證的過程如下:發送方和接收方的Party都分別有一個驗證用的密鑰(secretkey)和一個驗證用的算法。報文發送前,發送方先將密鑰值填入圖中digest域,作為報文的前綴。然后根據驗證算法,對報文中digest域以后(包括digest域)的報文數據進行計算,計算出一個摘要值(digest),再用摘要值取代密鑰,填入報文中的digest域。接收方收到報文后,先將報文中的摘要值取出來,暫存在一個位置,然后用發送方的密鑰放入報文中的digest。將這兩個摘要值進行比較,如果一樣,就證明發送方確實是srcParty域中所指明的那個Party,報文是合法的;如果不一樣,接收方斷定發送方非法。驗證機制可以防止非法用戶"冒充"某個合法Party來進行破壞。
authInfo域中還包含兩個時間戳(timestamp),用于發送方與接收方之間的同步,以防止報文被截獲和重發。
SNMPv2的另一大改進是可以對通信報文進行加密,以防止監聽者竊取報文內容。除了privDst域外,報文的其余部分可以被加密。發送方與接收方采用同樣的加密算法(如DES)。
通信報文可以不加任何安全保護,或只進行驗證,也可以二者都進行。


