华为技术培训资料-SIP协议原理及实例分析-1.0.ppt

上传人:聆听****声音 文档编号:11855782 上传时间:2023-06-03 格式:PPT 页数:50 大小:1.52MB
下载 相关 举报
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第1页
第1页 / 共50页
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第2页
第2页 / 共50页
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第3页
第3页 / 共50页
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第4页
第4页 / 共50页
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第5页
第5页 / 共50页
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第6页
第6页 / 共50页
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第7页
第7页 / 共50页
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第8页
第8页 / 共50页
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第9页
第9页 / 共50页
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第10页
第10页 / 共50页
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第11页
第11页 / 共50页
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第12页
第12页 / 共50页
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第13页
第13页 / 共50页
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第14页
第14页 / 共50页
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第15页
第15页 / 共50页
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第16页
第16页 / 共50页
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第17页
第17页 / 共50页
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第18页
第18页 / 共50页
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第19页
第19页 / 共50页
华为技术培训资料-SIP协议原理及实例分析-1.0.ppt_第20页
第20页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

华为技术培训资料-SIP协议原理及实例分析-1.0.ppt

《华为技术培训资料-SIP协议原理及实例分析-1.0.ppt》由会员分享,可在线阅读,更多相关《华为技术培训资料-SIP协议原理及实例分析-1.0.ppt(50页珍藏版)》请在冰点文库上搜索。

华为技术培训资料-SIP协议原理及实例分析-1.0.ppt

SIP协议原理及实例分析,接入网产品导入部,Page2,学习目标,学习完此课程,您将会:

了解SIP协议原理掌握SIP命令和消息掌握SIP协议的消息交互过程了解SIP业务基本故障分析处理方法,Page3,第1章SIP协议原理第2章SIP命令和消息第3章业务流程分析,Page4,SIP协议概念,SIP的前世,SIP的前世,有关SIP的完整定义最早出现在1999年公布的RFC2543中,当前SIP详细定义于RFC3261(June2002)。

Multi-PartyMultimediaWorkingGroup于1996年提出两项关于在Internet中实现多媒体通信的建议:

SessionInitiationProtocol(SIP)SimpleConferenceInvitationProtocol(SCIP)最终两项建议统一于SessionInitiationProtocolSIP。

Page5,SIP协议概念,SIP是SessionInitializationProtocol(会话初始协议)的缩写,用来建立、更改和终止一个或者多个参与者的会话。

这些会话包括多媒体会议、网络呼叫等。

IETF制订的多媒体通信系统框架协议之一,但是SIP单独不能完成多媒体呼叫,必须要与其他协议一起才能组建完整的多媒体通信系统,与RTP/RTCP、SDP等协议配合共同完成多媒体会话过程。

Page6,SIP协议功能描述,用户定位:

确定参加通信的终端用户的位置。

用户通信能力协商:

确定通信的媒体类型和参数。

用户交互意愿:

确定被叫加入通信的意愿。

呼叫建立:

建立主叫和被叫的会话参数。

呼叫处理和控制:

包括呼叫重定向、呼叫转移、终止呼叫等。

Page7,SIP协议特点,借鉴了其他internet标准和协议的设计思想,在风格上遵循因特网一贯坚持的简练、开放、兼容和可扩展等原则,并充分注意到因特网开放而复杂的网络环境下的安全问题;充分考虑了对传统公共电话网的各种业务,包括IN业务(Internet)和ISDN业务的支持;通过代理和重定向请求用户当前位置,以支持用户的移动性;独立于传输层协议,可以承载在不同的传输协议上(UDP、TCP、SCTP、TLS),因此可以灵活方便地扩展其他附加功能;SIP协议独立于业务,协议不限制具体业务范畴,只描述建立/更改/终止一个会话,并不描述会话的内容,所以可以承载任何的会话内容,如语音/视频/游戏等。

Page8,SIP与H.248对比,Page9,SIP协议的应用,SIP协议的典型应用IP电话(VoIP)移动游戏即时通信视频与协调SIP扩展应用3GWCDMAIMS,Page10,SIP协议栈,在TCP/IP五层模型中属于应用层协议在OSI七层模型中属于会话层协议,Page11,SIP协议在网络中的位置,Page12,SIP协议在NGN中的实现,SoftX3000,SoftPhone,SoftX3000,SoftPhone,SIP,SIP,SIP,IP,IP,IP,IP,IPCore,Page13,SIP在网络中的主要实体,SIP在网络中存在多种逻辑实体,不同实体作用互不相同:

UA(UserAgent)ProxyserverRegistrarserverRedirectserverLocationserver不同的逻辑实体可以存在于同一个物理实体之上。

Page14,SIP在网络中的主要实体,用户助理(UserAgent):

用来发起或者接收请求的逻辑实体称为UserAgent。

用户助理客户(UserAgentClient):

发起请求的一方称为UAC,SIPPhone就是UAC的一种实际形态;用户助理服务器(UserAgentServer):

接收请求,产生响应的一方称为UAS,SoftX3000就是UAS的一种实际形态。

UAC和UAS的划分是针对一个事务而言的。

代理服务器:

作为一个逻辑网络实体代表客户端转发请求或者响应,可以同时作为客户端和服务器端。

主要功能有:

路由、认证鉴权、计费控制、呼叫控制、业务提供等。

它可以采取分支,循环,递归查询等方式向多个地址尝试转发请求。

SoftX3000兼任代理服务器的角色。

它有三种形态:

Stateless:

其作用为一般的路由器TransactionStateful:

关联一次事务过程CallDialog:

关联一次会话过程,Page15,SIP在网络中的主要实体,注册服务器:

接收注册请求的服务器,需要将注册请求中的地址映射关系保存到数据库中,供后续的相关呼叫过程使用,同时可以提供定位服务。

SoftX3000兼任注册服务器的角色。

重定向服务器:

为所收到的请求返回一个或多个新的地址,客户端直接向这些新的地址发起请求。

重定向服务器并不接收或者拒绝呼叫,主要完成路由功能,与注册过程配合可以支持SIP终端的移动性。

SoftX3000兼任重定向服务器的角色。

定位服务器:

提供被叫位置的服务器,SoftX3000兼任定位服务器的角色。

Page16,相关术语,呼叫:

一个呼叫是由一个公共源端所邀请的在一个会议中的所有参加者组成,由一个全球唯一的Call-ID进行标识。

例如:

由同一个源邀请的一个会议的所有参加者构成一个呼叫;点到点IP电话会话是一种最简单的会话,它映射为单一的SIP呼叫。

通常情况下,呼叫由主叫方创建,但是更一般说来,呼叫可由并不参与媒体通信的第三方创建,此时会话的主叫方和会话的邀请方并不相同。

事务:

SIP是一个客户/服务器协议。

客户和服务器之间的操作从第1个请求至最终响应为止的所有消息构成一个SIP事务。

一个正常的呼叫一般包含三个事务。

其中,呼叫启动包含两个操作请求:

邀请(Invite)和证实(ACK),前者需要回送响应,后者只是证实已收到最终响应,不需要回送响应。

呼叫终结包含一个操作请求:

再见(Bye)。

Page17,相关术语,SIPURL:

为了能正确传送协议消息,SIP还需解决两个重要的问题。

一是寻址,即采用什么样的地址形式标识终端用户;二是用户定位。

SIP沿用WWW技术解决这两个问题。

寻址采用SIPURL(UniformResourceLocators),按照RFC2396规定的URI导则定义其语法,特别是用户名字段可以是电话号码,以支持IP电话网关寻址,实现IP电话和PSTN的互通。

Page18,相关术语,SIPURL的一般结构为:

SIP:

用户名:

口令主机:

端口;传送参数;用户参数;方法参数;生存期参数;服务器地址参数,“SIP”表示需采用SIP协议和所指示的端系统通信。

“用户名”可以由任意字符组成,一般可取类似与E-mail用户名形式,也可以是电话号码(SoftX3000目前用户名是电话号码)。

“口令”可以置于SIPURL中,但一般不建议这样做,因为其安全性是有问题的。

“主机”可为主机域名或IPv4地址。

“端口”指示请求消息送往的端口号,其缺省值为5060,即公开的SIP端口号。

“传送参数”指示采用TCP还是UDP传送,缺省值为UDP。

“用户参数”,SIPURL的一个特定功能是允许主机类型为IP电话网关,此时,用户名可以为一般的电话号码。

由于BNF语法表示无法区分电话号码和一般的用户名,因此,在域名后增加了“用户参数”字段。

该字段有两个可选值:

IP和电话,当其设定为“电话”时,表示用户名为电话号码,对应的端系统为IP电话网关。

“方法参数”指示所用的方法,“生存期参数”指示UDP多播数据包的寿命,仅当传送参数为UDP、服务器地址参数为多播地址时才能使用。

“服务器地址参数”指示和该用户通信的服务器的地址,它覆盖“主机”字段中的地址,通常为多播地址。

“传送参数”、“方法参数”、“生存期参数”和“服务器地址参数”均属于URL参数,只能在重定向地址,即后面所说的Contact字段中才能使用。

Page19,相关术语,下面给出若干个SIPURL的示例:

Sip:

55500200191.169.1.112;55500200为用户名,191.169.1.112为IP电话网关的IP地址。

Sip:

55500200191.169.1.112:

5061;User=phone;55500200为用户名,191.169.1.112为主机的IP地址,5061为主机端口号。

用户参数为“电话”,表示用户名为电话号码。

Sip:

;method=REGISTER;Alice为用户名,为主机域名。

方法参数为“登记”。

需要注意的是SoftX3000目前只支持用户名是电话号码,不支持这种形式的用户名。

Sips:

123410.110.25.239SIPS表示安全的SIPURI,传输层使用的是基于安全的TLS协议。

Page20,问题,SIP有哪些网络实体?

它们的功能是什么?

SIP协议的协议栈模型是怎样的?

Page21,第1章SIP协议原理第2章SIP命令和消息第3章业务流程分析,Page22,SIP协议消息的分类,SIP消息采用文本方式编码,分为两类:

请求消息和响应消息。

请求消息和响应消息都包括SIP头字段和SIP消息字段。

请求消息和响应消息在形式上的区别仅在消息的第一行,请求的第一行为请求行,响应的第一行为状态行。

Page23,请求消息,请求消息:

客户端为了激活按特定操作而发给服务器的SIP消息。

RFC3261定义了六个基本方法,包括INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER。

后续RFC扩展了其他的请求方法,包括UPDATE,INFO,SUBSCRIBER,NOTIFY,MESSAGE,PRACK,REFER。

Page24,请求消息格式,请求消息由起始行、消息头和消息体组成。

通过换行符区分消息头中的每一条参数行。

对于不同的请求消息,有些参数可选。

Page25,响应消息,响应消息:

用于对请求消息进行响应,指示呼叫的成功或失败状态。

不同类的响应消息由状态码来区分。

状态码包含三位整数,状态码的第一位用于定义响应类型,另外两位用于进一步对响应进行更加详细的说明。

除1XX外其余都是最终响应。

Page26,响应消息格式,对于不同的响应消息,有些参数可选。

Page27,消息的头域,5个必须包含在每个SIP消息中的头域:

Call-IDFromToCSeqViaCall-ID:

用于唯一标识一次会话,一般格式为:

Call-ID:

本地标识主机主机应为全局域名或者全局IP地址,此时本地标识可由在主机范围内唯一的URI字符组成。

否则,本地标识必须是全局唯一的,以保证Call-ID的全局唯一性。

举例:

Call-Id:

call-973636852-4191.169.150.101,Page28,消息的头域,From:

用于标识请求的发起者,服务器将此字段从请求消息中复制到响应消息,一般格式为:

From:

显示名;tagXXXX显示名为用户界面上显示的字符,如果系统不予显示,应置显示名为“匿名”。

Tag称为标记,为16进制数字串,中间可带连字符“”。

当两个共享同一SIP地址的用户实例用相同的Call-ID发起呼叫时,就需用此标记予以区分。

标记值必须全局唯一,用户在整个呼叫期间应保持相同的Call-ID和标记值。

举例:

From:

123456;tag=a48s,Page29,消息的头域,To:

用于表示请求的接收者,其格式和From相同,仅第一个关键字不同;To:

显示名;tagXXXXTag可用于区分由同一SIPURL标识的不同的用户实例。

由于代理服务器可以并行分发请求,同一请求可能到达用户的不同实例,每个实例都可能响应,因此需用标记来区分来自不同实例的响应。

To字段中的标记是由每个实例置于响应消息中的。

举例:

To:

;tag=62beb3ca在SIP中,Call-ID、From和To三个字段标识一个呼叫分支。

在代理服务器并行分发请求时,一个呼叫可能会有多个呼叫分支。

Page30,消息的头域,CSeq:

用于表示请求的顺序号,UAC在每个请求中加入此字段,一般格式为:

CSeq:

序号消息名称序号由UAC选定,在Call-ID范围内唯一确定,序号初值可为任意值,其后具有相同Call-ID值但不同命令名称、消息体的请求,其CSeq序号应加1。

重发请求的序号保持不变。

服务器将请求中的CSeq值复制到响应消息中,用于将请求和其触发的响应关联起来。

ACK和CANCEL请求的CSeq值和对应的INVITE请求相同,BYE请求的CSeq序号应大于INVITE请求。

由代理服务器并行分发的请求,其CSeq值相同。

严格来说,CSeq对于任何可由BYE或CANCEL请求取消的请求以及客户可连续发送多个具有相同Call-ID请求的情况都是需要的,其作用是判断响应和请求的对应关系。

举例:

CSeq:

4711INVITE,Page31,消息的头域,Via:

用以指示请求历经的路径,它可以防止请求消息传送产生环路,并确保响应和请求消息选择同样的路径,以保证通过防火墙或满足其他特定的选路要求。

对于请求:

每个SIP实体前传请求时,都将自己的地址放到当前的Via集的最上面,与此类推,当请求到达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,Page32,消息的头域,Via字段的一般格式:

Via:

发送协议发送方;隐藏参数;生存期参数;多播地址参数;接收方标记,分支参数发送协议的格式为:

协议名/协议版本/传输层协议。

协议名和传输层协议的缺省值为SIP和UDP。

发送方为发送方的域名或主机IP和端口号,如果采用默认端口号5060,端口号可以缺省。

隐藏参数表示该字段已由上有代理予以加密,以提供隐私服务。

分支参数用于代理服务器并行分发请求时标记各个分支,当响应达到时,代理可判定是哪一分支的响应。

举例:

Via:

SIP/2.0/UDP;branch=z9hG4bKkjshdyffVia:

SIP/2.0/UDP10.0.0.1:

5060;,Page33,其他重要消息头域,Max-Forwards:

用于定义一个请求达到其目的地所允许经过的中转站的最大值。

请求每经过一个中转站,该值减1。

如果该值为0时该请求还没有达到其目的地,服务器将返回483响应并终止这个请求。

该字段的目的主要是为了出现环路时不会一直消耗代理服务器的资源,它的初始值为70。

它的一般格式为:

Max-Forwards:

十进制整数请求消息中必须包括Max-Forwards头域。

Page34,其他重要消息头域,Contact:

用于INVITA、ACK和REGISTER请求以及成功响应、呼叫进展响应和重定向响应消息,其作用是给出其后和用户直接通信的地址。

INVITE和ACK请求中的Contact字段指示该请求发出的位置。

它使被叫可以直接将请求(如BYE请求)发往该地址,而不必借助Via字段经由一系列代理服务器返回。

对INVITE请求的成功响应消息可包含Contact字段,它使其后的请求(如ACK请求)可直接发往该字段给定的地址。

该地址一般是被叫主机的地址。

REGISTER请求中的Contact字段指明用户当前位置,REGISTER请求的成功响应消息中的Contact字段返回该用户当前可达的所有位置。

重定向响应消息中的Contact字段给出供重试的其它地址,可用于对BYE、INVITE和OPTIONS请求的响应消息。

Page35,其他重要消息头域,Contact字段的一般格式为:

Contact:

地址;q参数;动作参数;失效参数;扩展属性地址的表示形式和To,From字段相同。

q参数的取值范围为【0,1】,指示给定位置的相对优先级,数值越大,优先级越高。

动作参数仅用于REGISTER请求,它表明希望服务器对其后至该客户的请求进行代理服务还是重定向服务,如果未含此参数,则取决于服务器的配置。

失效参数表示该注册的失效时间。

举例:

Contact:

;q=0.7;,Page36,其他消息头域,Authorization:

包含某个终端的鉴权证书。

它的一般格式为:

Authorization:

认证方式USERNAME,REALM,NONCE,RESPONSE,URI,CNONCE,ALGORITHM认证方式有DIGEST、BASIC、CHAP-PASSWORD、CARDDIGEST等认证方式。

DIGEST为HTTP-DIGEST认证方式。

目前SoftX3000只支持HTTP-DIGEST方式。

USERNAME表示被认证的用户的用户名。

REALM用于标识发起认证过程的域。

NONCE由发起认证过程的实体产生的加密因子。

RESPONSE终端在收到服务器的认证请求后根据服务器端产生的NONCE、用户名、密码、URI等信息经过一定的算法生成的一个字符串。

该字符串中包含了经过加密后的用户密码。

(在认证过程中除用户密码之外其他信息都会通过SIP消息以明文的方式在终端和服务器端进行传递。

),Page37,其他消息头域,URI为发起呼叫请求消息中的Request-URI。

由于终端在收到认证请求后需要重新向服务器端发起请求(其中带有认证响应信息)。

该请求消息在经过网络服务器时某些字段包括RequestURI都有可能被修改。

认证头域的URI参数用于传递终端发起请求时原始消息的Request-URI用于对认证信息进行认证,这样才能保证认证过程的正确性。

CNONCE:

如果在服务器端超时后终端才向服务器返回了带有认证响应的新的请求消息,则服务器端需要重新产生NONCE重新对用户进行认证。

其中NONCE中带有新的NONCE,老的NONCE会通过CNONCE参数返回给终端。

举例:

Authorization:

DIGESTUSERNAME=“6540012”,REALM=“”,NONCE=200361722310491179922,RESPONSE=b7c848831dc489f8dc663112b21ad3b6,URI=sip:

191.169.150.30,Page38,其他消息头域,Allow:

给出代理服务器支持的所有请求消息类型列表。

举例:

Allow:

INVITE,ACK,OPTIONS,CANCEL,BYEContent-Length:

表示消息体的大小,为十进制值。

如果消息中没有消息体,则Content-Length头字段值必须设为0。

举例:

Content-Length:

349,表示消息体的长度为349个字节Content-Type:

表示发送的消息体的媒体类型。

如果消息体不为空,则必须存在Content-Type头字段。

举例:

Content-Type:

application/sdpSupported:

SIP协议中定义的100类临时响应消息的传输是不可靠的,即UAS发送临时响应后并不能保证UAC端能够接受到该消息。

100rel扩展为100类响应消息的可靠传输提供了相应的机制。

如果UAC支持该扩展,则在发送的消息中增加Supported:

100rel头域和字段。

举例:

Supported:

100rel,Page39,请求消息实例,INVITEsip:

66500002191.169.1.110SIP/2.0From:

;tag=1ccb6df3To:

CSeq:

1INVITECall-ID:

20973e49f7c52937fc6be224f9e52543sx3000Via:

SIP/2.0/UDP191.169.1.116:

5061;branch=z9hG4bkbc427dad6Contact:

Supported:

100rel,100relMax-Forwards:

70Allow:

INVITE,ACK,CANCEL,OPTIONS,BYE,REGISTER,PRACK,INFO,UPDATE,SUBSCRIBE,NOTIFY,MESSAGE,REFERContent-Length:

230Content-Type:

application/sdpv:

0o:

HuaweiSoftX300010737418311073741831INIP4191.169.1.116s:

SipCallc:

INIP4191.169.1.95t:

00m:

audio30000RTP/AVP80418a:

rtpmap:

8PCMA/8000a:

rtpmap0PCMU/8000a:

rtpmap4G723/8000a:

rtpmap18G729/8000,请求起始行。

INVITE请求消息。

请求URI,即被邀用户的当前地址为“sip:

66500002191.169.1.110”。

SIP版本号为2.0,From字段。

指明请求发起方的地址为“”。

标记为“1ccb6df3”,用于共享同一SIP地址的不同用户用相同的Call-ID发起呼叫邀请时,对用户进行区分。

To字段。

指明请求接收方的地址为“”。

从From和To字段,我们可以看出:

IP地址为191.169.1.116的PROXY控制下的终端44510000拨打IP地址为191.169.1.110的PROXY控制下的66500002终端。

终端类型可以为SIP、H.323、IAD/AG下挂的ESL等。

Cseq字段。

用于将INVITE请求和其触发的响应、对应的ACK、CANCEL请求相关联。

Call-ID字段。

该字段唯一标识一个特定的邀请,全局唯一。

Call-ID为“20973e49f7c52937fc6be224f9e52543sx3000”,sx3000为发起呼叫的SoftX3000的域名,20973e49f7c52937fc6be224f9e52543为本地标识。

Via字段。

该字段用于指示该请求历经的路径。

“SIP/2.0/UDP”表示发送的协议,协议名为“SIP”,协议版本为2.0,传输层为UDP;“191.169.1.116:

5061”表示发送方SoftX3000IP地址为191.169.1.116,端口号为5061;“branch=z9hG4bkbc427dad6”为分支参数,SoftX3000并行分发请求时标记各个分支。

Contact字段。

指示其后的请求(如BYE请求)可以直接发往,而不必借助Via字段。

100rel扩展,该字段为100类响应消息的可靠传输提供了相应的机制,Max-Forwards字段。

表示该请求到达其目的地址所允许经过的中转站的最大值为70。

Allow字段。

给出IP地址为191.169.1.116的SoftX3000支持的请求消息类型列表。

Content-length字段,给出消息体的长度为230个字节,Content-Type字段,表示消息中携带的消息体是单消息体且为SDP。

SDP协议版本号,目前为0版本。

会话拥有者/创建者和会话标识,用于给出会话的发起者(其用户名和用户主机地址)以及会话标识和会话版本号。

“HuaweiSoftX3000”为用户名,用户名是用户在发起主机上的登录名。

第一个“1073741831”为会话标识。

第二个“1073741831”为版本号。

“IN”指网络类型,目前规定的“IN”为Inernet。

“IP4”指地址类型,目前已定义的有“IP4”和“IP6”两种。

“191.169.1.116”为创建会话的主机的IP地址。

会话名。

每个会话描述必需有一个且只有一个会话名。

连接数

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2