一. NB总体网络架构
 NB-IoT端到端系统架构如下图所示:

终端:UE(User Equipment),通过空口连接到基站(eNodeB(evolved Node B , E-UTRAN 基站))。
无线网侧:包括两种组网方式,一种是整体式无线接入网(Singel RAN),其中包括2G/3G/4G以及NB-IoT无线网,另一种是NB-IoT新建。主要承担空口接入处理,小区管理等相关功能,并通过S1-lite接口与IoT核心网进行连接,将非接入层数据转发给高层网元处理。
核心网:EPC(Evolved Packet Core),承担与终端非接入层交互的功能,并将IoT业务相关数据转发到IoT平台进行处理。概括说明不全面,详细见下文。
平台:目前以电信平台为主。
应用服务器:以电信平台为例,应用server通过http/https协议和平台通讯,通过调用平台的开放API来控制设备,平台把设备上报的数据推送给应用服务器。平台支持对设备数据进行协议解析,转换成标准的json格式数据。
二. 网络结构细化
2.1 结构框图
        将上图EPC部分进行细化,如下:

MME:Mobility Management ,移动性管理实体(一个信令实体),接入网络的关键控制节点。负责空闲模式UE的跟踪与寻呼控制。通过与 HSS(Home Subscribe Server,归属用户服务器) 的信息交流,完成用户验证功能。
SCEF:Service Cability Exposure Function ,服务能力开放单元,为新增网元,支持对于新的PDN类型Non-IP的控制面数据传输。
S-GW:Serving GW ,服务网关,负责用户数据包的路由和转发。对于闲置状态的UE,S-GW则是下行数据路径的终点,并且在下行数据到达时触发寻呼UE。
P-GW:Packet Data Network gateway ,PDN网关(分组数据网网关),提供UE与外部分组数据网络连接点的接口传输,进行业务上下行业务等级计费。
2.2 部分接口解释
X2接口
       X2接口用以再eNodeB和eNodeB之间实现信令和数据交互。在NB-IoT系统中,X2接口在基于R13的版本不支持eNodeB间的用户面操作,主要在控制面引入了新的跨基站用户上下文恢复处理。在用户面优化传输方案下,挂起的终端移动到新基站发起RRC连接恢复过程,携带先前从旧基站获得的恢复ID,新基站再X2接口向旧基站发起用户上下文获取流程,从旧基站获取终端在旧基站挂起时保存的用户上下文信息,以便在新基站上将该UE快速恢复。
S1接口
       S1接口的控制面用以实现 eNodeB 和 MME 之间的信令传递,S1接口的用户面用以实现 eNodeB 和 SGW 之间的用户面数据传输。在NB-IoT系统中,S1接口引入的新特性主要包括:无线接入技术(RAT)类型上报(区分 NB-IoT 或 E-TURAN接入)、UE无线能力指示(例如,允许 MME 通过下行NAS传输消息向 eNodeB 发送用户设备(UE)的无线能力)、优化信令流程支持控制面优化传输方案,以及为用户面优化传输方案在S1接口引入连接挂起和恢复处理等。(此段内容参考:NB-IOT 系统现状与发展 )
三. 传输方式
       首先,从传输内容看,可以传输三种数据类型:IP,Non-IP,SMS(短消息)。

由于单小区内 NB-IoT 的终端数量远大于 LTE 终端数,因此控制面的建立和释放次数远大于 LTE,例如 RCC 连接建立、释放等;另一方面,为了发送和接收很少字节的数据,终端从空闲态进入连接态消耗的网络信令开销远大于数据载荷本身;此外,基于 LTE/EPC 复杂的信令流程,对终端的能耗也带来了挑战。
       因此,从系统架构这个层面上看,控制面和用户面的效率都需要对 NB-IoT 做增强与优化。下面将 NB-IoT传输优化方案分为两种,控制面传输优化方案与用户面传输优化方案,分别进行说明。
        注:关于用户面与控制面,简单理解:控制面主要承载无线信令,负责 UE 接入、资源分配等;用户面主要承载用户数据。
3.1 控制面传输
       控制面数据传输方案针对小数据传输进行优化,支持将IP数据包、非IP数据包或SMS封装到PDU中进行传输,无须建立DRB(无线承载)和基站与S-GW间的S1-U承载。
       当采用控制面传输方案时,小包数据通过NAS信令随路传输到MME,并通过与S-GW间建立S11-U连接,完成小包数据在MME与S-GW间的传输。当SGW收到下行数据时,如果S11-U连接存在,SGW 将下行数据发给MME,否则触发MME 执行寻呼。
        这里得出在控制面传输方案下两个传输路径:
UE —— eNodeB —— MME —— S-GW —— P-GW 
UE —— eNodeB —— MME —— SCEF 
3.2 用户面传输
       用户面传输通过重新定义的挂起流程与恢复流程,使空闲态用户快速恢复到连接态,减少相关空口资源和信令开销。当终端从连接态进入空闲态时,eNodeB、核心网挂起暂存该终端的AS信息,S1AP关联信息和承载上下文,终端存储AS信息,MME存储终端的S1AP关联信息和承载上下文,有数据传递时快速恢复,不需要重新建立承载和安全信息的重协商。
       另一方面,小数据报文通过用户面直接进行传输时,需要建立S1-U和DRB。
3.3 流程框图

注1:MME——SCEF的控制面传输针对Non-IP模式,此种模式下资费规则需重新配置。Non-IP数据亦可通过PGW进行控制面或数据面传输,需建立SGi接口的PtP隧道。
        注2:图中用户面传输为数据传输流程示意,建立RRC连接以及挂起的信令通过 MME-SGW-PGW,具体信令流程后续写。

一般情况下的NB-IoT网络架构的更多相关文章

  1. 【DATAGUARD】物理dg在主库丢失归档文件的情况下的恢复(七)

    [DATAGUARD]物理dg在主库丢失归档文件的情况下的恢复(七) 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到 ...

  2. # Volley源码解析(二) 没有缓存的情况下直接走网络请求源码分析#

    Volley源码解析(二) 没有缓存的情况下直接走网络请求源码分析 Volley源码一共40多个类和接口.除去一些工具类的实现,核心代码只有20多个类.所以相对来说分析起来没有那么吃力.但是要想分析透 ...

  3. UNIX网络编程——关于socket阻塞与非阻塞情况下的recv、send、read、write返回值

    1.阻塞模式与非阻塞模式下recv的返回值各代表什么意思?有没有 区别?(就我目前了解阻塞与非阻塞recv返回值没有区分,都是 <0:出错,=0:连接关闭,>0接收到数据大小,特别:返回 ...

  4. 下一个时代的发展架构竟然是它!FaaaaaaaaS到底是个啥?

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云serverless团队发表于云+社区专栏 导读:2018年7月6 - 7日,一年一度的技术圈盛会ArchSummit全球架构师 ...

  5. 数据中心网络架构的问题与演进 — CLOS 网络与 Fat-Tree、Spine-Leaf 架构

    目录 文章目录 目录 前文列表 CLOS Networking Switch Fabric 胖树(Fat-Tree)型网络架构 Fat-Tree 拓扑示例 Fat-Tree 的缺陷 叶脊(Spine- ...

  6. 聚光灯下的熊猫TV技术架构演进

    2015年开始的百播大战,熊猫TV是其中比较特别的一员. 说熊猫TV是含着金钥匙出生的公子哥不为过.还未上线,就频频曝光,科技号,微博稿,站上风口浪尖.内测期间更是有不少淘宝店高价倒卖邀请码,光内测时 ...

  7. [转]漫谈数据中心CLOS网络架构

    http://djt.qq.com/article/view/238 1.数据中心网络架构挑战 随着技术的发展,数据中心的规模越来越大,一个数据中心的服务器容量从几年前的几千台服务器发展到今天的几万甚 ...

  8. 通过Microsoft Azure服务设计网络架构的经验分享(转)

    原文:http://www.infoq.com/cn/articles/azure-networking-tips 本文从产品设计和架构角度分享了 Microsoft Azure 网络服务方面的使用经 ...

  9. 通过Microsoft Azure服务设计网络架构的经验分享

    作者 王枫  发布于 2014年4月8日 本文从产品设计和架构角度分享了Microsoft Azure网络服务方面的使用经验,希望你在阅读本文之后能够了解这些服务之间,从而更好地设计你的架构. Mic ...

随机推荐

  1. php获取文件名和后缀名

    php获取文件名 1 function retrieve($url) 2 { 3 preg_match('/\/([^\/]+\.[a-z]+)[^\/]*$/',$url,$match); 4 re ...

  2. JavaScript日常学习2

    JavaScript 数据类型    字符串(String).数字(Number).布尔(Boolean).数组(Array).对象(Object).空(Null).未定义(Undefined). e ...

  3. flask 学习(四)

    最近在学“数据库配置”这一部分,试着运行示例5-1的程序时解释器提示出错: $\venv\lib\site-packages\flask_sqlalchemy\__init__.py:800: U s ...

  4. 从Windows系统到Linux系统转变的5大要点

    当我在 Algoma  (阿尔格玛)大学开始我现在的工作,一个图书系统管理员,我实在是对我的工作没有什么信心.尽管我在图书信息技术上有十年经验,对于我的第一个任务——协助开发和管理 Evergreen ...

  5. 【JVM学习笔记】打破双亲委托机制的例子

    Tomcat也有自己的类加载器,比如Servlet,这些类加载器就改变了双亲委托模型的默认机制 (该主题有待深入)

  6. vue中refs的使用

    最近在看其他项目的过程中,发现在dom节点上使用了ref="xxx"的使用,以前一直不知道该属性起着什么作用,因为一直忙着写项目. 这两天项目不忙了,有闲心来看别人做的项目了,就看 ...

  7. ERROR】Unable to open underlying table which is differently defined or of non-MyISAM type or ...

    Error: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn’t ...

  8. OpenStack组件——RabbitMQ消息队列

    1.MQ 全称为 Message Queue, 消息队列( MQ ) 是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们. 消息传 ...

  9. [xpath] 定位中starts-with、contains和text()的用法

    starts-with 顾名思义,匹配一个属性开始位置的关键字 contains 匹配一个属性值中包含的字符串 text() 匹配的是显示文本信息,此处也可以用来做定位用 eg //input[sta ...

  10. PTA(Basic Level)1026.程序运行时间

    要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间.这个时间单位是 clock ...