好的,我们继续接续上一篇文章,对 3GPP TS 31.102 规范进行深度拆解。
深度解析 3GPP TS 31.102:4.2.55 EFARR (接入规则参考)
本文技术原理深度参考了3GPP TS 31.102 V18.8.0 (2025-03) Release 18规范中,关于“4.2.55 EFARR (Access Rule Reference)”的核心章节,旨在为读者深入剖析在ANDSF(Access Network Discovery and Selection Function)这一复杂的异构网络选择框架下,USIM卡是如何通过
EFARR这个看似简单的“指针”文件,为手机提供寻找和应用正确网络策略的“导航”信息。
在我们之前的探索中,已经了解了手机如何在蜂窝网络(3G, 4G, 5G)之间进行选择,这主要由EFPLMNwAcT、EFOPLMNwAcT等一系列文件来指导。然而,现代移动通信的环境远比这复杂。我们的主角“李想”的手机,不仅能连接蜂窝网络,还能连接Wi-Fi、WIMAX等非3GPP网络。
如何在这片由多种无线技术交织而成的“异构网络丛林”中,为手机制定一套统一的、智能的、动态的网络发现和选择策略?例如,当手机同时检测到一个可用的4G信号和一个可信的Wi-Fi信号时,应该优先使用哪个?什么情况下应该将正在进行的VoLTE通话切换到VoWiFi(Voice over Wi-Fi)?
为了解决这些复杂的问题,3GPP定义了一套名为ANDSF (Access Network Discovery and Selection Function) 的架构。ANDSF是网络侧的一个功能实体,它就像一个“网络策略服务器”,可以向手机下发详细的策略规则,指导手机在不同的位置、不同的时间,如何发现、选择和切换不同的接入网络。
这些策略规则可能非常复杂,包含大量的地理位置信息、网络性能门槛、应用类型偏好等。将这些庞大的策略直接存储在空间有限的USIM卡中是不现实的。那么,USIM在ANDSF这盘大棋中,扮演了什么角色呢?
答案就是EFARR文件。
EFARR,全称 Access Rule Reference,即“接入规则参考”。它不存储规则本身,而是存储了指向这些规则的“指针”或“引用”。它就像是一张便签,上面写着:“详细的行动计划,请查阅张三的笔记本”或者“紧急预案,请访问网址www.emergency-plan.com”。
1. “策略的索引”:EFARR的核心价值
EFARR的核心价值在于,它在USIM这个可信根上,为手机提供了一个权威的、不可篡改的“初始引导信息”,告诉手机应该去哪里获取、以及如何验证那些由ANDSF服务器下发的复杂网络策略。
If service n° 43 is “available”, this file shall be present.
This EF contains one or more Access Rule Reference(s). Each reference is a Fully Qualified Domain Name (FQDN) to identify a policy rule.
这段原文揭示了EFARR的关键特性:
-
服务关联: 它的存在与
EF_UST中的服务n°43相关联。 -
内容核心: 存储一个或多个接入规则参考 (Access Rule Reference)。
-
引用格式: 每个“参考”的格式是一个完全限定域名 (Fully Qualified Domain Name, FQDN)。这个FQDN,就如同我们前面比喻的“网址”,唯一地标识了一条策略规则或一组策略。
ANDSF与EFARR的工作流程:
-
配置: 运营商在其ANDSF服务器上,为不同的用户群组或地理区域,定义了详细的网络选择策略。每一套策略都被赋予了一个唯一的FQDN作为其“名字”,例如
high-priority.policy.mnc001.mcc460.3gppnetwork.org。 -
USIM预置: 在为用户(如李想)发行USIM卡时,运营商会将与该用户签约等级相对应的策略FQDN,预置到他USIM卡的
EFARR文件中。 -
策略获取与应用:
-
李想的手机开机后,在初始化过程中读取
EFARR文件,得到了FQDNhigh-priority.policy.mnc001...。 -
手机知道,它需要去网络中寻找ANDSF服务器,并请求下载与这个FQDN相对应的策略规则。
-
手机通过DNS查询等方式,找到ANDSF服务器的地址并发起请求。
-
ANDSF服务器验证手机的身份后,将
high-priority.policy...这套规则(可能是一个XML文件)下发给手机。 -
手机接收并存储这套复杂的规则。从此以后,在进行网络选择和切换时,手机的决策逻辑将严格遵循这套规则的指导。例如,规则可能规定:“当检测到公司Wi-Fi(SSID: Corp-WiFi)且信号强度高于-60dBm时,应将所有数据流量切换至该Wi-Fi”。
-
在这个流程中,EFARR扮演了至关重要的**“引导者”和“验证者”**的角色。手机信任EFARR中提供的FQDN,并以此为凭证去获取策略,确保了手机执行的是由其归属运营商权威下发的、正确的策略,而不是来自某个恶意服务器的伪造策略。
2. 简洁的“网址列表”:EFARR文件结构与编码剖析
EFARR的设计专注于其“索引”功能,结构非常直观。
2.1 文件结构
表 4.2.55-1: EFARR 文件结构
| 属性 | 值 |
| :--- | :--- |
| Identifier | ‘6F63’ |
| Structure | Transparent |
| File size | X bytes (X>0) |
| Access Conditions| READ: PIN, UPDATE: ADM |
字节内容
| 字节 | 描述 | M/O | 长度 |
| :--- | :--- | :--- | :--- |
| 1 to X | Access Rule Reference(s) (接入规则参考) | M | X bytes |
逐项解读:
-
Structure: 透明文件。所有FQDN被连续地存储在一起。
-
Access Conditions: 读取需要PIN权限,而更新则由ADM控制。这意味着,用户应该遵循哪一套网络策略,是由运营商在后台权威决定的,用户不可更改。
-
文件内容: 整个文件就是由一个或多个TLV(Tag-Length-Value)编码的FQDN对象组成的。
2.2 编码的核心:FQDN TLV 对象
Contents: one or more FQDN-TLV objects.
For the contents and coding of the FQDN-TLV object see TS 23.003. The tag value of the FQDN-TLV shall be ‘DE’.
EFARR中的每一个FQDN,都以一个TLV (Tag-Length-Value) 的格式进行编码:
-
Tag (标签): 1字节,固定为
'DE',表示这是一个FQDN对象。 -
Length (长度): 1字节或更多,表示后面Value字段的字节长度。
-
Value (值): FQDN字符串本身。
FQDN字符串的编码格式,与我们在EFACL中学到的APN/DNN编码格式完全相同,都遵循 TS 23.003 的规定,即每个域名部分前,都有一个字节来指示该部分的长度。
场景化举例(编码):
运营商需要将策略rule1.and.net预置到EFARR中。
-
FQDN字符串编码:
rule1.and.net会被编码为:05 72 75 6C 65 31 03 61 6E 64 03 6E 65 74(05+
rule1+ 03+and+ 03+net)总长度为
1+5+1+3+1+3 = 14字节 (十六进制'0E')。 -
构建TLV对象:
-
Tag:
'DE' -
Length:
'0E' -
Value:
05 72 ... 6E 65 74
-
-
写入
EFARR: 最终,EFARR文件中写入的内容就是这个16字节的TLV对象:DE 0E 05 72 75 6C 65 31 03 61 6E 64 03 6E 65 74
如果有多条规则,就将多个这样的TLV对象连续存储在文件中。
3. ANDSF, URSP 与 EFARR的演进关系
ANDSF是3GPP在早期为了解决异构网络协同问题而提出的一个重要框架,在4G时代扮演了重要角色。而EFARR是这个框架在USIM侧的核心落脚点。
进入5G时代,ANDSF的思想被继承和发展,演变成了功能更强大、与5G核心网结合更紧密的URSP (UE Route Selection Policy) 机制。URSP规则同样可以指导UE在3GPP接入(如5G NR)和非3GPP接入(如Wi-Fi)之间进行流量分流和选择。
URSP规则可以直接由PCF(策略控制功能)网元通过NAS信令下发给手机,也可以被预置在USIM卡中,其存储文件正是我们之前提到过的EFURSP。
可以这样理解它们的演进关系:
-
EFARR(ANDSF时代): 存储的是“策略的地址”,策略本身在网络侧。手机需要主动去“取”策略。 -
EFURSP(5G时代): 可以直接存储“策略本身”。策略可以由网络“推”给手机,也可以直接预置在卡里。
虽然URSP在5G时代成为了主流,但ANDSF架构和EFARR作为保障向后兼容性和支持某些特定部署场景的机制,依然在规范中保留了其一席之地。
总结:异构网络策略的“可信锚点”
EFARR文件虽然自身不包含任何复杂的逻辑,但它在ANDSF这个宏大的异构网络协同框架中,扮演了一个不可或缺的“可信锚点”角色。
-
提供了策略的引导: 为手机在复杂的网络环境中,提供了一个清晰的、指向正确策略服务器的初始“路标”。
-
保障了策略的权威性: 通过将策略引用(FQDN)存储在由运营商严格控制(ADM权限)的USIM文件中,确保了手机只会获取和执行来自其归属运营商的、合法的网络策略,防止了策略被劫持或伪造的风险。
-
解耦了数据与存储: 将庞大、动态变化的策略规则本身,与空间有限、更新不便的USIM卡进行解耦,
EFARR只存储轻量级的“引用”,而将“实体”留在了更灵活的网络服务器上,这是一种非常优秀的设计思想。
对于李想而言,当他的手机在公司楼下自动从4G网络无缝切换到公司的Wi-Fi网络,并继续保持通话不中断时,这个看似“智能”的行为,其背后的决策依据,可能就源于一套复杂的ANDSF策略。而手机之所以能够找到并信任这套策略,其最初的起点,正是EFARR文件中那个看似平平无奇的域名字符串。
FAQ环节
Q1:EFARR和EFACL都用到了TLV编码,它们有什么关系?
A1:它们都使用了3GPP TS 23.003中定义的TLV编码格式,但用于不同的目的和对象。
-
EFACL: 使用Tag'DD',用于编码APN/DNN,其目的是访问控制(判断一个APN是否在白名单上)。 -
EFARR: 使用Tag'DE',用于编码FQDN,其目的是策略引用(告诉手机去哪里找一个名为此FQDN的策略)。
它们是两个功能独立的文件,只是在底层的数据编码上复用了同一个基础规范,这体现了3GPP设计的标准化和一致性。
Q2:如果EFARR中的FQDN无法在DNS中解析,或者对应的ANDSF服务器不可达,会发生什么?
A2:在这种情况下,手机将无法获取到运营商下发的ANDSF策略。手机会回退到使用其本地的、默认的(或预配置的)网络选择策略。这通常意味着它将主要依赖基于3GPP网络的传统选择机制(如EFPLMNwAcT等),而失去了在异构网络间进行智能切换的能力。手机的功能不会瘫痪,但其网络行为会变得“不那么智能”。
Q3:运营商可以远程更新EFARR吗?
A3:可以。EFARR的UPDATE权限是ADM,运营商完全有能力通过安全的OTA通道,来远程修改EFARR中的FQDN列表。例如,如果运营商升级了其ANDSF服务器架构,导致策略的FQDN发生了变化,它就可以通过OTA向所有用户推送更新,确保手机能够找到新的策略地址。
Q4:为什么需要一个这么复杂的ANDSF机制?让手机自己根据信号强度选Wi-Fi或4G不就行了吗?
A4:简单的基于信号强度的切换,远远无法满足现代移动业务的需求。ANDSF(以及后来的URSP)需要解决的问题要复杂得多:
-
QoS保障: 一个Wi-Fi信号很强,但可能非常拥堵,不适合进行VoWiFi通话。策略可以定义:只有当Wi-Fi的延迟、抖动、带宽都满足特定门槛时,才允许切换。
-
成本与计费: 运营商可能希望用户在有免费可信Wi-Fi时,优先使用Wi-Fi来卸载蜂窝网络流量,以降低网络成本。
-
应用级策略: 策略可以精细到应用级别,如“对于视频流应用,优先使用Wi-Fi;对于即时消息,保持在蜂窝网络以确保永远在线”。
-
无缝切换: 策略可以定义切换的触发条件和执行方式,以保证在Wi-Fi和蜂窝网络之间切换时,用户的业务(如通话、下载)不中断。
这些复杂的决策,都需要一个强大的策略引擎来支持,而这正是ANDSF/URSP的价值所在。
Q5:EFARR这个文件在我的个人手机SIM卡里常见吗?
A5:不那么常见。ANDSF更多地被运营商用于企业客户或特定的融合业务场景,以实现精细化的流量策略和固移融合(FMC)。对于普通的公众移动用户,运营商通常依赖更简单的网络侧策略或手机的默认行为来进行Wi-Fi和蜂窝网络的切换,不一定会专门为其配置EFARR和ANDSF策略。但随着VoWiFi和异构网络融合的普及,这种基于策略的精细化控制正变得越来越重要。