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

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

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

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 原因部分。

相关推荐

Linux文件系统操作常用命令(linux文件内容操作命令)

在Linux系统中,有一些常用的文件系统操作命令,以下是这些命令的介绍和作用:#切换目录,其中./代表当前目录,../代表上一级目录cd#查看当前目录里的文件和文件夹ls#...

别小看tail 命令,它难倒了技术总监

我把自己以往的文章汇总成为了Github,欢迎各位大佬star...

lnav:基于 Linux 的高级控制台日志文件查看器

lnav是一款开源的控制台日志文件查看器,专为Linux和Unix-like系统设计。它通过自动检测日志文件的格式,提取时间戳、日志级别等关键信息,并将多个日志文件的内容按时间顺序合并显示,...

声明式与命令式代码(声明模式和命令模式)

编程范式中的术语和差异信不信由你,你可能已经以开发人员的身份使用了多种编程范例。因为没有什么比用编程理论招待朋友更有趣的了,所以这篇文章可以帮助您认识代码中的流行范例。命令式编程命令式编程是我们从As...

linux中的常用命令(linux常用命令和作用)

linux中的常用命令linux中的命令统称shell命令shell是一个命令行解释器,将用户命令解析为操作系统所能理解的指令,实现用户与操作系统的交互shell终端:我们平时输入命令,执行程序的那个...

提高工作效率的--Linux常用命令,能够决解95%以上的问题

点击上方关注,第一时间接受干货转发,点赞,收藏,不如一次关注评论区第一条注意查看回复:Linux命令获取linux常用命令大全pdf+Linux命令行大全pdf...

如何限制他人操作自己的电脑?(如何控制别人的电脑不让发现)

这段时间,小猪罗志祥正处于风口浪尖,具体是为啥?还不知道的小伙伴赶紧去补一下最近的娱乐圈八卦~简单来说,就是我们的小罗同事,以自己超强的体力,以及超强的时间管理能力,重新定义了「多人运动」的含义,重新...

最通俗易懂的命令模式讲解(命令模式百科)

我们先不讲什么是命令模式,先通过一个场景来引出命令模式,看看命令模式能解决什么样的问题。现在有一个渣男张三,他有还几个女朋友,你现在是不是还是单身狗,你就说你气不气?然后他需要每天分别叫几个女朋友起床...

互联网大厂后端必看!Spring Boot 中Runtime执行与停止命令?

你是否曾在使用SpringBoot开发项目时,遇到需要执行系统命令的场景?比如调用脚本进行文件处理,又或是启动外部程序?很多后端开发人员会使用Processexec=Runtime.get...

Linux 常用命令(linux常用的20个命令面试)

日志排查类操作命令...

Java字节码指令:if_icmpgt(0xA3)(java字节码使用的汇编语言)

if_icmpgt是Java字节码中的一条条件跳转指令,其全称是"IfIntegerCompareGreaterThan"。它用于比较两个整数值的大小。如果栈顶的第一个...

外贸干货|如何增加领英的曝光量和询盘

#跨境电商#...

golang执行linux命令(golang调用shell脚本)

需求需要通过openssl生成rsa秘钥,然后保存该秘钥。代码实例packagemainimport("io/ioutil""bytes"&...

LINUX磁盘挂载(linux磁盘挂载到windows)

1、使用root用户查看磁盘挂载情况:fdisk-l2、使用df查看当前磁盘挂载情况,根据和fdisk-l的结果进行对比,查看还有那些磁盘未使用3、挂载:mount磁盘挂载路径...

Linux命令学习——nl命令(linux ln命令的使用)

nl命令主要功能为每一个文件添加行号,每一个输入的文件添加行号后发送到标准输出。当没有文件或文件为-时,读取标准输入...