sip的基本原理与机制

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1SIP的基本原理与机制2总目录•1.SIP协议体系的总体框架•2.请求•3.答复•4.头域•5.消息体•6.各种硬件的行为•7.SIP的安全机制•参考文献31.SIP协议体系的总体框架•1.1SIP协议的通用性•1.2SIP协议的中的硬件组成•1.3请求、答复与SIP处理•1.4SIP地址•1.5头域和消息体•1.6其他重要概念41.SIP协议体系的总体框架SIP(SessionInitiationProtocol——初始会话协议)协议的功能是创建、修改及终止会话。在会话过程中,SIP只起到保持会话的作用,而会话本身则不是由SIP来完成的。51.SIP协议体系的总体框架•1.1SIP协议的通用性•会话可以是双方会话,也可以是多方会话。•会话所采用媒体形式受设备的限制,而受SIP协议的限制,SIP协议只是在会话发起过程中,对通信各方的性能进行勾通而已。•SIP协议的应用要求与底层的传输协议无关。在SIP最低配置情况下,SIP协议至少要在TCP和UDP两个协议体系下都能够应用。61.SIP协议体系的总体框架•1.2SIP协议的中的硬件组成•客户端(UAC:useragentclient)•服务器(server):用户服务器(UAS:useragentserver)代理服务器(proxyserver)重定向服务器(redirectserver)注册器(register)注:“硬件”在这里等于功能实体71.SIP协议体系的总体框架•1.2SIP协议的中的硬件组成用户代理服务器服务器服务器用户代理用户代理客户端(UAC)用户服务器(UAS)81.SIP协议体系的总体框架•1.2SIP协议的中的硬件组成•客户端是发出请求(request)的功能实体•服务器接收、处理请求和答复,并在一定情况下也对请求做出答复(response)的功能实体(包括UAS)•用户代理是SIP处理的实际参与者。(SIP处理后文介绍)•用户是会话的实际参与者91.SIP协议体系的总体框架•1.3请求、答复与SIP处理•请求客户端通过发送请求最终实现与其他一个或多个用户代理之间的创建、修改及终止会话。请求的方法(Method)主要有:邀请(INVITE)确认(ACK)选择(OPTION)再见(BYE)取消(CANCEL)和注册(REGISTER)101.SIP协议体系的总体框架•1.3请求、应答与SIP处理、•答复答复是服务器对请求的响应。如果按照答复中的状态码(statuscode)分类,答复可以分为1××~6××六种类型。一个请求的发出也可能引起一系列的答复111.SIP协议体系的总体框架•1.3请求、应答与SIP处理•临时答复和最终答复比如,当请求发出以后,在请求尚未到达目的地之前或正在被处理的阶段,首先与客户端进行通信的服务器就会向客户端发出临时答复(如100(Trying)答复)。而当请求被接受或拒绝时,服务器或被叫方发出的就是最终答复。121.SIP协议体系的总体框架•1.3请求、答复与SIP处理•发送和处理请求与答复就是SIP硬件的基本功能,所有的SIP操作都是由一系列的请求和答复的交互过程所组成的。•从一个SIP请求的产生到这个请求得到了最终答复的整个过程中,通信各方所产生的所有的请求与答复的总合称为一个SIP处理(transaction)。131.SIP协议体系的总体框架•1.4SIP地址•URL(UniformResourceLocator-统一资源定位)URL是用户代理的地址,它的形式是user@host。其中,user是一个用户名或电话号码,而host则是一个域名或数字地址。为了与Internet地址形式相区别,在写SIP地址时一定要加上“sip:”,即sip:user@host。•比如sip:sales@example.com141.SIP协议体系的总体框架•1.4SIP地址用户代理的URL的确定是通过客户端向注册器发送注册请求来获得的。•Request-URI(UniformResourceIdentify-统一资源标识符)Request-URI指定了目标用户或服务器(请求将被发到的下一个hop)的地址。Request-URI可以是SIPURL,也可以是一般的URI。。151.SIP协议体系的总体框架•1.4SIP地址•参数如果把地址理解为可以与目的地取得联系的必要信息的话,那么SIP协议中还有其他一些与地址有关的重要参数。比如:branch(分支)参数;tag参数等参数可以出现在各种头域中161.SIP协议体系的总体框架•1.4SIP地址•举例(协议P57,协议P132):From:A.G.Bellsip:agb@bell-telephone.comFrom:sip:+12125551212@server.phone2net.comFrom:Anonymoussip:c8oqz84zk7z@privacy.orgTo:Bobsip:bob@example.com;tag=376364382171.SIP协议体系的总体框架•1.5头域和消息体•头域虫形结构图请求或答复消息体头域头域头域头域头域………………………………参数参数参数……参数参数…其余181.SIP协议体系的总体框架•1.5头域和消息体•头域(headerfield)SIP是通过附加在请求或答复中若干头域来传递和处理与会话相关的若干信息,如路由、呼叫标识、安全机制、会话描述等一个头域中还会包含若干个参数。在特定SIP处理中,不是所有参数都必须给出。举例:From,To,Via;Call-ID,CSeq;Hide;Date191.SIP协议体系的总体框架•1.5头域和消息体•消息体(messagebody)除了头域之外,请求和答复中还可能包含消息体,在不同的情况下,消息体包含不同的内容。具体情况请参见第5章。•其余:请求与答复中信息的主要载体就是头域和消息体,但也还有其余的内容。如在答复中,状态码就写在消息的头一行,而不在任何头域之内。201.SIP协议体系的总体框架•1.6其他重要概念•CalllegCallleg并不是某个具体的头域或参数,它是由Call-ID,From和To三个头域中信息共同组成的。实际上,可以这样理解Callleg:Callleg唯一确定了一个会话(可能是双方会话,也可能是多方会话。)中的一对连接。212.请求•2.1邀请(INVITE)•2.2确认(ACK)•2.3选择(OPTION)•2.4再见(BYE)•2.5取消(CANCEL)•2.6注册(REGISTER)222.请求•客户端通过发送请求来触发一次创建、修改及终止会话的SIP处理。请求的主要方法也就是以下这几种:邀请(INVITE)确认(ACK)选择(OPTION)再见(BYE)取消(CANCEL)注册(REGISTER)232.请求•2.1邀请(INVITE)•邀请请求是会话建立的第一步•在邀请请求的消息体中,呼叫方要向被叫方提供会话描述•被叫方对邀请请求的成功的答复应当包括被叫方可以接受的媒体类型和它希望发送的媒体类型242.请求•2.1邀请(INVITE)•被叫方可能收到相同或重复的请求,若该用户已经加入了这个特定的会话,用户服务器就会自动答复一个200(OK)•必须支持此方法的硬件有:客户端、用户服务器、代理服务器、重定向服务器。252.请求•2.2确认(ACK)•确认请求只与邀请请求伴随而生,它表示主叫方收到了对其邀请请求的最终答复。(这个最终答复不一定来自被叫方,也不一定表示邀请成功)•必须支持此方法的硬件有:客户端、用户服务器、代理服务器、重定向服务器。262.请求收到答复的类型确认请求的含义2××型邀请成功非2××型收到这个答复,但邀请失败•2.2确认注:2××答复表示成功邀请失败可以有多种原因,如:被拒绝或找不到被叫方等。272.请求•2.3选择(OPTION)•这个请求主要是让通信各方能够根据各种情况来确定如何通话或不通话。•必须支持此方法的硬件有:客户端、用户服务器、代理服务器、重定向服务器、注册器。282.请求•2.4再见(BYE)•客户端用再见请求来告知服务器它想结束此次呼叫•主叫方和被叫方都可以发出此请求•在客户端发出再见请求之前,不可以释放当前呼叫(挂机)。•会话的参与各方在收到再见请求后应立即停止对目标发送任何媒体流。292.请求•2.4再见(BYE)•若邀请请求中有Contact头域,被叫方就要把再见请求发送到这个头域中的地址,而不是发送到From头域中的From地址。•必须支持此功能的硬件有:客户端、用户服务器、代理服务器、重定向服务器。302.请求•2.5取消(CANCEL)•取消请求把与其具有相同的Call-ID,To,From,CSeq头域值的请求取消•取消请求只能用于取消那些悬而未决的请求。所谓“悬而未决”是指最终答复尚未发出•客户端和代理客户端(proxyclient)都可以发出取消请求。312.请求•2.5取消(CANCEL)•一旦用户服务器收到一个取消请求,它就不能对原来的那个请求做出2XX的答复,因为这个请求已经被取消了•必须支持此方法的硬件有:所有的硬件。322.请求•2.6注册(REGISTER)•客户端通过注册请求把自己的地址注册到SIP服务器。•一个客户端通过向通用的“allSIPservers”多播地址:“sip.mcast.net”(224.0.1.75)发送注册请求来实现在本地服务器上注册。•接收并处理注册请求的任何服务器在接收注册请求时就是注册器(一般是代理服务器)332.请求•2.6注册(REGISTER)•Request-URI则是给登记请求的目的地(发出请求的客户端)命名。•Contact头域在注册请求中十分重要。如果注册请求中含有Contact头域,那么在未来有某个非注册请求要被发送到To头域中给出的地址时,那么这个请求将直接被发送到Contact头域给出的地址。343.答复•答复是服务器对请求的响应。但服务器对请求的响应不只是答复。•答复中最重要的信息是状态码(status-code)。其他信息则包含在头域和消息体中。•状态码写在答复消息的第一行,它是由3位整数数字组成,•状态码指明了接收请求的一方尝试理解和满足所收到的请求的结果。353.答复•3个数字中,第一个表示答复的种类,后两个数字没有特别的分类。它们的基本含义如下:•1XX:通知形——收到请求,正在继续处理请求。•2XX:表示成功——动作被成功的接收、理解和操作。•3XX:重新进行请求——要完成请求还需要进一步的信息和操作。363.答复•4XX:用户方错误(由于用户方问题无法完成操作)——请求中包含错误的语法或不能被满足的内容。•5XX:服务方错误(由于服务方问题无法完成操作)——对于一个明显是有效的请求,服务器无法满足。•6XX:全球错误——该请求在任何服务器上都无法完成。373.答复•要完成基本的通信功能,参与通信的任何一方不必有能力理解所有的状态码,只需知道其种类也就可以进行大部分工作了。当其不理解XXX时,就按X00处理。•对于每一个具体状态码的功能和含义,在协议第4、7章有逐条的说明,不难理解。而答复的其他功能和处理则多与头域有关。384.头域•4.1头域概述•4.2重要头域举例394.头域•4.1头域(headerfield或field)概述头域是SIP请求或答复中的一段内容,不同的头域有不同的主题和作用。•头域分类1:•请求头域•答复头域•在请求和答复都可以使用的头域404.头域•4.1头域概述•头域分类2:•一般(General)头域一般(General)头域是头域的通称•Entity(实体)头域Entity头域(是对消息体(message-body)或如果没有消息体时被“请求”认证(identified)的源的meta-information的解释。在协议中,messagebody=entity414.头域•4.1头域概述•头域分类3:•End-To-end头域End-To-end头域不能被代理服务器修改,如Cal

1 / 73
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功