接入点内部协议及其在接入点上的实现( 四 )


假如没有在RADIUS服务器进行注册 , AP将不能使用RADIUS服务器的地址解析功能将AP的BSSID解析为DSM的IP地址 。
5 IAPP协议在AP上的实现分析
为了在AP上实现IAPP协议的功能 , 需要在AP中设置专门的IAPP模块来执行IAPP操作和RADIUS服务 。IAPP模块在AP中完成的主要功能是:
(1) 初始化功能
主要是完成IAPP协议和RADIUS客户端的初始化 , 同时打开用于IAPP操作的TCP/UDP端口;
(2) 声明功能
a) 当有STA向本AP发起连接请求时 , IAPP模块将向DS广播IAPP ADD-notify报文 , 使得至少在本地子网内的其它AP都不会再有与该STA的连接关系 。
b) 当有STA向本AP发起连接或重连接请求时向有线网络广播XID帧 , 更新本地子网中二层设备的转发表 , 使得它们可以正确转发目的地址为STA的数据包 。
(3) 移交功能
当有STA向AP发起重连接请求时 , IAPP模块向旧AP发送IAPP MOVE-notify报文 , 通知旧AP以前与其连接的STA切换到了新AP 。旧AP的IAPP模块将用IAPP MOVE-response报文将该STA的有关信息返回给新AP , 同时清除与该STA的连接关系 。新AP根据收到的报文获得用户信息重建STA的工作环境 。
(4) 支持ESS治理和AP的IP地址查询功能 。
当ESS中配有RADIUS服务器时 , IAPP还需要实现RADIUS客户端功能才保证IAPP的正确操作 , 为此 , IAPP模块还需要实现:
a) IAPP初始化时 , 用RADIUS Registration Access-Request报文向RADIUS服务器注册 。
b) 当有STA切换到本AP时 , 向RADIUS服务器发送RADIUS Access-Request报文 , 查询STA原属AP的IP地址 。
c) 当AP要脱离ESS时 , 向RADIUS服务器发送注销报文 , 同时关闭IAPP端口 。
为了实现上述IAPP功能 , IAPP模块要分成三个子模块:IAPP主模块、RADIUS通信模块和接口模块 。IAPP主模块负责侦听和处理IAPP端口通信 , 指定给IAPP的端口号是3517 。RADIUS通信模块支持与RADIUS服务器的交互和AP的IP地址查询 , 侦听和处理RADIUS端口通信 。接口模块向MAC层协议模块的连接和重连接操作提供调用接口 。除此之外 , MAC层模块、桥接模块和802.1x控制模块还将向IAPP模块提供功能接口 , 支持IAPP读取、配置和治理该模块内的用户信息 。
 
图5 IAPP功能模块图
IAPP主模块的执行流程如下图所示:
图6 IAPP主模块的执行流程
6 存在的问题
IAPP协议能较好地支持STA在子网内AP间的散步 , 但是发生AP切换时 , STA的QoS并不能得到可靠地保证 。另外 , 当STA跨子网漫游时 , IAPP还必须结合移动IP和DHCP等技术来提供网络层通信的漫游支持 。这些问题都有待于将来作深入的研究 。

推荐阅读