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 ...
随机推荐
- 浅谈JavaScript异步编程
单线程模式 我们知道JS的执行环境是单线程的,是因为JS语言最早是运行在浏览器端的语言,目的是为了实现页面上的动态交互.实现动态交互的核心就是DOM操作,因此决定了JS必须是单线程模式工作.我们来假设 ...
- 客户端负载均衡Ribbon
客户端负载均衡Ribbon 一.Ribbon是什么 二.Ribbon实现客户端负载均衡 三.Ribbon负载均衡策略 四.Rest请求模板类解读 4.1 RestTemplate的GET请求 第一种: ...
- Linux常用命令详解(第三章)(ping、kill、seq、du、df、free、date、tar)
本章命令(共7个): 1 2 3 4 5 6 7 8 ping kill seq du df free date tar 1." ping " 作用:向网络主机发送ICMP(检测主 ...
- C语言之数据在内存中的存储
C语言之数据在内存中的存储 在我们学习此之前,我们先来回忆一下C语言中都有哪些数据类型呢? 首先我们来看看C语言中的基本的内置类型: char //字符数据类型 short //短整型 int //整 ...
- Linux 防火墙相关操作
目录 1.查看防火墙状态 2.部署防火墙 3.常用操作 4.其他操作 1.查看防火墙状态 systemctl status firewalld 绿字部分 Active:active(running) ...
- SparkCore2
二.RDD编程 2.5 RDD中的函数传递 在实际开发中我们往往需要自己定义一些对于RDD的操作,那么此时需要主要的是,初始化工作是在Driver端进行的,而实际运行程序是在Executor端进行的, ...
- AcWing 250 磁力快(分块)
题目传送门 在一片广袤无垠的原野上,散落着N块磁石. 每个磁石的性质可以用一个五元组(x,y,m,p,r)描述,其中x,y表示其坐标,m是磁石的质量,p是磁力,r是吸引半径. 若磁石A与磁石B的距离不 ...
- Educational Codeforces Round 20
Educational Codeforces Round 20 A. Maximal Binary Matrix 直接从上到下从左到右填,注意只剩一个要填的位置的情况 view code //#pr ...
- 最大子阵 DP or 前缀和orb暴力 能过
在一个给定的n*m二维矩阵中求一个子矩阵元素和的最大值. 思路: 1:一个二维矩阵由两个点可以确定,枚举两个点,取子矩阵最大值. 2:在一维矩阵中,求一个序列的最大子段,利用 f[i]=max(f[i ...
- 2020 ICPC Asia Taipei-Hsinchu Regional Problem B Make Numbers (dfs搜索)
题意:给你四个数字,你可以用这四个数字凑出四个1位数,一个2位数和两个1位数,或一个3位数和一个1位数,你可以用你凑出的数字进行\(+,-,x\)运算(所有运算符号至少出现一次),问你一共能得到多少个 ...