專利名稱:Snmp網絡管理系統中局端設備連接狀態的檢測方法
技術領域:
本發明涉及基于SNMP的網絡系統,具體涉及SNMP網絡管理系統中局端設備連接狀態的檢測方法。
背景技術:
目前網絡技術日新月異,寬帶接入網的用戶規模不斷擴大,網絡的復雜性也在不斷增長,而保障連接網絡的網絡對象(路由器、交換機、線路等)的正常運轉、監測網絡的運行性能、優化網絡的拓撲結構等運營、維護和管理的工作量也在不斷增長。網絡管理系統也因此越來越獨立,越來越復雜,功能也越來越完備,網絡管理也發展成為計算機網絡中的一個重要分支,并逐步變得規范化、制度化。目前,簡單網絡管理協議(Simple Network Management Protocol, SNMP)已成為網絡管理領域中事實上的工業標準,并被廣泛支持和應用,大多數網絡管理系統和平臺都是基于SNMP的。簡單網絡管理協議(SNMP)是一種基于TCP/IP的網絡管理協議,它使用UDP作為傳輸層協議,能管理支持代理進程的網絡局端設備。SNMP主要包括SMI (管理信息結構)、 MIB (管理信息庫)和SNMP協議幾部分。圖1說明SNMP體系結構模型。SMI給出了管理對象定義的一般框架,MIB是局端設備所維護的全部被管理對象的結構集合,SNMP協議包括 SNMP操作、SNMP信息的格式以及如何在應用程序和局端設備間交換消息。SNMP采用代理/WS模型進行網絡管理,有四個關鍵組成部分管理工作站(匪S, 在后簡稱匪S)、管理代理(Agent)、管理信息庫(MIB)和SNMP協議。管理代理對來自匪S 的信息查詢和動作執行請求做出響應,同時還可以異步地向NMS發送重要的意外事件,NMS 與管理代理之間是通過SNMP網絡管理協議連接實現通信的,其包括以下幾個主要操作分別為 Get-Request、Get—Response、Get-Next-Request> Set-Request 禾口 Trap。代理禾口 NMS 之間通過這幾種消息報文進行相互通信,以獲取網絡局端設備的各種信息,從而控制網絡局端設備的正常運行。然而,局端設備和匪S之間的通訊必須建立在匪S 了解局端設備連接狀態的基礎上才能進行,也就是說,NMS必須首先得知局端設備是否與其連接正常才能發送各種通信消息,目前常規的做法都是匪S發出心跳包,并根據是否收到局端設備對該心跳包的回復而獲知局端設備是否與其連接正常。但是,由于網絡的復雜特性,在很多情況下,匪S沒有收到該心跳包的回復出不代表其與局端設備中斷,因為可能局端設備正忙來不及回復,或者網絡擁堵造成延遲,還可能是UDP丟包,這些情況下,NMS與局端設備的連接通路是正常的, 而現有的處理方法卻均將其視為中斷,從而產生了較多的誤判,從而給網絡局端設備的管理帶來一定的麻煩。
發明內容
本發明所要解決的技術問題是解決基于SNMP的網絡管理系統缺乏對網絡局端設備連接狀態進行有效判斷,從而給網絡局端設備的管理帶來一定的麻煩的問題。
為了解決上述技術問題,本發明所采用的技術方案是提供一種SNMP網絡管理系統中局端設備連接狀態的檢測方法,包括以下步驟A10, NMS將所有局端設備初始化,并進入局端設備連接狀態檢測流程;A20、NMS判斷是否出現退出局端設備連接狀態檢測事件通知,如果收到則退出,否則轉步驟A30 ;A30、匪S以心跳檢測時間為間隔分別向被其管理的所有局端設備異步發送心跳包,并根據是否收到各局端設備回復的心跳響應包設置該局端設備的連接狀態A301、當匪S收到某個局端設備回復的心跳響應包時,則將該局端設備的連接狀態設置為連接正常,并在該心跳檢測時間段內不再向其發送心跳包,之后轉步驟A20;A302、當匪S未收到某個局端設備回復的心跳響應包時,則將該局端設備的連接狀態設置為連接異常;當某個局端設備的連接狀態為連接異常時,NMS不斷重復向該局端設備發送心跳包,并以2個心跳檢測時間段內是否收到該局端設備回復的心跳響應包為依據獲知該局端設備的連接狀態;如果在2個心跳檢測時間段內收到該局端設備回復的心跳響應包,則將該局端設備的連接狀態設置為連接正常并在該心跳檢測時間段內不再向其發送心跳包,之后轉步驟 A20 ;否則,將該局端設備的連接狀態設置為中斷,并轉步驟A20 ;A40、根據局端設備的連接狀態,設置局端設備的連接狀態參數。在上述方法中,局端設備連接狀態檢測流程的進入條件為,局端設備處于未連接狀態且第一次收到檢測指令,或者局端設備處于連接正常狀態且到達心跳檢測時間,所述心跳檢測時間為30s。上述方法中,NMS初始化時將所有局端設備的連接狀態設置為未連接,將上次發送心跳包的時間、上次上報中斷的時間以及連接時間都設置為0。上述方法中,匪S在將各局端設備的連接狀態設置為連接正常的同時,刷新針對該局端設備的上次發送心跳包的時間、上次上報中斷的時間和連接時間。上述方法中,步驟A40包括以下步驟A401、NMS從局端設備隊列中依次提取一個局端設備并獲得該局端設備的連接狀態和上次發送心跳包的時間;A402、如果該局端設備的連接狀態是未連接,則判斷該局端設備的上次發送心跳包的時間是否為0,如果為0則向該局端設備異步發送SNMP心跳包請求,并將上次發送心跳包的時間設為當前時間,之后轉至步驟A20 ;否則直接轉至步驟A20 ;如果局端設備的連接狀態是連接正常,則判斷上次心跳包發送時間與當前時間的時間間隔,如果該時間間隔大于等于心跳時間,則向該局端設備異步發送SNMP心跳包請求,并將上次發送心跳包的時間設為當前時間,之后轉至步驟A20 ;否則直接轉至步驟A20 ;如果局端設備的連接狀態是連接異常,則判斷當前時間與上次發送心跳包時間的時間間隔,如果該時間間隔大于等于中斷時間,則上報局端設備中斷事件至匪S,之后轉至步驟A20 ;否則直接轉至步驟A20 ;如果局端設備的連接狀態是連接中斷,則判斷當前時間與上次上報中斷時間的時間間隔,如果該時間間隔大于中斷上報時間間隔,則上報局端設備中斷事件,之后轉至步驟A20 ;否則直接轉至步驟A20。上述方法中,心跳響應包的處理流程包括以下步驟B10.NMS向某個局端設備發出SNMP心跳包請求后,根據是否收到該局端設備返回的心跳響應包獲得其是否響應成功的判斷結果,如果響應不成功則轉步驟B20、否則轉步驟 B40 ;B20、繼續異步發送SNMP心跳包請求;B30、判斷系統當前狀態是否為中斷,如果是中斷狀態則退出;否則將該局端設備的連接狀態置為連接異常并退出;B40、判斷系統當前狀態是否為中斷,如果是中斷狀態則將該局端設備放入內部焦點隊列,以便及時更新告警信息;否則,則將其連接狀態置為連接正常,并將連接時間置為的當前時間,以便檢測心跳間隔是否到達。上述方法中,匪S對局端設備隊列遍歷完一遍后停頓100ms,并在該時間間歇內判斷是否出現上報中斷條件,該上報中斷條件為局端設備處于連接異常且持續中斷時間內一直沒有收到心跳響應包,或者局端設備處于中斷狀態且中斷持續時間達到中斷上報時間間隔。本發明,通過心跳包和心跳響應包獲得局端設備的連接狀態,支持并發處理大量設備的連接狀態的判斷,設備間狀態的判斷不相互影響,避免在網絡狀態不好的情況下對設備的運行狀態進行誤判,能夠比較真實的反應設備的實際運行狀態,同時對發送心跳數據包的時間間隔作了一個權衡,避免頻繁的輪詢增加設備和網絡的開銷。
圖1是SNMP體系結構模型;圖2是局端設備狀態變化圖;圖3是本發明SNMP網絡管理系統中局端設備連接狀態的檢測方法流程圖;圖4是心跳響應包處理流程圖。
具體實施例方式以下結合附圖詳細說明本發明的具體實施方式
。圖1示出了 SNMP體系中管理工作站(匪S,在后簡稱匪S)、被管理網元(其上設有管理代理Agent)和SNMP協議之間的關系。該體系為本領域的公知技術,在此不再贅述。圖2示出了匪S對局端設備設定的四種連接狀態的變化圖,這四種狀態分別是未連接、連接正常、中斷、連接異常,其中未連接表示局端設備初始化的連接狀態,表示設備等待更新連接狀態;連接正常表示匪S與局端設備已連接上,連接正常狀態只能變為連接異常狀態或者保持不變;中斷表示匪S不能連接上局端設備,連接中斷狀態只能變為連接正常或者保持不變;連接異常表示匪S已經和局端設備連接不上了,由于此時可能是假中斷狀態,需要等待一段時間確認,如果在連續的一段時間內該局端設備都是中斷狀態,則連接異常狀態更新為中斷狀態,如果在連續的一段時間內該局端設備恢復正常,則連接異常更新為連接正常。在本發明中,SNMP網絡管理系統在被管理的局端設備上設置SNMP代理,在網管計算機上設置SNMP管理站,把局端設備的運行狀態設置為未連接、連接正常、連接異常和中斷四種狀態,SNMP管理站定期向被管理的局端設備異步發送心跳包,局端設備把心跳響應包經SNMP代理代理回復給網管計算機上的SNMP管理站,心跳響應包的相應參數包括該局端設備的上電時間和一些標記字段(如告警數據標記,設備能力標記)等,網管計算機根據心跳響應包獲得該局端設備的上述四種連接狀態。圖3示出了局端設備連接狀態的檢測方法,匪S通過一個局端設備隊列來管理其下屬的所有局端設備,具體步驟如下A10, NMS將所有局端設備初始化,并進入局端設備連接狀態檢測流程。在初始化時,匪S把各局端設備的連接狀態都設置為未連接,將上次發送心跳包的時間(last_send_time)、上次上報中斷的時間(last_break_time)和連接時間(last_ conntected_time)都設置為 O0局端設備連接狀態檢測流程的進入條件為,局端設備處于未連接狀態且第一次收到檢測指令,或者局端設備處于連接正常狀態且到達心跳檢測時間,所述心跳檢測時間為 30s。A20、NMS判斷是否出現退出局端設備連接狀態檢測事件通知,如果收到則退出、否則轉步驟A30 ;A30、匪S以心跳檢測時間為間隔,依據局端設備隊列依次向被其管理的所有局端設備異步發送心跳包,并將發送時間laSt_send_time置為當前時間,以便判中斷的檢測, 后續對此局端設備的檢測由回調函數驅動,NMS發送心跳包后根據是否收到各局端設備回復的心跳響應包設置該局端設備的連接狀態,所述心跳檢測時間為30s,這個間隔既可以很快發現設備的異常狀態,又可以避免頻繁的請求導致設備開銷的增加。A301、當匪S收到某個局端設備回復的心跳響應包時,則將該局端設備的連接狀態設置為連接正常,并在該心跳檢測時間段內不再向其發送心跳包,之后轉步驟A20;匪S在將各局端設備的連接狀態設置為連接正常的同時,刷新針對該局端設備的上次發送心跳包的時間、上次上報中斷的時間和連接時間。A302、當匪S未收到某個局端設備回復的心跳響應包時,則將該局端設備的連接狀態設置為連接異常;當某個局端設備的連接狀態為連接異常時,NMS不斷重復向該局端設備發送心跳包,并以2個心跳檢測時間段內是否收到該局端設備回復的心跳響應包為依據獲知該局端設備的連接狀態;如果在2個心跳檢測時間段內收到該局端設備回復的心跳響應包,則將該局端設備的連接狀態設置為連接正常并在該心跳檢測時間段內不再向其發送心跳包,之后轉步驟 A20 ;否則,將該局端設備的連接狀態設置為中斷后轉步驟A20 ;A40、根據局端設備的連接狀態,設置局端設備的連接狀態參數。步驟A40包括以下步驟A401、匪S從局端設備隊列中依次提取一個局端設備并獲得該局端設備的連接狀態和上次發送心跳包的時間;A402、如果該局端設備的連接狀態是未連接,則判斷該局端設備的上次發送心跳包的時間是否為0,如果為0則向該局端設備異步發送SNMP心跳包請求,并將上次發送心跳包的時間設為當前時間,即last_send_time = now,之后轉至步驟A20 ;否則直接轉至步驟 A20 ;如果局端設備的連接狀態是連接正常,則判斷上次心跳包發送時間與當前時間的時間間隔,如果該時間間隔大于等于心跳時間,則向該局端設備異步發送SNMP心跳包請求,并將上次發送心跳包的時間設為當前時間,即last_send_time = now,之后轉至步驟 A20 ;否則直接轉至步驟A20 ;如果局端設備的連接狀態是連接異常,則判斷當前時間與上次發送心跳包時間的時間間隔,如果該時間間隔大于等于中斷時間,則上報局端設備中斷事件至匪S,即last_ break_time = now,之后轉至步驟A20 ;否則直接轉至步驟A20 ;如果局端設備的連接狀態是連接中斷,則判斷當前時間與上次上報中斷時間的時間間隔,如果該時間間隔大于中斷上報時間間隔,則上報局端設備中斷事件,之后轉至步驟 A20 ;否則直接轉至步驟A20。圖4示出了心跳響應包的處理流程,包括以下步驟。B10.NMS向某個局端設備發出SNMP心跳包請求后,根據是否收到該局端設備返回的心跳響應包獲得其是否響應成功的判斷結果,如果響應不成功則轉步驟B20、否則轉步驟 B40 ;B20、繼續異步發送SNMP心跳包請求;B30、判斷系統當前狀態是否為中斷,如果是中斷狀態則退出;否則將該局端設備的連接狀態置為連接異常并退出;B40、判斷系統當前狀態是否為中斷,如果是中斷狀態則將該局端設備放入內部焦點隊列,以便及時更新告警信息;當某個設備成為內部焦點時,匪S會在某一段時間內持續關注該設備的告警和狀態燈的變化,這些內部焦點在網管中的組織形式是一個隊列,所以命名為內部焦點隊列;否則將該局端設備的連接狀態置為連接正常,并將連接時間設置為當前時間,艮口 last_connected_time = now。對局端設備隊列遍歷完一遍后停頓100ms,以免本流程一直占用CPU,此時間對中斷響應時間的影響是微乎其微的。遍歷局端設備的間歇判斷上報中斷條件,該上報中斷條件為局端設備處于連接異常且持續中斷時間內一直沒有收到心跳響應包,或者局端設備處于中斷狀態且中斷持續時間達到中斷上報時間間隔。以上所述僅為本發明的較佳實施例,并不用于限制本發明,凡在本發明精神和原則之內所做的任何修改、等同替換和改進等,均含于本發明的保護范圍之內。
權利要求
1.SNMP網絡管理系統中局端設備連接狀態的檢測方法,其特征在于包括以下步驟 A10、NMS將所有局端設備初始化,并進入局端設備連接狀態檢測流程;A20.NMS判斷是否出現退出局端設備連接狀態檢測事件通知,如果收到則退出,否則轉步驟A30 ;A30、匪S以心跳檢測時間為間隔分別向被其管理的所有局端設備異步發送心跳包,并根據是否收到各局端設備回復的心跳響應包設置該局端設備的連接狀態A301、當匪S收到某個局端設備回復的心跳響應包時,則將該局端設備的連接狀態設置為連接正常,并在該心跳檢測時間段內不再向其發送心跳包,之后轉步驟A20 ;A302、當匪S未收到某個局端設備回復的心跳響應包時,則將該局端設備的連接狀態設置為連接異常;當某個局端設備的連接狀態為連接異常時,NMS不斷重復向該局端設備發送心跳包,并以2個心跳檢測時間段內是否收到該局端設備回復的心跳響應包為依據獲知該局端設備的連接狀態;如果在2個心跳檢測時間段內收到該局端設備回復的心跳響應包,則將該局端設備的連接狀態設置為連接正常并在該心跳檢測時間段內不再向其發送心跳包,之后轉步驟A20 ; 否則,將該局端設備的連接狀態設置為中斷,并轉步驟A20 ;A40、根據局端設備的連接狀態,設置局端設備的連接狀態參數。
2.如權利要求1所述的SNMP網絡管理系統中局端設備連接狀態的檢測方法,其特征在于,局端設備連接狀態檢測流程的進入條件為,局端設備處于未連接狀態且第一次收到檢測指令,或者局端設備處于連接正常狀態且到達心跳檢測時間,所述心跳檢測時間為30s。
3.如權利要求1所述的SNMP網絡管理系統中局端設備連接狀態的檢測方法,其特征在于匪S初始化時將所有局端設備的連接狀態設置為未連接,將上次發送心跳包的時間、上次上報中斷的時間以及連接時間都設置為0。
4.如權利要求3所述的SNMP網絡管理系統中局端設備連接狀態的檢測方法,其特征在于匪S在將各局端設備的連接狀態設置為連接正常的同時,刷新針對該局端設備的上次發送心跳包的時間、上次上報中斷的時間和連接時間。
5.如權利要求1所述的SNMP網絡管理系統中局端設備連接狀態的檢測方法,其特征在于步驟A40包括以下步驟A401、匪S從局端設備隊列中依次提取一個局端設備并獲得該局端設備的連接狀態和上次發送心跳包的時間;A402、如果該局端設備的連接狀態是未連接,則判斷該局端設備的上次發送心跳包的時間是否為0,如果為0則向該局端設備異步發送SNMP心跳包請求,并將上次發送心跳包的時間設為當前時間,之后轉至步驟A20 ;否則直接轉至步驟A20 ;如果局端設備的連接狀態是連接正常,則判斷上次心跳包發送時間與當前時間的時間間隔,如果該時間間隔大于等于心跳時間,則向該局端設備異步發送SNMP心跳包請求,并將上次發送心跳包的時間設為當前時間,之后轉至步驟A20 ;否則直接轉至步驟A20 ;如果局端設備的連接狀態是連接異常,則判斷當前時間與上次發送心跳包時間的時間間隔,如果該時間間隔大于等于中斷時間,則上報局端設備中斷事件至匪S,之后轉至步驟 A20 ;否則直接轉至步驟A20 ;如果局端設備的連接狀態是連接中斷,則判斷當前時間與上次上報中斷時間的時間間隔,如果該時間間隔大于中斷上報時間間隔,則上報局端設備中斷事件,之后轉至步驟A20; 否則直接轉至步驟A20。
6.如權利要求1所述的SNMP網絡管理系統中局端設備連接狀態的檢測方法,其特征在于心跳響應包的處理流程包括以下步驟B10,匪S向某個局端設備發出SNMP心跳包請求后,根據是否收到該局端設備返回的心跳響應包獲得其是否響應成功的判斷結果,如果響應不成功則轉步驟B20、否則轉步驟 B40 ;B20、繼續異步發送SNMP心跳包請求;B30、判斷系統當前狀態是否為中斷,如果是中斷狀態則退出;否則將該局端設備的連接狀態置為連接異常并退出;B40、判斷系統當前狀態是否為中斷,如果是中斷狀態則將該局端設備放入內部焦點隊列,以便及時更新告警信息;否則,則將其連接狀態置為連接正常,并將連接時間置為的當前時間,以便檢測心跳間隔是否到達。
7.如權利要求1所述的SNMP網絡管理系統中局端設備連接狀態的檢測方法,其特征在于匪S對局端設備隊列遍歷完一遍后停頓100ms,并在該時間間歇內判斷是否出現上報中斷條件,該上報中斷條件為局端設備處于連接異常且持續中斷時間內一直沒有收到心跳響應包,或者局端設備處于中斷狀態且中斷持續時間達到中斷上報時間間隔。
全文摘要
本發明公開了一種SNMP網絡管理系統中局端設備連接狀態的檢測方法,把局端設備的運行狀態設置為未連接、連接正常、連接異常和中斷四種狀態,NMS定期向被管理的局端設備異步發送心跳包,并根據局端設備回復的心跳響應設置該局端設備的上述四種連接狀態。本發明,通過心跳包和心跳響應包獲得局端設備的連接狀態,支持并發處理大量設備的連接狀態的判斷,設備間狀態的判斷不相互影響,避免在網絡狀態不好的情況下對設備的運行狀態進行誤判,能夠比較真實的反應設備的實際運行狀態,同時對發送心跳數據包的時間間隔作了一個權衡,避免頻繁的輪詢增加設備和網絡的開銷。
文檔編號H04L12/24GK102263651SQ20101018564
公開日2011年11月30日 申請日期2010年5月28日 優先權日2010年5月28日
發明者周俊杰, 尹永勝, 鐘潘 申請人:烽火通信科技股份有限公司