`
fly_ever
  • 浏览: 153133 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

OpenBloX中添加NASREQ应用

阅读更多

添加AppEvent

添加NASREQ应用的特定命令,在OpenBloX中没有实现NASREQ应用的相关命令。如:
添加AppEventAARequest类,其继承AppRequest类。
添加AppEventAAAnswer类,其继承AppAnswer类。

添加AVP

在NASREQ应用中,有一些特定的AVP,或者用户自定义的AVP,在OpenBloX中没有实现,因此需要自己实现,可以根据添加的AVP的类型,选择继承合适的AVP父类。

添加AppSession类

服务器端添加AppSession类涉及到的类图如下所示:

图2 类图
服务器端的抽象AppSessionNASServer类,继承AppSession类,完成处理请求,发送应答的功能。如方法handleIncomingAARequest,处理AARequest请求,方法sendAnswer,发生AAAnswer应答。
NASServerAppSession继承AppSessionNASServer类,完成方法的具体实现。在实现方法时,该类会使用到类Session和接口NASServerAppListener。
类NASServerAppListenerImpl实现接口NASServerAppListener,完成处理AARequest请求的handleIncomingAARequest方法。
客户端也统一添加AppSession类,用来完成收到应答handleIncomingAAAnswer的处理。

服务器/客户端

实现服务器/客户端节点的功能:
1, 准备配置文件server.xml。
2, 根据配置文件,初始化stack和SessionFactory。
初始化stack时,会调用FactoriesLoader类,需要根据新增加的NASREQ应用,在该类中增加注册新应用的代码。
3, 根据stack,得到Network。
4, 实现接口NetworkRequestListener,并绑定到Network上。
5, 从stack获取PeerTable,并实现接口PeerTableListener,绑定到PeerTable上。
6, 启动stack。服务器端启动stack后,等待着客户端的请求信息。
7, 客户端启动stack后,组装请求信息AARequest,并发送出去。
8, 当客户端完成发送的任务后,等待得到应答信息,然后可根据情况停止客户端的stack。

服务器端功能的实现

1, 接受客户端请求信息
绑定到Network上的NetworkRequestListener,监听客户端的请求。在实现接口NetworkRequestListener的类NetworkRequestListenerNASServer中,服务器端对接收到的请求进行处理,其处理过程如下:
在getSupportedCommands方法中,添加该应用支持的命令,如AARequest。
在processInitialRequest方法中,根据不同的命令,调用AppSession中不同的处
理方法。
2, 回复客户端应答信息
在处理完AARequest请求后,程序创建一个应答信息AAAnswer,并调用AppSession中的sendAnswer方法发送出去。

客户端功能的实现

1, 发送请求信息
组装请求信息,并调用appSession的sendAARequest方法把请求信息发送出去。
2, 接收应答信息
与appSession绑定的接口NASClientAppListener完成接收应答信息的功能。
NASClientAppListenerImpl类实现接口NASClientAppListener,并完成功能
handleIncomingAAAnswer。

 

1
2
分享到:
评论

相关推荐

    diameter论文

    ### Diameter协议及其在AAA系统中的应用与改进 #### 一、引言 随着互联网商业化程度的不断提高,认证、授权和计费(Authentication, Authorization, Accounting,简称AAA)系统已成为网络应用不可或缺的一部分。...

    RFC3588 Diameter基础协议培训材料PPT

    Diameter协议的应用非常广泛,包括NASREQ、MIPv4、SIP等。每个应用程序都需要一个唯一的应用程序ID,以便于Diameter协议能够正确地路由消息。 9. Diameter协议的实现细节 Diameter协议的实现细节包括连接管理、...

    Diameter协议介绍

    - NASREQ(网络访问服务应用协议):用于网络接入认证和授权。 - Mobile-IP(移动IP应用协议):支持移动IP的认证、授权和计费。 - DiameterCreditControl(信用控制应用协议):用于流量控制和计费。 - ...

    jdiameter:从 code.google.compjdiameter 自动导出

    - 支持常见的 Diameter 应用,如 NASREQ(Network Access Server Request)和 Cx/Dx(用于 IP 接入的认证和计费)。 - 异步和同步的消息处理模式,适应不同应用场景。 - 内置的连接管理和路由策略。 - 错误处理和重...

    radius服务器详解

    在1992年,IETF的NASREQ工作组采纳RADIUS,并在后续年份发布了多个RFC,确立了其作为网络接入标准的地位。 RADIUS的基本工作流程如下: 1. 用户尝试通过NAS接入网络,NAS发送Access-Request报文,包含加密的用户名...

    一种集成化的基于Diameter的AAA服务器设计方案* (2007年)

    例如,NASREQ、Mobile IP、CMSSecurity等应用协议都是基于Diameter基本协议开发的。 - **安全性增强**:Diameter协议在安全性方面进行了大幅改进。除了提供端到端的安全连接外,它还支持加密和身份验证机制,确保...

Global site tag (gtag.js) - Google Analytics