[發明專利]一種基于兩級緩存的報文處理方法在審
| 申請號: | 201710390138.0 | 申請日: | 2017-05-27 |
| 公開(公告)號: | CN107204939A | 公開(公告)日: | 2017-09-26 |
| 發明(設計)人: | 蔣玉柱;劉明慧;胡紹謙 | 申請(專利權)人: | 南京南瑞繼保電氣有限公司;南京南瑞繼保工程技術有限公司 |
| 主分類號: | H04L12/861 | 分類號: | H04L12/861;G06F12/0811;G06F13/28;G06F12/0875 |
| 代理公司: | 南京縱橫知識產權代理有限公司32224 | 代理人: | 耿英,董建林 |
| 地址: | 211102 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 兩級 緩存 報文 處理 方法 | ||
技術領域
本發明屬于電力系統通訊網絡報文記錄分析領域,尤其涉及到變電站內的GOOSE、SV、MMS、104通訊報文抓取及分析技術。
背景技術
隨著電力系統網絡化和智能化的發展進程,查詢網絡故障原因就需要網絡報文記錄分析儀長期高效穩定運行,當網絡故障發生時,可以提供現場證據和問題分析的依據,所以提供長期高效穩定運行的網絡分析儀非常有必要。
目前,電力系統的網絡報文記錄分析多采用FPGA進行報文抓取,并需要進行從FPGA到內核,內核到應用進程,應用進程內的多次拷貝過程,導致報文記錄和分析的效率下降,報文流量大時容易丟包,并且長時間運行不穩定,容易形成過多內存碎片,導致記錄裝置故障的問題。解決以上問題的關鍵就在于提供一種可以解決上述問題的長期高效穩定運行的報文處理方法。
發明內容
本發明的主要目的在于,克服現有處理方式的不足,提供一種電力系統網絡報文處理方法,提高處理的效率和長期運行穩定性,為網絡故障分析提供可靠依據。
為了實現以上目的,本發明采用的技術方案是:
基于二級緩存的報文記錄分析方法,包含以下步驟:
步驟1:分配一級緩存、二級緩存,設置物理網卡進入監聽模式;
步驟2:物理網卡接收到報文數據后,直接DMA方式將報文數據拷貝到一級緩存,并通知協議解析模塊,將報文數據首地址傳遞給協議解析模塊;
步驟4:協議解析模塊接收到報文數據首地址后,進行協議解析,并將解析結果組織成業務邏輯數據結構壓入二級緩存,同時通知業務邏輯模塊;
步驟 5:業務邏輯模塊接收到協議解析模塊的通知后,直接彈出二級緩存內緩存的業務邏輯數據結構并進行業務邏輯處理。
進一步的,步驟1中一級緩存分配于內核高端內存區域,并映射成共享區域,按照2048字節為單位的報文數據塊進行組織。
進一步的,步驟2中當物理網卡接收到報文數據后,物理網卡觸發硬件中斷激活內核網卡數據中斷處理函數,處理函數在一級緩存中尋找空閑報文數據塊,并啟動DMA方式將報文數據從物理網卡緩存拷貝到一級緩存空閑的報文數據塊中。
進一步的,步驟3中協議解析模塊直接獲取報文數據首地址而不進行報文數據的拷貝。
進一步的,步驟3中協議解析模塊在完成協議解析后立即釋放掉報文數據對應的一級緩存。
進一步的,步驟3中的二級緩存分配于操作系統應用空間,采用隊列實現,由協議解析模塊向隊列壓入數據,由業務邏輯模塊從隊列彈出數據。
進一步的,協議解析模塊和業務邏輯模塊相互獨立,當二級緩存沒有數據時,業務邏輯模塊將進入睡眠狀態。
本發明采用以上技術方案與現有技術相比,具有以下有益效果:
降低了報文數據拷貝次數,增加系統處理效率,降低內存碎片率,提高系統穩定性;二級緩存增加了大流量數據的處理能力,避免因為業務邏輯處理緩慢導致的丟包。
附圖說明
圖1是本發明的報文處理方法示意圖;
圖2是二級緩存的結構;
圖3是一級緩存的結構。
具體實施方式
下面結合說明書附圖,對本發明作進一步的說明。
如圖1所示,本發明提供一種基于兩級緩存的報文處理方法,包括以下步驟:
步驟1:內核在啟動時,劃分出一塊高端內存空間作為一級緩存,將該內存空間映射成共享區域,并以2048字節的報文數據塊進行組織,如圖3所示;內核初始化物理網卡進入監聽模式,同時設置網卡數據中斷處理程序,并初始化DMA控制器;
步驟2:協議解析模塊和業務邏輯模塊在啟動時,初始化二級緩存,并打開內核提供的報文通知接口,監聽內核的報文數據通知;二級緩存采用隊列實現,如圖2所示;
步驟3:當物理網卡接收到報文數據,物理網卡觸發硬件中斷激活內核網卡數據中斷處理函數,處理函數在一級緩存中尋找空閑報文數據塊,并啟動DMA(直接內存存取)直接將報文數據從物理網卡緩存拷貝到空閑一級緩存報文數據塊;
步驟4:DMA完成報文數據拷貝后,內核通知協議解析模塊收到報文數據,并將一級緩存報文數據塊首地址傳遞給協議解析模塊;
步驟5:協議解析模塊收到報文數據塊首地址后,解析報文數據形成業務邏輯數據結構,并將業務邏輯數據結構壓入二級緩存,同時釋放一級緩存報文數據塊,并通知業務邏輯模塊;
步驟6:業務邏輯模塊接收到協議分析模塊的通知后,從二級緩存彈出業務邏輯數據結構,并進行業務邏輯處理;當二級緩存為空時,業務邏輯模塊將進入睡眠狀態。
以上顯示和描述了本發明的基本原理、主要特征及優點。本行業的技術人員應該了解,本發明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發明的原理,在不脫離本發明精神和范圍的前提下,本發明還會有各種變化和改進,這些變化和改進都落入要求保護的本發明范圍內。本發明要求保護范圍由所附的權利要求書及其等效物界定。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京南瑞繼保電氣有限公司;南京南瑞繼保工程技術有限公司,未經南京南瑞繼保電氣有限公司;南京南瑞繼保工程技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710390138.0/2.html,轉載請聲明來源鉆瓜專利網。





