栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

5GC基础自学系列 | 5GC协议系列之SBI接口HTTP2

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

5GC基础自学系列 | 5GC协议系列之SBI接口HTTP2

视频来源:51学通信《5G核心网基础、协议与信令流程》

一边学习一边整理老师的课程内容及试验笔记,并与大家分享,谢谢支持!

附上汇总贴:5G基础自学系列 | 汇总


主要内容

介绍SBI接口的协议HTTP2特点

介绍HTTP2协议与HTTP 1.1t协议的优势对比

多路复用、头压缩、服务推送、二进制传输等

介绍HTTP 2协议基本概念、帧结构

HTTP 2协议的主要方法与举例

SBI接口Restful风格介绍

5GC中SBI接口资源API介绍与举例

5G协议总览

HTTP版本演进

HTTP2 vs HTTP1.1暨主要优势

HTTP 2和HTTP 1.1的相同点:

继承了HTTP 1.1的大部分业务功能和方法(如GET、POST等)都支持明文或加密形式(即HTTPs) 传输。但在传送效率上有很大提升。

HTTP2和HTTP 1.1的不同点:

HTTP2协议基本概念和关系

帧:HTTP/2数据通信的最小单位, 指HTTP/2中逻辑上的HTTP消息。例如请求和响应等,消息由一个或多个帧组成。

流:存在于连接中的一个虚拟通道。流可以承载双向消息,每个流都有一个唯一的整数ID。

连接:即TCP连接。通过TCP三次握手建立。

HTTP2协议之帧格式

Length(24) :帧数据部分的长度, 不包括头部,头部长度固定为9字节(24+8+8+1+31=72位)Type(8) :区分帧数据存储的是Header还是Body,HTTP/2新定义了一些其它Type, 可参考RFC 7540Flags(8) :共8位, 每位都起标记作用。每种不同的frame Type都有不同的frame FlagsR(1):保留位Stream Identifier:流ID。流的标识。ID为0的流用于初始化

HTTP2协议的数据传送暨多路复用

HTTP/2采用二进制格式传输数据, 而非HTTP 1.x的文本格式,二进制协议解析起来更高效。

HTTP/1的请求和响应报文, 都是由起始行, 首部和实体正文(可选) 组成,各部分之间以文本换行符分隔。

HTTP/2将请求和响应数据分割为更小的帧传送。多个帧之间可以乱序发送,根据帧首部的流标识可以重新组装。

Wireshark过滤HTTP2流实战

本例通过服务器的IP地址(因为我这个pcap访问了很多http 2网站)+ (http 2.stream id==1)这两个条件,就把属于这个ID为1的流的请求/响应消息对过滤出来了。

HTTP2特性之:服务器推送

服务端可以在发送页面HTML时主动推送其它资源, 而不用等到浏览器解析到相应位置, 发起请求再响应。例如服务端可以主动把JS和CSS文件推送给客户端, 而不需要客户端解析HTML时再发送这些请求。

HTTP 2专门定义了PUSH_PROMISE帧类型用于推送数据给客户端

HTTP2特性之:头压缩

HTTP 2采用HPACK有效的压缩HTTP头部字段。而HTTP 1.1头部字段未压缩

原理:维护一份字典索引表,实际传输时只传输对应索引

如2表示method=GET,5表示path=/index.html等。

HTTP2数据部分之JSON

HTTP 2的数据部分通过DATA帧携带, 采用JSON的格式来传送用户数据。

JSON(Javascript Object Natation) 特点:

一种轻量级的数据交换格式、和XML一样,基于纯文本的数据格式可以表达String、Number、Boolean、数组、甚至对象等数据采用键值(Key-Value)对的形式表示数据。

JSON基本语法:

对象用{} 包含一系列无序的Key-Value键值对表示, 其中Key和Value之间用冒号分割, 每个key-value之间用逗号分割。允许数据嵌套。嵌套用的数组用方括号[]表示。

举例:

5GC中的HTTP会话

常见方法:

POST:新建PUT/PATCH:更新GET:获取DELETE:删除

常见状态码:

1xx - Informational2xx - Successful

200 OK-[GET] :服务器成功返回用户请求的数据。201 CREATED-[POST/PUT] :用户新建或修改数据成功。204 NO CONTENT-[DELETE] :用户删除数据成功。400 INVALID REQUEST-[POST/PUT] :用户发出的请求有错误。401 Unauthorized:表示用户没有权限403 Forbidden:表示用户得到授权(与401错误相对) , 但是访问是被禁止的。404 NOTFOUND:用户发出的请求的是不存在的记录。500 INTERNAL SERVER ERROR-:服务器错误

3xx - Redirection4xx - Client Error5xx - Server Error

数据部分:

JSON来携带(键值对形式)只有GET或POST方法时才会返回 SBI接口使用的Restful API概述

虽然5GC和互联网很多网站都使用了HTTP 2, 但有着很大的不同。最大的不同就是SBI接口上HTTP 2遵循Restful的API格式。

REST(Representational State Transfer) :是一种架构风格或模式,符合以下特点的就可以叫REST风格或RESTful:

网络上的所有事物都被抽象为资源, 每个资源对应一个唯一的资源标识URI通过HTTP协议(1.1或2均可)方法作连接器对资源进行操作对资源的任何操作不改变资源标识URI所有的服务器操作都是无状态的

注:

资源包括:图片、文本、声音或者是UDM里签约数据。资源API举例:

/nudm-sdm/v1/imsi-4600x123456789/am-data表示某用户的接入管理签约数据

/nudm-sdm/v1/imsi-4600x123456789/sm-data表示某用户的会话管理签约数据

5GC中的资源URI的结构

一个资源唯一对应一个URI

5GC SBI资源API结构在29501中定义, 格式是:

{apiRoot}/{apiName}/{apiVersion}/{apiSpecificResourceUriPart} ,其中:

apiRoot:http(s)://host(:port)apiName: API的名字。也就是是SBI服务的名字, 如namf-commapiVersion: 版本号。如v1apiSpecificResourceUriPart: 资源部分。

资源API举例:

举例:SMF的资源URI结构

SMF的资源API在29502中定义。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/782026.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号