張智慧



摘 要:網絡通阻是網絡運行狀態的重要指標之一,常見的網絡管理軟件過于復雜,而系統自帶的ping工具又無法進行檢測數據的統計。該文在分析ICMP協議的基礎上,利用VC編程環境中的網絡通信、多線程編程技術,采用模塊化設計開發方法,實現了網絡節點狀態的動態監測。通過調用網絡監測模塊,完善節點管理、指標分析和界面顯示等功能,完成對多個節點的網絡監測和故障統計應用,已經用于某單位重要網絡節點的監控管理,系統占用系統資源少、運行穩定。
關鍵詞:VC編程 多線程 模塊化設計 網絡監測
中圖分類號:TP319 文獻標識碼:A 文章編號:1672-3791(2015)02(a)-0022-02
Abstract: Network resistance is one of the important indexes of running state of network. Most network management software is too large and complex, and the Ping tool is unable to analysis the testing data. In this paper, based on the ICMP protocol, one network monitoring tool is developed under VC, by using the network communication and multi thread programming technology, modular design method is adopted, the network node state can be dynamic monitored. By improved the node management, testing data analysis and interface display function, the program has been used to monitor the nodes of a network, occupying less system resources, and running stably.
Key Words: VC programming, Multi thread, Modular design, Network monitoring
盡管存在各式各樣的網絡工具,但ping還是人們最常用的檢測工具,可以簡單、有效的掌握網絡運行狀態,遺憾的是無法進行檢測數據的統計分析。利用VC強大的網絡通信、多線程開發資源,只需集成調用相應的功能,就可以實現類似ping的網絡狀態在線監測和數據分析。在軟件的開發過程中,充分利用已有的成熟開發資源,構建針對性的應用模塊,不僅可以提高開發效率,還可以提高軟件的質量。該文首先分析了核心網絡監測功能模塊的設計和開發,結合網絡運行維護中需要實時在線監測關鍵節點狀態的需求,給出一個完整網絡管理應用系統解決方案,能夠實現上級節點對下級節點的網絡運行狀態的監控、故障統計和分析等功能。
1 監測功能模塊實現
1.1 功能模塊設計
ping實際上采用的是ICMP協議。ICMP協議是TCP/IP協議族的一個子協議,用于在IP主機、路由器之間傳遞控制消息。Windows提供了ICMP.dll,可以在VC中調用,但不具備移植性,而且很難對網絡數據包進行控制。所以采用VC提供套接字(socket)進行網絡編程,選擇和ping程序一樣發送32字節的數據包,獲取返回數據包大小和TTL值,需要在工程中包含afxsock.h庫文件。
編程流程及系統調用時序如圖1所示。
1.2 網絡狀態檢測
1.2.1 創建套接字
1.2.2 發送ICMP數據包
1.2.3 檢測套接字狀態
1.2.4 讀取響應數據,判斷狀態
在響應數據包內,包含了該次檢測響應結果的TTL。至此,實現了同ping方式一樣的網絡檢測。
1.3 多線程監測
網絡狀態檢測模塊只需要獲取目標IP地址數據,并不需要用戶界面交互,因此創建單獨的線程定時運行實現在線網絡狀態監測,實現后臺運行。
創建互斥事件對象,用于設定網絡檢測模塊的工作狀態。
2 動態節點監測應用案例
在網絡監測功能的基礎上,通過適當的人機交互界面和配置數據管理,就可以構建一個完整的網絡管理應用系統。
2.1 系統功能組成
系統功能由網絡檢測、狀態顯示、節點管理、指標分析等四部分組成,分別完成網絡節點通阻狀態的存儲、檢測、分析和顯示。狀態顯示又分為客戶端圖形模式和動態網頁模式,客戶端圖形模式采用C/S架構,可以對系統檢測周期和節點屬性等參數進行配置,查看節點狀態,完成數據分析,錄入故障原因等;瀏覽器網頁模式主要用于查看節點狀態和指標分析數據。如圖2所示。
2.2 檢測流程
系統根據設定的檢測間隔和節點是否檢測,形成檢測節點列表,啟動檢測流程。檢測流程如圖3所示。
系統運行界面如圖4所示。
3 結語
通過利用VC開發環境提供的網絡、多線程類庫和函數,實現了網絡狀態監測模塊的開發,并以此為基礎構建了一個簡單的網絡管理應用系統。由此可見,軟件的模塊化開發,一是要充分利用已有的開發平臺資源,提高軟件開發效率;二是要合理劃分模塊,優先實現關鍵模塊功能,提高開發的針對性。
參考文獻
[1] 趙立群,吳霞,孫巖.計算機網絡管理與安全[M].2版.北京:清華大學出版社,2014.
[2] 羅莉琴,詹祖橋,黃輝,等.Windows網絡編程[M].北京:人民郵電出版社,2011.
[3] 潘磊,裴斐.一種面向大規模網絡拓撲發現的研究[J].計算機工程與應用,2010,46(19):74-76.
[4] DAVID.VISUAL C++6編程寶典[M].北京:電子工業出版社,2005.