目前在宽带认证鉴权领域,当收到来自用户的宽带认证鉴权请求后,会分配一个线程处理该请求,由线程顺序执行包括账号密码校验、有效期校验、余额校验、捆绑属性校验等步骤,线程处理完一个鉴权请求后,获取下一个鉴权请求接着处理。
由于认证鉴权为顺序执行,需要执行完最后一个步骤后才能够得到认证结果,效率低下,一旦遇到复杂业务流程就会持续占用该线程,处理时间过长,且进程池、线程池内资源不能够释放,降低系统的吞吐量;同时,由于用户在宽带认证过程中一旦遇到阻塞会反复请求认证鉴权,因此宽带认证鉴权需求量巨大,可能会导致报文队列堵塞和积压,降低系统的业务承载能力。
基于并发处理结构的宽带智能认证技术,结合了四层/七层交换技术、分布式对象技术(I C E)、应用中间件技术、内存数据库技术、数据复制技术、数字签名技术、数据挖掘技术、加权hash算法(PHash)、并发服务器技术、过滤网技术(Filtrate Net))等相关技术,实现多进程同时获取消息队列中的请求,非线性操作,可理想化为一次性处理一个通道的数据,从而形成一站式智能化宽带认证功能,有效提升宽带认证处理效率。
二、宽带认证技术
宽带认证技术是A A A(认证,授权,计费)的初始步骤,A A A 一般包括用户终端、AAAClient、AAAServer和计费软件四个环节,用户终端与AAAClient之间的通信方式通常称为"认证方式",目前常用的宽带认证技术主要是PPPoE认证技术。
PPPoE是利用以太网发送PPP包的传输方法和支持在同一以太网上建立多个P P P连接的接入技术。其结合了以太网和P P P连接的综合属性。以太网是一种广播网络,其缺点是通讯双方无法相互验证对方身份,通讯是不安全的。P P P协议提供了通讯双方身份验证的功能,但是P P P协议是一种点对点的协议,协议中没有提供地址信息。如果PPP应用在以太网上,必须使用PPPoE再进行一次封装,PPPoE协议提供了在以太网广播链路上进行点对点通信的能力。
三、基于并发处理结构的宽带智能认证技术
(一) 基本原理
并发处理结构采用多进程+多线程技术,由进程和线程交织形成矩阵模型,一个处理请求到达后,不再是简单的从池中一个进程或线程来处理,处理完成后再处理下一个,而是进程获取处理请求,再分段给线程处理,业务流程越复杂,处理线程就越多,但无论多复杂的业务一个处理请求M A X处理时间是确定的,通过多进程的分散,处理能力成几何级增加,最大限度利用资源;此结构需要多通道技术支持,缓存的消息队列不再是简单的先进先出队列模式,需要采用多通道对接业务进程模式,不再是先进先出结构,请求消息进入通道后,有进程做均分二段处理,段内同样做均分处理,如此递归直至无法均分,获取到的处理请求即为当前处理请求,可以实现多进程同时获取消息队列中的请求,非线性操作,可理想化为一次性处理一个通道的数据。
(二)核心技术
1、基于任务的带多重异步的同步技术
基于任务的异步G D B M查询处理, 带多重异步的同步指通过异步查询内存数据库中不同分类的数据,最后回调第一个任务的一个函数,如收到用户请求后,异步分别查询用户账号,用户密码,用户状态,用户使用区域,用户线路绑定信息,用户有效期等等信息的有效性,最后返回数据给第一个任务函数。
认证鉴权时候, 需要从AA 的Corba服务查询大量的不同分类的数据.让每个Task矩阵执行, 然后通过一个机制, 让所有任务完成后, 回调第一个任务的一个函数. 这样就无需实现很多粘合操作, 避免了反复调用消耗资源。
2、基于protobuf反射机制的自动合成
基于p r o t o b u f反射机制的自动合成指通过protobuf反射机制及结构体序列化好的buffer自动填充字段,实现内存数据库的数据写入。
radius原来的处理框架为同步阻塞方式,任何的函数需要所有的功能执行完成后才能够返回,在结合lua脚本后,lua脚本能够为应用程序提供灵活的扩展和定制功能,实现异步处理方式,如原radius处理流程需要对认证请求中的校验信息进行线性处理,一个请求处理需要较长时间且线性处理后的返回信息不全,而基于lua的机制的radius框架,能够对所有校验信息同步处理,且返回为全量信息。
使用了这项核心技术后,能够在有限的硬件资源条件下,通过内存数据库异步处理,数据自动合成、资源互联、框架优化、队列分拆等技术,实现大数据量的并发处理,硬件资源的充分利用。
3 、服务器互联及识别
基于一些简单的配置就可以将多台资源, 同种类的不同资源互相连接起来,资源连接后,逻辑端可以进行广播或者单独发送等。
4、基于lua的机制的radius框架
radius处理,本身都是一个同步阻塞过程, 而这个lua框架是异步方式来做, 比起以前的本地GM系统, 这块的设计是非常大的进步,现在正在设计基于g o l a n g的服务器框架,外加l u a语言编写的本地XM框架,实现radius同步和异步的结合。
如现有GM系统中radius处理流程需要对认证请求中的校验信息进行线性处理,一个请求处理需要较长时间且线性处理后的返回信息不全,而基于lua的机制的radius框架,能够对所有校验信息同步处理,且返回为全量信息。
使用了基于l u a机制的r a d i u s框架后,能够在有限的硬件资源条件下,通过内存数据库异步处理,数据自动合成、资源互联、框架优化、队列分拆等技术,实现大数据量的并发处理,硬件资源的充分利用。(三) 实现流程
用户接入NAS,NAS使用Access-Require数据包向R A D I U S服务器提交用户信息,包括用户名、密码等相关信息,其中用户密码是经过M D5加密的,双方使用共享密钥,这个密钥不经过网络传播;R A D I U S服务器对用户名和密码的合法性进行检验,必要时可以提出一个Challenge,要求进一步对用户认证,也可以对N A S进行类似的认证;如果合法,给NAS返回Access-Accept数据包,允许用户进行下一步工作,否则返回AccessR e j e c t数据包,拒绝用户访问;如果允许访问,N A S向R A D I U S服务器提出计费请求A c c o u n t- Require,RADIUS服务器响应Account-Accept,对用户的计费开始,同时用户可以进行自己的相关操作。
四、结束语
通过并发处理结构的宽带智能认证方法,在业务请求经过时不再是单一的顺序(例如先进先出队列)处理,也不是批量处理(例如多线程循环处理),而是采用矩阵模式,纵向维度是进程分层,横向维度是线程m e t a细化和多通道,能够实现大数据量大并发处理的同时,处理复杂业务,以原始meta处理单元为基础,通过多进程分层获取业务请求,再通过多线程分多通道处理,每个通道内运行的是meta最小处理单元,将复杂业务划小为多个meta处理单元,每个处理请求的maxtime消耗为固定时间,不会导致进程或者线程资源长期占用不能释放。
通过该方法的运用不仅仅是提高效率,还解决了复杂业务的处理,同时最大限度的利用资源,减少资源调度损耗,在相同硬件环境下,提供更高处理效能,且结构易于扩展和调整,扩容不仅仅是增加机器,可以从结构优化上调整,结构维度上可以扩展为3维、4维处理,针对不同主机环境采用不同的维度,例如X86芯片则以线程处理业务量维度为主,IBM Power芯片则以进程吞度量维度为主。
作者单位:中国电信云南分公司