对于运行 Android 12 或更高版本的设备,Android 提供对 5G 网络切片的支持,即使用网络虚拟化将单个网络连接划分为多个不同的虚拟连接,为不同类型的流量提供不同数量的资源。 5G 网络切片允许网络运营商将一部分网络专门用于为特定客户群提供特定功能。 Android 12 引入了以下 5G 企业网络切片功能,网络运营商可以向其企业客户端提供这些功能:
完全托管设备的企业设备切片
对于向员工提供完全托管的公司设备的企业,网络提供商可以为他们提供一个活动的企业网络切片,公司设备上的所有流量都将路由到该切片。在 Android 12 中,Android 允许运营商通过 URSP 规则提供企业切片,而不是通过 APN 设置切片。
适用于具有工作配置文件的设备的企业业务应用程序切片
对于使用工作配置文件解决方案的企业,Android 12 允许设备将来自工作配置文件中所有应用的流量路由到企业网络切片。企业可以通过设备策略控制器 (DPC)启用此功能。
工作配置文件解决方案提供企业所需的自动级别的身份验证和访问控制,以确保只有来自工作配置文件中企业应用程序的流量被路由到企业网络切片。无需修改工作配置文件中的应用即可显式请求企业网络切片。
5G 网络切片在 AOSP 中的工作原理
Android 12 通过添加 AOSP 中的电话代码库和Tethering 模块引入了对 5G 网络切片的支持,以整合网络切片所需的现有连接 API。
Android 电话平台提供 HAL 和电话 API,以支持基于核心网络代码提交的网络请求的切片和调制解调器中的 5G 切片功能。图 1 描述了 5G 网络切片功能的组件。
图 1. AOSP 中的 5G 网络切片架构。
电话和连接平台支持:
- 将切片类别的网络请求转换为流量描述符,然后将其传递给调制解调器以进行 URSP 流量匹配和路由选择
- 如果请求的切片不可用,则回退到默认网络
- 将来自工作配置文件下所有应用的流量路由到相应的连接
支持企业切片
- 检测设备上是否存在工作配置文件
- 检查企业 IT 管理员使用的 DPC 提供的权限或路由方向
核心网络服务包括对 Android 12 中的 Tethering 模块的以下更改:
- 将大部分
android.net.*
公共或系统 API 类添加到 Tethering 模块 扩展 Tethering 模块边界以包括:
-
f/b/core/java/android/net/…
-
f/b/services/net/…
-
f/b/services/core/java/com/android/server/connectivity/…
-
f/b/services/core/java/com/android/server/ConnectivityService.java
-
f/b/services/core/java/com/android/server/TestNetworkService.java
-
将 VPN 代码移出网络共享模块
Android 12 将具有以下功能的代码移至 Tethering 模块:
- 接收来自应用程序的网络连接请求
- 接收来自系统的请求(例如,“将这些应用程序放在企业切片上”;在 Android 12 中引入)
- 从系统向电话代码发送请求,电话代码尝试通过 HAL API 和调制解调器设置网络或切片
- 通知 netd 如何基于每个应用路由流量(在 Android 12 中引入)
- 通过
NetworkCallback
、getActiveNetwork
、getNetworkCapabilities
等ConnectivityManager
API 通知应用程序的网络流量发生了什么。
执行
要在设备上支持 5G 切片,设备必须具有支持具有setupDataCall_1_6
API 的 IRadio 1.6 HAL 的调制解调器。该 API 建立数据连接,包含以下支持 5G 切片的参数:
-
trafficDescriptor
:指定发送到调制解调器的流量描述符 sliceInfo
:指定在 EPDG 到 5G 切换的情况下要使用的网络切片的信息matchAllRuleAllowed
:指定是否允许使用默认匹配所有 URSP 规则
调制解调器还必须实现getSlicingConfig
API,除非它被报告为不受getHalDeviceCapabilities
API 支持。
企业要求
下面介绍企业在 Android 企业部署中的设备上使用 5G 网络切片的要求。
- 确保使用工作配置文件设置的完全托管或员工设备支持 5G SA,并且调制解调器支持
setupDataCall_1_6
API。 - 在切片设置和性能或 SLA 特性方面与运营商合作伙伴合作。
在设置有工作配置文件的设备上启用 5G 切片
对于设置了工作配置文件的设备,AOSP 中默认关闭 5G 网络切片。要启用网络切片,企业 IT 管理员可以通过 EMM DPC 以每个员工为基础打开或关闭到企业网络切片的工作配置文件应用程序流量路由,该 DPC 使用DevicePolicyManager
(DPM) API 中的setPreferentialNetworkServiceEnabled
方法(在 Android 中引入12)。
具有自定义 DPC 的 EMM 供应商必须集成DevicePolicyManager
API 以支持企业客户端。
URSP 规则
本部分包括为运营商配置不同切片类别(包括企业、CBS、低延迟和高带宽流量)的 URSP 规则的信息。为不同的切片类别配置 URSP 规则时,运营商必须使用以下 Android 特定值。
ID | 价值 | 描述 |
---|---|---|
操作系统标识 | 97a498e3-fc92-5c94-8986-0333d06e4e47 | Android 的 OSId 是使用命名空间 ISO OID 和名称“Android”生成的版本 5 UUID。 |
运营商必须为每个分片流量配置 URSP 规则,流量描述符组件为“OS Id + OS App Id 类型”。例如,“ENTERPRISE”切片的值必须为0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345
。该值是 OSId、OSAppId 的长度 ( 0x0A
) 和 OSAppId 的串联。有关流量描述符组件类型的更多信息,请参阅3GPP TS 24.526 表 5.2.1 。
下表描述了不同切片类别的 OSAppId 值。
切片类别 | OSAppId | 描述 |
---|---|---|
企业 | 0x454E5445525052495345 | OSAppId 是字符串“ENTERPRISE”的字节数组表示 |
企业2 | 0x454E544552505249534532 | OSAppId 是字符串“ENTERPRISE2”的字节数组表示 |
企业3 | 0x454E544552505249534533 | OSAppId 是字符串“ENTERPRISE3”的字节数组表示 |
企业4 | 0x454E544552505249534534 | OSAppId 是字符串“ENTERPRISE4”的字节数组表示 |
企业5 | 0x454E544552505249534535 | OSAppId 是字符串“ENTERPRISE5”的字节数组表示 |
哥伦比亚广播公司 | 0x454E544552505249534535 | OSAppId 是字符串“CBS”的字节数组表示 |
PRIORITIZE_LATENCY | 0x5052494f524954495a455f4c4154454e4359 | OSAppId 是字符串“PRIORITIZE_LATENCY”的字节数组表示 |
PRIORITIZE_BANDWIDTH | 0x5052494f524954495a455f42414e445749445448 | OSAppId 是字符串“PRIORITIZE_BANDWIDTH”的字节数组表示 |
URSP 规则示例
下表显示了企业、CBS、低延迟、高带宽和默认流量的示例 URSP 规则。
企业1
URSP 规则 #1(企业 1) | |
---|---|
优先级 | 1 (0x01) |
流量描述符#1 | |
操作系统 ID + 操作系统应用 ID 类型 | 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345 |
路由选择描述符#1 | |
优先级 | 1 (0x01) |
组件 #1:S-NSSAI | SST:XX SD:YYYYYY |
组件 #2:DNN | 企业 |
路由选择描述符#2 | |
优先级 | 2 (0x02) |
组件 #1:DNN | 企业 |
企业 2
URSP 规则 #2(企业 2) | |
---|---|
优先级 | 2 (0x02) |
流量描述符#1 | |
操作系统 ID + 操作系统应用 ID 类型 | 0x97A498E3FC925C9489860333D06E4E470A454E544552505249534532 |
路由选择描述符#1 | |
优先级 | 1 (0x01) |
组件 #1:S-NSSAI | SST:XX SD:YYYYYY |
组件 #2:DNN | 企业2 |
路由选择描述符#2 | |
优先级 | 2 (0x02) |
组件 #1:DNN | 企业2 |
企业3
URSP 规则 #3(企业 3) | |
---|---|
优先级 | 3 (0x03) |
流量描述符#1 | |
操作系统 ID + 操作系统应用 ID 类型 | 0x97A498E3FC925C9489860333D06E4E470A454E544552505249534533 |
路由选择描述符#1 | |
优先级 | 1 (0x01) |
组件 #1:S-NSSAI | SST:XX SD:YYYYYY |
组件 #2:DNN | 企业3 |
路由选择描述符#2 | |
优先级 | 2 (0x02) |
组件 #1:DNN | 企业3 |
企业 4
URSP 规则 #4(企业 4) | |
---|---|
优先级 | 4 (0x04) |
流量描述符#1 | |
操作系统 ID + 操作系统应用 ID 类型 | 0x97A498E3FC925C9489860333D06E4E470A454E544552505249534534 |
路由选择描述符#1 | |
优先级 | 1 (0x01) |
组件 #1:S-NSSAI | SST:XX SD:YYYYYY |
组件 #2:DNN | 企业4 |
路由选择描述符#2 | |
优先级 | 2 (0x02) |
组件 #1:DNN | 企业4 |
企业5
URSP 规则 #5(企业 5) | |
---|---|
优先级 | 5 (0x05) |
流量描述符#1 | |
操作系统 ID + 操作系统应用 ID 类型 | 0x97A498E3FC925C9489860333D06E4E470A454E544552505249534535 |
路由选择描述符#1 | |
优先级 | 1 (0x01) |
组件 #1:S-NSSAI | SST:XX SD:YYYYYY |
组件 #2:DNN | 企业5 |
路由选择描述符#2 | |
优先级 | 2 (0x02) |
组件 #1:DNN | 企业5 |
哥伦比亚广播公司
以下是 CBS 流量的示例 URSP 规则:
URSP 规则 #6 (CBS) | |
---|---|
优先级 | 6 (0x06) |
流量描述符#1 | |
操作系统 ID + 操作系统应用 ID 类型 | 0x97A498E3FC925C9489860333D06E4E470A434253 |
路由选择描述符#1 | |
优先级 | 1 (0x01) |
组件 #1:S-NSSAI | SST:XX SD:YYYYYY |
组件 #2:DNN | 哥伦比亚广播公司 |
路由选择描述符#2 | |
优先级 | 2 (0x02) |
组件 #1:DNN | 哥伦比亚广播公司 |
低延迟
URSP 规则 #7(低延迟) | |
---|---|
优先级 | 7 (0x07) |
流量描述符#1 | |
操作系统 ID + 操作系统应用 ID 类型 | 0x97A498E3FC925C9489860333D06E4E470A5052494f524954495a455f4c4154454e4359 |
路由选择描述符#1 | |
优先级 | 1 (0x01) |
组件 #1:S-NSSAI | SST:XX SD:YYYYYY |
组件 #2:DNN | 潜伏 |
路由选择描述符#2 | |
优先级 | 2 (0x02) |
组件 #1:DNN | 潜伏 |
高带宽
URSP 规则 #8(高带宽) | |
---|---|
优先级 | 8 (0x08) |
流量描述符#1 | |
操作系统 ID + 操作系统应用 ID 类型 | 97A498E3FC925C9489860333D06E4E470A5052494f524954495a455f42414e445749445448 |
路由选择描述符#1 | |
优先级 | 1 (0x01) |
组件 #1:S-NSSAI | SST:XX SD:YYYYYY |
组件 #2:DNN | 带宽 |
路由选择描述符#2 | |
优先级 | 2 (0x02) |
组件 #1:DNN | 带宽 |
默认
URSP 规则 #9(默认) | |
---|---|
优先级 | 9 (0x09) |
流量描述符#1 | |
匹配所有 | 不适用 |
路由选择描述符#1 | |
优先级 | 1 (0x01) |
组件 #1:S-NSSAI | SST:XX SD:YYYYYY |
测试
要测试 5G 网络切片,请使用以下手动测试。
要设置设备进行测试,请执行以下操作:
确保URSP策略配置了与企业类别匹配的非默认规则,并且对应的路由选择描述符将企业类别映射到企业切片;以及将流量定向到默认 Internet 切片的默认规则。
确保在设备上配置了工作配置文件。
选择通过 DPC 使用网络切片
要测试 5G 网络切片行为,请执行以下操作:
- 验证是否与企业切片建立了 PDU 会话(例如,通过使用特定的 IP 地址),并且工作配置文件中的应用程序使用该 PDU 会话。
- 验证是否使用默认 Internet 切片建立了单独的 PDU 会话,并且个人配置文件中的应用程序使用 PDU 会话。