鬼佬大哥大
  • / 8
  • 下載費用:30 金幣  

一種記賬中間報文的處理方法及裝置.pdf

關 鍵 詞:
一種 記賬 中間 報文 處理 方法 裝置
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201210124185.8

申請日:

2012.04.25

公開號:

CN102685116B

公開日:

2015.01.28

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):H04L 29/06申請日:20120425|||公開
IPC分類號: H04L29/06; H04L12/14 主分類號: H04L29/06
申請人: 中興通訊股份有限公司
發明人: 靳康
地址: 518057 廣東省深圳市南山區高新技術產業園科技南路中興通訊大廈法務部
優先權:
專利代理機構: 北京安信方達知識產權代理有限公司 11262 代理人: 李健;龍洪
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201210124185.8

授權公告號:

102685116B||||||

法律狀態公告日:

2015.01.28|||2012.11.28|||2012.09.19

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本發明公開了一種RADIUS服務器異常情況下記賬中間報文的處理方法及裝置,該裝置包括:查詢模塊、判斷模塊和存儲模塊,該方法包括:當遠端用戶撥入驗證服務RADIUS服務器出現異常時,RADIUS客戶端在將新產生的記賬中間報文保存之前,在本地數據庫中查找是否已經存在同一次會話記錄的記賬中間報文,如果是,則將所述新產生的記賬中間報文替換已經存在的記賬中間報文,否則直接保存所述新產生的記賬中間報文。本發明提供的方法及裝置,可以有效減少無效的記賬中間報文對內存空間的大量占用,同時,當服務器恢復工作狀態時,可以有效減少無效報文發往服務器,避免大量無效報文對服務器的沖擊。

權利要求書

1.一種RADIUS服務器異常情況下記賬中間報文的處理方法,包括:
當遠端用戶撥入驗證服務RADIUS服務器出現異常時,RADIUS客戶
端在將新產生的記賬中間報文保存之前,在本地數據庫中查找是否已經存在
同一次會話記錄的記賬中間報文,如果是,則將所述新產生的記賬中間報文
替換已經存在的記賬中間報文,否則直接保存所述新產生的記賬中間報文。
2.如權利要求1所述的方法,其特征在于:
所述RADIUS客戶端在本地數據庫中查找是否已經存在同一次會話的
記賬中間報文之前,還包括:
在本地數據庫中建立記賬中間報文的緩存隊列,根據所述記賬中間報文
中的記賬會話序列號創建索引,同一次會話記錄的記賬中間報文的記賬會話
序列號相同。
3.如權利要求2所述的方法,其特征在于:
所述RADIUS客戶端在本地數據庫中查找是否已經存在同一次會話的
記賬中間報文,如果是,則將所述新產生的記賬中間報文替換已經存在的記
賬中間報文,否則直接保存所述新產生的記賬中間報文,包括:
所述RADIUS客戶端在所述緩存隊列中根據記賬會話序列號查找是否
已經存在與所述新產生的記賬中間報文的記賬會話序列號相同的記賬中間報
文,如果是,則將所述新產生的記賬中間報文替換所述記賬會話序列號相同
的記賬中間報文,否則直接在所述緩存隊列中保存所述新產生的記賬中間報
文。
4.如權利要求3所述的方法,其特征在于:
所述RADIUS客戶端直接在所述緩存隊列中保存所述新產生的記賬中
間報文時,更新索引增加所述新產生的記賬中間報文對應的記賬會話序列號。
5.如上述任一項權利要求所述的方法,其特征在于:
當RADIUS服務器恢復正常時,所述RADIUS客戶端將保存的記賬中
間報文發送至所述RADIUS服務器。
6.一種RADIUS服務器異常情況下記賬中間報文的處理裝置,包括:
查詢模塊,用于當遠端用戶撥入驗證服務RADIUS服務器出現異常時,
在存儲模塊將新產生的記賬中間報文保存之前,在本地數據庫中查找是否已
經存在同一次會話記錄的記賬中間報文;
判斷模塊,用于判斷所述本地數據庫中是否已經存在同一次會話記錄的
記賬中間報文,并將判斷結果發送至存儲模塊;
存儲模塊,用于在接收到的判斷結果為是時,將所述新產生的記賬中間
報文替換已經存在的記賬中間報文,否則直接保存所述新產生的記賬中間報
文。
7.如權利要求6所述的裝置,其特征在于:
所述存儲模塊,還用于在所述查詢模塊在本地數據庫中查找是否已經存
在同一次會話的記賬中間報文之前,在本地數據庫中建立記賬中間報文的緩
存隊列,根據所述記賬中間報文中的記賬會話序列號創建索引,同一次會話
記錄的記賬中間報文的記賬會話序列號相同。
8.如權利要求7所述的裝置,其特征在于:
所述查詢模塊,還用于在所述緩存隊列中根據記賬會話序列號查找是否
已經存在與所述新產生的記賬中間報文的記賬會話序列號相同的記賬中間報
文;
所述判斷模塊,還用于判斷所述緩存隊列中是否已經存在與所述新產生
的記賬中間報文的記賬會話序列號相同的記賬中間報文,并將判斷結果發送
至存儲模塊;
所述存儲模塊,還用于在接收到的判斷結果為是時,將所述新產生的記
賬中間報文替換所述記賬會話序列號相同的記賬中間報文,否則直接在所述
緩存隊列中保存所述新產生的記賬中間報文。
9.如權利要求7所述的裝置,其特征在于:
所述存儲模塊直接在所述緩存隊列中保存所述新產生的記賬中間報文
時,更新索引增加所述新產生的記賬中間報文對應的記賬會話序列號。
10.如上述任一項權利要求所述的裝置,其特征在于:
所述裝置還包括發送模塊,用于當RADIUS服務器恢復正常時,將保存
的記賬中間報文發送至所述RADIUS服務器。

說明書

一種記賬中間報文的處理方法及裝置

技術領域

本發明涉及通信領域,具體涉及一種RADIUS服務器異常情況下記賬中
間報文的處理方法及裝置。

背景技術

RADIUS(Remote?Authentication?Dial?In?User?Service,遠端用戶撥入驗證
服務)是一種AAA(Authentication、Authorization、Accounting,認證、授
權、計費)類型的網絡應用協議,用于認證、授權和計費等功能。該協議實
現了對于用戶接入的遠程控制。如圖1所示,RADIUS客戶端使用RADIUS
協議向RADIUS服務器發送記賬中間報文,對于普通的認證請求,可以直接
丟棄,但是記賬中間報文請求涉及費用等問題,有必要在RADIUS客戶端本
地暫存。在用戶上線的過程中,RADIUS客戶端設備會定時產生發送記賬中
間報文,并發送給RADIUS服務器。當RADIUS服務器出現異常時,無法
處理RADIUS請求,就會出現同一個RADIUS客戶端可能在本地累積很多
記賬中間報文,會占用本地大量的存儲空間;而當RADIUS服務器恢復正常
時,RADIUS客戶端會將這些大量的記賬中間報文同時發送出去,過多的無
效報文可能導致系統的崩潰,同時引起大量無效報文對服務器的沖擊。

發明內容

本發明需要解決的技術問題是提供一種RADIUS服務器異常情況下記
賬中間報文的處理方法及裝置,以克服現有技術中在RADIUS服務器出現異
常時對所有RADIUS記賬中間報文直接保存的缺陷,減少無效信息對內存空
間的大量占用,同時也避免大量無效報文對服務器的沖擊。

為了解決上述技術問題,本發明提供了一種RADIUS服務器異常情況下
記賬中間報文的處理方法,包括:

當遠端用戶撥入驗證服務RADIUS服務器出現異常時,RADIUS客戶
端在將新產生的記賬中間報文保存之前,在本地數據庫中查找是否已經存在
同一次會話記錄的記賬中間報文,如果是,則將所述新產生的記賬中間報文
替換已經存在的記賬中間報文,否則直接保存所述新產生的記賬中間報文。

進一步地,所述RADIUS客戶端在本地數據庫中查找是否已經存在同一
次會話的記賬中間報文之前,還包括:

在本地數據庫中建立記賬中間報文的緩存隊列,根據所述記賬中間報文
中的記賬會話序列號創建索引,同一次會話記錄的記賬中間報文的記賬會話
序列號相同。

進一步地,所述RADIUS客戶端在本地數據庫中查找是否已經存在同一
次會話的記賬中間報文,如果是,則將所述新產生的記賬中間報文替換已經
存在的記賬中間報文,否則直接保存所述新產生的記賬中間報文,包括:

所述RADIUS客戶端在所述緩存隊列中根據記賬會話序列號查找是否
已經存在與所述新產生的記賬中間報文的記賬會話序列號相同的記賬中間報
文,如果是,則將所述新產生的記賬中間報文替換所述記賬會話序列號相同
的記賬中間報文,否則直接在所述緩存隊列中保存所述新產生的記賬中間報
文。

進一步地,所述RADIUS客戶端直接在所述緩存隊列中保存所述新產生
的記賬中間報文時,更新索引增加所述新產生的記賬中間報文對應的記賬會
話序列號。

進一步地,當RADIUS服務器恢復正常時,所述RADIUS客戶端將保
存的記賬中間報文發送至所述RADIUS服務器。

為了解決上述技術問題,本發明還提供了一種RADIUS服務器異常情況
下記賬中間報文的處理裝置,包括:

查詢模塊,用于當遠端用戶撥入驗證服務RADIUS服務器出現異常時,
在存儲模塊將新產生的記賬中間報文保存之前,在本地數據庫中查找是否已
經存在同一次會話記錄的記賬中間報文;

判斷模塊,用于判斷所述本地數據庫中是否已經存在同一次會話記錄的
記賬中間報文,并將判斷結果發送至存儲模塊;

存儲模塊,用于在接收到的判斷結果為是時,將所述新產生的記賬中間
報文替換已經存在的記賬中間報文,否則直接保存所述新產生的記賬中間報
文。

進一步地,所述存儲模塊,還用于在所述查詢模塊在本地數據庫中查找
是否已經存在同一次會話的記賬中間報文之前,在本地數據庫中建立記賬中
間報文的緩存隊列,根據所述記賬中間報文中的記賬會話序列號創建索引,
同一次會話記錄的記賬中間報文的記賬會話序列號相同。

進一步地,所述查詢模塊,還用于在所述緩存隊列中根據記賬會話序列
號查找是否已經存在與所述新產生的記賬中間報文的記賬會話序列號相同的
記賬中間報文;

所述判斷模塊,還用于判斷所述緩存隊列中是否已經存在與所述新產生
的記賬中間報文的記賬會話序列號相同的記賬中間報文,并將判斷結果發送
至存儲模塊;

所述存儲模塊,還用于在接收到的判斷結果為是時,將所述新產生的記
賬中間報文替換所述記賬會話序列號相同的記賬中間報文,否則直接在所述
緩存隊列中保存所述新產生的記賬中間報文。

進一步地,所述存儲模塊直接在所述緩存隊列中保存所述新產生的記賬
中間報文時,更新索引增加所述新產生的記賬中間報文對應的記賬會話序列
號。

進一步地,所述裝置還包括發送模塊,用于當RADIUS服務器恢復正常
時,將保存的記賬中間報文發送至所述RADIUS服務器。

與現有技術相比,本發明提供的RADIUS服務器異常情況下記賬中間報
文的處理方法及裝置,可以有效減少無效的記賬中間報文對內存空間的大量
占用,同時,當服務器恢復工作狀態時,可以有效減少無效報文發往服務器,
避免大量無效報文對服務器的沖擊。

附圖說明

圖1是RADIUS服務器與客戶端交互的網絡結構圖;

圖2是實施例中RADIUS服務器異常情況下記賬中間報文的處理方法
的流程圖;

圖3是實施例中RADIUS服務器異常情況下記賬中間報文的處理裝置
的結構圖。

具體實施方式

為使本發明的目的、技術方案和優點更加清楚明白,下文中將結合附圖
對本發明的實施例進行詳細說明。需要說明的是,在不沖突的情況下,本申
請中的實施例及實施例中的特征可以相互任意組合。

實施例:

如圖1示,RADIUS服務器和RADIUS客戶端運行在IP網絡上,
RADIUS服務器和RADIUS客戶端之間有RADIUS報文交互,RADIUS客
戶端發送RADIUS請求到RADIUS服務器上,RADIUS服務器對RADIUS
請求進行響應,RADIUS客戶端定期產生新的記賬中間報文,向RADIUS服
務器發送,當RADIUS服務器出現異常時,無法處理RADIUS請求。

如圖2所示,本實施例提供了一種RADIUS服務器異常情況下記賬中間
報文的處理方法,包括以下步驟:

S101:RADIUS客戶端定期產生新的記賬中間報文,當RADIUS服務
器出現異常時,RADIUS客戶端在將新產生的記賬中間報文保存之前,在本
地數據庫中查找是否已經存在同一次會話記錄的記賬中間報文,如果是,則
執行步驟S102,否則執行步驟S103;

S102:RADIUS客戶端將所述新產生的記賬中間報文替換已經存在的記
賬中間報文;

S103:直接保存所述新產生的記賬中間報文。

為了提出查找效率,在上述步驟S101之前,本實施例還可以在本地數
據庫中建立記賬中間報文的緩存隊列,根據所述記賬中間報文中的記賬會話
序列號Acct-Session-Id創建索引,同一次會話記錄的記賬中間報文的記賬會
話序列號Acct-Session-Id相同。

因此,在步驟S101中,根據Acct-Session-Id可以在該緩存隊列中很快查
出是否已經存在與所述新產生的記賬中間報文的記賬會話序列號相同的記賬
中間報文,如果是,則將所述新產生的記賬中間報文替換所述記賬會話序列
號相同的記賬中間報文,否則直接在所述緩存隊列中保存所述新產生的記賬
中間報文,同時,更新索引,在所述緩存隊列中增加所述新產生的記賬中間
報文對應的記賬會話序列號。

在上述步驟后,當RADIUS服務器恢復正常時,所述RADIUS客戶端
將所述緩存隊列中的記賬中間報文發送至所述RADIUS服務器,從而有效地
減少了無效報文發往服務器,避免了大量無效報文對服務器的沖擊。

如圖3所示,本實施例提供了一種RADIUS服務器異常情況下記賬中間
報文的處理裝置,包括:

查詢模塊,用于當RADIUS服務器出現異常時,在存儲模塊將新產生的
記賬中間報文保存之前,在本地數據庫中查找是否已經存在同一次會話記錄
的記賬中間報文;

判斷模塊,用于判斷所述本地數據庫中是否已經存在同一次會話記錄的
記賬中間報文,并將判斷結果發送至存儲模塊;

存儲模塊,用于在接收到的判斷結果為是時,將所述新產生的記賬中間
報文替換已經存在的記賬中間報文,否則直接保存所述新產生的記賬中間報
文。

其中,所述存儲模塊,還用于在所述查詢模塊在本地數據庫中查找是否
已經存在同一次會話的記賬中間報文之前,在本地數據庫中建立記賬中間報
文的緩存隊列,根據所述記賬中間報文中的記賬會話序列號創建索引,同一
次會話記錄的記賬中間報文的記賬會話序列號相同。

其中,所述存儲模塊直接在所述緩存隊列中保存所述新產生的記賬中間
報文時,更新索引增加所述新產生的記賬中間報文對應的記賬會話序列號。

作為一種優選的方式,所述查詢模塊,還用于在所述緩存隊列中根據記
賬會話序列號查找是否已經存在與所述新產生的記賬中間報文的記賬會話序
列號相同的記賬中間報文;

所述判斷模塊,還用于判斷所述緩存隊列中是否已經存在與所述新產生
的記賬中間報文的記賬會話序列號相同的記賬中間報文,并將判斷結果發送
至存儲模塊;

所述存儲模塊,還用于在接收到的判斷結果為是時,將所述新產生的記
賬中間報文替換所述記賬會話序列號相同的記賬中間報文,否則直接在所述
緩存隊列中保存所述新產生的記賬中間報文。

此外,所述裝置還包括發送模塊,用于當RADIUS服務器恢復正常時,
將保存的記賬中間報文發送至所述RADIUS服務器。

從上述實施例可以看出,相對于現有技術,上述實施例中提供的RADIUS
服務器異常情況下記賬中間報文的處理方法及裝置,可以有效減少無效的記
賬中間報文對內存空間的大量占用,同時,當服務器恢復工作狀態時,可以
有效減少無效報文發往服務器,避免大量無效報文對服務器的沖擊。

本領域普通技術人員可以理解上述方法中的全部或部分步驟可通過程序
來指令相關硬件完成,所述程序可以存儲于計算機可讀存儲介質中,如只讀
存儲器、磁盤或光盤等。可選地,上述實施例的全部或部分步驟也可以使用
一個或多個集成電路來實現。相應地,上述實施例中的各模塊/單元可以采用
硬件的形式實現,也可以采用軟件功能模塊的形式實現。本發明不限制于任
何特定形式的硬件和軟件的結合。

以上所述僅為本發明的優選實施例而已,并非用于限定本發明的保護范
圍。根據本發明的發明內容,還可有其他多種實施例,在不背離本發明精神
及其實質的情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的
改變和變形,凡在本發明的精神和原則之內,所作的任何修改、等同替換、
改進等,均應包含在本發明的保護范圍之內。

關于本文
本文標題:一種記賬中間報文的處理方法及裝置.pdf
鏈接地址:http://www.wwszu.club/p-6420712.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大