5G 通信为什么选择HTTP/2 协议?
Posted StreamCloudNative
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5G 通信为什么选择HTTP/2 协议?相关的知识,希望对你有一定的参考价值。
5G 是什么?
5G,是第五代移动通信技术(英语:5th generation mobile networks或5th generation wireless systems、5th-Generation,简称5G 或5G 技术)是最新一代蜂窝移动通信技术,也是继4G(LTE-A、WiMax)、3G(UMTS、LTE)和2G(GSM)系统之后的延伸。5G 的性能目标是高数据速率、减少延迟、节省能源、降低成本、提高系统容量和大规模设备连接。Release-15 中的5G 规范的第一阶段是为了适应早期的商业部署。Release-16的第二阶段已于2020 年7 月完成,作为IMT-2020 技术的候选提交给国际电信联盟(ITU)。ITU IMT-2020 规范要求速度高达20 Gbit/s,可以实现宽信道带宽和大容量MIMO。
5G 的三大场景:eMBB、uRLLC、mMTC
1.eMBB
“增强移动宽带”,就是以人为中心的应用场景,集中表现为超高的传输数据速率,广覆盖下的移动性保证等,这是最直观改善移动网速,未来更多的应用对移动网速的需求都将得到满足,从eMBB 层面上来说, 它是原来移动网络的升级,让人们体验到极致的网速。因此,增强移动宽带(eMBB)将是5G 发展初期面向个人消费市场的核心应用场景。
2.uRLLC
“高可靠低时延连接”,在此场景下,连接时延要达到1ms 级别,而且要支持高速移动(500KM/H)情况下的高可靠性(99.999%)连接。这一场景更多面向车联网、工业控制、远程医疗等特殊应用,这类应用在未来潜在的价值极高,未来社会走向智能化,就得依靠这个场景的网络,这些应用的安全性、可靠性要求极高。
3.mMTC
“海量物联”,5G 强大的连接能力可以快速促进各垂直行业(智慧城市、智能家居、环境监测等)的深度融合。万物互联下,人们的生活方式也将发生颠覆性的变化。这一场景下,数据速率较低且时延不敏感,连接覆盖生活的方方面面,终端成本更低,电池寿命更长且可靠性更高,真正能实现万物互联。
5G 的主要的三大场景源于现代社会化人类活动、工作、娱乐等等方面日新月异的需求的爆发式增长,这些涉及到人类活动的各行各业被称为垂直行业,由垂直行业必然催生所谓的万物互联的巨大需求。为了满足5G 万物互联的需求,通信人致力于对贯穿于5G 网络的基站、核心网、编排管理、传输等各部分的实现。对于核心网而言,基于传统CT 思维的设计模式显然已经不足以面向未来。因此,5G 核心网有了更方便更灵活引入垂直行业的架构,这就是提到的服务化架构SBA。
如果说从2/3G 到4G LTE 的演进是网络架构的最简化,那么从4G 到5G 的变革从总体上说就是灵活和多样化。
2/3G 到4G 网络结构演进
4G LTE 的无线接入网只有eNodeB(LTE中基站的名称),2/3G 时代的BSC/RNC 之类的都不复存在,所以4G 网络架构称为扁平化的网络结构,就是从无线侧来看所有的eNodeB 都隶属于统一的核心网EPC,所有的eUTRAN 设备(eNodeB)就是处于一个平面。这一方面是因为新的网络设备的处理能力已足够强大,不需要通过这样的单独的设备来处理基站控制或无线网络控制功能,同时这样做之后,不仅仅网络形态简单化,更加重要的和急需要的好处就是对于业务时延的极大的降低,对于4G 网络中的很多对时延敏感的业务比如VoLTE、大型游戏等提供了优良的网络性能的支持。另外对于信令系统的高效优化、对于网络维护的简化和可靠性提升都能体现新的网络的极大的优越性。
服务化的网络结构
(Service-Based Architecture,SBA)
服务化架构从形态上与传统的网络架构有明显的不同,网络实体或网元的相互连接有类似于总线的结构,也具有类似于以太网在网络层的连接特性。同时不同的还包括,在网络中用网络网元定义所对应的网络接口,称为“基于服务”(Service-Based) 的网络接口,以及不同网元之间定义了“参考点”(Reference Point),整个网络架构称作服务化结构(Service-Based Architecture,SBA)。
服务化架构是5G 核心网区别于传统核心网的显著差异,主要体现在以下几个方面特征:
1.传统网元被逐渐拆分
伴随着虚拟化技术运用在电信领域,传统意义上的核心网网元实现了软硬件解耦,软件部分被称为网络功能(Network Function)。3GPP 定义的服务化结构将一个网络功能进一步拆分成若干个自包含、自管理、可重用的网络功能服务,这些网络功能相互之间解耦,具备独立升级、独立弹性的能力,具备标准接口与其他网络功能服务互通,并且可通过编排工具根据不同的需求进行编排和实例化部署。这种网元拆分与我们经常谈论的云原生或微服务架构有着相似的理念,而3GPP 进行了标准化定义,并为每个5G 网络功能定义了一组具备对外互通标准接口的网络功能服务。
2.网络功能服务管理自动化
网络功能被拆分成多个网络功能服务后,维护工程师会从面对几个网元改变为面对几十个网络功能服务,如果仍然依靠传统核心网的手工维护方式,那对维护工程师而言无异于一场灾难。因此,5G 核心网的网络功能服务需要能够做到自动化管理。
3.网络通信路径优化
传统核心网的网元之间有着固定的通讯链路和通讯路径。例如在4G 网络中,用户的位置信息必须从无线基站上报给MME,然后由MME 通过S-GW 传递给P-GW,最终传递给PCRF 进行策略的更新。而在5G 核心网服务化架构下,各网络功能服务之间可以根据需求任意通讯,极大地优化了通讯路径。同样的以用户位置信息策略为例,PCRF 可以提前订阅用户位置信息变更事件,当AMF 中的网络服务功能检测到用户发生位置变更时,发布用户位置信息变更事件,PCRF 可直接实时接收到该事件,无需其他网络功能服务进行中转。
4.网络功能服务间的交互解耦
传统核心网网元之间的通讯遵循请求者和响应者的点对点模式,这是一种相互耦合的传统模式。5G 核心网架构下的网络功能服务间通讯机制进一步解耦为生产者和消费者模式,生产者发布相关能力,并不关注消费者是谁,在什么地方。消费者订阅相关能力,并不关注生产者是谁,在什么地方。这是一种从IT 业借鉴过来的通讯模式,非常适用于通讯双方的接口解耦。
5G 核心网的服务化架构是5G 时代在网络架构方面的一个重大变革,具备灵活可编排、解耦、开放等传统网络架构所无法比拟的优点,是5G 时代迅速满足垂直行业需求的一个重要手段。核心网的黑盒子已经被打开,依托于服务化架构的5G 核心网,移动通信网络一定会在未来的万物互联之路上展现出巨大的能力。
引入服务化的网络结构的优势
从第一代到第四代移动通信技术,围绕的都是人与人之间的通信,而在如今的网络直播、虚拟现实、4K 视频逐渐普及的大环境下,用户对于网络的要求也是越来越高,要满足用户不断增长的网络需求,一个带宽更高、时延更低、覆盖更广的移动网络必不可少,而5G 正是一个能够满足这些需求的网络。除了人与人之间的通信,5G 更重要的目标是万物互联。4G 已经改变了人类的生活方式,5G 将改变社会的生产模式。
5G 将会应用到什么HTTP 相关技术呢?
HTTP/2
JSON
HATEOAS
RESTful
OpenAPI
HTTP/1 和HTTP/2 的区别
1. Http1.x
缺点:
线程阻塞,在同一时间,同一域名的请求有一定数量限制,超过限制数目的请求会被阻塞。
2. Http1.0 (短连接)
缺点:
浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP 连接(TCP连接的新建成本很高,因为需要客户端和服务器三次握手),服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。
解决方案:
添加头信息——非标准的Connection 字段Connection: keep-alive。
3. Http1.1
改进点:
持久连接(与Http1 其它版本的最大区别),引入了持久连接,即TCP 连接默认不关闭,可以被多个请求复用,不用声明Connection: keep-alive (对于同一个域名,大多数浏览器允许同时建立6 个持久连接)。
管道机制,即在同一个TCP 连接里面,客户端可以同时发送多个请求。
分块传输编码,即服务端每产生一块数据,就发送一块,采用”流模式”而取代”缓存模式”。
新增请求方式:
PUT:请求服务器存储一个资源;
DELETE:请求服务器删除标识的资源;
OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求;
TRACE:请求服务器回送收到的请求信息,主要用于测试或诊断;
CONNECT:保留将来使用
缺点:
虽然允许复用TCP 连接,但是同一个TCP 连接里面,所有的数据通信是按次序进行的。服务器只有处理完一个请求,才会接着处理下一个请求。如果前面的处理特别慢,后面就会有许多请求排队等着,这将导致“队头堵塞”。
解决方案:
1.减少请求数
2.是同时多开持久连接
HTTP/2 介绍
HTTP/2 是 HTTP 协议自 1999 年 HTTP 1.1 发布后的首个更新,主要基于 SPDY 协议。由互联网工程任务组(IETF)的 Hypertext Transfer Protocol Bis(httpbis)工作小组进行开发。该组织于2014年12月将HTTP/2 标准提议递交至IESG进行讨论,于2015 年2 月17 日被批准。HTTP/2 标准于2015 年5 月以RFC 7540 正式发表。
HTTP/2 到底有哪些具体变化呢?
基本概念:
数据流stream:已建立的连接内的双向字节流,可以承载一条或多条消息。
消息message:与逻辑请求或响应消息对应的完整的一系列帧。
帧frame:HTTP/2 通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流。
这些概念的关系总结如下:
所有通信都在一个 TCP 连接上完成,此连接可以承载任意数量的双向数据流。每个数据流都有一个唯一的标识符和可选的优先级信息,用于承载双向消息。每条消息都是一条逻辑 HTTP 消息(例如请求或响应),包含一个或多个帧。帧是最小的通信单位,承载着特定类型的数据,例如 HTTP 标头、消息负载,等等。来自不同数据流的帧可以交错发送,然后再根据每个帧头的数据流标识符重新组装。
HTTP/2 新特性
1.二进制传输
HTTP/2传输数据量的大幅减少,主要有两个原因:以二进制方式传输和Header 压缩。先来介绍一下二进制传输,HTTP/2 采用二进制格式传输数据,而非HTTP/1.1 里纯文本形式的报文 ,二进制协议解析起来更高效。HTTP/2 将请求和响应数据分割为更小的帧,并且它们采用二进制编码。HTTP/2所有性能增强的核心在于新的二进制分帧层,它定义了如何封装http消息并在客户端与服务器之间传输。
2.Header 压缩
HTTP/1.1 的header 带有大量信息,而且每次都要重复发送,HTTP/2 并没有使用传统的压缩算法,而是开发了专门的”HPACK” 算法,在客户端和服务器两端建立“字典”,用索引号表示重复的字符串,还采用哈夫曼编码来压缩整数和字符串,可以达到50%~90% 的高压缩率。
3.多路复用
多路复用允许同时通过单一的HTTP/2 连接发起多重的请求-响应信息,很好的解决了浏览器限制同一个域名下的请求数量的问题,同时也更容易实现全速传输。
4.请求优先级设置
HTTP/2 里的每个stream 都可以设置依赖和权重,可以按依赖树分配优先级,解决了关键请求被阻塞的问题。
5.流量控制
多路复用的流会竞争 TCP 资源,进而导致流被阻塞。流控制机制确保同一连接上的流不会相互干扰。流量控制作用于单个流或整个连接。HTTP/2 通过使用WINDOW_UPDATE 帧来提供流量控制。
流控制具有以下特征:
流量控制是特定于连接的。两种级别的流量控制都位于单跳的端点之间,而不是整个端到端的路径。
流量控制是基于WINDOW_UPDATE 帧的。接收方公布自己打算在每个流以及整个连接上分别接收多少字节。这是一个以信用为基础的方案。
流量控制是有方向的,由接收者全面控制。接收方可以为每个流和整个连接设置任意的窗口大小。发送方必须尊重接收方设置的流量控制限制。客户方、服务端和中间代理作为接收方时都独立地公布各自的流量控制窗口,作为发送方时都遵守对端的流量控制设置。
无论是新流还是整个连接,流量控制窗口的初始值是65535 字节。
帧的类型决定了流量控制是否适用于帧。目前,只有DATA 帧会受流量控制影响,所有其它类型的帧并不消耗流量控制窗口的空间。这保证了重要的控制帧不会被流量控制阻塞。
流量控制不能被禁用。
HTTP/2 只定义了WINDOW_UPDATE 帧的格式和语义,并没有规定接收方如何决定何时发送帧、发送什么样的值,也没有规定发送方如何选择发送包。具体实现可以选择任何满足需求的算法。
支持HTTP/2 协议的开发框架
总结
本文主要介绍了HTTP/2 协议在5G 核心网系统内的应用,目前,HTTP/2 很好的解决了当下最常用的 HTTP/1.1 所存在的一些性能问题,HTTP/2 协议在各厂的业务系统中开始逐渐被广泛应用,计划替代HTTP/1.1 协议,这对开发者而言,也提出了更高的要求,包括:HTTP/2 的分帧处理、升级协商、多路复用等。在测试工具方面,支持HTTP/2 协议的工具也相对较少,像常用的Postman 工具也不支持HTTP/2 协议,所以推荐使用cURL 和JMeter 工具。
引用的链接:
http://www.360doc.com/content/19/0213/21/911173_814762437.shtml
http://www.360doc.com/content/19/0213/21/911173_814763008.shtml
https://www.cnblogs.com/confach/p/10108437.html
对技术感兴趣的朋友,可以通过下面的二维码关注我,谢谢!
以上是关于5G 通信为什么选择HTTP/2 协议?的主要内容,如果未能解决你的问题,请参考以下文章