目录

消息

LTE 的系统消息是蜂窝网络与 UE 互相交互的与 LTE 系统相关的、特殊的信息。可分为:

  • 主消息块(Master Information Block,MIB)
  • 多个系统消息块(System Information Blocks,SIBs)

MIB(主消息块)

MIB 承载于信道 BCCH(广播控制信道)-> BCH(广播信道)-> PBCH(物理广播信道)之上。包括了有限个用以读取其他小区信息的最重要、最常用的传输参数(如:系统带宽、系统帧号、PHICH 配置信息)

MIB 的时域为:40ms 的周期,以 10ms 为周期重传 4 次。

频域为:位于系统带宽中央的 72 个子载波(1.08MHz)。

SIBs(多个系统消息块)

SIBs 承载在信道 BCCH(广播控制信道)-> DL-SCH(下行共享信道)-> PDSCH(物理下行共享信道)上。

除 MIB 外的系统信息都是 SIBs 信息,包括 SIB1 ~ SIB12。SIB1 是除 MIB 外最重要的系统消息

系统消息的映射和调度

每个信息块如何发送、何时发送,需要总体有个调度机制,因此引入调度周期的概念。MIB 的调度周期为 40ms,每 10ms 重传 1 次。而 SIB 的调度周期为 80ms,每 20ms 重传 1 次。即 SIB1 在每 2 个无线帧(20ms)的子帧 #5 中重传(SFN mod 2=0,SFN mod 8 不等于 0)一次,如果满足 SFN mod 8=0 时,SIB1 的内容可能改变,新传一次。

对于 PHY 来说,一般不作 SIB 的解析,只是接收 SIB 并上报。只要高层协议栈没有下发命令停止接收,则 PHY 要持续检测 PDCCH(物理下行控制信道)的 SI-RNTI(系统消息,PDCCH 通过 SI-RNTI 加扰,且按照 eNB 规定周期性发送),并接收后面的 PDSCH(物理下行共享信道)。所以,SIB1 的传输通过携带 SI-RNTI 的 PDCCH(物理下行控制信道)调度来完成。

SIB1 中的 SchedulingInfoList 携带所有 SI(System Information)的调度消息,接收 SIB1 以后,即可接收其他 SI 消息。除 SIB1 外,SIB2 ~ SIB12 均通过 SI 映射。最终在空口调度,所以这就涉及到 SI 的调度。

SI 其实可以看成多个 SIBs 构成的一个组,SIBs 到 SI 消息的映射是灵活配置的。类似于传输信道与物理信道之间的映射,多个 SIB 映射到同一个 SI 中,可进行统一调度。至于这些 SIB 如何映射,在 SIB1 中完成的,下面的 SIB 消息就是一个例子:

从上图可以看出,SIB2 是肯定在 SI1 中的,所以图中所示的 schedinglnfoList 是从 SIB3 开始组合的。至于如何组合,那是由 eNB 自己决定的事情。关于 SI 的调度,需要明确一个概念 —— SI-Window

SI-Window 就是上图中的 si-WindowLength,时域为 5ms。一个 SI 窗口只能发送一个 SI 消息,可重复发送,并且每个 SI 窗口都是紧挨着的。在 SI 窗口内,SI 不需要连续发送,有时候,一个子帧发送 SI 就足够,而有时候需要多个子帧发送。

UE 通过 SI-RNTI 去解加扰的 PDSCH(物理下行共享信道),拿到相关 SI 的内容后,就能够知道当前小区的驻留参数,以及重选参数,同频,异频,异系统邻区等等,完成小区选择

丰富的 SIBs 消息,会给 UE 带来该小区(Cell)的大量信息,用作各种用途,比如小区选择,重选等等。而在实际应用中,并不是所有 SIBs 都需要广播的,运营商本身会定义自己的 eNB 所需要广播的信息。

系统信息的更改通知

对于系统消息来说,不可能在整个运行周期内,参数方面都是一层不变。那么,当上层参数发生变化后,系统层面应该通知到终端。系统消息的更新一般分两种情况:

  1. 如果系统消息长期不变(3 小时),UE 就会再主动尝试接收系统消息;
  2. 如果网络侧的系统信息发生改变了,那么网络侧就需要通知 UE 更新系统信息。对于处于 IDLE(空闲)和 CONNECTED(已连接)状态的 UE 都可以通过寻呼(Paging)来通知。

我们先关注第 2 种情况,当 eNB 侧的某些参数发生改变了,是如何通知 UE 的呢?当 eNB 侧在线改变个系统消息的参数时,比如某些定时器,那 eNB 就会以 Paging 的方式通知到 UE。

Paging 消息内带有系统信息修改为 True,就是通知 UE,系统消息有更新,请重新读取。

另外一种方式,是当 SIB1 中的 IE systemInfoValueTag 与之前的存储的有不同,如下图,之前是 0,这一次是 1,那就意味着系统消息有变化,需要更新了。



以上只是 eNB 去通知 UE 需要更新系统信息,但 UE 何时更新?这里面还有一个修改周期的概念。在 SIB2 中有以下两个参数:

修改周期是这两个参数相乘:modificationPeriod = modificationPeriodCoeff X DefaultPagingCycle。上图中,修改周期就是 640ms。所以即使在本次周期中,收到更改通知,也要到下一个修改周期才会重新监听并存储系统信息。

4G EPS 中的消息类型的更多相关文章

  1. RabbitMQ中各种消息类型如何处理?

    一:消息类型 Map String(含json字符串类型) 二:处理方法 2.1 Map消息 如果发送的消息类型是map类型,可以通过SerializationUtils.deserialize方法将 ...

  2. Activemq消息类型

    Activemq消息类型JMS规范中的消息类型包括TextMessage.MapMessage.ObjectMessage.BytesMessage.和StreamMessage等五种.ActiveM ...

  3. ActiveMQ之二--JMS消息类型

    1.前言 //发送文本消息 session.createTextMessage(msg); //接受文本消息 public void onMessage(Message msg) { TextMess ...

  4. ActiveMQ常见消息类型

    JMS由下面三部分组成:消息头.属性.消息体.其中消息体定义了五种消息体格式,也可以称为消息类型. JMS规范中的消息类型包括TextMessage.MapMessage.ObjectMessage. ...

  5. Activemq 消息类型 (转)

    Activemq消息类型JMS规范中的消息类型包括TextMessage.MapMessage.ObjectMessage.BytesMessage.和StreamMessage等五种.ActiveM ...

  6. Language Guide (proto3) | proto3 语言指南(一)定义消息类型

    定义消息类型 首先让我们看一个非常简单的例子.假设您想定义一个搜索请求消息格式,其中每个搜索请求都有一个查询字符串.您感兴趣的特定结果页以及每页的结果数.下面是用于定义.proto消息类型的文件. s ...

  7. 分析器错误消息: 类型“test.test.testx”不明确: 它可能来自程序集“F:\testProject\bin\test.test.DLL”或程序集“F:\testProject\bin \testProject.DLL”。请在类型名称中显式指定程序集。

    问题描述: RT 分析器错误消息: 类型“test.test.testx”不明确: 它可能来自程序集“F:\testProject\bin\test.test.DLL”或程序集“F:\testProj ...

  8. 编译器错误消息: CS0234: 命名空间“Purple”中不存在类型或命名空间名称“Model”(是否缺少程序集引用?)

    编译错误 “/storeimg”应用程序中的服务器错误. 编译错误 说明: 在编译向该请求提供服务所需资源的过程中出现错误.请检查下列特定错误详细信息并适当地修改源代码. 编译器错误消息: CS023 ...

  9. 如何应用.NET中的消息队列服务

    建立一个队列是应用MSMQ的第一步.您可以通过Windows计算机管理控制台中的消息队列选项完成这一操作,或者自己编程建立一个队列.列表A中的C#代码建立了一个新的私有MSMQ消息队列(如果不存在队列 ...

  10. Delphi中window消息截获的实现方式(2)

    Delphi是Borland公司提供的一种全新的WINDOWS编程开发工具.由于它采用了具有弹性的和可重用的面向对象Pascal(object-orientedpascal)语言,并有强大的数据库引擎 ...

随机推荐

  1. Avalonia的UI组件

    Avalonia是一个强大的跨平台UI框架,允许开发者构建丰富的桌面应用程序. 它提供了众多UI组件.灵活的布局系统.可定制的样式以及事件处理机制. 在这篇博客中,我们将详细解析Avalonia的UI ...

  2. C# 通过ARP技术来观察目标主机数据包

    由于之前写的C# 实现Arp欺诈的文章属于网络攻击,不能够被展示,所以这边我们稍微说一下C#调用ARP包以及查看其他电脑上网数据包的技术,委婉的说一下ARP在局域网之中的应用. 本文章纯属技术讨论,并 ...

  3. Pdfium.Net.Free 一个免费的Pdfium的 .net包装器--可视化编辑pdf

    Pdfium.Net.Free 支持 .NETFramework 4.0 .NETFramework 4.5 .NETStandard 2.0 .Net8.0 可以和PdfiumViewer.Free ...

  4. hive窗口分析函数使用详解系列二之分组排序窗口函数

    1.综述 我们讨论面试中各大厂的SQL算法面试题,往往核心考点就在于窗口函数,所以掌握好了窗口函数,面对SQL算法面试往往事半功倍. 已更新第一类聚合函数类,点击这里阅读 hive窗口函数聚合函数类 ...

  5. TypeScript 中泛型的理解?应用场景?

    一.是什么 泛型程序设计(generic programming)是程序设计语言的一种风格或范式 泛型允许我们在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型 ...

  6. React中的key的作用

    一.是什么 首先,给出react组件中进行列表渲染的一个示例: const data = [ { id: 0, name: 'abc' }, { id: 1, name: 'def' }, { id: ...

  7. 【.net】Error while trying to retrieve text for error ORA-06413

    [.net]Error while trying to retrieve text for error ORA-06413 系统需要,有一个外挂系统使用的是.net,出了问题,所以部署环境查询代码 但 ...

  8. 力扣176(MySQL)-第二高的薪水(中等)

    题目: id 是这个表的主键.表的每一行包含员工的工资信息. 编写一个 SQL 查询,获取并返回 Employee 表中第二高的薪水 .如果不存在第二高的薪水,查询应该返回 null . 查询结果如下 ...

  9. 力扣628(java)-三个数的最大乘积(简单)

    题目: 给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积. 示例 1: 输入:nums = [1,2,3]输出:6示例 2: 输入:nums = [1,2,3,4]输出 ...

  10. 力扣181(MySQL)- 超过经理收入的员工(简单)

    题目: 表:Employee 编写一个SQL查询来查找收入比经理高的员工. 以 任意顺序 返回结果表. 查询结果格式如下所示. 示例 1:  解题思路: 一.[子查询] 先通过子查询找到当前员工的经理 ...