SIP协议对比栈结构逻辑实体消息等
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Contents
SIP协议 (2)
SIP与其他协议对比 (2)
SIP基本功能 (2)
SIP协议栈结构 (3)
SIP基本网络模型,会话过程以及逻辑实体 (4)
SIP的网络模型与会话过程: (4)
SIP逻辑实体 (4)
用户代理(UA)即用户终端 (4)
网络服务器: (5)
SIP消息 (6)
地址URL和命名规则 (6)
SIP的消息模式 (7)
SIP的消息类型 (7)
请求消息 (7)
响应消息 (8)
SIP消息组成 (8)
起始行 (9)
请求(request)消息的开始行 (9)
响应(Response)消息的开始行 (10)
主要消息头字段 (11)
消息体字段 (12)
SIP典型流程介绍 (13)
SIP应用实例 (14)
SIP协议
SIP与其他协议对比
目前主流的信令协议主要有SIP,No.7以及H323,其中其对比关系如下
SIP:是Internet 工程任务组IETF(Internet Engineering Task Force)提出的基于IP网络的应用层会话(参与者之间的数据交换包括语音,视频,文本等多种类型)控制协议. 用于建立、修改和终止多媒体会话.SIP很大程度上借鉴了其他Internet协议,比如Http,同时SIP也采用了基于文本的编码方式(其他协议可能采取帧结构的方式,但SIP处在应用层,完全可以使用文本方式),另外SIP独立于底层协议,一般使用UDP无连接协议,所以SIP采用自己的应用层可靠性机制来保证消息的可靠传输. 由于SIP完全可以通过软件实现,随着软交换技术的发展SIP将会成为主流通信协议.
No.7:传统的电路层面的TDM 7号信令.
H.323: 是有国际电信联盟ITU提出的一个标准协议栈,它主要用于多媒体会议系统.H.323为协议的主题框架,H.263为视频解码协议,H.723.1为音频解码协议,H.245为系统控制协议.
SIP基本功能
•用户定位:存储和查询终端用户的位置,用于通讯,其中由于SIP完全使用IP网络实现,不像No.7存在物理电路的概念,因此SIP所说的终端用户的位置其实是指广域网的IP地址范围.即IP电话(用户)所处的广域网IP.
•用户有效性:检查一个用户是否愿意参与会话
•用户能力:检查媒体和媒体参数
•建立会话:在呼叫方和被叫方建立会话参数。
•会话管理:包括发送和终止会话,修改会话参数,激活服务等等
SIP协议栈结构
此图描述了SIP协议与其他协议的关系及联系,很明显的可以看出SIP处于应用层协议,其传输层一般使用UDP,对于底层来讲则不受限制,可以是Ethernet,ATM,TDM 等.其他协议在此可以做如下简单介绍,
RTP是实时数据传输协议。
它提供时间标志,序列号以及其它能够保证在实时数据传输时处理时间的方法。
它是依靠RSVP保证服务质量标准的。
RTCP是RTP的控制部分,是用来保证服务质量和成员管理的。
RTSP是开始和指引流媒体数据。
它又可叫做“网上录像机控制协议”.它是提供远程的控制,具体的数据传输是交给RTP的。
RSVP是Internet上的资源预订协议,使用RSVP预留一部分网络资源(即带宽),能在一定程度上为流媒体的传输提供QoS。
RTP通常使用UDP来传送数据,但RTP也可以在TCP或ATM等其他协议上工作。
当应用程序开始一个RTP会话时将使用两个端口:一个给RTP,一个给RTCP。
RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。
RTCP和RTP一起提供流量控制和拥塞控制服务。
RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。
RTSP多用于做视频服务器而SIP多用于做Voip的服务器。
RTSP在体系结构上位于RTP和 RTCP之上。
它使用TCP或RTP完成数据传输。
HTTP与RTSP相比。
HTTP传送HTML。
而RTP传送是多媒体数据。
H.261是1990年ITU-T制定的一个视频编码标准,属于视频编解码器。
SDP文本信息包括:
会话名称和意图;会话持续时间;构成会话的媒体;有关接收媒体的信息(地址等)。
点对点协议(Point to Point Protocol)的缩写为PPP,是TCP/IP网络协议包的一个成员。
PPP是TCP/IP的扩展,它增加了两个额外的功能组:
(1)它可以通过串行接口传输TCP/IP包;
(2)它可以安全登录。
当使用作为公共电话系统的部分的串行接口时,必须要注意确保所有通信的真实性。
这个终端PPP集合了用户名字和密码安全。
因此,一个路由器或者服务器通过PPP接收到一个请求时,如果这个请求的来源是不安全的,这就需要授权。
这个授权是PPP的一部分。
因为它的通过串行接口路
由TCP/IP包的能力和它的授权能力,ISP (Internet服务提供商)通常使用PPP来允许拨号用户连接到Internet。
AAL(ATM Adaptation Layer, ATM适配层):标准协议的一个集合,用于适配用户业务。
AAL分为会聚子层(CS)和拆装子层(SCR)。
AAL有4种协议类型:AAL1、AAL2、AAL3/AAL4和AAL5分别支持各种AAL业务类型。
AAL的目的是允许现有的协议和应用运行在ATM上。
为此AAL必须把上层的数据转换为ATM 信元中的48B。
常见的通信协议(TCP/IP、以太网、令牌环网)采用的是变长分组,分组长度都要比ATM信元中的数据段大,但是AAL可以将这些较大的高层数据分组分割成能通过ATM网络传输的信元,或把从网络接收的信元重组成原始的数据分组。
AAL由两个子层组成,一个称为会聚子层(CS),另一个称为分段和重组子层(SAR)。
CS 子层首先对高层数据进行分段并封装在CS-PDU(汇聚子层协议数据单元)中。
然后,SAR子层将CS-PDU分割成若干个相同大小(不大于48B)的数据段,使它能够封装在信元中。
SIP基本网络模型,会话过程以及逻辑实体
SIP的网络模型与会话过程:
SIP逻辑实体
注意由于SIP的各个逻辑实体都可以通过软件实现,因此SIP的不同逻辑实体可能全部在同一个物理实体中实现
用户代理(UA)即用户终端
直接与用户发生交互作用的功能实体,它能够代理用户所有的请求和响应
UAC(用户代理客户端):主叫用户代理,支持用户的各项操作,发起和传送SIP请求,与服务器建立连接的应用程序
UAS(用户代理服务器):用户代理服务器,被叫用户代理,收到SIP请求的时候,连接用户并代表用户返回响应,响应用来接收,终止和重定向请求.
用户代理可以执行在不同的系统中,例如可以是PC机上的一个应用程序,UAC和UAS的较色会随着处理的事物的不同而相互转换.
网络服务器:
代理服务器:将Request和Response转发到下一台服务器或UA,代理服务器是sip网络的核心,能够对基于SIP地址或E.164号码的地址进行相应选路,性能上,需要达到电信级需求.
重定向服务器:将用户新的位置信息告诉请求方,这是与代理服务器的本质区别,重定向服务器只提供地址解析服务,类似于DNS, 重定向服务器不主动发送SIP请求, 重定向服务器不需要维持事务状态(你问一个问题,它回答一个,之后什么都不记得了). 发送重定向响应(Response)给客户端.在这个响应里包含有重定向到新的服务器的地址,
注册服务器: 注册服务器接受终端的Register请求,纪录终端的SIP地址(SIP URL)和IP地址,并对定位服务器进行添加、修改、查询等操作。
定位服务器:存储并向用户返回可能的位置信息,在SIP网络架构中起到重要作用的Internet公共服务器。
位置服务器的信息可能来自SIP注册服务器,也可能通过其他渠道获取。
位置服务器与SIP服务器之间通过使用LDAP协议进行通信,位置服务器可能返回多个位置信息,重定向服务器和代理服务器可以采用不同的方式来处理这多个位置信息。
SIP消息
地址URL和命名规则
URL格式:SIP:用户名:口令@主机:端口;传送参数;用户参数;方法参数;生存期参数;服务器地址参数。
URL形式:USER@HOST;
用途:代表主机上的某个用户,可指示From, To, Request URI, Contact等SIP头部字段。
URL 应用举例:
Sip:j.
Sip:j.doe:;transport=tcp;subject=project
Sip:+1-212-555-1212:;user=phone
Sip:
Sip:;method=REGISTER
Sip: ?subject=meeting
SIP的消息模式
SIP协议采用了Client/Server和HTTP协议模型, 所有的消息都是简单的基于文本的消息,请求和响应构成一个事务,事务之间相互独立,一个完整的呼叫包含多个事务;SIP服务器(注册服务器)能将SIP地址智能地转换为不同的地址,如:每天的晚5点之后将发给用户的请求从用户的工作号码自动路由到用户的家里的电话号码.
SIP的鉴权过程参考了HTTP的鉴权过程。
SIP的消息类型
请求消息
INVITE–通过邀请用户参与来发起一次呼叫, 类似于7号信令里面的IAM消息,主叫初始发出的消息,表征主叫方能力,邀请被叫参加某一个会话
ACK - 请求用于证实UAC已收到对于INVITE请求的最终响应,和INVITE消息配套使用. 类似于3次握手中的确认消息,当被叫方对主叫方的Invite消息进行最终响应后,主叫方将发送ACK消息表征已经收到了被叫方的响应
BYE - USER AGENT用此方法指示释放呼叫. 类似于No.7信令中的拆线消息
CANCEL -该方法用于取消一个尚未完成的请求,对于已完成的请求则无影响. 用于取消一个正在进行的请求,此时并没有收到被叫方的最终响应,与BYE的区别
REGISTER–客户使用该方法在服务器上登记列于To字段中的地址.
OPTIONS–用于询问服务其能力, 用于询问网络中客户机和服务器的能力,主叫方在发起请求时通过发送Option消息询问代理服务器的能力,也可以询问被叫方客户端的能力INFO–用于承载带外信息,如DTMF信息.关于DTMF可以解释为:
DTMF: Dual Tone Multi Frequency,双音多频,由高频群和低频群各包含4个频率组成,通过高低频率的组合信号表示不同的数字号码,如下图. DTMF常用于用户信令发送电话号码
响应消息
1xx - 正在处理的信息. 2xx - 成功.
3xx - 重定向.
4xx - Client错误.
5xx - Server错误.
6xx - Global错误.
SIP消息组成
请先看如下例子
SIP的所有的消息都是简单的基于文本的消息,消息组成为一个起始行
一个消息头
一个消息体
起始行
请求(request)消息的开始行
例如: INVITE sip: SIP/2.0
其中,
CRLF -- Carriage-Return Line-Feed 回车换行
Method:
方法,定义请求的类型,包括
.INVITE
.BYE
.ACK
.CANCEL
.OPTIONS
.REGISTER
Request-URI:
统一资源定位标示(URI)是一个紧凑的字符串用来标示用户或者服务器的请求.他可以由代理服务器重写通常,也可以叫做SIP URL
SIP-Version
用来标示目前使用的SIP协议的版本
响应(Response)消息的开始行
例如:SIP/2.0 180 Ringing
SIP-version:用来标示目前使用的SIP协议的版本
Reason-Phrase:状态码主要是给软件使用或者给人(human user).客户机不会要求检查或显示这个字段
Status-Code :这个状态码是用3位整数作为结果码来标示出尝试的发出请求是否被接受
状态码(Status Codes):AXX
A=第一个字符用来定义响应的类型
1xx=Informational—请求已收到课后继续处理请求.
100 Trying正在尝试
180 Ringing正在拨打
181 Call Is Being Forwarded正被转接
182 Queued正在排队
183 Session Progress通话进展
2xx=success—行动已经成功地收到,理解和接受
200 OK
202 被接受:用于转介
3xx=Redirection—为完成呼叫请求,还必须采取进一步的动作
300 多项选择
301 被永久迁移
302 被暂时迁移
305 使用代理服务器
380 替代服务
4xx=Client Error—请求有语法错误或不能被服务器执行.客户机需要修改请求,然后重发请求.
400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
410 Gone
413 Request Entity Too Large
414 Request-URI Too Long
415 Unsupported Media Type
416 Unsupported URI Scheme
420 Bad Extension
421 Extension Required
423 Interval Too Brief
480 Temporarily Unavailable
481 Call/Transaction Does Not Exist
482 Loop Detected
483 Too Many Hops
484 Address Incomplete
485 Ambiguous
486 Busy Here
487 Request Terminate
488 Not Acceptable Here
491 Request Pending
493 Undecipherable
5xx=Server Error—服务器出错,不能执行合法请求
500 Server Internal Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Server Time-out
505 Version Not Supported
513 Message Too Large
6xx=Global Failure—任何服务器都不能执行请求
600 Busy Everywhere
603 Decline
604 Does Not Exist Anywhere
606 Not Acceptable
其中1xx响应为暂时响应(Provisional response),其他响应都为最终响应(Final response) 主要消息头字段
消息体字段
在所有的请求消息中,消息体都是可选的,SDP消息一些固定格式的行,格式如下(与HTML 语言相似):
<type>=<value>
Type:通常用一个字符
Value:基于文本的字符串结构,依赖与type 主要有如下图所示的Type和Value
SIP典型流程介绍
用SIP来建立通讯通常需要有六个步骤:
1.登记鉴权, 发起和定位用户.
2.进行媒体协商 --通常采用SDP
3.由被叫方来决定是否接纳该呼叫.
4.呼叫媒体流建立并交互.
5.呼叫更改或处理如呼叫转移.
6.呼叫终止.
SIP应用实例
软终端设备拨打PSTN电话。
软交换域通过I704设备和PSTN交换机通讯。