1 引言
打开手机设置中的“运营商网络设置”选项,我们都能看到“接入点名称(APN)”选项,点开后一般还会有“通用(如3gnet)”和“彩信(如3gwap)”2部分子选项。很多时候,我们换了新手机,并不需要专门设置APN,插入原来的USIM卡就能继续上网,这是为什么呢?难道是手机中的APN设置不需要设置?还是另有原因呢?这节课我们就来谈谈手机中的APN设置。
2 移动通信网络中APN的概念和工作原理
【APN的概念】
APN是“Access Point Name”英文首字母的缩写,意为“接入点名称”,指的是一种网络接入技术,是通过手机或移动终端上网时必须配置的一个参数,它决定了手机通过哪种接入方式来访问网络。需要说明的是,在5G网络中,也有类似的概念,只不过它不再叫做APN,而是改叫DNN(Data Network Name,数据网络名称),在通信网络中所起的作用还是一样的。
【APN的构成和工作原理】
我们在手机设置中看到的APN通常都是3gnet、wonet等“简短”的字符串,其实这只是APN的一部分,具体来说只是APN的网络标识(APN Network Identity)部分,一个“完整的”APN还包括运营商标识(APN Operator Identity)部分,也就是说完整的APN包括2部分:APN NI和APN OI,其中NI部分由运营商“自己定义”,OI部分为固定扩展(根据电信运营商手机卡IMSI当中的MNC和MCC映射扩展),如图所示。
完整的APN也称为APN的FQDN格式(Fully Qualified Domain Name,全限定域名)这种APN格式同时带有主机名和域名,之所以采用FQDN格式,简言之就是为了后续的DNS解析。
接着说APN在EPS网络中的工作机制
如图所示,手机在“附着”请求流程中,上报手机上设置的APN(APN的NI部分),MME收到手机上报的APN后,根据手机IMSI构造成FQDN格式,然后送至DNS查询(注意这个DNS不是互联网上的DNS,而是移动网内专用的DNS,只负责EPS网元之间的主机名或域名解析),DNS当中存储有APN的FQDN格式域名和P-GW网关IP地址之间的对应关系,这样通过查询DNS,MME便可以获得P-GW网关的IP地址,其后便可以决定手机通过哪种接入方式来访问网络(选择不同的P-GW便决定了手机采用哪种接入方式来访问网络)。
明白了手机上的APN是选择不同P-GW网关这个概念后,就不难理解为什么手机上会有NET类(如cmnet、uninet、3gnet、wonet等)和WAP类(cmwap、uniwap、3gwap等)2类APN了,说到底还是为了选择不同的P-GW网关,NET类APN选择P-GW后接入Internet可以访问互联网,WAP类APN选择P-GW后接入WAP网关可以实现彩信的收发(当然使用WAP类APN也可以访问互联网业务,这是因为WAP网关作为“代理”也和Internet相连)。
NET类和WAP类两类APN也称为通用APN,除此之外,常用的还有一类APN,我们称之为专用APN或者物联网APN,它们的格式如下:
其实也是通过“定义”APN的NI部分(将APN的NI部分扩展),在MME解析APN时将业务指向专用的P-GW或在普通P-GW上通过“隧道绑定”的方式关联至特定服务器,从而实现移动分组业务的“定向访问”。
【APN纠错】
现在再来说说我们换了新手机,为什么不用在新手机上重新设置APN呢?这其中有两方面的原因,一方面是现在的智能手机在出厂时大都预装了电信运营商的APN库表,当USIM卡放入手机终端后,手机会根据USIM卡中的IMSI信息自动匹配并调用相关的APN,从而免去手动设置的工作;另一方面的原因就和通信网络上的一个功能有关,也就是MME的APN“纠错功能”。
为了方便手机用户使用上网业务,电信运营商一般都在MME网元侧开启了APN纠错功能:当手机上报的APN不是该电信运营商“定义的”APN时,MME会根据手机卡在HSS当中的签约数据进行纠错处理。
比如手机卡签约了cmnet、uninet、3gnet、wonet、cmwap、uniwap、3gwap等7个通用APN,当手机上报的APN(手机设置的APN)不是以上签约APN当中的任何1个时,MME会“纠正”为签约APN当中的一个,以最大限度地保障用户能在错误设置APN的情况下不影响上网业务。
需要说明的,MME的APN纠错,并不是从HSS用户签约APN当中任意选择一个APN来使用的,而是会选择HSS签约当中“上下文标识”最小的那个APN来使用。比如对于下面这个手机用户的APN签约数据,当手机上报的APN非HSS签约APN时,MME会选择“UNINET”作为纠错后的APN来使用,因为UNINET对应的上下文标识最小。
也正是因为MME的APN纠错功能和HSS当中签约APN的上下文标识大小顺序有关,当手机用户既签约了通用APN也签约了专用APN时,手机用户访问网络时就要根据访问目标网络的不同在手机上进行APN的准确设置了,否则当手机上的APN设置错误时,MME“纠错”后可能会纠为不期望使用的APN,比如用户期望访问专网,因为手机设置专网APN不准确,导致MME按照上下文标识最小的APN来纠错,就纠为了通用APN,从而导致访问目标网络失败。
最后,还有一个用户比较关心的问题,就是使用哪个APN上网快的问题?其实单从APN的名字当中是无法做出判断的。
举个例子来说吧,手机用户使用“wonet”不见得就比使用“3gnet”上网更快,因为它们之间的关系很可能是“别名”关系,也就是说DNS解析回来的P-GW IP地址可能是同1套P-GW的地址,上网速率没有任何区别,真正决定APN上网快慢的因素取决于HSS当中的APN签约数据,比如UE-AMBR、APN-AMBR等参数。
3 总结和建议
APN(Access Point Name,接入点名称),指的是一种网络接入技术,是通过手机或移动终端上网时必须配置的一个参数,它决定了手机通过哪种接入方式来访问网络。
完整的APN包括2部分:网络标识(APN Network Identity)部分和运营商标识(APN OperatorIdentity)部分,格式为****. apn.epc.<MNC>.mcc<MCC>.3gppnetwork.org,APN这种格式称为FQDN格式,其中网络标识部分由运营商“自己定义”,运营商标识部分为固定扩展(根据电信运营商手机卡IMSI当中的MNC和MCC映射扩展)。
移动通信网络上的MME网元一般都开启了APN纠错功能,因此手机用户更换新手机后通常不需要重新设置APN,但是由于MME的纠错功能和HSS当中签约APN的上下文标识大小顺序有关,因此当手机用户同时签约通用APN和专用APN时,用户就需要根据访问目标网络的不同在手机终端上准确设置运营商给定义的APN了。