免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1651 | 回复: 4
打印 上一主题 下一主题

[网络管理] Linux做WAP网关 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-08-12 16:21 |只看该作者 |倒序浏览
安装和配置

  可从kannel网站下载源代码,最新的稳定版本是1.0.3,开发版本是1.1.3,以1.0.3版本为例,将gateway-1.0.3.tar.gz下载到Linux机器上,kannel网关需要安装xml库,可以到xmlsoft网站下载libxml2-2.2.8.tar.gz,假设目录为/home/wap,先安装libxml库

  cd /home/wap
  tar zxvf libxml2-2.2.8.tar.gz
  cd libxml2-2.2.8
  ./configure
  make
  make install (这一步需要root权限)

  然后安装网关
  cd /home/wap
  tar zxvf gateway-1.0.3.tar.gz
  cd gateway-1.0.3
  ./configure
  make

  doc/arch目录下的技术文档是fig格式,需要fig2dev程序,如果没有此程序,编译会报错,不过没有关系,我们需要的二进制可执行程序已经生成。如果嫌每次编译都报错麻烦,可以修改Makefile,将此部分去掉。或者去下载fig2dev(我没有去找它在哪儿)。

  现在到gw目录下看一看,我们要的程序bearerbox和wapbox程序已生成,启动bearerbox(./bearerbox &),啊,程序报错,无法读配置文件kannel.conf,怎么回事,gw目录下没有这个文件啊,没关系,把wapkannel.conf文件拷贝为kannel.conf就可以了(cp wapkannel.conf kannel.conf)。

  配置文件kannel.conf的格式如下,具体的含义看看Kannel自带的文档就明白了。

  group = core
  admin-port = 13000
  wapbox-port = 13002
  admin-password = bar
  wdp-interface-name = "*"
  #log-file = "/tmp/kannel.log"
  #log-level = 0
  box-deny-ip = "*.*.*.*"
  box-allow-ip = "127.0.0.1"
  #admin-deny-ip = ""
  #admin-allow-ip = ""
  #access-log = "access.log"

  group = wapbox
  bearerbox-host = localhost
  #log-file = "/tmp/wapbox.log"
  #log-level = 0
  syslog-level = none

  启动网关后(./bearerbox & ; ./wapbox &),就可以通过它访问wml页面了,赶快去下载模拟器吧,可以用Nokia Toolkit,Erission WapIDE,UP.SDK,Motorola等模拟器进行测试。如果你有WAP手机,装网关的Linux机器连到了Interner上,就可以拨172了,把手机里的网关设置为你的机器的IP地址,就可以手机上网了。在手机上需要设置的主要是

  网关地址:xxx.xxx.xxx.xxx (你网关机器的IP地址)
  端口号: 9201(一般设置) 9200(无连接方式)
  连接类型:普通电话
  波特率: 9600
  用户名: wap
  口令: wap
  电话号码:172
  主页: http://www.xxx.com (你想去的URL)

  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 9.0
  CPU: 随便
  主频: 500MHz
  内存: 128M

  Web服务器:
  操作系统: Windows 2000
  CPU: 随便
  主频: 500MHz
  内存: 64M

  模拟客户机:
  操作系统: Linux RedHat7.0 9.0
  CPU: 随便
      主频: 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个左右,这对于绝大部分的企业应用来说是足够了。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-08-12 16:32 |只看该作者

Linux做WAP网关

不错!

论坛徽章:
0
3 [报告]
发表于 2003-08-12 19:19 |只看该作者

Linux做WAP网关

我前几天也下个
看了看代码觉得还可以

只是没有运行

论坛徽章:
0
4 [报告]
发表于 2003-08-12 19:37 |只看该作者

Linux做WAP网关

不错
试用一下

论坛徽章:
0
5 [报告]
发表于 2003-08-12 22:10 |只看该作者

Linux做WAP网关

试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP