• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      浦煤網絡檢測與報警程序的實現(xiàn)

      2014-07-01 19:45:26上海浦東煤氣制氣有限公司馮德強
      上海煤氣 2014年1期
      關鍵詞:網管網絡設備實例

      上海浦東煤氣制氣有限公司 馮德強

      浦煤網絡檢測與報警程序的實現(xiàn)

      上海浦東煤氣制氣有限公司 馮德強

      上海浦東煤氣制氣有限公司為了確保公司各項業(yè)務數據安全傳輸,開發(fā)設計了Win Form應用程序,對網絡設備實施連續(xù)(周期)檢測。實際運行后,證實此檢測方法安全可靠,且能幫助網管人員快速判斷和解決事故,工作效率得以顯著提高。

      網絡管理 報警程序 程序設計

      0 前言

      2013年的春天,對于上海浦東煤氣制氣有限公司(簡稱浦煤公司)的信息管理來說是一個非常重要的時間節(jié)點。伴隨浦煤公司的成功轉型,我們的計算機網絡走出了圍墻,延伸到了公司新開設的各個站點,承擔起傳輸浦煤公司各項業(yè)務數據的重任,成為那些走出圍墻的服務板塊的員工們不可或缺的工作幫手。如何管好這張沉甸甸的城域網,使之更好、更安全地為浦煤公司發(fā)展服務,成為公司網絡管理人員的一項急需解決的課題。

      1 浦煤城域網簡介

      浦煤城域網網絡拓撲結構見圖1。

      圖1 浦煤城域網網絡拓撲結構示意

      浦煤各個站點與公司本部通過東方有線的MSTP、MPLS-VPN專線互聯(lián),共同組成浦煤城域網。同時,站點根據授權訪問相應銷售公司的業(yè)務網絡,網絡授權則由網絡平臺提供方——東方有線與相應銷售公司通過路由配置實現(xiàn)。

      2 需求分析

      公司目前開展的安檢、抄表業(yè)務對我們的網絡管理提出較高要求。城域網上任何一臺網絡設備發(fā)生故障都可能影響到部分乃至全體服務板塊同仁的工作。因此,“及時發(fā)現(xiàn)故障,盡快排除故障”成為對公司網管人員日常工作的基本要求。

      曾經發(fā)生過這樣一個案例:有一段時間,正是高橋花山路抄表員們最繁忙的時刻,以至于晚上還要加班加點地干??删驮谀莻€時候,網絡莫名其妙地出了問題;一連幾天,同樣的時間,同樣的問題反復出現(xiàn)。

      他們把這個問題反映到計算機中心,我們立即對城域網進行測試,得出的結論是一切正常。問題是,一切正常的網絡偏偏在我們下班無人職守的那段時間發(fā)生了問題。等到第二天我們再上班的時候,一切又歸于正常。晚上究竟發(fā)生了什么?我們迫切需要弄明白。那么,如何才能發(fā)現(xiàn)這個網絡故障呢?如果我們能設計一款應用程序,讓它自動檢測網絡上的路由器、交換機、服務器等核心設備,一旦發(fā)現(xiàn)設備連通異常,立即報警,并將檢測結果記錄在案,那么,高橋花山路站點碰到的問題就可迎刃而解了。

      首先,讓我們了解一下浦煤網管通常采用的網絡設備測試方法。

      圖2 浦煤網絡設備測試流程示意

      對圖2作如下說明:

      第1步:確定需要檢測的主機的IP地址,并向該主機發(fā)送不大于32 kb的ICMP數據報;

      第2步:接收該主機的回送ICMP報文;

      第3步:對回送報文進行分析,確定目標主機的連線狀態(tài);

      第4步:如果得到的結果為異常,則采取措施查清故障原因并修復。

      在實際應用中,我們或許有這樣的體驗,即多臺網絡設備連通問題。此時,我們通常的做法就是同時測試足夠多的設備,根據網絡拓撲結構,通過分析測試結果,定位故障設備。

      這是一個被動檢測方法,因為只有當有人向我們報告網絡故障時,我們才啟動這個檢測流程,定位故障點。其實,在現(xiàn)有技術條件下,我們完全可以化被動為主動,讓這個過程自動化、程序化、定期化,對網絡設備主動實施連續(xù)(周期)檢測,發(fā)現(xiàn)問題,即刻報警。因此,從某種程度上說,圖2可以視作我們這個解決方案的核心原理示意。

      3 程序框架類庫設計

      根據上述需求分析,我們認為要做的就是用代碼實現(xiàn)圖2所示的測試流程。讓程序在某一個特定的時間范圍內對核心設備檢測一遍。如發(fā)現(xiàn)故障,就立即報警,為網管人員提供故障設備信息。要實現(xiàn)這個目標,需實現(xiàn)下列功能模塊:

      3.1 數據存儲與查詢

      網絡設備信息、網管人員E-Mail信箱及檢測結果等都需要數據庫來存儲。按公司傳統(tǒng),我們使用MS SQL Server作后臺數據庫,而數據存儲與訪問則采用LINQ TO SQL技術。

      LINQ TO SQL是包含在.NET Framework 3.5版中的一種O/RM組件(對象關系映射),O/RM允許使用.NET的類來對關系數據庫進行建模。它可以使用LINQ對數據庫中的數據進行查詢、更新、添加、刪除。LINQ TO SQL提供了對事務、視圖、存儲過程的完全支持。它同樣為集成數據校驗和業(yè)務層邏輯到你的數據模型中提供了一種簡單的實現(xiàn)方式。在LINQ TO SQL中,關系數據庫的數據模型映射到用開發(fā)人員所用的編程語言表示的對象模型。

      DataContext是LINQ TO SQL框架的主入口點,用來連接數據庫、從數據庫檢索數據以及將更改提交回數據庫。簡而言之,DataContext其實就是先將實體類轉換成相應的SQL語句,并將其發(fā)送數據庫執(zhí)行,然后將返回的執(zhí)行結果匯編成實體對象,供應用程序調用。

      在實際應用場景中,我們先定義了繼承DataContext類自clsDataContext的子類。在子類clsDataContext中定義了三個Table類型的對象即Computer、TestResult和EMailList。這三個Table對象分別指向我們事先定義的實體類clsComputer、TResult、TEmailList類。而在這些實體類中,我們將數據庫中的表、字段分別與其類名、實行進行綁定映射。值得注意的是,為實現(xiàn)這些實體類,需要引用System、System.Data、System. Data.Linq、System.Linq、System.Data.Linq.Mapping及System.ComponentModel等命名空間。

      如此設定之后,我們通過實例化子類clsDataContext,就能對數據庫進行查詢、更新、添加、刪除等操作。

      3.2 自動檢測網絡設備運行狀態(tài)的類

      這是程序的核心類,前面所介紹的系統(tǒng)原理的核心部分,是在這個類中實現(xiàn)的。需要特別指出的是,這個類中用到了ICMP協(xié)議。

      ICMP是“Internet Control Message Protocol”(Internet控制消息協(xié)議)的縮寫。它是TCP/IP協(xié)議族的一個子協(xié)議,用于在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。這些控制消息雖然并不傳輸用戶數據,但是對于用戶數據的傳遞起著重要的作用。

      我們在網絡中經常會使用到ICMP協(xié)議,只不過我們覺察不到而已。比如我們經常使用的檢查網絡通不通的Ping命令,這個“Ping”的過程實際上就是ICMP協(xié)議工作的過程。還有其他的網絡命令如跟蹤路由的Tracert命令也是基于ICMP協(xié)議的。

      微軟在.NET.Framework中提供了一個ICMP協(xié)議的Ping類,在System.Net.NetworkInformationmin命名空間內,我們用這個類實現(xiàn)檢測網絡設備連通狀態(tài)。

      Ping類中有一個Send方法。這個方法將數據緩沖區(qū)里的ICMP回送消息發(fā)送到指定IpAddress或名稱的目標計算機。目標計算機接收到這個ICMP數據報后,就會向對方回送一個ICMP格式的應答數據報,微軟把該數據報封裝成PingReply對象。PingReply對象中有一個Status屬性。這個屬性是一個IpStatus枚舉類型(IpStatus枚舉了諸如Timeout、Success等多種狀態(tài))。由于我們的程序只關心網絡設備是否在線,因此在代碼中我們僅分析這個Status屬性。通過它判斷被測試主機是否在線。通常交換機、路由器在進行安全配置時至少(或全部)允許部分ICMP報通過,因此,這個連通狀態(tài)就成為我們判斷設備運是否在線的重要依據。

      具體實現(xiàn)步驟如下:

      第1步:實例化子類clsDataContext,獲得需要檢測的設備列表;

      第2步:實例化Ping類;

      第3步:調用Encoding.ASCII.GetBytes生成二進制緩沖數組;

      第4步:實例化PingOptions類;

      第5步:聲明Timeout參數并賦值即設定超時值;

      第6步:遍歷設備列表,用上述3、4、5參數及設備IpAddress調用Ping 的實例方法Send,測試設備的連通狀態(tài);

      第7步:將返回結果中的PingReply.Status記錄到TestResult表;

      第8步:測試結束,將新增數據提交到數據庫,關閉數據連接,銷毀clsDataContext和Ping 的實例對象。

      3.3 語音報警

      在一定的時鐘周期里,程序自動輪詢TestResult表,檢查表中是否有運行狀態(tài)異常信息,如果有就觸發(fā)語音報警。顯然,這個功能要用到語音合成技術。

      語音合成又稱文語轉換(Text to Speech)技術,能將任意文字信息實時轉化為標準流暢的語音朗讀出來,它涉及聲學、語言學、數字信號處理、計算機科學等多個學科技術是中文信息處理領域的一項前沿技術。目前,許多學習軟件都使用了TTS技術。利用TTS可以實現(xiàn)真人發(fā)音、控制音量速率等功能。

      .NET Framework 3.0中增加了System.Speech命名空間,使用這個空間的類和方法可以開發(fā)具有語音合成與識別功能的軟件。位于System.Speech. Synthesis命名空間里的SpeechSynthesizer類是實現(xiàn)TTS技術的核心類。

      這個類中有一個方法Speak,它的功能就是在內存中將輸入的文本文字轉換成語音并立即調用主機的語音設備進行播報。

      具體實現(xiàn)步驟如下:

      第1步:實例化SqlConnecion類,打開數據連接;

      第2步:用SqlConnection的實例初始化子類clsDataContext的實例;

      第3步:查詢TestResult表,看有無設備運行狀態(tài)異常記錄;

      第4步:如果沒有異常記錄,則執(zhí)行最后一步;

      第5步:否則,實例化SpeechSynthesizer類,即:SpeechSynthesizer synth

      = new SpeechSynthesizer();

      第6步:遍歷異常結果集,逐條生成報警字符串;

      第7步:同時,調用SpeechSynthesizer類實例的方法Speak,將生成的字符串轉換成語音并輸出到聲卡,交由聲卡播報,即:synth.Speak(報警字符串);

      第8步:關閉數據連接,銷毀SqlConnecion、clsDataContext和SpeechSynthesizer的實例對象。

      3.4 E-Mail報警

      E-Mail報警的觸發(fā)原理與語音報警一樣,只不過在觸發(fā)報警之后,系統(tǒng)除了生成報警內容之外,還要從表EMailList取出管理人員的E-Mail地址,然后向他們發(fā)送信息。實現(xiàn)這個功能的關鍵問題是如何發(fā)送E-Mail郵件。而要實現(xiàn)發(fā)送郵件的功能,首先應該對SMTP協(xié)議有一個了解。

      SMTP是一種提供可靠且有效電子郵件傳輸的協(xié)議。它是建立在FTP文件傳輸服務上的一種郵件服務,主要用于傳輸系統(tǒng)之間的郵件信息并提供與來信有關的通知。

      在.NET Framework中,SMTP協(xié)議被封裝在System.Net.Mail命名空間。

      在設計中,主要用到下列幾個類:

      (1)SmtpClient類,允許應用程序使用簡單郵件傳輸協(xié)議(SMTP)來發(fā)送電子郵件;

      (2)MailAddress類,表示電子郵件發(fā)件人或收件人的地址;

      (3)MaiMessage類,表示可以使用SmtpClient類發(fā)送的電子郵件。

      (4)Attachment類,表示電子郵件的附件。

      具體實現(xiàn)方法如下:

      第1步:實例化SqlConnection類,打開數據連接;

      第2步:用SqlConnection的實例初始化子類clsDataContext的實例;

      第3步:先查詢TestResult表,看有無設備運行狀態(tài)異常記錄;

      第4步:如有,則遍歷結果集,生成E-Mail的Body;

      第5步:否則,執(zhí)行最后一步;

      第6步:實例化MailAddress類,生成發(fā)件人地址,即:MailAddress aFrom = new MailAddress (from,null, Encoding.UTF8);

      第7步:從數據庫取出并遍歷網管人員的信箱列表,循環(huán)執(zhí)行接下來的8~10步,發(fā)送報警郵件;

      第8步:實例化MailAddress類,生成收件人地址,即:MailAddress aTo = new MailAddress(to,null, Encoding.UTF8);

      第9步:實例化MaiMessage類,生成電子郵件,如:

      MailMessage mail = new MailMessage(aFrom,aTo);

      mail.Body = body;

      mail.Subject = subject;

      mail.BodyEncoding = Encoding.UTF8;

      mail.SubjectEncoding = Encoding.UTF8;

      mail.IsBodyHtml = true;

      第10步:實例化SmtpClient類,設置SmtpClient類實例的各項參數,執(zhí)行SmtpClient類實例的Send方法,將郵件發(fā)送到指定的郵箱上,如:

      SmtpClient client = new SmtpClient();

      client.Host = ServerName;

      client.Port = Port;

      client.DeliveryMethod

      = SmtpDeliveryMethod.Network;

      client.Credentials = new NetworkCredential

      (UserName,Password);

      client.Send(mail);client.Dispose();第11步:關閉數據連接,銷毀SqlConnection、clsDataContext等的實例對象。

      4 UI設計

      4.1 Windows服務程序的設計

      Windows服務程序是在Windows操作系統(tǒng)下能完成特定功能的可執(zhí)行的應用程序,一般沒有用戶交互界面。Windows服務程序的應用范圍很廣,典型的Windows服務程序包含了硬件控制、應用程序監(jiān)視、系統(tǒng)級應用、診斷、報告、Web和文件系統(tǒng)服務等功能。

      由于Windows服務程序的特點非常適合我們對這個應用的要求,因此,我們將設備自動檢測、語音報警、E-Mail報警等功能設計成獨立的Windows服務程序。根據需要部署在不同的計算機上。它們隨操作系統(tǒng)自動啟動,自動完成各自的任務。分工協(xié)作,互不影響。

      圖3為系統(tǒng)發(fā)出的故障報警E-Mail截圖。通過分析這個E-Mail,我們立刻知道哪臺設備發(fā)生了故障。從而啟動應急預案,查找故障原因,修復故障設備。

      圖3 系統(tǒng)發(fā)出的故障報警E-Mail截屏

      4.2 Win Form應用程序的設計

      為便于系統(tǒng)維護和統(tǒng)計分析,我們設計了一個Win Form應用程序。這個程序除集成設備自動檢測、語音報警、E-Mail報警外,我們還增加了設備信息維護、網管人員(E-Mail信箱)維護、維護結果查詢與分析(追溯故障發(fā)生時間及具體設備)等模塊。圖4為網絡測試日志查詢實際運行截圖。從此圖提供的信息,我們就可以追溯設備發(fā)生故障的具體時間,查出類似前文提到的案例的故障原因。

      5 結語

      如果合理安排檢測頻次和所發(fā)數據報的大小,就不會對網絡形成ICMP攻擊。理由是我們所發(fā)的數據報不大于32 kb,且所發(fā)消息類型為Reply(0)。而防火墻一般都會對出站的ICMP Echo Request、出站的ICMP Source Quench、進站的TTL Exceeded和進站的ICMP Destination Unreachable放行。這就是說我們通過這個方法得到的結果,能反映被測試主機的在線狀態(tài)。因此,完全可以認為,上述檢測方法是安全可靠的。

      此程序的成功開發(fā)與上線應用為浦煤網管人員開辟了一條實時掌控公司網絡設備運行狀態(tài)的路徑,而且當網絡發(fā)生故障時,它所提供的信息能夠幫助網管人員快速定位故障點,快速查找故障原因,進而快速修復故障設備,工作效率顯著提高。

      目前,我們的程序功能比較單一,界面比較簡陋,有許多需要改進的地方。比如,如果增加短信報警功能,效果可能會更好。這些都有待于我們在今后的實踐中逐步完善。

      Introduction of Network Detection and Alarm Program

      Shanghai Pudong Gas Manufacturing Co., Ltd. Feng Deqiang

      This paper describes the design objective, principle and implementation method of network detection and alarm program of Pudong Gas Manufacturing Company, and puts forward the solution as well.

      network detection, alarm program, program design

      猜你喜歡
      網管網絡設備實例
      一種基于C# 的網絡設備自動化登錄工具的研制
      數據中心唯“快”不破
      “五制配套”加強網管
      新聞前哨(2015年2期)2015-03-11 19:29:29
      完形填空Ⅱ
      完形填空Ⅰ
      一種供鳥有限飛翔的裝置
      家禽科學(2014年8期)2014-04-29 00:44:03
      發(fā)射機房網管系統(tǒng)的設計原則及功能
      河南科技(2014年14期)2014-02-27 14:11:59
      基于列車監(jiān)測網絡設備的射頻功放模塊設計
      基于三層交換技術架構數字化校園網絡設備的配置與管理
      網管支撐系統(tǒng)運行質量管控的研究與實現(xiàn)
      水富县| 建瓯市| 阳城县| 民乐县| 榆树市| 漳浦县| 读书| 祁门县| 丹巴县| 吉林市| 新余市| 天津市| 额尔古纳市| 珠海市| 增城市| 丹巴县| 临泽县| 新巴尔虎右旗| 重庆市| 民勤县| 崇信县| 浦北县| 青龙| 普兰县| 大姚县| 会同县| 竹溪县| 贵溪市| 米泉市| 白玉县| 雷山县| 明水县| 克拉玛依市| 长沙县| 禹州市| 萍乡市| 平顶山市| 阿城市| 清远市| 合江县| 郁南县|