好的,我们继续接续上一篇文章,对 3GPP TS 31.102 规范进行深度拆解。


深度解析 3GPP TS 31.102:4.2.15 EFACC (接入控制类)

本文技术原理深度参考了3GPP TS 31.102 V18.8.0 (2025-03) Release 18规范中,关于“4.2.15 EFACC (Access Control Class)”的核心章节,旨在为读者深入剖析在网络面临拥塞的特殊时刻,USIM卡中这个看似不起眼的EFACC文件,是如何扮演“交通协管员”的角色,指导手机进行有序接入,确保网络稳定运行的。

想象一下,一场大型演唱会或体育赛事刚刚结束,数万名观众同时拿出手机,试图分享照片、拨打电话。瞬间,周围的基站承受了前所未有的接入请求洪流。如果没有有效的管理机制,基站的信令信道很快就会被冲垮,导致所有人都无法接入网络,陷入“信令风暴”的瘫痪状态。

为了应对这种可预见的“潮汐式”网络拥塞,3GPP设计了一套精巧的“准入控制”机制,名为接入控制 (Access Control)。其核心思想是,在网络拥塞时,暂时禁止一部分普通用户发起接入请求,从而为高优先级用户(如紧急呼叫、关键任务通信)和网络的稳定运行腾出宝贵的信令资源。

而判断一个用户是否属于“暂时被禁止”的那部分,其关键凭证之一,就存储在USIM卡的EFACC文件里。这个文件为每个用户分配了一个或多个“接入控制等级(Access Control Class, ACC)”,就像是为每辆车分配了不同的尾号。当网络实施“限行”时,只有拥有特定“尾号”的车辆才能上路。

今天,我们将一同探索EFACC这个在高负载场景下才显露峥嵘的关键文件,理解它是如何帮助网络实现有序接入、避免拥塞崩溃的。


1. “交通协管员”:EFACC的核心价值

EFACC的核心使命是在海量用户中进行分组,为网络的接入控制策略提供执行依据。

This EF contains the assigned access control class(es). The access control class is a parameter to control the access attempts. 15 classes are split into 10 classes randomly allocated to normal subscribers and 5 classes allocated to specific high priority users. For more information see TS 22.011.

这段原文概括了EFACC的全部精髓:

  1. 功能定位: 它的作用是控制接入尝试 (to control the access attempts)
  2. 分组机制: 它将用户划分为15个接入等级
  3. 分级策略: 这15个等级并非完全平等,而是被划分为两大类:
    • 普通用户等级 (0-9): 共10个等级,随机分配给绝大多数普通用户,如我们的主角“李想”。
    • 高优先级用户等级 (11-15): 共5个等级,专门分配给具有特殊权限的用户,如政府官员、公共安全人员、网络运维人员等。注意,等级10是一个特殊的存在,专门用于紧急呼叫。

接入控制的工作流程:

  1. USIM侧: 李想的USIM卡在个人化时,运营商会从0-9中随机选择一个或多个数字,写入EFACC文件。假设李想被分配了ACC 3和ACC 8。

  2. 网络侧 (广播信令): 当演唱会散场,基站侦测到接入负荷急剧升高时,它会在其广播的系统信息(System Information Block, SIB)中,加入“接入控制”信息。这信息可能包含:

    • 一个10比特的位图,每一位对应ACC 0-9中的一个等级。如果某位为0,表示该等级的用户被禁止发起普通接入;为1则表示允许
    • 一个标志位,指示ACC 11-15的高优先级用户是否也受到限制(通常情况下不受限制)。
    • 一个标志位,指示紧急呼叫是否受限(永远不受限)。
  3. 手机侧 (决策): 李想拿出手机准备发朋友圈。

    • 手机在发起接入请求前,必须先读取基站的SIB信息。
    • 手机发现网络当前正在实施接入控制,并广播了一个禁止位图。
    • 手机读取自己USIM中的EFACC文件,得知自己拥有ACC 3和ACC 8。
    • 手机将自己的ACC等级与网络广播的位图进行比对。假设网络广播的位图中,第3位为1,而第8位为0。
    • 因为李想拥有ACC 3(被允许),所以手机可以立即发起接入请求。
    • 如果李想只拥有ACC 8(被禁止),那么手机就会放弃这次接入尝试,并启动一个随机定时器,等待一段时间后(如几十秒)再重新尝试,从而错开了接入洪峰。

通过这套机制,网络在拥塞时,可以通过动态地改变广播位图,精确地控制允许接入的用户比例(例如,只允许20%或50%的普通用户接入),从而将接入请求速率降低到一个可控的水平,保证了网络的存活。


2. 紧凑的位图:EFACC文件结构与编码剖析

EFACC的设计同样体现了极致的简洁和高效。15个等级的开关信息,被压缩在了仅仅2个字节之内。

2.1 文件结构

表 4.2.15-1: EFACC 文件结构

属性
Identifier’6F78’
SFI’06’
StructureTransparent
File size2 bytes
Update activityLow
Access ConditionsREAD: PIN, UPDATE/DEACTIVATE/ACTIVATE: ADM

逐项解读:

  • File size: 固定2字节 (16位),正好对应16个可能的接入等级(0-15)。
  • Access Conditions: 读取需要PIN权限,更新由ADM控制。这意味着用户的接入等级是由运营商在发卡时分配的,用户不能自行“提权”。

2.2 编码艺术:一位一世界

Coding: - each ACC is coded on one bit. An ACC is “allocated” if the corresponding bit is set to 1 and “not allocated” if this bit is set to 0. Bit b3 of byte 1 is set to 0.

EFACC的编码方式是直接的位图 (bitmap)

  • 字节1:

    • b1 对应 ACC 08
    • b2 对应 ACC 09
    • b3 固定为 0 (因为ACC 10是保留给紧急呼叫的,不能被普通分配)
    • b4 对应 ACC 11
    • b8 对应 ACC 15
  • 字节2:

    • b1 对应 ACC 00
    • b2 对应 ACC 01
    • b8 对应 ACC 07

注意字节1和字节2的比特位与ACC编号的对应关系,并非完全按顺序排列,这是规范的历史定义。

场景化举例(续):

李想被分配了ACC 3和ACC 8。

  1. ACC 3: 对应字节2的b4位。
  2. ACC 8: 对应字节1的b1位。

那么,他USIM中EFACC文件的2个字节的二进制内容将是:

  • 字节1: 0000 0001 (只有b1位为1) 十六进制 '01'
  • 字节2: 0000 1000 (只有b4位为1) 十六进制 '08'

最终,EFACC文件中的内容就是 '01 08' (十六进制)。

手机在读取到这两个字节后,就知道自己拥有“等级3”和“等级8”这两张“通行证”。当网络进行交通管制时,只要广播的允许列表中包含了3或8,李想的手机就能优先“上路”。

3. 5G时代的演进:UAC机制

随着5G时代的到来,接入控制机制也演进得更为复杂和精细,被称为UAC (Unified Access Control)。UAC不再仅仅基于ACC,还引入了更多的维度,如“接入身份 (Access Identities)”。

在5G的UAC框架下,EFACC中定义的ACC 11-15依然扮演着高优先级标识的角色,但普通的接入控制更多地依赖于一些新的机制。其中,与USIM相关的是在后续章节定义的EFUAC_AIC (UAC Access Identities Configuration) 文件。

可以理解为,EFACC是接入控制的经典基石,其原理至今仍然有效,而UAC是5G时代在其基础上构建的、功能更强大的“智能交通管理系统”。

总结:拥塞中的“秩序之手”

EFACC文件虽然在网络畅通时毫无存在感,但在网络最需要秩序的关键时刻,它便会挺身而出,扮演“秩序之手”的角色。

  • 未雨绸缪的拥塞管理: 它为网络提供了一种简单、高效、可扩展的用户分组方法,是实施接入控制斌(Access Class Baring)策略的基础。
  • 保障高优先级业务: 通过预留特定的高优先级ACC,确保了在极端拥塞情况下,紧急服务和关键任务通信的接入路径依然畅通,体现了通信的社会责任。
  • 编码的极致简洁: 仅用2个字节的位图就完成了15个等级的划分,再次展示了3GPP在资源受限环境下进行标准化设计的深厚功力。

对于李想而言,他可能永远也感觉不到EFACC的存在。当他在演唱会后发现朋友圈发不出去,他可能会抱怨信号不好。但他不知道的是,正是因为EFACC和他周围成千上万个不同的EFACC值的协同工作,才使得他至少还能接收短信,并且万一发生紧急情况,他的紧急呼叫一定能被接通。这正是EFACC在混乱中建立秩序,在拥塞中保障生命线的无声贡献。


FAQ环节

Q1:既然ACC 0-9是随机分配的,那么运营商如何确保在实施接入控制时,能够比较均匀地禁止用户? A1:这是基于大数定律的概率问题。运营商在发行海量的USIM卡时,会确保ACC 0-9的分配在统计上是大致均匀的,即每个等级的用户数量都接近总用户数的10%。这样,当网络决定禁止某一个ACC等级(例如ACC 7)的用户接入时,它就可以预期网络中的接入请求会减少约10%。如果禁止两个等级,就减少约20%,以此类推。通过控制禁止位图中的“0”的数量,网络就可以近似地、按比例地控制接入负载。

Q2:ACC 10为什么是特殊的? A2:ACC 10被专门保留用于紧急呼叫 (Emergency Call)。当手机发起一个紧急呼叫时(如拨打110、119),它会向网络表明此次接入的目的是紧急呼叫,此时它自动拥有了ACC 10的身份。网络侧的接入控制策略规定,无论网络多么拥塞,拥有ACC 10的接入请求都永远不会被禁止。这是为了保障在任何情况下,用户的“生命线”通信都能被最高优先级地接入。

Q3:高优先级用户(ACC 11-15)是不是永远都不会被限制接入? A3:几乎是。在绝大多数拥塞场景下,网络只会对ACC 0-9的普通用户进行限制。但在极其罕见的、灾难性的网络瘫痪边缘,网络也可以通过广播一个特殊的“acb-SpecialAC-Barring”标志,来对ACC 11-15的用户进行限制。但这属于极端情况下的最后手段。

Q4:5G时代的UAC和传统的ACC有什么区别?EFACC在5G中还重要吗? A4:5G的UAC(统一接入控制)系统比ACC更精细。它不仅看用户的“等级”,还看用户此次接入的“目的”(如普通信令、高优接入、特定业务等),并为不同的“目的”定义了不同的“接入身份”。手机会根据自己的接入身份和网络广播的UAC参数来决定是否接入。 在UAC中,EFACC依然重要,特别是其中的高优先级ACC (11-15)。当一个用户被分配了这些ACC,他在发起接入时,就可以映射到UAC中一个高优先级的“接入身份”,从而在拥塞中获得优先接入权。所以,EFACC中的高优先级等级,成为了UAC体系中判定用户“出身”的重要依据之一。

Q5:我能知道我自己的USIM卡被分配了哪个ACC吗? A5:对于普通用户来说,几乎没有直接的方法可以知道。ACC信息存储在EFACC文件中,其读取权限为PIN。一些专业的工程模式或者特殊的诊断应用,在获得相应权限后可能能够读取并显示出来。但对于日常使用,这个信息是被屏蔽的,用户也无需关心。手机的底层协议栈会自动处理所有与ACC相关的判断和决策。