谈数据业务的漫游时解析 APN

 最近接连收到关于为什么网络拒绝 PDP 上下文的询问,刚开始的时候由于正好在处理 QoS Rel-99 和 Rel-5 的兼容性问题,所以也没有多想,事后回头一看,其实根本就是 APN 的问题。常见的情况是 IOT 的伙计们带着手机到处跑的时候,手机漫游到 VPLMN 中,当然偶尔也有不怎么聪明的测试拿插着商用 USIM 的手机在实验室里做实验。不过问题根源都是 APN 设置的不正确。如果不是 PDP 上下文激活拒绝所带的理由让人迷惑,这个小问题大家也就忘记了。网络使用了 0x21 也就是 Service option not subscribed,可是 IOT 的伙计们说如果 APN 设置出错,那么为什么不用 0x18 也就是 APN invalid or missing 呢?由于不是很清楚网路端的实现,所以查询了些资料而有以下结论,如有错误希望帮我纠正。

Access Point Name (APN) 的中文翻译应该是接入点,说的彻底一点,它的作用是找相应的 GGSN 来支撑数据业务。运营商应该还能应用不同的收费标准于不同的 APN,以便提供不同质量或者种类的服务。目前手机浏览网页,收发电子邮件之类的服务都需要正确设置 APN。 APN 位于 PDP 上下文激活请求消息中,格式简单,举例说如果 APN 应该是 apn.ccmc.cn 那么编码是 3apn4cmmc2cn,其中字母使用代表 ASCII 码代替。APN 存在于 PDP 上下文激活请求消息中的原因是 APN 解析,即 SGSN 寻找 GGSN 的过程。当手机注册在 HPLMN 的时候,H-DNS (指 HPLMN 的DNS,以区分 VPLMN 的 DNS,V-DNS) 会帮助 SGSN 解析 APN,找到能提供数据业务服务的 GGSN 的 IP 地址,从而通过 Gi 口和公网链接。当手机注册在 VPLMN 的时候 V-DNS 很有可能无法解析 APN,比如说沃达丰英国的网络的 V-DNS 有可能无法解析中国移动接入点,这时候 VDNS 就会向 "root DNS" 发送请求,而 "root DNS" 传递 APN 解析请求到 H-DNS,这时 H-DNS 会根据请求来源确定是不是应该响应解析请求。

再看第一段提到的关于 0x21 还是 0x18 的问题就很容易解释为什么网络使用 0x21 拒绝 PDP 上下文激活请求了,即运营商之间没有漫游协议。APN 本身完全正确,如果拿到 HPLMN,手机就能正常使用数据业务了。

尽管这个问题解决了,更大的疑惑却产生了。对于语音业务漫游,如果手机能够 IMSI attach 那么短消息,增值服务和打电话就能正常进行,这个很直观很容易理解。如果插着中国移动的手机漫游到沃达丰英国的网络,那么只要 IMSI attach 成功那么语音业务就能正常,简单说当用户看到运营商的名字显示在手机屏幕的时候,就默认语音业务能够正常。那么对于数据业务漫游呢?根据前面提到的情况,很显然,当手机即便 PS attach 成功了,数据业务不一定能够正常进行,如果在 PS only 的网络里,PS attached 也就只表示能够发送短消息,连 VoIP 也不一定能正常进行,因为 PDP 上下文激活请求会被拒绝。用户干瞪着一切正常但是就是不能打或者接电话。或者用户坐着火车,正浏览网页呢,不小心漫游到了 VPLMN,看似一切正常,可是怎么也浏览不了网页了。

改天和标准组的大牛聊聊,看看他们有什么见地。也许在 RAU Accept 和 Attach Accept 消息里面如果添加一些信息表示数据业务的 "Limited service" 信息?等讨论了以后回来更新。

你可能感兴趣的:(网络,service,Access,手机,中国移动,电话)