2.2.程序说明
网关把处理负载分担在多台主机上,分为两个模块。网关系统由一个bearerbox和一到多个wapbox组成。bearerbox和wapbox可以运行在不同的机器上。
2.2.1.bearer box
Bearerbox模块连接到CSD router,提供了对Wapbox的接口,实现了WAP协议栈的WDP层。
Bearerbox记录当前运行的wapbox,从CSD router接收UDP包,把从同一个终端接收到的包路由到同一个wapbox,收到wapbox的处理结果后发到相应的用户终端。
2.2.2.wapbox
wapbox模块实现了WAP协议栈的上层部分,属于同一个事务的会话和事务由同一个wapbox处理。Wapbox实现了WTLS、WTP和WSP层。Wapbox从电话接收到类似HTTP的请求,把实际的HTTP请求发到内容服务器,压缩响应数据,发回到终端。
bearerbox和wapbox之间通过TCP建立连接。 bearerbox充当server等待wapbox进行连接。这样, bearerbox就不需要保留静态的wapbox列表。它以一个空的列表开始,等待wapbox进行注册,这种设计使得动态的加入新的wapbox变得非常方便:只须安装一个,配置好,连接到相应的bearerbox。
如果bearerbox和wapbox之间的TCP连接断开了,bearerbox会得到通知把它从自己的clients列表中去掉。当崩溃的 wapbox从bearerbox的clients列表中去掉之后,从应该路由到此wapbox的终端收到的数据包被看作从一个新的终端收到。这意味着 wapbox必须能处理在一个会话当中的包。
也可能出现这样的情况,wapbox还存活着,但已经不能处理任何消息了。为了检测这种情况,wapbox要定期向bearerbox发送心跳(heartbeat)包,如果bearerbox未能收到heartbeat消息,它认为存在问题的wapbox崩溃了,但是未能断开TCP连接。 bearerbox会断开连接,把它从clients列表种去掉。当wapbox恢复后,会重新打开连接。Heartbeat消息还包含wapbox的负载,bearerbox据此进行负载平衡。
2.3.性能测试
我在以下的环境下进行了测试,测试共使用三台PC机,分别为CWAP网关机器,Web服务器,模拟客户机,通过10M以太网相连,机器配置如下:
WAP网关:
操作系统: Linux RedHat7.0
CPU: Intel Pentium III
主频: 500MHz
内存: 128M
Web服务器:
操作系统: Windows 2000
CPU: Intel Celeron
主频: 500MHz
内存: 64M
模拟客户机:
操作系统: Linux RedHat7.0
CPU: Intel Celeron
主频: 500MHz
内存: 128M
WAP网关机器上启动网关程序(bearerbox和wapbox),模拟客户机上用测试程序fakewap(在test目录下)向网关请求Web服务器上的wml页面,统计响应时间,每秒处理请求数量等数据。
fakewap程序采用了多线程技术,可以模拟多用户量的并发情况,缺省设置下使用9201端口(WSP/WTP/WDP),使用方法为fakewap [options] url ...,其中几个主要的选项如下:
-g hostname 网关的机器名或IP地址 (default: localhost)
-p port 网关端口(default: 9201)
-m max 总共发送请求数 (default: 1)
-i interval 发送2个请求之间的间隔 (default: 1.0 seconds)
-c threads 并发用户数量 (default: 1)
测试结果为:在并发用户数为100的情况下,网关的响应时间在1秒以内,平均每秒处理的请求数量为40个左右,这对于绝大部分的企业应用来说是足够了。
3.参考网站
http://www.kannel.org
http://www.wapforum.org
| Linux操作系统12则经典应用技巧 | 07-05 | |
| RedHat Linux下防火墙配置入门必 | 06-01 | |
| Linux网络服务器配置基础详解发表 | 06-01 | |
| 一个网卡上绑定2个或2个以上的IP | 05-08 | |
| Linux操作系统下软件的安装与卸载 | 05-04 | |
| 另类捷径封杀QQ | 04-29 | |
| Linux Kernel Intel EM64T SYSRE | 04-19 | |
| Linux环境下发现并阻止系统攻击 | 03-22 | |
| 轻轻松松让Linux做WAP网关 | 03-21 | |
| 手把手教您配置Liunx目录服务器( | 03-06 | |
| Linux环境下如何使用PHP处理图像 | 03-01 | |
| 必学的Linux系统安全命令(1) | 03-01 | |