SPEC-RFC3261总述
最近学习VoLTE(Voice Vver LTE)相关知识,而学习VoLTE必须要学相关的协议,最基础的就是RFC3261,RFC3261的全称是:SIP: Session Initiation Protocol,英文翻译就是会话初始协议。
SIP协议并不提供通话的数据传输的具体工作,主要是用在数据传输之前的会话建立阶段,例如我们进行手机通话时,首先我们的手机得先注册到手机附近运营商的基站上,然后得拨下对方的电话号码,然后通过手机基带芯片将信息传输出去,然后到运营商的基站去查询对方的地址,然后与对方建立连接,当拨号信息从UEA到达UEB对端准备好了接听电话,注意此时UEB端手机开始响铃,但还没有接听,UEA端开始听的铃声,如果开通了彩信也就是如果具有回铃音我们此时在UEA端能够听到歌曲。
在前面的描述中我们看到了:
1、一个信息的流动即从UEA到UEB,其实整个过程还有从UEB到UEA的流动,类似于TCP的握手,SIP协议也有一个发起和应答的机制,即UEA发起一个动作UEB会产生一个应答。
2、在开始拨打电话到对方接听电话,这段时间或者说通话这个动作需要一个协调双方的协议,这个协议就是SIP协议,所以说SIP协议主要是对会话建立进行协商和规范。但是很多初学者容易搞混淆的地方是,必须要明白SIP协议它不负责后面的语音数据如何传输,双方的编解码如何协调,它只是负责会话的发起,会话的结束,会话单播到多播或者会议电话的建立。
3、要完成一次VoLTE通话,仅仅有SIP协议是不够的。就如第二点所讲,数据的传输需要有一个实时的数据传输协议、编解码的协调需要一个协议,所以SIP协议通常会与RTCP和SDP协议共同工作完成一次数据的传输。
前面在讲SIP协议,突然又说到VoLTE这个可能会让很多人搞不清楚,SIP是什么,VoLTE又是什么,其实要了解这些概念,需要去了解我们的移动通信的发展从2G-4G,马上又要进入5G时代,这些不断进步的技术带来了很多新的概念,当然我得澄清一下SIP是先于VoLTE产生。我们通常讲2-3G是CS call,通话数据的传输和网络数据的传输是分成两个通道的,即通话数据走CS(电路交换)通道,网络数据走PS(分组交换)通道。但是在4G时代没有CS、PS通道的区分了,所有的数据都走PS通道,意思就是我们通话时的数据也和浏览网页产生的数据一样都是通过分组交换实现,这些数据最终都会通过TCP/IP协议借助LTE 4G网络进行传输,这个就是目前VoLTE的一个简单的技术路线,当然要弄清楚这个还需要看很多的协议,最主要的就是IR.92,这个是VoLTE和IMS的提纲挈领的协议,整个IR.92文档内容不多但是是一个总体介绍。
前面作为了将SIP的一个铺垫,当然要想了解VoLTE可以看这个网页链接,它讲的很详细:http://www.360doc.cn/article/2909773_637471256.html。下面开始介绍SIP协议:
如下图所示我们将通话双方分为UEA(Alice)、UEB(Bob),图为前面讲的通话接通这个过程SIP协议流程,图为从SIP 3261所截。我们将一个SIP协议讲成SIP Message,如图中Alice发出INVITE请求即发起通话的请求,这个INVITE动作就是一个SIP message,每一个SIP message由一下几部分组成:
generic-message = start-line
*message-header
[ message-body ]
start-line = Request-Line / Status-Line
主要由Request-Line由method和状态码(1xx、2xx、3xx、4xx、5xx)组成,method方法在RFC3261中有:INVITE、ACK、BYE、REGISTER、CANCEL、BYE。
SPEC-RFC3261总述的更多相关文章
- Java的多线程机制系列:(一)总述及基础概念
前言 这一系列多线程的文章,一方面是个人对Java现有的多线程机制的学习和记录,另一方面是希望能给不熟悉Java多线程机制.或有一定基础但理解还不够深的读者一个比较全面的介绍,旨在使读者对Java的多 ...
- 三国杀3v3心法——总述篇
昔日,独孤求败前辈精研剑法,将其中奥妙化为独孤九剑,破尽天下武功.其中开篇总诀式提纲挈领,从宏观的层面阐述剑道,是领悟后面八式的基石,而之后各式则深入微观,可各破一类具体的武功.笔者亦曾苦心研究三国杀 ...
- Web应用程序系统的多用户权限控制设计及实现-总述【1】
中大型的Web系统开发均需要权限的配置,基于多角色,多用户的操作权限管理是一个系统开发的基础.搭建好一套权限,用户,角色,页面一体的开发架构,可以用于后期业务的开发,同时也可用于不同业务的系统开发. ...
- Linux makefile教程之总述二[转]
Makefile 总述——————— 一.Makefile里有什么? Makefile里主要包含了五个东西:显式规则.隐晦规则.变量定义.文件指示和注释. 1.显式规则.显式规则说明了,如何生成一个或 ...
- Solr4.8.0源码分析(5)之查询流程分析总述
Solr4.8.0源码分析(5)之查询流程分析总述 前面已经写到,solr查询是通过http发送命令,solr servlet接受并进行处理.所以solr的查询流程从SolrDispatchsFilt ...
- 很详细、很移动的Linux makefile教程:介绍,总述,书写规则,书写命令,使用变量,使用条件推断,使用函数,Make 的运行,隐含规则 使用make更新函数库文件 后序
很详细.很移动的Linux makefile 教程 内容如下: Makefile 介绍 Makefile 总述 书写规则 书写命令 使用变量 使用条件推断 使用函数 make 的运行 隐含规则 使用m ...
- STL特性总述——写在前面
所谓的容器,见名知意,容纳其他数据的"器具": 特点 1)支持泛型: 2)保存副本:本质上传入对象的拷贝. 3)内存托管 :构建对象于堆,无需人工干预,自动管理内存的生存周期. S ...
- [转] Makefile 基础 (2) —— Makefile 总述
该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神博客:(最原始版本) http://blog.csdn.net/haoel/article/details/2886 我转自 ...
- 基于ASP.Net Core开发一套通用后台框架记录-(总述)
写在前面 本系列博客是本人在学习的过程中搭建学习的记录,如果对你有所帮助那再好不过.如果您有发现错误,请告知我,我会第一时间修改. 前期我不会公开源码,我想是一点点敲代码,不然复制.粘贴那就没意思了. ...
- 自顶向下深入分析Netty(七)--ChannelPipeline和ChannelHandler总述
自顶向下深入分析Netty(七)--ChannelPipeline和ChannelHandler总述 自顶向下深入分析Netty(七)--ChannelPipeline源码实现 自顶向下深入分析Net ...
随机推荐
- Centos7安装成功后,网卡配置及更改镜像地址为国内镜像
Centos7安装成功后,网卡配置及更改镜像地址为国内镜像 一.网卡配置 二.修改网络配置 踩坑一:IPADDR 踩坑二:网关,DNS与本地不一致 重启网络服务 三.镜像修改为aliyun 四.相关知 ...
- centos设系统置语言为中文
[root@host /]# vim /etc/sysconfig/i18n #i18n 是 internationalization 的缩写形式,意即在 i 和 n 之间有 18 个字母,本意是指软 ...
- java身份证号校验
package com.pt.modules.contract.utils; import java.text.ParseException; import java.text.SimpleDateF ...
- 1.VLAN
1.定位:VLAN,即虚拟局域网(Virtual Local Area Network),一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的新兴数据交换技术.VLAN是将一个物理的LAN在 ...
- hdu5289 Assignment
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission ...
- AtCoder Beginner Contest 170 D - Not Divisible (数学)
题意:有一长度为\(n\)的数组,求该数组中有多少元素不能整除其它任一元素的个数. 题解:刚开始写了个分解质因数(我是傻逼),后来发现直接暴力枚举因子即可,注意某个元素出现多次时肯定不满足情况,再特判 ...
- 列表解析式 -- Python
列表解析的语法:[expr for iter_var in iterable], 它迭代iterable对象的所有条目.其中的expr应用于序列的每个成员,最后的结果值是该表达式产生的列表,迭代变量并 ...
- CF1401-C. Mere Array
CF1401-C. Mere Array 题意: 给出一个长度为\(n\)的数组\(a\),你可以对这个数组进行如下操作:对于数组\(a\)中任意的两个元素\(a_i\).\(a_j\),若\(gcd ...
- k8s二进制部署 - node节点安装
创建kubelet配置 • set-cluster # 创建需要连接的集群信息,可以创建多个k8s集群信息 [root@hdss7-21 ~]# kubectl config set-cluster ...
- 在kubernetes集群里集成Apollo配置中心(5)之dubbo服务消费者连接apollo实战
1.在Apollo的portal创建dubbo消费者项目 (1)添加dubbo消费者项目 (2)在dubbo消费者项目中添加配置项 (3)发布 2.通过jenkins构建dubbo消费者镜像 3.登录 ...