百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

4G/LTE - APN的简单理解(lte网络apn)

wptr33 2025-02-04 16:27 16 浏览

APN(Access Point Name) in LTE

APN 意指接入点名称。此乃一种网关(抑或锚定点),您的 UE(移动电话)与之相连,便能接入核心网络,从而获取多数数据服务。于本页之内,探讨 APN 的实际事宜。

How APN is assinged ?

APN如何分配给UE?基本上它是由网络根据 UE 的请求进行分配的。所以它是UE设置(用于请求)和网络配置的组合。由于双方都参与 APN 分配,因此该 APN 分配经常会导致各种问题,特别是对于测试 UE 而言。 (对于在实际网络中使用的商用手机,您不会发现太多问题,因为它们在您购买时已预先配置为完全匹配网络要求,但在许多测试情况下,您经常会看到确切的 APN 要求的情况UE 和网络未知。有些 UE 对测试设备的 APN 分配不匹配非常灵活/容忍,但有些 UE 对测试设备的 APN 分配非常挑剔,当网络分配与网络分配不完全匹配时,会表现出各种奇怪的行为。它正在期待。

因此,当您测试 UE (DUT) 进行大多数数据服务相关测试(例如,IP 吞吐量、浏览、IMS 等)时,您必须考虑 APN 分配的协议方面和 UE 侧 APN 设置。

Protocol aspect of APN assignment.

APN 分配协议的典型过程非常简单。它分为以下两个步骤。

  • i) UE -> NW : PDN Connectivity Request // UE通常请求具有特定APN(或没有指定APN)的PDN
  • ii) UE <- NW : Activate Default EPS Bearer Context Request // 网络始终指定特定的 APN

实际上,这两条 NAS 信息被嵌入到不同的 RRC 信息中。通常,您可能会看到以下两种携带这些 NAS 信息的 RRC 信息。

Case 1 : Assignment of default APN

在分配默认 APN 的情况下,通常涉及以下两个步骤。

i) RRC : RRC Connection Setup Complete + NAS : Attach Request + ESM : PDN Connectivity Request

ii) RRC : RRC Connection Reconfiguration + NAS : Attach Accept + NAS : Activate Default EPS Bearer Context Req

Case 2 : Assignment of additional APN

如果在默认 APN 后分配附加 APN,通常涉及以下两个步骤。

  • i) RRC : ulinformationTransfer + ESM : PDN Connectivity Request
  • ii) RRC : RRC Connection Reconfiguration + NAS : Activate Default EPS Bearer Context Req

APN in S1AP

以下是一些通过 S1AP 携带 APN 信息的消息示例。

UE Setting Aspect of APN Assignement

UE 上有特殊设置,您可以在其中添加或删除(定义)您自己的 APN。如何在 UE 端定义这些 APN 将极大地改变 UE 的行为。因此,在测试时,配置UE侧APN设置以匹配设备APN设置非常重要。但问题是..取决于UE,有些UE让您完全控制APN设置,但有些UE根本不给您任何控制或给您有限的控制能力。现代的商用手机一般都会根据插入的卡来自动匹配APN信息。

Why sometimes UE does not specify APN name in PDN Connectivity Request ?

Case 1 : UE不想在建立安全性之前发送这些信息

我认为这是最常见的情况,并且在默认承载设置中最常发生。 PDN 请求承载在“安全模式命令”过程之前发生的附加请求中。也就是说,UE不希望在没有任何安全保护的情况下发送这种信息。在这种情况下,预计 UE 发送 ESM 信息传输 transfer flat = 1的 PDN 连接请求。然后网络将在安全过程完成后发送 ESM 信息请求,然后 UE 将在 ESM 信息响应消息中通知它想要使用的 APN 名称。

NOTE : ESM信息传输标志的含义在3GPP 24.301-9.9.4.5中规定如下 :

  • ESM信息传输标志信息元素的目的是指示ESM信息(即,协议配置选项或APN或两者)是否要被安全保护地传输。

值 0:不需要安全保护的 ESM 信息传输

值 1:需要安全保护的 ESM 信息传输

Case 2 : 意味着 UE 不关心网络分配哪个 APN

我不确定 3GPP 是否明确允许这样做,但我看到很多情况下,当 UE 未在 PDN 请求中指定 APN 名称时,UE 接受网络分配的任何 APN。

Case 3 : UE的BUG

我看到一些 UE 在 PDN 请求中省略 APN 名称而不设置 ESM 信息传输标志的情况。在这种情况下,某些网络可能会拒绝 PDN 请求。

Common Issues and Challenges for APN related issues

APN的最大问题之一是3GPP中没有明确规定严格的规则、要求。许多详细行为取决于 UE 协议栈的实现和运营商的要求。最重要的因素是“UE侧期望和NW侧期望之间的匹配”。最大的问题是很难找到掌握这方面明确信息的合适人选。就我而言,我遇到的大多数问题都是由负责应用层测试(例如 IP 吞吐量、IMS 等)的 UE 制造商/工程师解决的,以下是最终的常见情况。

步骤 i) 我认为我们需要清楚了解 UE 端 APN 处理实现,您需要就此问题与您的无线协议工程师进行沟通。

步骤 ii)(经过很长时间(至少几天)才能从无线协议工程师那里获得任何反馈)。此协议实现由芯片组制造商实现。我们无法控制它。我们需要与芯片组制造商沟通以获取清晰的信息。

步骤 iii)(经过更长的时间才能从芯片组供应商那里获得任何回复)。芯片组制造商表示 APN 配置因每个运营商(网络运营商)而异。如果您从运营商那里获得清晰的问题描述,我们可能会修改我们的堆栈以解决问题。

步骤 iv)(UE 制造商与运营商沟通,也需要很长时间才能获得任何反馈)。运营商说“我们在我们的协议中指定我们需要这种和这种类型的 APN,您必须让它以任何方式工作。如果您在详细的协议层中遇到任何问题,那是您的问题。我们在协议序列方面没有任何明确的定义”。

在步骤 iv) 之后,返回到步骤 i),经过几次迭代但没有取得任何生产性进展后,验证工程师通常会放弃任何进一步的技术沟通,并尝试依赖如下临时方法。

方法1)不断改变UE侧APN设置参数,直至与特定测试设备配合使用

方法 2) 不断更改测试设备参数,直到其适用于特定的 UE 设置


有时,此种临时之法诚然奏效,然而其决然无法成为尽善尽美的解决之策。有人采用方法 1,有人采用方法 2。故而,即便运用相同的设备对同一个 UE 进行测试,倘若由两个不同之人执行测试,最终于 UE 和设备之上的配置亦会全然相异。另外,在某些 UE 当中,鉴于设备之限制,您仅能运用方法 1,而在其他一些情形之下,由于 UE 侧的限制,您仅可使用方法 2。因而,它们皆难以成为通用的解决之方。实言相告,我觉得此问题不会存有通用的解决之策,除非 3GPP 就此提出明晰的要求。当下,最为合理的举措乃是创建一个自身的明晰要求与检查清单,并协调每一个人(芯片组制造商、UE 制造商以及运营商)遵循检查清单中所定义的规则。就我个人而言,我认为运营商(网络运营商)最具执行此种举措的能力。

Check List

许多 APN 相关问题(例如 APN 名称)没有对错之分。这只是一个特定的规则(由开发人员或网络运营商设置)并严格遵守该规则的问题。因此,本节中的检查清单会询问您“您自己有这样或那样的规则吗?”

1. UE在什么情况下在PDN连接请求消息中设置APN名称?正如我在 APN 分配的协议方面提到的,在某些情况下,UE 指定 APN 名称,而在某些情况下,UE 不指定它。问题是“在您的 UE 中,何时在 PDN 连接请求中指定 APN 名称?”。

2. 当 UE 未在其 PDN 连接请求中指定 APN 名称时,UE 在激活默认 EPS 承载上下文请求中期望从网络获得什么 APN 名称?任何 APN 名称都可以吗?或者它是否需要任何特定的 APN 名称?

3. 如果 UE 在激活默认 EPS 承载上下文请求中期望来自网络的任何特定 APN 名称,则特定 APN 名称从何而来?是网络运营商的要求吗?或者是您在 UE APN 设置中指定的内容?

4. 如果 UE 发送 IP 类型 = IPv4v6 的 PDN 请求,并且网络在激活默认 EPS 承载上下文请求中分配 IPv4v6,但 RS(路由器请求)/RA(路由器广告)过程失败,UE 应如何反应?

希望 UE 放弃 IPv6 设置过程并仅坚持使用 IPv4,但我看到一些 UE 重试 PDN 请求过程,直到 RS/RA 成功。

注意:与APN名称问题不同,3GPP中有相对明确的要求。有关此问题的更多信息,请参阅 ESM 原因部分。

相关推荐

Python自动化脚本应用与示例(python办公自动化脚本)

Python是编写自动化脚本的绝佳选择,因其语法简洁、库丰富且跨平台兼容性强。以下是Python自动化脚本的常见应用场景及示例,帮助你快速上手:一、常见自动化场景文件与目录操作...

Python文件操作常用库高级应用教程

本文是在前面《Python文件操作常用库使用教程》的基础上,进一步学习Python文件操作库的高级应用。一、高级文件系统监控1.1watchdog库-实时文件系统监控安装与基本使用:...

Python办公自动化系列篇之六:文件系统与操作系统任务

作为高效办公自动化领域的主流编程语言,Python凭借其优雅的语法结构、完善的技术生态及成熟的第三方工具库集合,已成为企业数字化转型过程中提升运营效率的理想选择。该语言在结构化数据处理、自动化文档生成...

14《Python 办公自动化教程》os 模块操作文件与文件夹

在日常工作中,我们经常会和文件、文件夹打交道,比如将服务器上指定目录下文件进行归档,或将爬虫爬取的数据根据时间创建对应的文件夹/文件,如果这些还依靠手动来进行操作,无疑是费时费力的,这时候Pyt...

python中os模块详解(python os.path模块)

os模块是Python标准库中的一个模块,它提供了与操作系统交互的方法。使用os模块可以方便地执行许多常见的系统任务,如文件和目录操作、进程管理、环境变量管理等。下面是os模块中一些常用的函数和方法:...

21-Python-文件操作(python文件的操作步骤)

在Python中,文件操作是非常重要的一部分,它允许我们读取、写入和修改文件。下面将详细讲解Python文件操作的各个方面,并给出相应的示例。1-打开文件...

轻松玩转Python文件操作:移动、删除

哈喽,大家好,我是木头左!Python文件操作基础在处理计算机文件时,经常需要执行如移动和删除等基本操作。Python提供了一些内置的库来帮助完成这些任务,其中最常用的就是os模块和shutil模块。...

Python 初学者练习:删除文件和文件夹

在本教程中,你将学习如何在Python中删除文件和文件夹。使用os.remove()函数删除文件...

引人遐想,用 Python 获取你想要的“某个人”摄像头照片

仅用来学习,希望给你们有提供到学习上的作用。1.安装库需要安装python3.5以上版本,在官网下载即可。然后安装库opencv-python,安装方式为打开终端输入命令行。...

Python如何使用临时文件和目录(python目录下文件)

在某些项目中,有时候会有大量的临时数据,比如各种日志,这时候我们要做数据分析,并把最后的结果储存起来,这些大量的临时数据如果常驻内存,将消耗大量内存资源,我们可以使用临时文件,存储这些临时数据。使用标...

Linux 下海量文件删除方法效率对比,最慢的竟然是 rm

Linux下海量文件删除方法效率对比,本次参赛选手一共6位,分别是:rm、find、findwithdelete、rsync、Python、Perl.首先建立50万个文件$testfor...

Python 开发工程师必会的 5 个系统命令操作库

当我们需要编写自动化脚本、部署工具、监控程序时,熟练操作系统命令几乎是必备技能。今天就来聊聊我在实际项目中高频使用的5个系统命令操作库,这些可都是能让你效率翻倍的"瑞士军刀"。一...

Python常用文件操作库使用详解(python文件操作选项)

Python生态系统提供了丰富的文件操作库,可以处理各种复杂的文件操作需求。本教程将介绍Python中最常用的文件操作库及其实际应用。一、标准库核心模块1.1os模块-操作系统接口主要功能...

11. 文件与IO操作(文件io和网络io)

本章深入探讨Go语言文件处理与IO操作的核心技术,结合高性能实践与安全规范,提供企业级解决方案。11.1文件读写11.1.1基础操作...

Python os模块的20个应用实例(python中 import os模块用法)

在Python中,...