0. 什么是APN?
APN, 是Access Point Name的缩写,即“接入点名称”。它决定了终端通过什么接入方式来访问网络。
在5G中,改称为DNN(Data Network Name,数据网络名称),但是它们的作用和定义还是一样的。
在独立组网部署(SNPN)中,把OI的格式固定为"nid<NID>.mnc<MNC>.mcc<MCC>.gprs"
1. APN的构成
按照3GPP TS 23.003 $9,定义了APN由两部分构成
- APN-NI (Network Identity):必选。它定义 GGSN/PGW 连接到哪个外部网络。在后面例子中,apn里面其实写的都是APN NI。
- APN-OI (Operator Identity):可选。它定义 GGSN/PGW 位于哪个 PLMN GPRS/EPS 主干网中
一个APN-FQDN可以表示为internet.apn.epc.mnc015.mcc234.3gppnetwork.org,其中internet为APN NI,剩下部分则是派生出来的APN OI。
1.1 APN-NI
APN NI由运营商自行定义,只是限定了某些固定搭配不能使用。
终端在“附着”请求流程中,会上报终端中的APN-NI。MME结合终端IMSI,构造出APN-FQDN,送至移动网内DNS服务器进行解析,获得PGW网关的IP地址。从而决定了终端采用哪种接入方式来访问网络。
1.2 APN-OI
对于每个运营商,都有一个默认的 APN 运营商标识符(即域名)。此默认 APN 运营商标识符从 IMSI 派生而来 “mnc<MNC>.mcc<MCC>.gprs”。这个默认APN-OI用于本地路由间的情况。
在漫游情况下,如果要选择来自 VPLMN 的GGSN/PGW,则 UE 的 APN-OI由服务网络 PLMN ID 构成。
2 APN参数
在下述例子中,我们能看到还有很多参数需要配置。但是找了很久没有找到在哪个规范里面有定义,很可能其实这些参数是移动通信中的标准参数,只是我接触这部分,所以不知道。最近似的一份材料来自GSMA TS.32。
对我来讲,我最关注的其实是mvno_type这个部分。
按照安卓和微软的源代码来看,手机通过三种方式来区分MVNO:
- spn
- imsi
- gid
其中spn和imsi都是我们很熟悉的。GID的用途,其实跟TS 31.102中规定的不大一致。
下面例子均取自于android.googlesource.com
<apn carrier="MVNO NL"
carrier_id = "2149"
mcc="204"
mnc="03"
apn="internet.mvno.mobi"
user="mvno"
password="mvno"
authtype="1"
type="default,ia,supl"
mvno_match_data="20403"
mvno_type="imsi"
/>
<apn carrier="Truphone"
carrier_id = "2143"
mcc="204"
mnc="04"
apn="truphone.com"
mmsc="http://mmsc.truphone.com:1981/mm1"
type="default,ia,supl,mms,dun"
mvno_type="gid"
mvno_match_data="547275554B3030656E"
/>
<apn carrier="CSpire international"
carrier_id = "1836"
mcc="204"
mnc="04"
apn="internet.cs4glte.com"
server="*"
user="Uniroam@inet.cs.com"
password="cs3g"
authtype ="3"
mmsc="http://pix.cspire.com"
mvno_type="spn"
mvno_match_data="C Spire"
type="default,ia,mms"
protocol="IPV4V6"
/>
没有评论:
发表评论