SIP协议原理及实例分析.ppt
《SIP协议原理及实例分析.ppt》由会员分享,可在线阅读,更多相关《SIP协议原理及实例分析.ppt(50页珍藏版)》请在三一办公上搜索。
1、SIP协议原理及实例分析,接入网产品导入部,Page 2,学习目标,学习完此课程,您将会:了解SIP协议原理掌握SIP命令和消息掌握SIP协议的消息交互过程了解SIP业务基本故障分析处理方法,Page 3,第1章 SIP协议原理第2章 SIP命令和消息第3章 业务流程分析,Page 4,SIP协议概念,SIP的前世,SIP的前世,有关SIP的完整定义最早出现在 1999 年公布的RFC 2543中,当前SIP详细定义于RFC 3261(June 2002)。,Multi-Party Multimedia Working Group于1996年提出两项关于在Internet 中实现多媒体通信的建
2、议:Session Initiation Protocol(SIP)Simple Conference Invitation Protocol(SCIP)最终两项建议统一于Session Initiation Protocol SIP。,Page 5,SIP协议概念,SIP是Session Initialization Protocol(会话初始协议)的缩写,用来建立、更改和终止一个或者多个参与者的会话。这些会话包括多媒体会议、网络呼叫等。IETF制订的多媒体通信系统框架协议之一,但是SIP 单独不能完成多媒体呼叫,必须要与其他协议一起才能组建完整的多媒体通信系统,与RTP/RTCP、SDP等
3、协议配合共同完成多媒体会话过程。,Page 6,SIP协议功能描述,用户定位:确定参加通信的终端用户的位置。用户通信能力协商:确定通信的媒体类型和参数。用户交互意愿:确定被叫加入通信的意愿。呼叫建立:建立主叫和被叫的会话参数。呼叫处理和控制:包括呼叫重定向、呼叫转移、终止呼叫等。,Page 7,SIP协议特点,借鉴了其他internet标准和协议的设计思想,在风格上遵循因特网一贯坚持的简练、开放、兼容和可扩展等原则,并充分注意到因特网开放而复杂的网络环境下的安全问题;充分考虑了对传统公共电话网的各种业务,包括IN业务(Internet)和ISDN业务的支持;通过代理和重定向请求用户当前位置,以
4、支持用户的移动性;独立于传输层协议,可以承载在不同的传输协议上(UDP、TCP、SCTP、TLS),因此可以灵活方便地扩展其他附加功能;SIP协议独立于业务,协议不限制具体业务范畴,只描述建立/更改/终止一个会话,并不描述会话的内容,所以可以承载任何的会话内容,如语音/视频/游戏等。,Page 8,SIP与H.248对比,Page 9,SIP协议的应用,SIP协议的典型应用IP电话(VoIP)移动游戏即时通信视频与协调SIP扩展应用3G WCDMA IMS,Page 10,SIP协议栈,在TCP/IP五层模型中属于应用层协议在OSI七层模型中属于会话层协议,Page 11,SIP协议在网络中的
5、位置,Page 12,SIP协议在NGN中的实现,SoftX3000,SoftPhone,SoftX3000,SoftPhone,SIP,SIP,SIP,IP,IP,IP,IP,IP Core,Page 13,SIP在网络中的主要实体,SIP 在网络中存在多种逻辑实体,不同实体作用互不相同:UA(User Agent)Proxy serverRegistrar serverRedirect serverLocation server不同的逻辑实体可以存在于同一个物理实体之上。,Page 14,SIP在网络中的主要实体,用户助理(User Agent):用来发起或者接收请求的逻辑实体称为User
6、 Agent。用户助理客户(User Agent Client):发起请求的一方称为UAC,SIP Phone就是UAC的一种实际形态;用户助理服务器(User Agent Server):接收请求,产生响应的一方称为UAS,SoftX3000就是UAS的一种实际形态。UAC和UAS的划分是针对一个事务而言的。代理服务器:作为一个逻辑网络实体代表客户端转发请求或者响应,可以同时作为客户端和服务器端。主要功能有:路由、认证鉴权、计费控制、呼叫控制、业务提供等。它可以采取分支,循环,递归查询等方式向多个地址尝试转发请求。SoftX3000兼任代理服务器的角色。它有三种形态:Stateless:其作
7、用为一般的路由器Transaction Stateful:关联一次事务过程Call Dialog:关联一次会话过程,Page 15,SIP在网络中的主要实体,注册服务器:接收注册请求的服务器,需要将注册请求中的地址映射关系保存到数据库中,供后续的相关呼叫过程使用,同时可以提供定位服务。SoftX3000兼任注册服务器的角色。重定向服务器:为所收到的请求返回一个或多个新的地址,客户端直接向这些新的地址发起请求。重定向服务器并不接收或者拒绝呼叫,主要完成路由功能,与注册过程配合可以支持SIP终端的移动性。SoftX3000兼任重定向服务器的角色。定位服务器:提供被叫位置的服务器,SoftX3000
8、兼任定位服务器的角色。,Page 16,相关术语,呼叫:一个呼叫是由一个公共源端所邀请的在一个会议中的所有参加者组成,由一个全球唯一的Call-ID进行标识。例如:由同一个源邀请的一个会议的所有参加者构成一个呼叫;点到点IP电话会话是一种最简单的会话,它映射为单一的SIP呼叫。通常情况下,呼叫由主叫方创建,但是更一般说来,呼叫可由并不参与媒体通信的第三方创建,此时会话的主叫方和会话的邀请方并不相同。事务:SIP是一个客户/服务器协议。客户和服务器之间的操作从第1个请求至最终响应为止的所有消息构成一个SIP事务。一个正常的呼叫一般包含三个事务。其中,呼叫启动包含两个操作请求:邀请(Invite)
9、和证实(ACK),前者需要回送响应,后者只是证实已收到最终响应,不需要回送响应。呼叫终结包含一个操作请求:再见(Bye)。,Page 17,相关术语,SIP URL:为了能正确传送协议消息,SIP还需解决两个重要的问题。一是寻址,即采用什么样的地址形式标识终端用户;二是用户定位。SIP 沿用WWW技术解决这两个问题。寻址采用SIP URL(Uniform Resource Locators),按照RFC2396规定的URI导则定义其语法,特别是用户名字段可以是电话号码,以支持IP电话网关寻址,实现IP电话和PSTN的互通。,Page 18,相关术语,SIP URL的一般结构为:SIP:用户名:
10、口令主机:端口;传送参数;用户参数;方法参数;生存期参数;服务器地址参数,“SIP”表示需采用SIP 协议和所指示的端系统通信。,“用户名”可以由任意字符组成,一般可取类似与E-mail 用户名形式,也可以是电话号码(SoftX3000 目前用户名是电话号码)。,“口令”可以置于SIP URL 中,但一般不建议这样做,因为其安全性是有问题的。,“主机”可为主机域名或IPv4 地址。,“端口”指示请求消息送往的端口号,其缺省值为5060,即公开的SIP 端口号。,“传送参数”指示采用TCP 还是UDP 传送,缺省值为UDP。,“用户参数”,SIP URL 的一个特定功能是允许主机类型为IP 电话
11、网关,此时,用户名可以为一般的电话号码。由于BNF 语法表示无法区分电话号码和一般的用户名,因此,在域名后增加了“用户参数”字段。该字段有两个可选值:IP 和电话,当其设定为“电话”时,表示用户名为电话号码,对应的端系统为IP 电话网关。,“方法参数”指示所用的方法,“生存期参数”指示UDP 多播数据包的寿命,仅当传送参数为UDP、服务器地址参数为多播地址时才能使用。,“服务器地址参数”指示和该用户通信的服务器的地址,它覆盖“主机”字段中的地址,通常为多播地址。,“传送参数”、“方法参数”、“生存期参数”和“服务器地址参数”均属于URL参数,只能在重定向地址,即后面所说的Contact字段中才
12、能使用。,Page 19,相关术语,下面给出若干个SIP URL的示例:Sip:55500200191.169.1.112;55500200为用户名,191.169.1.112 为IP电话网关的IP地址。Sip:55500200 191.169.1.112:5061;User=phone;55500200为用户名,为主机的IP 地址,5061为主机端口号。用户参数为“电话”,表示用户名为电话号码。;method=REGISTER;Alice为用户名,为主机域名。方法参数为“登记”。需要注意的是SoftX3000目前只支持用户名是电话号码,不支持这种形式的用户名。SIPS 表示安全的SIP UR
13、I,传输层使用的是基于安全的TLS协议。,Page 20,问题,SIP有哪些网络实体?它们的功能是什么?SIP协议的协议栈模型是怎样的?,Page 21,第1章 SIP协议原理第2章 SIP命令和消息第3章 业务流程分析,Page 22,SIP协议消息的分类,SIP消息采用文本方式编码,分为两类:请求消息和响应消息。请求消息和响应消息都包括SIP头字段和SIP消息字段。请求消息和响应消息在形式上的区别仅在消息的第一行,请求的第一行为请求行,响应的第一行为状态行。,Page 23,请求消息,请求消息:客户端为了激活按特定操作而发给服务器的SIP消息。RFC3261定义了六个基本方法,包括INVI
14、TE,ACK,OPTIONS,BYE,CANCEL,REGISTER。后续RFC扩展了其他的请求方法,包括UPDATE,INFO,SUBSCRIBER,NOTIFY,MESSAGE,PRACK,REFER。,Page 24,请求消息格式,请求消息由起始行、消息头和消息体组成。通过换行符区分消息头中的每一条参数行。对于不同的请求消息,有些参数可选。,Page 25,响应消息,响应消息:用于对请求消息进行响应,指示呼叫的成功或失败状态。不同类的响应消息由状态码来区分。状态码包含三位整数,状态码的第一位用于定义响应类型,另外两位用于进一步对响应进行更加详细的说明。,除1XX外其余都是最终响应。,Pa
15、ge 26,响应消息格式,对于不同的响应消息,有些参数可选。,Page 27,消息的头域,5个必须包含在每个SIP消息中的头域:Call-IDFromToCSeqViaCall-ID:用于唯一标识一次会话,一般格式为:Call-ID:本地标识主机 主机应为全局域名或者全局IP地址,此时本地标识可由在主机范围内唯一的URI字符组成。否则,本地标识必须是全局唯一的,以保证Call-ID的全局唯一性。举例:,Page 28,消息的头域,From:用于标识请求的发起者,服务器将此字段从请求消息中复制到响应消息,一般格式为:From:显示名;tagXXXX 显示名为用户界面上显示的字符,如果系统不予显示
16、,应置显示名为“匿名”。Tag称为标记,为16进制数字串,中间可带连字符“”。当两个共享同一SIP地址的用户实例用相同的Call-ID发起呼叫时,就需用此标记予以区分。标记值必须全局唯一,用户在整个呼叫期间应保持相同的Call-ID和标记值。举例:From:123456;tag=a48s,Page 29,消息的头域,To:用于表示请求的接收者,其格式和From相同,仅第一个关键字不同;To:显示名;tagXXXX Tag可用于区分由同一SIP URL标识的不同的用户实例。由于代理服务器可以并行分发请求,同一请求可能到达用户的不同实例,每个实例都可能响应,因此需用标记来区分来自不同实例的响应。T
17、o字段中的标记是由每个实例置于响应消息中的。举例:To:;tag=62beb3ca 在SIP 中,Call-ID、From 和To 三个字段标识一个呼叫分支。在代理服务器并行分发请求时,一个呼叫可能会有多个呼叫分支。,Page 30,消息的头域,CSeq:用于表示请求的顺序号,UAC在每个请求中加入此字段,一般格式为:CSeq:序号 消息名称 序号由UAC选定,在Call-ID范围内唯一确定,序号初值可为任意值,其后具有相同Call-ID值但不同命令名称、消息体的请求,其CSeq序号应加1。重发请求的序号保持不变。服务器将请求中的CSeq值复制到响应消息中,用于将请求和其触发的响应关联起来。A
18、CK和CANCEL请求的CSeq值和对应的INVITE请求相同,BYE请求的CSeq序号应大于INVITE请求。由代理服务器并行分发的请求,其CSeq值相同。严格来说,CSeq对于任何可由BYE或CANCEL请求取消的请求以及客户可连续发送多个具有相同Call-ID请求的情况都是需要的,其作用是判断响应和请求的对应关系。举例:CSeq:4711 INVITE,Page 31,消息的头域,Via:用以指示请求历经的路径,它可以防止请求消息传送产生环路,并确保响应和请求消息选择同样的路径,以保证通过防火墙或满足其他特定的选路要求。对于请求:每个SIP实体前传请求时,都将自己的地址放到当前的Via集
19、的最上面,与此类推,当请求到达UAS端时,在SIP 消息中将会形成一个类似于堆栈的Via头域集。对于响应:UAS 将请求中的Via地址原样拷贝到响应里面,当Proxy接收到响应时,检查顶端的Via是否是自己,如果是,将顶端的Via删除,并检查下一个Via地址将响应发送到下一个Via地址,如果没有下一个Via地址,则表示这个响应应该到Proxy这儿终结。,Address:B,Address:C,Address:D,Via:A,Via:BVia:A,Via:CVia:BVia:A,Via:CVia:BVia:A,Via:BVia:A,Via:A,Request,Response,Address:A
20、,Page 32,消息的头域,Via字段的一般格式:Via:发送协议 发送方;隐藏参数;生存期参数;多播地址参数;接收 方标记,分支参数 发送协议的格式为:协议名/协议版本/传输层协议。协议名和传输层协议的缺省值为SIP和UDP。发送方为发送方的域名或主机IP和端口号,如果采用默认端口号5060,端口号可以缺省。隐藏参数表示该字段已由上有代理予以加密,以提供隐私服务。分支参数用于代理服务器并行分发请求时标记各个分支,当响应达到时,代理可判定是哪一分支的响应。举例:Via:SIP/2.0/UDP;branch=z9hG4bKkjshdyff Via:SIP/2.0/UDP 10.0.0.1:50
21、60;,Page 33,其他重要消息头域,Max-Forwards:用于定义一个请求达到其目的地所允许经过的中转站的最大值。请求每经过一个中转站,该值减1。如果该值为0时该请求还没有达到其目的地,服务器将返回483响应并终止这个请求。该字段的目的主要是为了出现环路时不会一直消耗代理服务器的资源,它的初始值为70。它的一般格式为:Max-Forwards:十进制整数 请求消息中必须包括Max-Forwards头域。,Page 34,其他重要消息头域,Contact:用于INVITA、ACK和REGISTER请求以及成功响应、呼叫进展响应和重定向响应消息,其作用是给出其后和用户直接通信的地址。IN
22、VITE和ACK请求中的Contact字段指示该请求发出的位置。它使被叫可以直接将请求(如BYE请求)发往该地址,而不必借助Via字段经由一系列代理服务器返回。对INVITE请求的成功响应消息可包含Contact字段,它使其后的请求(如ACK请求)可直接发往该字段给定的地址。该地址一般是被叫主机的地址。REGISTER请求中的Contact字段指明用户当前位置,REGISTER请求的成功响应消息中的Contact字段返回该用户当前可达的所有位置。重定向响应消息中的Contact字段给出供重试的其它地址,可用于对BYE、INVITE和OPTIONS请求的响应消息。,Page 35,其他重要消息头
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SIP 协议 原理 实例 分析
链接地址:https://www.31ppt.com/p-5448285.html