文|李維賢,普磊,金泓,黃志明
基于并發(fā)處理結構的寬帶智能認證技術研究
文|李維賢,普磊,金泓,黃志明
目前在寬帶認證鑒權領域,當收到來自用戶的寬帶認證鑒權請求后,會分配一個線程處理該請求,由線程順序執(zhí)行包括賬號密碼校驗、有效期校驗、余額校驗、捆綁屬性校驗等步驟,線程處理完一個鑒權請求后,獲取下一個鑒權請求接著處理。
由于認證鑒權為順序執(zhí)行,需要執(zhí)行完最后一個步驟后才能夠得到認證結果,效率低下,一旦遇到復雜業(yè)務流程就會持續(xù)占用該線程,處理時間過長,且進程池、線程池內(nèi)資源不能夠釋放,降低系統(tǒng)的吞吐量;同時,由于用戶在寬帶認證過程中一旦遇到阻塞會反復請求認證鑒權,因此寬帶認證鑒權需求量巨大,可能會導致報文隊列堵塞和積壓,降低系統(tǒng)的業(yè)務承載能力。
基于并發(fā)處理結構的寬帶智能認證技術,結合了四層/七層交換技術、分布式對象技術(ICE)、應用中間件技術、內(nèi)存數(shù)據(jù)庫技術、數(shù)據(jù)復制技術、數(shù)字簽名技術、數(shù)據(jù)挖掘技術、加權hash算法(PHash)、并發(fā)服務器技術、過濾網(wǎng)技術(Filtrate Net))等相關技術,實現(xiàn)多進程同時獲取消息隊列中的請求,非線性操作,可理想化為一次性處理一個通道的數(shù)據(jù),從而形成一站式智能化寬帶認證功能,有效提升寬帶認證處理效率。
寬帶認證技術是AAA(認證,授權,計費)的初始步驟,AAA一般包括用戶終端、AAAClient、AAAServer和計費軟件四個環(huán)節(jié),用戶終端與AAAClient之間的通信方式通常稱為"認證方式",目前常用的寬帶認證技術主要是PPPoE認證技術。
PPPoE是利用以太網(wǎng)發(fā)送PPP包的傳輸方法和支持在同一以太網(wǎng)上建立多個PPP連接的接入技術。其結合了以太網(wǎng)和PPP連接的綜合屬性。以太網(wǎng)是一種廣播網(wǎng)絡,其缺點是通訊雙方無法相互驗證對方身份,通訊是不安全的。PPP協(xié)議提供了通訊雙方身份驗證的功能,但是PPP協(xié)議是一種點對點的協(xié)議,協(xié)議中沒有提供地址信息。如果PPP應用在以太網(wǎng)上,必須使用PPPoE再進行一次封裝,PPPoE協(xié)議提供了在以太網(wǎng)廣播鏈路上進行點對點通信的能力。
(一) 基本原理
并發(fā)處理結構采用多進程+多線程技術,由進程和線程交織形成矩陣模型,一個處理請求到達后,不再是簡單的從池中一個進程或線程來處理,處理完成后再處理下一個,而是進程獲取處理請求,再分段給線程處理,業(yè)務流程越復雜,處理線程就越多,但無論多復雜的業(yè)務一個處理請求MAX處理時間是確定的,通過多進程的分散,處理能力成幾何級增加,最大限度利用資源;此結構需要多通道技術支持,緩存的消息隊列不再是簡單的先進先出隊列模式,需要采用多通道對接業(yè)務進程模式,不再是先進先出結構,請求消息進入通道后,有進程做均分二段處理,段內(nèi)同樣做均分處理,如此遞歸直至無法均分,獲取到的處理請求即為當前處理請求,可以實現(xiàn)多進程同時獲取消息隊列中的請求,非線性操作,可理想化為一次性處理一個通道的數(shù)據(jù)。
(二)核心技術
1、基于任務的帶多重異步的同步技術
基于任務的異步GDBM查詢處理, 帶多重異步的同步指通過異步查詢內(nèi)存數(shù)據(jù)庫中不同分類的數(shù)據(jù),最后回調第一個任務的一個函數(shù),如收到用戶請求后,異步分別查詢用戶賬號,用戶密碼,用戶狀態(tài),用戶使用區(qū)域,用戶線路綁定信息,用戶有效期等等信息的有效性,最后返回數(shù)據(jù)給第一個任務函數(shù)。
認證鑒權時候, 需要從AA 的Corba服務查詢大量的不同分類的數(shù)據(jù).讓每個Task矩陣執(zhí)行, 然后通過一個機制, 讓所有任務完成后, 回調第一個任務的一個函數(shù). 這樣就無需實現(xiàn)很多粘合操作,避免了反復調用消耗資源。
2、基于protobuf反射機制的自動合成
基于protobuf反射機制的自動合成指通過protobuf反射機制及結構體序列化好的buffer自動填充字段,實現(xiàn)內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)寫入。
radius原來的處理框架為同步阻塞方式,任何的函數(shù)需要所有的功能執(zhí)行完成后才能夠返回,在結合lua腳本后,lua腳本能夠為應用程序提供靈活的擴展和定制功能,實現(xiàn)異步處理方式,如原radius處理流程需要對認證請求中的校驗信息進行線性處理,一個請求處理需要較長時間且線性處理后的返回信息不全,而基于lua的機制的radius框架,能夠對所有校驗信息同步處理,且返回為全量信息。
使用了這項核心技術后,能夠在有限的硬件資源條件下,通過內(nèi)存數(shù)據(jù)庫異步處理,數(shù)據(jù)自動合成、資源互聯(lián)、框架優(yōu)化、隊列分拆等技術,實現(xiàn)大數(shù)據(jù)量的并發(fā)處理,硬件資源的充分利用。
3 、服務器互聯(lián)及識別
基于一些簡單的配置就可以將多臺資源, 同種類的不同資源互相連接起來,資源連接后,邏輯端可以進行廣播或者單獨發(fā)送等。
4、基于lua的機制的radius框架
radius處理,本身都是一個同步阻塞過程, 而這個lua框架是異步方式來做, 比起以前的本地GM系統(tǒng), 這塊的設計是非常大的進步,現(xiàn)在正在設計基于golang的服務器框架,外加lua語言編寫的本地XM框架,實現(xiàn)radius同步和異步的結合。
如現(xiàn)有GM系統(tǒng)中radius處理流程需要對認證請求中的校驗信息進行線性處理,一個請求處理需要較長時間且線性處理后的返回信息不全,而基于lua的機制的radius框架,能夠對所有校驗信息同步處理,且返回為全量信息。
使用了基于lua機制的radius框架后,能夠在有限的硬件資源條件下,通過內(nèi)存數(shù)據(jù)庫異步處理,數(shù)據(jù)自動合成、資源互聯(lián)、框架優(yōu)化、隊列分拆等技術,實現(xiàn)大數(shù)據(jù)量的并發(fā)處理,硬件資源的充分利用。
(三) 實現(xiàn)流程
用戶接入NAS,NAS使用Access-Require數(shù)據(jù)包向RADIUS服務器提交用戶信息,包括用戶名、密碼等相關信息,其中用戶密碼是經(jīng)過MD5加密的,雙方使用共享密鑰,這個密鑰不經(jīng)過網(wǎng)絡傳播;RADIUS服務器對用戶名和密碼的合法性進行檢驗,必要時可以提出一個Challenge,要求進一步對用戶認證,也可以對NAS進行類似的認證;如果合法,給NAS返回Access-Accept數(shù)據(jù)包,允許用戶進行下一步工作,否則返回Access-Reject數(shù)據(jù)包,拒絕用戶訪問;如果允許訪問,NAS向RADIUS服務器提出計費請求Account-Require,RADIUS服務器響應Account-Accept,對用戶的計費開始,同時用戶可以進行自己的相關操作。
通過并發(fā)處理結構的寬帶智能認證方法,在業(yè)務請求經(jīng)過時不再是單一的順序(例如先進先出隊列)處理,也不是批量處理(例如多線程循環(huán)處理),而是采用矩陣模式,縱向維度是進程分層,橫向維度是線程meta細化和多通道,能夠實現(xiàn)大數(shù)據(jù)量大并發(fā)處理的同時,處理復雜業(yè)務,以原始meta處理單元為基礎,通過多進程分層獲取業(yè)務請求,再通過多線程分多通道處理,每個通道內(nèi)運行的是meta最小處理單元,將復雜業(yè)務劃小為多個meta處理單元,每個處理請求的maxtime消耗為固定時間,不會導致進程或者線程資源長期占用不能釋放。
通過該方法的運用不僅僅是提高效率,還解決了復雜業(yè)務的處理,同時最大限度的利用資源,減少資源調度損耗,在相同硬件環(huán)境下,提供更高處理效能,且結構易于擴展和調整,擴容不僅僅是增加機器,可以從結構優(yōu)化上調整,結構維度上可以擴展為3維、4維處理,針對不同主機環(huán)境采用不同的維度,例如X86芯片則以線程處理業(yè)務量維度為主,IBM Power芯片則以進程吞度量維度為主。
作者單位:中國電信云南分公司