目录

前文列表

4G EPS 第四代移动通信系统

4G EPS 的架构模型

LTE/EPC 协议栈



从上图可以看出,LTE/EPC 协议栈从架构的角度可以细分为两个方面:

  • E-UTRAN 空中接口协议栈
  • EPC 核心网协议栈

E-UTRAN 空中接口协议栈

E-UTRAN 空中接口协议栈主要分为三层两面

三层指

  • L1(物理层)

    • PHY(Physical Layer,物理层)
  • L2(数据链路层),又称无线网络层,实现了 LTE 的无线通信功能。
    • PDCP(Packet Data Convergence Control,分组数据汇聚控制层)
    • RLC(Radio Link Control,无线链路控制层)
    • MAC(Medium Access Control,媒体访问控制层)
  • L3(网络层),又称传输网络层,采用 IP 传输技术对用户面和控制面数据进行传输。
    • RRC(Radio Resource Control,无线资源控制层)
    • NAS(Non Access Stratum,非接入层协议)



两面指

  • 用户平面:主要包括 PHY 层、MAC 层、RLC 层、PDCP 层;
  • 控制平面:除了以上几层外,还包括 RRC 层,NAS 层。

用户平面协议

用户平面协议栈主要包括如上图所示的 4 个子层次,这些子层在网络侧均终止于 eNB 实体。

PHY:负责处理编译码、调制解调、多天线映射以及其它电信物理层功能。是最为复杂的一层,也是最考验产品的一层协议。实际设计中,涉及诸多算法也最能体现实际芯片的性能。和硬件紧密相关,需要协同工作。

MAC:负责处理 HARQ(Hybrid Automatic Repeat reQuest,混合自动重传请求)重传与上下行调度。应该说,L2 数据链路层的精华就在于此,重传和调度能做好,对于整个产品来说,速率就能体现出来。

RLC:负责分段与连接、重传处理,以及对高层数据的顺序控制。

PDCP:负责执行报头(Header)压缩,以减少无线接口必须传送的比特流量。报头压缩机制基于 ROHC(Robust Header Compression,健壮性包头压缩)、PDHP 层在控制平面对 RRC 和 NAS 层消息进行完整性校验,在用户面不进行完整性校验。以及对数据和信令的加密。

E-UTRAN 空中接口协议栈在用户面的数据流向如下图所示:用户平面的主要功能是处理业务数据。在发送端,将高层的业务 IP 数据流,通过头压缩(PDCP)、加密(PDCP)、分段(RLC)、复用(MAC)、调度等过程变成物理层(PHY)可处理的传输块。在接受端,将物理层接收到的无线数据流,按调度要求,复用(MAC)、级联(RLC)、解密(PDCP)、解压缩(PDCP),成为高层应用可识别的 IP 数据流。

PHY 层

PHY(Physical Layer):物理层。负责处理编译码、调制解调、多天线映射以及其他电信物理层功能。物理层以及传输信道的方式为 MAC 层提供服务。

包括以下功能

  • 传输信道的错误检测并向高层提供指示。
  • 传输信道的前向纠错与译码。
  • 混合自动重传请求软合并。
  • 传输信道与物理信道之间的速率匹配及映射。
  • 物理信道功率加权。
  • 物理信道的调制与解调。
  • 时间及频率同步。
  • 射频特性测量并向高层提供指示。
  • MIMO 天线处理。
  • 传输分级。
  • 波束赋形。
  • 射频处理。

MAC 层

MAC(Medio Access Control):媒体接入控制。

主要功能

  • 逻辑信道(logical channel)与传输信道(transport channel)之间的映射;
  • 复用过程,即将 RLC 层的协议数据单元 PDU(Protocol Data Unit)复用到传输块 TB(transport block)中,然后通过传输信道传输到物理层。相反的过程即为解复用过程;
  • 业务量测量报告;
  • 通过 HARQ 纠错;
  • 对单个 UE 的逻辑信道优先级处理;
  • 多个 UE 间的优先级处理(动态调度);
  • 传输格式选择;
  • 填充。

RLC 层

RLC(Radio Link Control):无线链路控制。

主要功能

  • 上层协议数据单元 PDU 的传输支持确认模式 AM(Acknowledge Mode)和非确认模式 UM(Un-acknowledge Mode);
  • 数据传输支持透传模式 TM(Transparent Mode);
  • 通过 ARQ 纠错(无需 CRC 校验,由物理层提供 CRC 校验);
  • 对传输块进行分段(segmentation)处理,仅当 RLC SDU 不完全符合 TB 大小时,将 SDU(Service Data Unit)分段到可变大小的 RLC PDU 中,而不用进行填充;
  • 对重传的 PDU 进行重分段 Re-segmentation 处理:仅当需要重传的 PDU 不完全符合用于重传的新 TB 大小时,对 RLC PDU 进行重分段处理;
  • 多个 SDU 的串接(Concatenation);
  • 顺序传递上层 PDU(除切换外);
  • 协议流程错误侦测和恢复;
  • 副本侦测;
  • SDU 丢弃;
  • 复位;

RLC 提出了三种模式

  1. 透明模式(Transparent Mode,TM):不添加 RLC 头,可以分段/级联。
  2. 非确认模式(Unacknowledged Mode,UM):必须添加 RLC 头,两种传送数据方式:1. 检测且将没有出错的数据传递到高层;2. 立即传递到高层。
  3. 确认模式(Acknowledged Mode,AM):必须添加 RLC 头,无错传递(通过重发机制保证),顺序传递或无序传递(仅用于上行切换),唯一传递(相同检测功能)。

PDCP 层

PDCP(Packet Data Convergence Protocol):分组数据汇聚协议。

用户平面的功能

  • 头压缩/解压缩:ROHC(Robust Header Compression);
  • 用户数据传输:接收来自上层 NAS 层的 PDCP SDU,然后传递到 RLC 层,反之亦然;
  • RLC 确认模式 AM 下,在切换时将上层 PDU 顺序传递;
  • RLC 确认模式 AM 下,在切换时下层 SDU 的副本侦测;
  • RLC 确认模式 AM 下,在切换时将 PDCP SDU 重传;
  • 加密;
  • 基于计时器的上行 SDU 丢弃。

控制平面的功能

  • 加密及完整性保护;
  • 控制数据传输:接收来自上层 RRC 层的 PDCP SDU,然后传递到 RLC 层,反之亦然。

控制平面协议



需要注意的是,控制平面协议除了包含上述的 4 个用户平面协议子层之外,还包含了 RRC 和 NAS 这两个处于 L3 网络层中的子层。NAS(非接入层协议)子层以下,我们称为 AS(接入层协议)层。

MAC:与用户面中的功能一致。

RLC:与用户面中的功能一致。

PDCH:完成加密与完整性保护。

RRC:终止于 eNB。主要负责广播 NAS 层和 AS 层的系统消息、寻呼功能、RRC 连接管理、端到端 Radio Bearer 连接的控制、移动性管理、UE 测量上报与控制、小区切换、UE 小区选择和重选等功能。

NAS:终止于 MME。主要实现 EPS Bearer 的管理、鉴权、空闲状态下的移动性处理、寻呼消息以及安全控制等功能。NAS 对于 eNB 是透明的,所有 NAS 消息,对于 eNB 而言都是透传。

E-UTRAN 空中接口协议栈在控制平面的数据流向如下图绿线所示:在控制平面 UE 和 MME 是通过 NAS 层来进行交互的,此前还需要 RRC 子层来完成 UE 接入资源的分配。

UE 和 eNB 之间的控制信令主要是 RRC 消息。RRC 就相当于 eNB 内的司令部,RRC 消息携带了建立、修改和解析 L1、L2 协议所需的全部参数。所以,UE 和 eNB 在承载业务前,先要建立 RRC 连接。另外,RRC 还要给 UE 透明传达来自核心网的指示,即 NAS 信令。

RRC 层

详见《4G EPS 中建立 UE 与 eNB 之间的 RRC 连接》。

NAS 层

详见《建立 NAS(非接入服务)信令连接》。

EPC 核心网协议栈

用户平面协议

在 EPC 核心网协议栈中的用户面,提供了 基于 UDP/IP 的不可靠连接来传输业务数据。S1-U、X2、S5 接口的传输网络层都是基于 UDP/IP 的,而 UDP/IP 之上的 GTP-U 封装则作为用户平面传输的 PDU(分组数据单元)。

GTP-U 协议

详见《EPS UP 中的 GTP-U》。

控制平面协议



控制平面为信令传输提供了基于 SCTP(流控传输协议)/IP 的可靠连接。S1-AP 和 X2-AP 分别是 S1 接口和 X2 接口的应用层信令协议。

SCTP 协议

SCTP(Stream Control Transmission Protocol,流控制传输协议)是一种可靠的传输协议,它在两个端点之间提供稳定、有序的数据传递服务(类似于 TCP),并且可以保护数据消息边界(类似于 UDP)。SCTP 的设计是为了解决 TCP/IP 网络在传输实时信令和数据时所面临的不可靠传输、时延等问题

然而,与 TCP/UDP 不同,SCTP 是通过多宿主(Multi-homing)和多流(Multi-streaming)的功能来提供这些收益的,这两种功能均可提高可用性 。SCTP 提供如下服务:

  • 确认用户数据的无错误和无复制传输;
  • 数据分段以符合发现路径最大传输单元的大小;
  • 在多数据流中用户信息的有序发送,带有一个选项,用户信息可以按到达顺序发送;
  • 选择性的将多个用户信息绑定到单个 SCTP 包;
  • 通过关联的一个终端或两个终端多重宿主支持来为网络故障规定容度。

GTP-C 协议

详见《EPS CP 中的 GTP-C》。

S1-AP 协议

S1AP 协议位于 eNB 和 MME 之间,建立两者之间的承载,包括建立,修改,释放。E-UTRAN 和 EPC 打交道,都要经过这套协议。S1AP 是 S1-C 连接建立的时候用来传输信令的协议,该协议负责 S1 接口的管理,E-RAB 的管理,还有 NAS 信令的传输,以及 UE Context 的管理。

详见《4G EPS 中建立 eNB 与 MME 之间的 S1 连接》。

X2-AP 协议

X2AP 协议是连接 eNB 之间的一套接口标准。其主要信令内容和 S1AP 非常类似。两个 eNB 互相协同的工作主要是一些移动性管理,此类操作就不用再去打扰上级 EPC 了。​X2AP 协议支持 E-UTRAN 中的 UE 移动性管理和 SON 功能。比如:通过 X2AP 的数据转发(在 X2 Handover 的时候的数据转发),SN status 的转发(Handover 时),或者是 eNB 之间的资源状态消息交换等。

Diameter 协议

EPS 中的 MME、HSS、PGW、PCRF 和 DRA 都应用了 Diameter 协议,称为 Diameter Node。Diameter Node 具有三种角色:

  • Client:支持客户端应用
  • Server:支持服务端应用,即提供 AAA 服务
  • Agent:Diameter消息的中继(Relay)、代理(Proxy)、重定向(Redirect)和翻译(TranslateService)

显然,MME 和 PGW 的角色是 Client,HSS 和 PCRF 的角色是 Server,而 DRA 的角色是 Agent(Diameter 消息需通过 DRA(Diameter Routing Agent)转发。DRA 路由方式十分灵活,输入条件可以是 IMSI、Host 或 Realm 等。DRA 通常部署在省会(或中心地市),与全省 EPC 节点连接)。

Diameter 采用 Peer to Peer 传输模式,如果两个 Diameter Node 之间有 TCP 连接或 SCTP 偶联,则称为 Diameter Peers。Peers 之间的传输层连接称为 Connection,因而 MME、HSS、PGW 和 PCRF 之间的连接均称为 Connection,这是一个传输层的概念。而在应用层,Client 和 Server 之间的逻辑连接称为 Session,通过 Session ID 进行标识,比如,VoLTE 用户在建立 IMS PDN Connection 时,PGW 会向 VoLTE PCRF 请求建立 Gx 会话,不同用户的 Gx Session ID 不能重复。Session 和 Connection 没有固定关联,多个 Session 的 Diameter 消息可以在同一个 Connection 上发送。可见,Diameter 协议在跨厂商网元之间建立 Session 的可行性

4G EPS 的网络协议栈的更多相关文章

  1. 理解 Linux 网络栈(1):Linux 网络协议栈简单总结

    本系列文章总结 Linux 网络栈,包括: (1)Linux 网络协议栈总结 (2)非虚拟化Linux环境中的网络分段卸载技术 GSO/TSO/UFO/LRO/GRO (3)QEMU/KVM + Vx ...

  2. 转:Android 判断用户2G/3G/4G移动数据网络

    Android 判断用户2G/3G/4G移动数据网络 在做 Android App 的时候,为了给用户省流量,为了不激起用户的愤怒,为了更好的用户体验,是需要根据用户当前网络情况来做一些调整的,也可以 ...

  3. Android 判断用户2G/3G/4G移动数据网络

    Android 判断用户2G/3G/4G移动数据网络 在做 Android App 的时候,为了给用户省流量,为了不激起用户的愤怒,为了更好的用户体验,是需要根据用户当前网络情况来做一些调整的,也可以 ...

  4. TCP/IP网络协议栈(转载)

    原文:http://www.cnblogs.com/xuanku/p/tcpip.html TCP/IP网络协议栈分为四层, 从下至上依次是: 链路层 其实在链路层下面还有物理层, 指的是电信号的传输 ...

  5. 不错的网络协议栈测试工具 — Packetdrill

    Packetdrill - A network stack testing tool developed by Google. 项目:https://code.google.com/p/packetd ...

  6. 【RL-TCPnet网络教程】第2章 嵌入式网络协议栈基础知识

    第2章        嵌入式网络协议栈基础知识 本章教程为大家介绍嵌入式网络协议栈基础知识,本章先让大家有一个全面的认识,后面章节中会为大家逐一讲解用到的协议. 基础知识整理自百度百科,wiki百科等 ...

  7. 【RL-TCPnet网络教程】第1章 当前主流的小型嵌入式网络协议栈

    第1章   当前主流的小型嵌入式网络协议栈 这几年物联网发展迅猛,各种新产品.新技术也是层出不穷,本章节就为大家介绍当前主流的小型嵌入式网络协议栈. 1.1  当前主流的嵌入式网络协议栈 1.2  u ...

  8. 【安富莱】【RL-TCPnet网络教程】第10章 RL-TCPnet网络协议栈移植(FreeRTOS)

    第10章     RL-TCPnet网络协议栈移植(FreeRTOS) 本章教程为大家讲解RL-TCPnet网络协议栈的FreeRTOS操作系统移植方式,学习了第6章讲解的底层驱动接口函数之后,移植就 ...

  9. 【RL-TCPnet网络教程】第9章 RL-TCPnet网络协议栈移植(uCOS-III)

    第9章        RL-TCPnet网络协议栈移植(uCOS-III) 本章教程为大家讲解RL-TCPnet网络协议栈的uCOS-III操作系统移植方式,学习了第6章讲解的底层驱动接口函数之后,移 ...

  10. 【安富莱】【RL-TCPnet网络教程】第8章 RL-TCPnet网络协议栈移植(RTX)

    第8章        RL-TCPnet网络协议栈移植(RTX) 本章教程为大家讲解RL-TCPnet网络协议栈的RTX操作系统移植方式,学习了第6章讲解的底层驱动接口函数之后,移植就比较容易了,主要 ...

随机推荐

  1. Codeforces Round #670 (Div. 2)

    CF1406A Subset Mex 洛谷传送门 CF1406A 分析 从小到大考虑每一个数的出现次数,最小未出现的数就是A的mex值, 然后将A选完的数删掉一个接着以同样的方式找B的mex值,这显然 ...

  2. 使用Python插入100万条数据到MySQL数据库并将数据逐步写出到多个Excel

    Python插入100万条数据到MySQL数据库 步骤一:导入所需模块和库 首先,我们需要导入 MySQL 连接器模块和 Faker 模块.MySQL 连接器模块用于连接到 MySQL 数据库,而 F ...

  3. Agent内存马分析

    什么是Java Agent 我们知道Java是一种强类型语言,在运行之前必须将其编译成.class字节码,然后再交给JVM处理运行.Java Agent就是一种能在不影响正常编译的前提下,修改Java ...

  4. CMakeLists.txt 编写模板

    新建文件   CMakeLists.txt # 设置cmake的最低版本 cmake_minimum_required(VERSION 2.8) # 指定为C++11 版本 set(CMAKE_CXX ...

  5. 二、Unity调用Xcode封装方法

    1.开始封装Unity调用接口 我们在Xcode中 写的接口需要在extern "C"中(加上extern "C"后,会指示编译器这部分代码按C语言的进行编译) ...

  6. 手把手教你使用ArkTS中的canvas实现签名板功能

      一.屏幕旋转 ● 实现签名板的第一个功能就是旋转屏幕.旋转屏幕在各种框架中都有不一样的方式,比如:在H5端,我们一般是使用CSS中的transform属性中的rotate()方法来强制将网页横屏, ...

  7. Mac OS 中JDK 环境(jdk 1.8.0_831)安装配置、环境变量配置及卸载操作

    前言: 摊牌了,本来就有点喜新厌旧的我,特意把系统和开发环境都拉到比较高,想试验一下兼容性和某些新特性,探索了一下新大陆,也见识了各种光怪陆离的妖魔鬼怪. 因为要着手云平台项目的重构改版和新系统的架构 ...

  8. FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库

    ​<FFmpeg开发实战:从零基础到短视频上线>一书的例程主要测试本地的音视频文件,当然为了安全起见,很多网络视频都采用了https地址.FFmpeg若要访问https视频,就必须集成第三 ...

  9. 基于 EMR OLAP 的开源实时数仓解决方案之 ClickHouse 事务实现

    ​简介:阿里云 EMR OLAP 与 Flink 团队深度合作,支持了 Flink 到 ClickHouse 的 Exactly-Once写入来保证整个实时数仓数据的准确性.本文介绍了基于 EMR O ...

  10. 什么是 objdump 命令

    objdump 是在类 Unix 操作系统上显示关于目标文件的各种信息的命令行程序. 它以一种可阅读的格式让你更多地了解二进制文件可能带有的附加信息. 简单来说,和 IDA 这类软件都可用于反汇编. ...