阐述:SIP协议是什么
sip协议是什么?可能刚刚接触这个协议的朋友会掌握不好它的定义。那么首先我们要了解一下,目前企业中大多数VoIP应用都使用H.323协议,但是,随着越来越多的企业研究SIP协议,不久的将来基于SIP协议的VoIP必将迅速发展.那么在了解sip协议是什么之前,我们先来看看H.323协议的定义。
H.323协议簇
1.1基本概念
H.323是ITU-T第16工作组的建议,H.323由一组协议构成,其中有负责音频与视频信号的编码、解码和包装,有负责呼叫信令收发和控制的信令,还有负责能力交换的信令.1999年7月前,多数系统是基于H.323第二版的,而在此之后,H.323第三版开始应用.H.323是个框架性的协议,由系列协议组成,包括:H.225、H.245、G.711、G.723.1、G.729等.
1.2基本功能
目前我国网上使用的H.323协议基本上是第二版本的.针对信令方面主要为H.225、H.245.
1.2.1H.225协议的功能
(1)RAS信令功能:就是采用H.225中的消息在端点和网守之间实现注册、接入许可、带宽修改、状态和拆除程序.
(2)呼叫信令功能:采用H.225呼叫信令在H.323端点之间建立连接,包括呼叫建立和拆除等流程.
1.2.2H.245协议的功能
(1)控制功能:H.245控制功能采用H.245控制通路交换端到端控制信息,从而保证H.323实体的运作,其中包括能力交换、打开/关闭逻辑通路模式选择、流控消息、一般命令和指示.H.245信令在两个端点和一个网守之间建立.端点必须为其参与的每个呼叫建立正确的H.245控制通路,这个通路必须使用H.245消息和流程.
(2)H.245的能力交换:指提供独立的接收和传送功能.
(3)逻辑通路信令.每个逻辑通路承载从一个发送方至另一个或多个接收方的信息.
(4)模式选择.接收方可以使用requestMode消息请求发送方发送一个特定模式.
(5)主从决定.主从决定主要是解决冲突问题.
好了,到这里,大家爱应该能够清楚H.323等一系列协议的内容了,那么这里我们就具体讲解一下sip协议是什么。
SIP协议
2.1基本概念
SIP(SessionInitiationProtocol,会话发起协议)是由IETF提出的IP电话信令协议.它的主要目的是为了解决IP网中的信令控制,以及同软交换的通信,从而构成下一代的增值业务平台,对电信、银行、金融等行业提供更好的增值业务.其结构图如图1所示.
2.2基本功能
SIP的基本功能有5种:用户定位、用户能力、用户可用性、呼叫建立和呼叫处理.
2.3SIP组件
2.3.1体系结构
SIP是基于客户机/服务器结构的.基本分为用户代理和网络服务器,网络结构如图2所示.
(1)用户代理:用户代理客户端、用户代理服务器.
(2)网络服务器:代理服务器、重定向服务器、注册服务器、位置服务器.
2.4SIP消息
SIP消息分为两大类:请求和响应.响应又分为最终响应和临时响应.
2.4.1请求消息
请求消息分为6种:INVITE、ACK、BYE、CANCEL、REGISTER和OPTIONS.
2.4.2响应消息
响应消息分为6类:1xxInformational(通知)、2xxSuccessful(成功)、3xxRedirection(重定向)、4xx Request Failure(请求失败)、5xx Server Failure(服务失败)、6xx Global Failures(全局错误).
2.5SIP操作
SIP操作包括:SIP服务器定位、SIP事务、SIP邀请、用户定位和注册服务.
2.5.1SIP服务器定位
客户在发起呼叫时,需要将请求发送到本地配置的独立于Request-URI的SIP服务器或者由Request-URI标识的IP地址和端口.
2.5.2SIP事务
一个SIP事务存在于一个客户与一个服务之间,由所有的(从最初的请求到最后的应答)消息组成.
一个事务只对应于一个呼叫,由Call-ID标识.所有对于一个请求的应答都包含相同的Call-ID、CSeq、To、From域(或其他包含的值).客户机与服务器之间的每一个Call-ID只能有一个未结束的事务.
2.5.3SIP邀请
SIP会话由INVITE方法发起,通常情况下,INVITE包括会话描述(一般使用SDP格式),为被叫提供足够的会话信息;如果被叫同意加入会话,主叫就发送ACK方法确认呼叫成功;如果被叫拒绝加入会话或产生其他错误,主叫则发送BYE方法指示呼叫失败.
2.5.4SIP用户定位
考虑到用户可以在不同终端移动,SIP提供了定位功能.用户可以在SIP服务器或位置服务器注册其位置信息,一个用户可以注册到不同的位置.位置服务器可以采用其他协议.位置服务器可以解析出零个或多个可能位置,这些位置可以按照成功访问的概率来存储.
2.5.5SIP注册服务
用户在发起会话前,首先应到注册服务器注册.注册使用REGISTER方法.注册服务器通常将用户注册的地址信息保存在位置服务器,这样使代理服务器或者重定向服务器就知道那些地址是可以到达的.注册信息是随时刷新的(默认周期是1h),所以用户每隔一段时间都应主动注册.注册服务一般伴随其他功能,如提供用户鉴权功能,或者通过注册服务安装呼叫处理程序或第三方应用.
2.5.6改变现有会话
当需要改变现有会话参数的时候,可以通过重发INVITE来实现.重发INVITE时应该使用相同的Call-ID,但使用新的或不同的消息头或消息体来传送新的信息.这条再次发送INVITE必须比以前的请求拥有高的CSeq.
2.6SIP的注册服务与鉴权
SIP注册服务的目的是使SIP客户机能够使用SIP服务器提供的服务,或使之失效.在注册请求中,客户机将提供包含在Contact域中的一个或几个地址给注册服务器.这样代理服务器就可以使用注册信息进行IP电话的路由.同时,注册也可以提供鉴权服务.如果不提供鉴权服务,冒名顶替者就可以截听任何人的电话.
H.323与SIP的比较
首先进行类比的是,SIP的UA等价于一个H.323的终端(或者包交换网络侧的网关),SIP服务器则等价于H.323的网守.另外,SIP类似H.323中的RAS和Q.931协议,而SDP则相当于H.245.在IETF的SIP体系结构中,媒体流的承载采用了RTP协议,这是和H.323一样的.所以,H.323与IETF的SIP主要的不同在于呼叫信令和控制是如何实现的.
3.1基本呼叫的建立和拆除
H.323第二版的呼叫建立是基于可靠的传输协议,所以呼叫建立需要两个连接阶段:TCP连接和呼叫连接.而在H.323第三版,支持TCP和UDP,它简化了呼叫建立过程.SIP的呼叫建立类似H.323第三版的处理过程,用INVITE信息包(可建立在UDP上).呼叫拆除的过程与呼叫建立相反,主叫和被叫都能通过RELEASE[COMPLETE](H.323中用)或BYE(SIP中用).
3.2呼叫控制业务
SIP和H.323都支持呼叫保持、呼叫转移、呼叫前转、呼叫等待、电话会议和其他补充业务.以呼叫保持为例:H.323定义了近点呼叫保持和远点呼叫保持两种保持业务的场景,两者都可带网守或不带.网守仅仅透明地传送SS-HOLD.而SIP实现同样的功能,只要向需要呼叫保持的一方发送一个更改了SDP描述的INVITE命令即可.更改的SDP描述段仅将媒体发送的目的地址变为空<0.0.0.0>,而其他的内容不变.收到该用户的UA,让呼叫保持,直到有新的INVITE到来为止.
3.3SIP的第三方控制
第三方控制是指不参与会话的第三者具有建立呼叫的能力,这个业务特征目前只有SIP具有,由于SIP的这一特性,ITU-T和IETF在实现PINT(IN和因特网互通)业务时都采用了SIP协议.能力交换的就是彼此交流各自对媒体流的处理能力,确定双方共有的能力,从而确保多媒体信号被双方接受.H.323采用H.245协议进行能力交换.SIP使用SDP来进行能力交换,主叫方使用一个OPTION需求去找出被叫,当前,SIP还不如H.245有完整灵活的协商能力,因为受制于SDP的表达方式.
3.4服务质量
服务质量包含很多不同方面的指标,一个和多媒体流相关的QoS参数包括带宽、最大时延、时延抖动和包丢失率等.本文仅从考察呼叫建立时延和环路检测进行比较.
1.呼叫建立时延
H.323第一版在呼叫建立时时延很大.第二版大大改进,而第三版则更好.SIP在呼叫建立时非常类似于H.323第三版,然而,如果UDP呼叫建立失败,则H.323第三版要好于SIP,H.323第三版几乎同时建立一个UDP的连接和一个TCP连接,它提供一个有效的机制,如果UDP连接成功则关闭TCP连接;否则,立刻启用TCP.SIP是顺序地操作UDP和TCP,如果UDP失败,则会增加呼叫建立时延.对于H.323如果网络质量比较好的情况下,TCP连接就浪费了.
2.环路检测
为防止环路,H.323定义PathValue域来指出信令信息在丢弃前可达到的最大数目.问题是定义一个适用的值很关键.其次,网络变化后,这个值也要改.SIP采用了via头字段,检查其内容,如果新端点已出现在via列表中,则表示有环路了.SIP的方法好于H.323.但是via要占用很多空间.
3.5实现的难易性
H.323信令信息是符合ASN.1的二进制编码.需要特殊的编解码器.SIP信息是基于文本的,采用ISO10646以UTF-8编码.基于文本的编码很容易用Java、TCL和Perl等语言来实现,调试方便.
总结
综上所述,大家都应该知道sip协议是什么了。SIP协议由于其简单、易于扩展、便于实现等诸多优点越来越得到通信业界的青睐,正在成为NGN(下一代网络)的核心协议之一,而且SIP协议已经被3GPP工作组定义为第三代移动通信系统的信令协议以提供IP多媒体服务.虽然SIP协议目前还不完善,但SIP协议必将促进未来网络通信的迅猛发展.
转自:http://www.educity.cn/net/1405063.html
阐述:SIP协议是什么的更多相关文章
- 深入浅出SIP协议
传统电话是电磁波的通信,当电话技术发展到IP技术时代,SIP协议成为了电话通信标准协议,不仅可以通电话.还可以收发信息.视频.开会.放PPT.事实上,今天的通信业已全面采用SIP协议作为通信标准,无论 ...
- 流媒体学习二-------SIP协议学习(基本场景分析 )
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.SIP业务基本知识 1.1 业务介绍 会话初始协议(Session Initiation Protocol) ...
- 基于GBT28181:SIP协议组件开发-----------第三篇SIP注册流程分析实现
原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3941172.html,qq:1269122125. 上两章节简要的 ...
- 基于GBT28181:SIP协议组件开发-----------第四篇SIP注册流程eXosip2实现(一)
原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3945294.html. 上章节讲解了利用自主开发的组件SIP组件l ...
- 基于GBT28181:SIP协议组件开发-----------第二篇SIP组件开发原理
原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3937590.html,qq:1269122125. 上一节中讲的S ...
- 基于GBT28181:SIP协议组件开发-----------第一篇环境搭建
原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3930018.html,qq:1269122125. SIP协议在安 ...
- SIP协议搭建电信级VOIP/IM运营平台--架构篇(sip集群)
移动互联网的发展为整个VOIP通信行业开拓了新的战场,一时间各类即时通信软件如雨后春筝般冒了出来,再一次创造了移动互联网的发展神话.SIP协议做为音视频通信的首选标准,应用也越来越广泛. ------ ...
- SIP协议简单介绍
sip协议是由IETF提出的IP电话信令协议,主要目的是为了解决ip网络中的信令控制,以及同软交换通信. sip协议类似http协议: 报文结构: start-line message-header ...
- sipp模拟电信运营商VoIP终端测试(SIP协议调试)
三大运营商都有SIP服务器,用来支持语音对讲,多媒体调度等功能,他们的平台可能不是标准的SIP协议会话. 为了应对没完没了的对接各个厂商的平台,这里再整理了一套协议脚本,毕竟全都是没有意义的无用功,标 ...
随机推荐
- SQL Server 的动态语句(SQLServer 的String.format用法)(SQLServer的调用SQL占位符的使用)
直接上代码好了: --建表语句if exists(select 1 from [你的测试数据库名字].sys.tables where name='TDepartment') BEGIN print ...
- 开发集成工具MyEclipse中Outline的问题
序言 不懂的多查,越查就越显得自己的无知,越发现大神的存在,可能相对于我来说是大神,在他那个高度,就觉得自己很菜,这些都正常,最值得敬佩的是,比你厉害的人,还比你更努力,那自己还有什么理由不努力呢,如 ...
- IOS 启动画面和图标设置(适配IOS7 and Xcode5)
关于IOS程序设置启动画面以及图标的设备目前主要为:IPhone设备 和IPad设备 IPhone启动画面以及图标的设置 目前IPhone的分辨率为:320X480.640X960.640X1136. ...
- Daemontools和Supervisor管理linux常驻进程
linux主要使用supervise来管理常驻进程.基于supervise的两个比较重要的工具是Daemontools和Supervisor. 实际上,supervise也算Daemontools的一 ...
- 2-2-求并集A=A∪B-线性表-第2章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第2章 线性表 - 求并集A=A∪B ——<数据结构>-严蔚敏.吴伟民版 ★有疑问先阅读★ 源码使用说明 链接☛☛☛ <数据结构-C语言版>(严 ...
- dom4j: 生成XML时文本中回车换行无效
属性文本中回车换行在输出时被dom4j自动去掉了. 解决办法: 将format.setTrimText(false); 即可.因为 createPrettyPrint()方法中有 format.set ...
- android笔记---LoginActivity extends FinalActivity
package com.fuda.activity; import java.io.BufferedReader; import java.io.File; import java.io.FileNo ...
- django rest_framework入门
1.rest_framework的作用 1)可以对orm和非orm资源序列化 2)支持restful风格编程(POST,PUT,PATCH) 3)使用类视图编写API的view,而不是函数视图,类视图 ...
- iOS开发:代码通用性以及其规范 第一篇(附带,自定义UITextView\进度条\双表显示\瀑布流 代码设计思路)
在iOS团队开发中,我见过一些人的代码,也修改过他们的代码.有的人的代码写的非常之规范.通用,几乎不用交流,就可以知道如何修改以及在它基础上扩展延生.有的人的代码写的很垃圾,一眼看过去,简直会怀疑自己 ...
- postgresql 修改字段名称
ALTER TABLE auth_user RENAME email TO aemail;