麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種基于tcp/udp私有網管接口的實現的制作方法

文檔序號:7887006閱讀:658來源:國知局
專利名稱:一種基于tcp/udp私有網管接口的實現的制作方法
—種基于TCP/UDP私有網管接口的實現所屬領域本專利涉及一種基于TCP/UDP私有網管接口的實現。在工業通信領域,越來越多的網絡設備已經開始連入到互聯網上,對于一個龐大的企業內部網絡,需要有一套可靠的網絡管理協議來對所有的網絡設備進行監控和管理。本網管接口基于Linux操作系統下的網絡編程,通過TCP協議提 供可靠的數據傳輸,以及UDP協議發送網絡設備告警。通過這樣一套私有的代碼框架,限定底層具體的函數實現以及數據填充方式,來為上層的網管提供高效、直觀、可靠的數據傳輸。
背景技術
目前最通用的網絡管理協議是SNMP (Simple Network Management Protocol,簡單網絡管理協議),但是SNMP具有以下幾個弊端。首先,SNMP是一種基于UDP的數據傳輸協議,而UDP提供的是一種不可靠數據傳輸,沒有超時重傳等協商機制,并不能夠保證client端的請求會被準確無誤的響應。其次,SNMP是基于管理工作站/代理模式的,運行網絡管理程序的計算機被稱為管理工作站,代理是運行在網絡設備上的進程。管理工作站通過向代理詢問獲得網絡設備的工作狀態信息;代理則負責處理和相應來著管理工作站的請求,并向管理工作站報告本地發生的重大事件(TRAP)。SNMP的代碼架構需要先向代理注冊節點信息,編寫中間處理函數,再編寫相應的數據處理函數。這樣繁瑣的調用以及實現過程會導致代碼的執行效率十分低下。另外,SNMP的開發一般是移植開源社區上的優秀SNMP源代碼,需要花費大量的時間和精力去了解、調試,不利于快速開發。因此,如果想更加靈活、高效去設置和采集底層數據,更加可靠、精確地向上層界面提供數據,開發一套通用私有的網管接口協議就變得十分必要和緊迫。

發明內容
今TCP數據傳輸部分TCP數據傳輸部分采用主-從線程的模式,基本的思想是當主線程通過偵聽到client端一個連接請求時,會立即去創建一個子線程去處理該請求。也就是說,client端主動與server端進行連接,并向server端請求(發送)數據,下面進行詳細說明。進程fser會在交換機中一直運行,偵聽來自外界的連接請求,當fser進程在accept 一個請求時,會調用pthread_create創建一個子線程,同時將通過accept建立連接的socketClient,接收并分析數據的函數sock_decode_cmd(int sockHandle)傳入到線程中去執行。為了防止多個子線程可能在同一時刻去get、set數據,而導致不同的client可能會讀到的“臟數據”,或者因為設置數據而給某一些用戶造成不便,必須要解決多線程中的同步問題。 Linux提供了三種同步機制互斥(mutex)、信號量(semaphore)和條件變量(condition variable),此網管接口采用互斥的方法來進行多線程之前的同步。在fser進程中定義一個全局的互斥變量st_mutext (pthread_mutext_t類型),在進入函數sock_decode_cmd 之后,會執行上鎖操作((void)pthread_mutex_lock(&st_mutex)),在離開函數 sock_decode_cmd 之前會進行解鎖操作((void) pthread_mutext_unlock (&st_mutex))。這樣就能夠保證,在同一個時刻,只有一個線程在分析套接字接收到的數據包,當然也能保證在分析完數據之后即將執行的get數據與set數據能夠互斥的進行。TCP數據傳輸部分完全基于TCP,在TCP幀結構數據部分,對傳輸數據的幀結構進行約定。在TCP的數據端插入Private Data Interface部分,在這一部分,將定義私有的數據巾貞結構,方便客戶端和服務器端對代碼進行解析。下面對Private Data Interface中的每個字段進行說明。· Magic :約定的私有協議的標識,如果檢測到TCP數據部分的開始32個字節是0xBA20A76B,則表明該協議是私有的網管協議。· Tag :命令標識,用于標識某一種特定的操作命令,方便網絡設備進行特定的讀取或設置操作。· Sub-Command number :某一個Tag所附帶的子命令的數量,若沒有子命令,該字段為零。其中,Sub-Command都附帶在Data部分。· Data length :有效數據部分的長度,也就是Data部分的字節總數。· Data :有效的數據部分,如果是客戶端給服務器端發送請求,Data部分也可以包含客戶端向服務器端請求的子命令。其中需要特別說明的是,Data部分為了區分不同的數據段,使用了特殊的分隔符“*#0胖”加以區分。如果在TCP的數據段碰到*#0#*,則認為是前后兩段不同的數據。同樣地,采用特殊分隔符“#*0紳”標識數據的末尾。此網管接口提供的數據主要分成兩大類第一類為可讀可寫型數據,用于配置相應的網絡設備,第二類為只讀型數據,用于獲取交換機當前的某種狀態或信息。兩種數據類型都以“*#0#*”作為分隔符,“#*0*#”作為結尾符。下面對兩種不同的數據進行相應的說明。第一類數據為可讀可寫型數據,這部分數據信息用于配置網絡設備,需要與網絡設備中的某一些進程交互,以達到配置網絡設備的目的。所有的可讀可寫部分的數據全部保存在一個文本中,當更新完這個文本之后,會立即通知相應的進程文本中的數據已經被更新,讓該進程重新去讀取此文本文件,根據文本文件中的新數據重新配置交換機。當一次進行多個數據操作的時候,以分隔符“*#0#*”分隔不同的數據。第二類數據為只讀型數據,只讀型數據部分為結構體類型(或者結構體鏈表類型),對于不同平臺的網絡設備,只用填充定義好的結構體即可。對于結構體鏈表類型,結構體之間采用“*#0胖”,方便上層解析相應的數據。因為通用型網管接口必須能適應多種上位機語言,有些語言并不存在結構體,所以還是需要定義分隔符作為區分,方便上層解析數據。 第三類數據為命令型數據,例如重啟網絡設備、網絡設備恢復出廠設置等命令。今UDP數據部分UDP部分主要是server端為某一個client端提供的trap告警消息。當網絡設備發生鏈路連接變化、重啟、網絡風暴等重大事件的時候,往往需要及時地向用戶報告發生該事件的設備(IP)、時間以及具體事件內容。當設備發生某種事件,需要向上層發送告警的時候,就會往一個管道中寫入trap的內容,同時會通知網管接口,管道中存在數據,讓網管接口去:read管道。網管接口從管道中讀到固定長度的trap之后,會以UDP單播的形式,向上層發送此trap。下面對數據幀結構進行詳細的說明· Magic :約定的私有協議的標識,如果檢測到TCP數據部分的開始32個字節是0x9B20B79C,則表明該協議是私有的網管協議。
· Tag :命令標識,用于標識某一種特定的操作命令,方便網絡設備進行特定的讀取或設置操作。· Trap type :告警 Trap 的類型。· Data length :Data部分有效數據的長度。· Data :固定大小的緩沖區,用戶向上層發送Trap的內容。當該Trap發送給上層之后,網管接口的UDP偵聽管道模塊會重新進入偵聽狀態,等待Trap事件的發生。今守護進程部分由于網絡設備長期運行以及網管接口所在的操作系統的復雜性等特殊環境,網管接口可能會異常的退出運行,而導致網絡設備無法對上層的數據請求做出相應。因此,用一個很簡練的進程,用于打開trap管道,并守護網管接口進程,如果發現網管口進程沒有在運行,則會重啟網管接口進程。這樣就能夠保證網管接口進程時刻在運行當中。


附圖中圖I是基于TCP的數據幀結構圖。附圖中圖2是基于TCP數據巾貞中Data (Private Data Interface)部分的結構圖。附圖中圖3是基于UDP的數據幀結構圖。附圖中圖4是基于UDP數據巾貞中Trap Data (Private Data Interface)部分的結構圖。具體實施本發明專利基于Linux平臺,采用類似./configure—prefixDIR-with-endianness little…這種方式生成對應的makfile。在進行函數編碼時,根據不同的設備獲取數據的方式,填充對應的函數框架,然后使用make進行編譯,編譯成功的文件將會被拷貝到一prefix所制定的DIR目錄。將DIR目錄中的文件上傳到服務器中直接運行即可。
權利要求
1.一種基于TCP/UDP私有網管接ロ的實現,該實現的特殊之處在于TCP、UDP幀結構的數據部分,它插入新的私有數據幀結構,該私有數據幀結構包含了幀標識、命令tag、命令個數等有效信息,其特征在于基于標準的TCP協議,UDP協議的基礎上,在數據部分定義私有數據幀的結構。
2.上層與底層交互數據時,采用的可靠的TCP傳輸機制,在請求連接部分采用主-從線程模式,在具體的實現上采用固定代碼填充的方式,不但能夠為上層提供可靠的數據傳輸,高效的代碼處理方式,而且還方便不同平臺之前的系統移植,當網絡設備發生告警時,會將告警信息以單播的方式向上層發送告警,其特征在于能夠向上層提供可靠數據的同時,也能夠靈活、高效的獲取或者配置數據。
3.存在一個簡練的進程在監控網管接ロ運行是否良好,如果發現網管結構非正常退出,會立即將網管接口重新啟動,以保證網管接ロ的正常運行,其特征在于存在ー個守護進程在守護網管接ロ進程的運行。
全文摘要
本發明提出一種基于TCP/UDP私有網管接口的實現,屬于客戶端/服務器模式中的服務器端,用于向上層提供可靠的數據傳輸,也可以從上層接收命令來對網絡設備進行配置。網管接口主要包括TCP數據傳輸、UDP告警發送、守護進程三大模塊。當上層與底層交互數據時,通過高效的代碼處理方式為上層提供可靠的數據傳輸,并能方便不同平臺之前的系統移植。當網絡設備發生告警時,會將信息以單播的方式向上層發送告警。在網管接口運行的過程中,存在一個守護的進程在監控網管接口運行是否良好,一旦發現網管接口進程非正常退出,會立即將網管接口重新啟動,以保證整個網管接口的良好運行。
文檔編號H04L12/24GK102761436SQ20121000753
公開日2012年10月31日 申請日期2012年1月11日 優先權日2012年1月11日
發明者劉湘泉, 周厚明 申請人:武漢邁威光電技術有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 西丰县| 广饶县| 武鸣县| 红桥区| 渭南市| 乡宁县| 潼关县| 固镇县| 宾川县| 辽宁省| 隆安县| 泾源县| 封丘县| 白城市| 萍乡市| 博客| 陵川县| 全州县| 庆阳市| 屯留县| 射阳县| 永安市| 东港市| 寻乌县| 东兴市| 越西县| 河间市| 嘉黎县| 红河县| 广宁县| 金乡县| 永昌县| 松阳县| 苗栗县| 商城县| 霸州市| 太和县| 松阳县| 修文县| 阜新市| 河津市|