一種網絡協議調試方法、裝置和系統的製作方法
2023-08-11 07:35:26 2
一種網絡協議調試方法、裝置和系統的製作方法
【專利摘要】本發明公開了一種網絡協議調試方法、裝置和系統,屬於計算機軟體領域。網絡驅動模塊捕獲網絡協議包,並將捕獲取的網絡協議包寫入共享內存;調試服務端讀取共享內存中的網絡協議包數據,並發送給遠程連接的調試客戶端。採用本發明實施例,不需要藉助外部網絡設備進行抓包調試,也不需要改變原有網絡拓撲結構,能節省成本;同時,調試過程中不會導致與被調試設備無關的網絡協議數據包,不再需要過濾調試信息,簡單高效。
【專利說明】ー種網絡協議調試方法、裝置和系統
【技術領域】
[0001]本發明涉及計算機軟體領域,尤其涉及ー種網絡協議調試方法、裝置和系統。
【背景技術】
[0002]當出現網絡設備以來,為了解決網絡設備在運行時出現的網絡問題,往往需要改變原網絡環境,在網絡中接入ー些調試設備,才能分析並調試網絡協議等相關問題。常見的網絡環境如圖1所示,客戶端設備與服務端設備在同一路由器或者交換機下,將調試設備連接到網絡設備所在網絡環境中,但由於原有路由器或者交換機設備不會將數據包轉發至所有網絡接ロ,還需要在原網絡環境中添加其它網絡設備來捕獲網絡中的網絡協議包,如圖2所示,比如接入具有所有節點轉發功能的集線器(HUB)用以輔助調試設備網絡協議問題,這樣就會破壞原有的網絡環境結構,同時還存在如下缺陷:
[0003](1)受原有網絡環境限制,若無法改變原有網絡環境,則無法分析問題。
[0004](2)改變原有網絡拓撲結構,會造成成本增加。
[0005](3)増加集線器等調試設備,調試時由於網絡數據包很多,需要過濾不需要的數據包。
【發明內容】
[0006]有鑑於此,本發明要解決的技術問題是提供ー種網絡協議調試方法、裝置和系統,以解決當網絡拓撲限制無法改變時對網絡協議的調試,以及對網絡拓撲改變時造成的成本増加和不相關的網絡數據包過多影響調試分析問題。
[0007]本發明解決上述技術問題所採用的技術方案如下:
[0008]根據本發明的ー個方面,提供的ー種網絡協議調試方法包括:
[0009]網絡驅動模塊捕獲網絡協議包,並將捕獲取的網絡協議包寫入共享內存;
[0010]調試服務端讀取共享內存中的網絡協議包數據,並發送給遠程連接的調試客戶端。
[0011]優選地,網絡驅動模塊捕獲網絡協議包,並將捕獲取的網絡協議包寫入共享內存包括步驟:
[0012]檢查是否已創建共享內存,如果沒有,則創建共享內存;
[0013]檢查調試狀態標誌是否有效,如果有效,則當有網絡協議數據讀取或寫入時,將網絡協議數據包寫入到共享內存。
[0014]其中,網絡協議包數據包括包頭和包體,其中:包頭包括幻數、方向和數據長度,包體包括數據內容。
[0015]優選地,調試服務端讀取共享內存中的網絡協議包數據,並發送給遠程連接的調試客戶端包括步驟:
[0016]啟動網絡監聽;
[0017]當監聽到有遠程調試客戶端請求連接吋,將調試客戶端增加到客戶端列表,並將調試狀態標誌為有效;
[0018]判斷共享內存中是否有未讀取的數據包,如果有,則讀取共享內存中的數據包,並將數據包發送給調試客戶端。
[0019]優選地,網絡驅動模塊捕獲網絡協議包之前還包括:調試客戶端通過調試服務端的地址信息向調試服務端請求連接;
[0020]調試服務端讀取共享內存中的網絡協議包數據,並發送給遠程連接的調試客戶端之後還包括:調試客戶端接收調試服務端發送的網絡協議包數據並顯示在界面上。
[0021]根據本發明的另ー個方面,提供的ー種網絡協議調試裝置包括網絡驅動模塊和調試服務端,其中:
[0022]網絡驅動模塊,用於捕獲網絡協議包,並將捕獲取的網絡協議包寫入共享內存;
[0023]調試服務端,用於讀取共享內存中的網絡協議包數據,並發送給遠程連接的調試客戶端。
[0024]優選地,網絡驅動模塊包括:
[0025]第一判斷単元,用於判斷是否已創建共享內存;
[0026]共享內存創建單元,用於第一判斷單元判斷出沒有創建共享內存時,創建共享內存;
[0027]第二判斷単元,用於判斷調試狀態標誌是否有效;
[0028]第三判斷単元,用於判斷是否有網絡協議數據讀取或寫入;
[0029]寫入単元,用於調試狀態標誌有效且有網絡協議數據讀取或寫入時,當將網絡協議數據包寫入到共享內存。
[0030]優選地,調試服務端包括:
[0031]監聽單元,用於監聽是否遠程調試客戶端請求連接;
[0032]設置單元,用於監聽到有遠程調試客戶端請求連接吋,將調試客戶端增加到客戶端列表;並將調試狀態標誌為有效;
[0033]第四判斷単元,用於判斷共享內存中是否有未讀取的數據包;
[0034]讀取單元,用於當共享內存中有未讀取的數據包時,讀取共享內存中的數據包;
[0035]發送單元,用於將讀取的數據包發送給遠程連接的調試客戶端。
[0036]優選地,該裝置還包括調試客戶端,用於通過調試服務端的地址信息向調試服務端請求連接,還用於接收調試服務端發送的網絡協議包數據並顯示在用戶界面上。
[0037]根據本發明的再ー個方面,提供的一種網絡協議調試系統,包括調試設備和被調試設備,其中,被調試設備上述技術方案中的網絡協議調試裝置,調試設備包括調試客戶端,用於通過調試服務端的地址信息向調試服務端請求連接,還用於接收調試服務端發送的網絡協議包數據並顯示在用戶界面上。
[0038]本發明實施例提供的網絡協議調試方法、裝置和系統,與現有技術相比,通過在調試設備上部署調試客戶端,在被調試設備上部署設備網絡驅動模塊和調試服務端,被調試設備將接收和發送的網絡協議數據寫入共享內存,然後將共享內存中的收發數據打包發送給遠程連接的調試設備。不需要藉助外部網絡設備進行抓包調試,也不需要改變原有網絡拓撲結構,節省了成本;同吋,調試過程中不會導致與被調試設備無關的網絡協議數據包,不再需要過濾調試信息,簡單高效。【專利附圖】
【附圖說明】
[0039]圖1為現有技術中的網絡環境結構示意圖。
[0040]圖2為現有技術中的網絡協議調試環境結構示意圖。
[0041]圖3為本發明實施例提供的ー種網絡協議調試方法流程圖。
[0042]圖4為本發明優選實施例提供的網絡驅動模塊工作流程圖。
[0043]圖5為本發明優選實施例提供的調試服務端工作流程圖。
[0044]圖6為本發明優選實施例提供的調試客戶端工作流程圖。
[0045]圖7為本發明優選實施例提供的網絡協議包存儲結構示意圖。
[0046]圖8為本發明實施例提供的ー種網絡協議調試裝置的結構示意圖。
[0047]圖9為本發明實施例提供的一種網絡協議調試系統的結構示意圖。
【具體實施方式】
[0048]為了使本發明所要解決的技術問題、技術方案及有益效果更加清楚、明白,以下結合附圖和實施例,對本發明進行進一歩詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用幹限定本發明。
[0049]如圖3所示為本發明實施例提供的ー種網絡協議調試方法流程圖,該方法包括:
[0050]S302、網絡驅動模塊捕獲網絡協議包,並將捕獲取的網絡協議包寫入共享內存;
[0051]具體包括:網絡驅動模塊檢查是否已創建共享內存,如果沒有,則創建共享內存;然後檢查調試狀態標誌是否有效,如果有效,則捕獲網絡協議包,當有網絡協議數據讀取或寫入時,將網絡協議數據包寫入到共享內存。
[0052]S304、調試服務端讀取共享內存中的網絡協議包數據,並發送給遠程連接的調試客戶端。
[0053]具體包括:調試服務端加載後,啟動ー個網絡監聽;當監聽到有遠程調試客戶端請求連接吋,將調試客戶端增加到客戶端列表,並將調試狀態標誌為有效;然後判斷共享內存中是否有未讀取的數據包,如果有,則讀取共享內存中的數據包,並將數據包發送給遠程連接的調試客戶端。
[0054]S306、調試客戶端接收網絡協議包數據並顯示在界面上。
[0055]本發明實施例,與現有技術相比,通過在調試設備上部署調試客戶端,在被調試設備上部署設備網絡驅動模塊和調試服務端,被調試設備將接收和發送的網絡協議數據寫入共享內存,然後將共享內存中的收發數據打包發送給遠程連接的調試設備。不需要藉助外部網絡設備進行抓包調試,也不需要改變原有網絡拓撲結構,節省了成本;同吋,調試過程中不會導致與被調試設備無關的網絡協議數據包,不再需要過濾調試信息,簡單高效。
[0056]圖4為本發明優選實施例提供的網絡驅動模塊工作流程圖,該方法包括:
[0057]S402、判斷是否已創建共享內存,如果是,執行步驟S406,否則執行步驟S404 ;
[0058]S404、創建共享內存;
[0059]S406、判斷調試狀態標誌是否有效,如果是,則執行步驟S408,否則執行步驟S414。
[0060]S408、判斷是否有網絡協議數據讀取或寫入,如果是,則執行步驟S410,否則跳轉步驟S414。
[0061]S410、寫入數據包包頭;
[0062]請參閱圖7,網絡協議數據包括包頭和數據包,包頭包括幻數、方向和數據包長度。其中,幻數用於識別數據包、方向用於區分是接收還是發送、數據包長度用於表示數據內容的長度。
[0063]S412、寫入數據包包體。
[0064]具體來說,在網絡驅動的讀取和寫入接ロ將數據包寫入共享內存。
[0065]S414、結束流程。
[0066]本發明實施例通過在被調試設備上修改網絡驅動程序,在被調試設備啟動時網絡驅動程序自動加載,從而獲取接收與發送的網絡數據包,並保存至共享內存,為調試提供網絡協議包數據。
[0067]圖5為本發明優選實施例提供的調試服務端工作流程圖,該方法包括:
[0068]S502、啟動網絡監聽;
[0069]S504、判斷是否有遠程調試客戶端連接,如果有,則執行步驟S506,否則繼續監聽;
[0070]S506、修改客戶端列表,並設置調試狀態標誌為有效;
[0071]具體來說,當監聽到有遠程調試客戶端連接時,則將調試客戶端添加至客戶端連接管理列表中,若客戶端連接管理列表中有調試客戶存在,則設置當前驅動調試狀態標誌為有效,以便網絡驅動模塊開始捕獲網絡協議數據包。
[0072]S508、判斷共享內存中是否有未讀取的數據包,如果有,則執行步驟S510,否則返回步驟S504 ;
[0073]具體來說,當共享內存的有效數據包長度大於零時,表示有數據包未讀取,則訪問共享內存,將數據讀出。
[0074]S510、讀出共享內存中的數據包。
[0075]請參閱圖7,網絡協議數據包括包頭和包體,包頭包括幻數、方向和數據包長度。其中,幻數用於識別數據包、方向用於區分是接收還是發送、數據包長度用於表示數據內容的長度,包體存放數據內容。本步驟根據包頭的信息進行按包分片,先逐字節讀取並校驗包頭幻數,識別出數據包頭,然後讀取數據包頭中的數據包長度信息,根據數據包長度信息,讀取包體內容作為ー個分片數據包。
[0076]S512、將數據包發送給遠程連接的調試客戶端。
[0077]具體來說,將分片後的數據包發送給遠程連接的客戶端。
[0078]本發明實施例通過在被調試設備上增加一個調試服務端進程,為調試客戶端提供連接管理,並讀取共享內存中的網絡協議包數據並發送給調試客戶端。
[0079]如圖6為本發明優選實施例提供的調試客戶端工作流程圖,該方法包括:
[0080]S602、向調試服務端請求連接;
[0081]具體來說,可以通過被調試設備的地址信息,向被調試服務端請求連接。
[0082]S604、接收調試服務端發送的數據包;
[0083]S606、讀取數據包包頭信息;
[0084]S608、讀取數據包包體信息;[0085]S610、顯示數據包內容。
[0086]具體來說,顯示的數據包內容主要包括方向(包括接收或發送)、數據長度、數據包內容。
[0087]本發明實施例通過在調試設備上増加一個調試客戶端程序連接被調試設備的調試服務端,並接收調試服務端發送的網絡協議包數據,從而定位網絡問題。
[0088]如圖8所示為本發明實施例提供的ー種網絡協議調試裝置的結構示意圖,該裝置包括網絡驅動模塊101和調試服務端102,其中:
[0089]網絡驅動模塊101,用於捕獲網絡協議包,並將捕獲取的網絡協議包寫入共享內存;
[0090]進ー步地,網絡驅動模塊101包括:第一判斷單元1011、共享內存創建單元1012、第二判斷單元1013、第三判斷單元1014和寫入單元1015,其中:
[0091]第一判斷單元1011,用於判斷是否已創建共享內存;
[0092]共享內存創建單元1012,用於第一判斷単元判斷出沒有創建共享內存時,創建共享內存;
[0093]第二判斷單元1013,用於判斷調試狀態標誌是否有效;
[0094]第三判斷単元1014,用於判斷是否有網絡協議數據讀取或寫入;
[0095]寫入単元1015,用於當調試狀態標誌有效且有網絡協議數據讀取或寫入時,將網絡協議數據包寫入到共享內存。
[0096]具體來說,當讀/寫接ロ觸發時,判斷網絡協議包長度有效性,以及當前調試狀態標誌,若無效則不進行處理;若有效,則先獲取當前共享內存的網絡協議包長度。舉例來說,若長度為N,則先在N?N+3這四個字節處寫入幻數,幻數為固定值,假設為0x20090501,然後在N+4這ー個字節寫入方向,若當前為讀取接ロ,則值為1,若為寫入接ロ,則值為2,然後在N+5?N+8這四個字節中寫入當前網絡協議包長度,最後在N+9處根據網絡協議包長度寫入網絡協議包內容。
[0097]調試服務端102,用於讀取共享內存中的網絡協議包數據,並發送給遠程連接的調試客戶端。
[0098]進ー步地,調試服務端102包括監聽單元1021、設置單元1022、第四判斷単元1023、讀取單元1024、發送單元1025,其中:
[0099]監聽單元1021,用於監聽是否有遠程調試客戶端請求連接;
[0100]設置單元1022,用於當監聽到有遠程調試客戶端請求連接吋,將調試客戶端增加到客戶端列表;並將調試狀態標誌為有效;
[0101]第四判斷単元1023,用於判斷共享內存中是否有未讀取的數據包;
[0102]讀取單元1024,用於當判斷共享內存中未讀取的數據包時,讀取共享內存中的數據包;
[0103]發送單元1025,用於將讀取的數據包發送給遠程連接的調試客戶端。
[0104]具體來說,啟動網絡監聽後,若有遠程連接請求,則將客戶端添加至客戶端連接管理列表中,若客戶端連接管理列表中有客戶存在,則設置當前驅動調試狀態標誌為有效;定時循環檢查共享內存是否有未讀取的數據包,若共享內存中有未讀取的數據包,則先讀取四個字節的幻數,若幻數有效,則讀取一個字節的網絡協議包方向,然後讀取網絡協議包長度,最後根據網絡協議包長度,讀取網絡協議包內容,然後逐一將網絡協議包發送給客戶端連接管理列表中存在的客戶端。
[0105]本發明實施例通過在被調試設備上增加該調試裝置,不需要藉助外部網絡設備進行抓包調試,也不需要改變原有網絡拓撲結構,節省了成本;同吋,調試過程中不會導致與被調試設備無關的網絡協議數據包,不再需要過濾調試信息,簡單高效。
[0106]如圖9所示為本發明實施例提供的一種網絡協議調試系統的結構示意圖,該系統包括被調試設備10和調試設備20,被調試設備10又包括網絡驅動模塊101和調試服務端102,調試設備20包括調試客戶端201,其中:
[0107]網絡驅動模塊101,用於捕獲網絡協議包,並將捕獲取的網絡協議包寫入共享內存。
[0108]調試服務端102,用於讀取共享內存中的網絡協議包數據,並發送給遠程連接的調試客戶端201。
[0109]調試客戶端201,用於通過調試服務端的地址信息向調試服務端請求連接,還用於接收調試服務端發送的網絡協議包數據並顯示在用戶界面上。
[0110]需要說明的是,上述圖8的技術方案在本實施例中同樣適用,這裡不再重述,本實施例的系統中,被調試設備10可以是視頻監控設備,還可以是其他網絡上的運行設備。
[0111]本發明實施例提供的系統,通過在調試設備上部署調試客戶端,在被調試設備上部署設備網絡驅動模塊和調試服務端,被調試設備將接收和發送的網絡協議數據寫入共享內存,然後將共享內存中的收發數據打包發送給遠程連接的調試設備。不需要藉助外部網絡設備進行抓包調試,也不需要改變原有網絡拓撲結構,節省了成本;同吋,調試過程中不會導致與被調試設備無關的網絡協議數據包,不再需要過濾調試信息,簡單高效。
[0112]以上參照【專利附圖】
【附圖說明】了本發明的優選實施例,並非因此局限本發明的權利範圍。本領域技術人員不脫離本發明的範圍和實質內所作的任何修改、等同替換和改進,均應在本發明的權利範圍之內。
【權利要求】
1.ー種網絡協議調試方法,其特徵在於,該方法包括: 網絡驅動I旲塊摘獲網絡協議包,並將摘獲取的網絡協議包與入共孕內存; 調試服務端讀取共享內存中的網絡協議包數據,並發送給遠程連接的調試客戶端。
2.根據權利要求1所述的網絡協議調試方法,其特徵在於,所述網絡驅動模塊捕獲網絡協議包,並將捕獲取的網絡協議包寫入共享內存包括步驟: 檢查是否已創建共享內存,如果沒有,則創建共享內存; 檢查調試狀態標誌是否有效,如果有效,則當有網絡協議數據讀取或寫入時,將網絡協議數據包寫入到共享內存。
3.根據權利要求2所述的網絡協議調試方法,其特徵在於,所述網絡協議包數據包括包頭和包體,其中:所述包頭 包括幻數、方向和數據長度,所述包體包括數據內容。
4.根據權利要求1所述的網絡協議調試方法,其特徵在於,所述調試服務端讀取共享內存中的網絡協議包數據,並發送給遠程連接的調試客戶端包括步驟: 啟動網絡監聽; 當監聽到有遠程調試客戶端請求連接時,將所述調試客戶端增加到客戶端列表,並將調試狀態標誌為有效; 判斷共享內存中是否有未讀取的數據包,如果有,則讀取共享內存中的數據包,並將數據包發送給所述調試客戶端。
5.根據權利要求1-4任意一項權利要求所述的網絡協議調試方法,其特徵在幹,網絡驅動模塊捕獲網絡協議包之前還包括步驟:調試客戶端通過調試服務端的地址信息向調試服務端請求連接; 所述調試服務端讀取共享內存中的網絡協議包數據,並發送給遠程連接的調試客戶端之後還包括步驟:調試客戶端接收所述調試服務端發送的網絡協議包數據並顯示在界面上。
6.ー種網絡協議調試裝置,其特徵在於,該裝置包括網絡驅動模塊和調試服務端,其中: 所述網絡驅動模塊,用於捕獲網絡協議包,並將捕獲取的網絡協議包寫入共享內存;所述調試服務端,用於讀取共享內存中的網絡協議包數據,並發送給遠程連接的調試客戶端。
7.根據權利要求6所述的網絡協議調試裝置,其特徵在於,所述網絡驅動模塊包括: 第一判斷単元,用於判斷是否已創建共享內存; 共享內存創建單元,用於第一判斷単元判斷出沒有創建共享內存時,創建共享內存; 第二判斷単元,用於判斷調試狀態標誌是否有效; 第三判斷単元,用於判斷是否有網絡協議數據讀取或寫入; 寫入単元,用於當調試狀態標誌有效且有網絡協議數據讀取或寫入時,將網絡協議數據包寫入到共享內存。
8.根據權利要求6所述的網絡協議調試裝置,其特徵在於,所述調試服務端包括: 監聽單元,用於監聽是否遠程調試客戶端請求連接; 設置單元,用於監聽到有遠程調試客戶端請求連接時,將所述調試客戶端增加到客戶端列表;並將調試狀態標誌為有效;第四判斷単元,用於判斷共享內存中是否有未讀取的數據包; 讀取單元,用於當共享內存中有未讀取的數據包時,讀取共享內存中的數據包; 發送單元,用於將讀取的數據包發送給遠程連接的調試客戶端。
9.根據權利要求6-8任意一項所述的網絡協議調試裝置,其特徵在於,所述裝置還包括調試客戶端,用於通過調試服務端的地址信息向調試服務端請求連接,還用於接收調試服務端發送的網絡協議包數據並顯示在用戶界面上。
10.一種網絡協議調試系統,包括調試設備和被調試設備,其特徵在幹, 所述被調試設備包括6-8任意一項權利要求所述的網絡協議調試裝置, 所述調試設備包括調試客戶端,用於通過調試服務端的地址信息向調試服務端請求連接,還用於接收調 試服務端發送的網絡協議包數據並顯示在用戶界面上。
【文檔編號】H04L12/26GK103457765SQ201310373122
【公開日】2013年12月18日 申請日期:2013年8月23日 優先權日:2013年8月23日
【發明者】郝勇 申請人:中安消技術有限公司