【5G NR】RRC连接重建解析

简介: 无线网络总有信号不稳定的时候,如果每次无线链路失败或者切换失败均要从头开始建立链接,无疑是比较耗费时间和系统资源的。重建流程只需要服务端对应到用户上下文,即可重建连接,简化了连接处理流程。
前言:无线网络总有信号不稳定的时候,如果每次无线链路失败或者切换失败均要从头开始建立链接,无疑是比较耗费时间和系统资源的。重建流程只需要服务端对应到用户上下文,即可重建连接,简化了连接处理流程。


1. RRC重建介绍

在这里插入图片描述

重建成功



在这里插入图片描述

重建失败,重新发起RRC建立



RRC重建过程的目的是重新建立RRC连接。处于RRC_CONNECTED状态的UE如果已经利用SRB2和至少一个DRB激活了AS安全性,则可以发起重建过程来恢复此前建立的RRC连接。如果重建时小区能够找到有效的UE上下文并得到验证,将重建和恢复SRB1;如果重建时小区无法找到相应的UE上下文,小区将丢弃存储的AS Context并释放所有RB,然后发送RRCSetup建立新的RRC连接。

如果UE尚未激活AS安全性,则UE不应发起重建过程,而是直接转换到RRC_IDLE,释放原因为“other”。如果已经激活了AS安全性,但是没有设置SRB2和至少一个DRB,UE同样不发起重建过程而是直接转换到RRC_IDLE,此时释放原因为“RRC连接失败(RRC connection failure)”。

2. UE重建发起时机及操作

UE在以下情况下会发起重建过程:

  • 无线链路失败
  • 重新配置MCG同步失败
  • NR侧移动性失败
  • 底层SRB1或SRB2显示完整性检查失败,这里排除在RRCReestablishment消息中检测
  • 完整性检查失败
  • RRC连接重配失败

在发起重建过程时,UE应该进行如下操作:

  1. 停止计时器T310
  2. 停止计时器T304
  3. 启动定时器T311
  4. 挂起除SRB0外的所有RB
  5. 复位MAC
  6. 释放MCG SCell
  7. 释放spCellConfig
  8. 执行MR-DC释放
  9. 释放delayBudgetReportingConfig,停止计时器T342
  10. 释放overheatingAssistanceConfig,停止计时器T345
  11. 进行小区选择

在选择合适的NR小区后,UE应进行如下操作:

  1. 确认具有有效和最新的基本系统信息;
  2. 停止定时器T311
  3. 启动定时器T301;
  4. 停止访问定时器T390;
  5. 应用相应物理层规范中指定的默认L1参数值,SIB1中提供值的参数除外
  6. 应用默认MAC Cell Group配置;
  7. 应用CCCH配置;
  8. 应用SIB1中包含的timeAlignmentTimerCommon;
  9. 开始发送RRCReestablishmentRequest消息;

在选择 inter-RAT小区时,UE应转入RRC_IDLE态,释放原因为“RRC连接失败(RRC connection failure)”。

3. 重建消息传输信道

消息 无线承载 逻辑信道 传输模式 传输方向
RRCReestablishmentRequest SRB0 CCCH TM UE->gNB
RRCReestablishment SRB1 DCCH AM gNB->UE
RRCReestablishmentComplete SRB1 DCCH AM UE->gNB


4. 重建流程解析

4.1 UE设置并发送RRCReestablishmentRequest

RRCReestablishmentRequest消息结构

RRCReestablishmentRequest ::=       SEQUENCE {
    rrcReestablishmentRequest           RRCReestablishmentRequest-IEs
}

RRCReestablishmentRequest-IEs ::=   SEQUENCE {
    ue-Identity                         ReestabUE-Identity,
    reestablishmentCause                ReestablishmentCause,
    spare                               BIT STRING (SIZE (1))
}

ReestabUE-Identity ::=              SEQUENCE {
    c-RNTI                              RNTI-Value,
    physCellId                          PhysCellId,
    shortMAC-I                          ShortMAC-I
}

ReestablishmentCause ::=            ENUMERATED {reconfigurationFailure, handoverFailure, otherFailure, spare1}
  1. 如果重建是由于无线链路失败或重配同步失败导致,应该将VarRLF-Report中的reestablishmentCellId设置为所选小区的全局小区ID。
  2. 设置UE标识
  • 将c-RNTI设置为源PCell中使用的C-RNTI(通过同步或NR故障移动性重新配置)或触发重建的PCell使用的C-RNTI;
  • 将physCellId设置为源PCell的物理小区标识(通过同步或NR故障移动性重新配置)或触发重建的PCell的物理小区标识;
  • 将shortMAC-I设置为所计算MAC-I的低16位,使用源PCell中使用的KRRCint密钥和完整性保护算法(通过同步或NR故障移动性重新配置)或触发重建的PCell中使用的KRRCint密钥和完整性保护算法;
  • 将COUNT,BEARER和DIRECTION的所有输入位设置为二进制位。
  1. 设置重建原因(reestablishmentCause)
  • 如果是因为重新配置失败而发起了重建过程,则将reestablishmentCause设置为 reconfigurationFailure;
  • 如果因为NR内切换失败或者NR的RAT间移动性失败导致了同步失败,需要重新配置而启动了重建过程,将reestablishmentCause设置为handoverFailure;
  • 除开上述两种情况后,其余情况将reestablishmentCause设置为otherFailure。
  1. 重建SRB1
  • 重新建立SRB1的PDCP;
  • 重新建立SRB1的RLC;
  • 配置L2以暂停SRB1的完整性保护和加密,加密不适用于后续用于恢复连接的- RRCReestablishment消息。而完整性检查在RRC要求时才执行;
  • 恢复SRB1。
  1. 将RRCReestablishmentRequest消息提交给L2进行传输给gNB。


4.2 gNB接收RRCReestablishmentRequest

  1. 根据C-RNTI,phyCellId和shortMac-I,查找RRC重建前的UE上下文
  2. 根据查找到的UE上下文,恢复RRC配置信息和安全信息
  3. 重建SRB1
  4. 通过SRB1承载,向UE发送RRCReestablishment消息,携带nextHopChainingCount值,指示UE更新AS安全性密钥。


4.3 UE接收RRCReestablishment

RRCReestablishment message消息结构

RRCReestablishment ::=              SEQUENCE {
    rrc-TransactionIdentifier           RRC-TransactionIdentifier,
    criticalExtensions                  CHOICE {
        rrcReestablishment                  RRCReestablishment-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

RRCReestablishment-IEs ::=          SEQUENCE {
    nextHopChainingCount                NextHopChainingCount,
    lateNonCriticalExtension            OCTET STRING                        OPTIONAL,
    nonCriticalExtension                RRCReestablishment-v1700-IEs         OPTIONAL
}

RRCReestablishment-v1700-IEs ::=    SEQUENCE {
    sl-ConfigDedicatedNR-r17            SetupRelease {SL-ConfigDedicatedNR-r16}    OPTIONAL, -- Cond L2RemoteUE
    sl-L2RemoteUEConfig-r17             SetupRelease {SL-L2RemoteUEConfig-r17}     OPTIONAL, -- Cond L2RemoteUE
    nonCriticalExtension                SEQUENCE {}                                OPTIONAL
}
  1. 停止定时器T301;
  2. 如果RRCReestablishment消息包括sl-l2remoteeconfig,执行L2 U2N Remote UE配置程序;其他情况将当前小区视为PCell。
  3. 基于当前的KgNB密钥或NH,使用收到的nextHopChainingCount值来更新KgNB密钥;存储RRCReestablishment消息中指示的nextHopChainingCount值
  4. 推导与先前配置的cipheringAlgorithm关联的KRRCenc和Kupens密钥;推导与先前配置的integrityProtAlgorithm关联的KRRCint和KUPint密钥
  5. 请求L2使用先前配置的算法和KRRCint密钥验证RRCReestablishment消息的完整性保护。
  6. 如果RRCReestablishment消息的完整性保护检查失败,则转入RRC_IDLE状态,释放原因为“RRC连接失败(RRC connection failure)”,重建流程结束。如果完整性保护检查成功,配置L2立即使用先前配置的算法和krcint密钥来恢复SRB1的完整性保护,完整性保护将用于后续UE接收和发送的所有消息,包括RRRRCReestablishmentComplete。
  7. 配置L2使用先前配置的算法来恢复SRB1的加密,并立即使用KRRCenc密钥,加密也将用于后续UE接收和发送的所有消息,包括RRCReestablishmentComplete;

释放measGapConfig指示的测量间隙配置

  1. 将RRCReestablishmentComplete报文提交L2传输;
  2. 重建流程结束。


5. T311和T301定时器到期操作

T311
当T311定时器到期,如果重建流程程序是由于无线链路故障或切换故障而发起,将VarRLF-Report中的noSuitableCellFound设置为true;转入RRC_IDLE状态,释放原因为“RRC connection failure”。

T301
当T301定时器到期,UE认为所选小区不可用,将转入RRC_IDLE状态,释放原因为“RRC connection failure”。

相关文章
|
自动驾驶 物联网 5G
|
人工智能 物联网 5G
5G如何重塑远程医疗——低延迟、高速连接背后的技术革命
5G如何重塑远程医疗——低延迟、高速连接背后的技术革命
562 12
|
人工智能 安全 5G
5G网络安全全解析——新机遇与潜在风险
5G网络安全全解析——新机遇与潜在风险
630 4
|
JSON 监控 网络协议
Bilibili直播信息流:连接方法与数据解析
本文详细介绍了自行实现B站直播WebSocket连接的完整流程。解析了基于WebSocket的应用层协议结构,涵盖认证包构建、心跳机制维护及数据包解析步骤,为开发者定制直播数据监控提供了完整技术方案。
2767 9
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
11050 2
|
边缘计算 自动驾驶 5G
5G网络架构解析:从核心网到边缘计算
【10月更文挑战第24天】
1153 10
|
网络协议
深入解析:TCP四次挥手断开连接的全过程及必要性
在网络通信中,TCP(传输控制协议)以其可靠性和顺序保证而闻名。然而,TCP连接的建立和终止同样重要,它们确保了网络资源的有效管理和数据传输的完整性。本文将详细描述TCP连接的四次挥手过程,并探讨为何需要四次挥手来正确终止一个TCP连接。
851 2
|
Java 关系型数据库 MySQL
【编程基础知识】Eclipse连接MySQL 8.0时的JDK版本和驱动问题全解析
本文详细解析了在使用Eclipse连接MySQL 8.0时常见的JDK版本不兼容、驱动类错误和时区设置问题,并提供了清晰的解决方案。通过正确配置JDK版本、选择合适的驱动类和设置时区,确保Java应用能够顺利连接MySQL 8.0。
1326 1
|
自动驾驶 安全 物联网

推荐镜像

更多
  • DNS