ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:401.67KB ,
资源ID:6978455      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6978455.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于SDL的SIP协议设计重定向服务器毕业设计论文.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于SDL的SIP协议设计重定向服务器毕业设计论文.docx

1、基于SDL的SIP协议设计重定向服务器毕业设计论文通信软件与协议工程课程作业基于SDL的SIP协议设计(重定向服务器)学 院: 计算机学院 专 业: 通信与信息系统 年 级: 2012级 2013 年 6 月 26日第一章 绪 论1.1 研究的背景和意义SDL(specification and description language)是一种基于扩展有限状态机和抽象数据类型的形式化描述语言,定义在ITU的建议Z.100中。SDL自身的特性非常适合通信协议的形式化描述和实现。现在越来越多的电信设备开发商开始使用SDL 进行协议软件开发。设计模式是成功的软件实践经验和设计思想的总结。在通信协议软

2、件中,这种可重用的开发经验和设计思想的特点体现的尤为明显。为了减少通信协议的开发成本,降低出错率,提高开发效率和协议软件的质量,SDL模式技术应运而生。SIP是由IEFT(Internet Engineering Task Force)组织于1999年提出的多媒体通信框架的应用层信令协议,现在的版本是2001年提出的RFC3261,它可以用来在IP网络上建立一个多媒体会话,在需要的时候会改变和结束这个会话。SIP协议的设计思想和SMTP以及HTTP一样,都是基于互联网,采用的编码方式是基于比较简单的文本方式,协议简洁高效并易于扩展,很适合基于Internet的传输,是未来多媒体通信系统的主流发

3、展方向。SIP用来在因特网或者任意IP网络上创建、改变和结束一个多媒体会话,会话参与者可以只有两个,也可以是很多个,也就是说可以用来创建一个会议。SIP协议在下一代网络中有很重要的地位,SIP 能够连接使用任何IP网络(有线 LAN 和 WAN、公共 Internet 骨干网、移动 2.5G、3G 和Wi-Fi)和任何IP设备(电话、PC、PDA、移动手持设备)的用户,而传统的电话的通信范围和通信方式太窄,利用SIP,可以做到很多以前做不到的应用,这些应用将来会很有市场,而且会为众多企业和运营商提供很多商机,应用前景非常好。基于SIP的应用丰富多样,这些应用都离不开SIP服务器的支持,所以研究

4、SIP服务器如代理服务器、重定向服务器等就很有必要,也很有意义。1.2 课题研究现状SIP协议最早是在1999年出现的。当时IETF(Internet工程任务组)在IETF上提出了这一概念,当时出来了第一个版本RFC2543,最新的版本是在2001年出来的,即RFC3261,SIP的理论基础一旦建立,就相继出现看众多基于SIP协议的服务和产品。国内对于SIP的研究相对少些,但也有一些公司投入了力量,如华为、中兴等。他们在研究SIP的基础上也推出了一些应用和产品,产品当然包括SIP服务器,还有SIP终端之类的。但是总体来说,国内对SIP的研究和产品以及应用不多,就算有产品和应用,也几乎没有多少市

5、场份额。况且SIP协议也会根据技术发展和人们的需求做一些补充和完善,所以对SIP协议、服务器和SIP用户终端及其他新兴应用的研究很有必要和意义,很多的技术创新会在这过程中产生。第二章 SIP 协议综述2.1 SIP协议简介2.1.1 SIP协议的历史SIP(Session Initiation Protocol)会话初始协议,是由IEFT(Internet Engineering Task Force:Internet 工程任务组)下的MMUSIC(Multiparty Multimedia Session Control:多方多媒体会话控制工作组)提出来的。SIPv1是SIP协议的第一个版本

6、,不过这里的SIP还不是人们所熟知的会话初始协议,而它的含义是会话邀请协议(Session Invitation Protocol)。SIPv1于1996年2月22日第36届IETF会议上,作为一个Internet草案提交给IETF。不过SIPv1已经和后来的SIP一样使用了会话描述协议(SDP,Session Description Protocol),SIPv1使用的传输协议是基于UDP的,编码方式已经是基于文本的了,SIPv1协议的功能相对简单,只是用来处理会话的建立。同是在1996年2月22日,简单会议邀请协议(SCIP, Simple Conference Invitation Pr

7、otocol)的草案也提交给IETF。SCIP和SIPv1不同,SIPv1使用UDP,SCIP则使用TCP协议进行传输,SCIP的信令比SIPv1持续时间长,会持续到会话建立以后。在用户标识符方面,SCIP使用的是E-mail地址,采用的是超文本传输协议。在1996年12月的IETF第37届大会上,SIPv2作为Internet的草案提交给IETF。这时的SIP含义相比较SIPv1来说已经发生了变化,它不在是会话邀请协议(Session Invitation Protocol),而是由SIPv1和SCIP合并而成,是人们所熟知的会话初始协议(Session Initiation Protoco

8、l)。因为是两个协议合并而来的,所以这个新的SIP包含了SIPv1和SCIP这两个协议的特点,即,基于HTTP,使用的传输协议既可以是TCP也可以是UDP,它同时也是基于文本的。IETF在1999年2月发布了SIP的提议标准,这个提议标准即RFC2543规范。IETF在2001年又发布了新的规范,即RFC3261,并在以后不断地进行了完善。RFC3261中对多媒体会话过程是如何建立、如何修改和如何结束等进行了定义。它定义了用户间多媒体会话过程的建立、修改和终止。SIP协议的设计思想和SMTP以及HTTP一样,都是基于互联网,采用的编码方式是基于比较简单的文本方式,协议简洁高效并易于扩展,很适合

9、基于Internet的传输,是未来多媒体通信系统的主流发展方向。2.1.2 SIP协议的特点1. 基于 Internet 的设计原则,易于业务整合。在 OSI 七层结构体系中,SIP 位于应用层,这使得 SIP 协议可以独立于底层的协议,这样在建立、调整和结束一个会话的时候,它就可以和底层相互独立,底层只需要提供相应的接口和协议规范即可。同时由于 SIP 协议基于 Internet 的设计原则,这使得很多也是基于Internet 的协议可以和 SIP 很方便的互通。SIP 消息的语法衍生于 HTTP,所以 HTTP 中的很多消息和语法可以在 SIP 中重用,所以容易把相关业务整合起来。2. 独

10、立的传输层SIP 协议处于应用层,独立于底层协议,自然而然的也独立于传输层,对传输层没有多少限制。3. 第三方控制机制第三方控制是指自己本身并不参与会话,但是会有一些诸如建立呼叫的功能,SIP 协议支持第三方的控制机制。4. 很容易开发多媒体业务以前的固定电话只是单一的语音呼叫,但 SIP 不止如此,它管理的对象是会话,这个会话当然包括语音在内,但它还有新的内容在里面。如它可以包括数据、图像、视频流等业务,也就是说,使用 SIP 很容易开发其他通信业务。5. 移动性、兼容性和扩展性移动性体现在 SIP 定义了重定向服务器,这个服务器是 SIP 服务器的重要内容,它一般使用统一资源定位器(URL

11、)的方式来标识自己,有了重定向服务器,用户就可以得知目的用户的新位置。SIP 还具有向上兼容的特性,这主要体现在 SIP 的忽略机制上。SIP 提供了很多功能和消息标题头,但并不是每个代理服务器或用户都能完全用到,用不到的功能将会被忽略掉。SIP 的强大之处还在于SIP 有很多扩展功能,这些功能随着一些新的想法和应用还在不断扩展。6. 协议格式清楚,维护方便SIP 协议基于比较简单的文本格式,这样下来协议的可读性很强,在出现错误时,可以很方便地对错误进行分析,维护起来比较方便。2.1.3 SIP协议的功能1. 用户定位用户定位的完成主要是通过 SIP 协议的请求和应答消息来实现的。请求可以有

12、INVITE请求,也可以是 ACK 等其他请求,当传送的应答状态码为“200 OK”时,就可以根据以上这些消息来确定哪些用户代理或终端正在通信。SIP 协议也支持 URL,SIP 重定向服务器还支持终端用户的重定向功能。另外,其他的一些定位服务器也可以和 SIP 协议一起来用。2. 会话能力的协商SIP 请求消息中有一个 OPTION(可选项),它的状态码是 600-699。OPTION 为 SIP 会话的双方提供了可供他们选择的参数、他们想要了解的会话属性来进行会话的协商。3. 会话管理这是 SIP 协议中很重要的一个功能。任何一个 SIP 的终端用户都可以通过会话管理功能发起一个呼叫,同样

13、的话,如果他想把一些新的会话参与者加入会话或者结束这个会话,也是可以的。4. 呼叫建立一般是 SIP 代理服务器通过 100-199 的状态码来完成振铃,振铃也就是“Ringing”,这只是一个临时应答,但是这个临时应答却起到了连接主叫和被叫以及各种会话参数建立的功能。5. 呼叫处理有时候被叫方并不在你所知道的那个位置,或是他现在忙,这时你要通过 SIP 的重定向功能来找到被叫方的新位置,用通过包含有 Contact 头域的 BYE 请求消息来进行呼叫转移。2.2 SIP 实体C/S 模型,是互联网中经常采用的一种模型,也就是客户端/服务器模型(Client/Server),SIP 基于因特网

14、,自然也采用了这种结构。SIP的实体有两种,即 SIP 用户代理(User Agent, UA)和 SIP 服务器(SIP Server)。用户代理通常是用于发送和接收SIP的请求和应答消息,SIP电话是 SIP 用户代理的一个比较常见的形式。一个 UA 包含一个 UAC(User Agent Client,用户代理客户端)和一个UAS(User Agent Server,用户代理服务器)。服务器是用于对客户端提出的请求进行处理并提供应答。SIP服务器可以分为代理服务器(Proxy Server)、重定向服务器(Redirection Server)和注册服务器(Registrar),另外还有

15、一个不属于SIP服务器的范围,但也很重要的定位服务器。2.2.1 用户代理SIP 用户代理也就是 SIP 的端系统,常见的 SIP 用户代理有多媒体手持设备、各种 SIP电话(包括硬件或软件实现的 SIP 话机)、具有能创建和管理 SIP 功能的移动电话、PC 等。用户代理有两种类型,一种是用户代理客户端(简称 UAC),另外一种就是用户代理服务器(简称 UAS)。这两种类型在一个呼叫中起到不同的作用,分居于服务器的两端,UAC 发出呼叫的消息,UAS 用于接收呼叫的应答消息。2.2.2 重定向服务器重定向服务器用来对户代理进行重新定位,产生的应答码介于 300-399 之间,在所请求的用户地

16、址改变以后,它重定向到用户的新的地址,并通过 URL 的方式把这个新地址放在应答消息 3xx 中返回出去。代理服务器可以发送 SIP 请求消息,但是重定向服务器不会,而且重定向服务器也不能接受通话请求。一般一个好的 SIP 服务器会包括代理服务器、重定向服务器和注册服务器,这几个服务器可以放到一个平台上。而在通常情况下,通常说的术语 SIP 服务器是一般是指代理服务器,但有时也可以指重定向服务器,这并没有按照它们基本行为的不同来区分。在实际的应用中,同一个 SIP 服务器根据具体情形,有时可以表现出重定向服务器的功能,但可能又同时作为代理服务器来用。举个例子,某个人想要重定向所有会话邀请,一个

17、 SIP 服务器就可以帮他实现这个要求,同时,这个服务器又可以使用代理功能去处理其他的请求。2.2.3 注册服务器SIP 注册服务器是接收注册(Register)请求的服务器,用户向注册服务器发送了一个注册请求,注册服务器收到后,接收请求消息,注册成功后返回一个最终应答“200 OK”。同时它会把这个新注册的用户信息送到定位服务器中,以便日后需要的时候可以很方便地查找用户的位置信息。注册服务器从某种意义上说也可以是一个数据库,所有用户代理的位置信息都放在其中。2.2.4 定位服务器在 SIP 的实体中并没有定位服务器,而且 SIP 服务器和定位服务器之间也不像 SIP 实体之间那样使用 SIP

18、 协议,但它却是 SIP 体系结构中很重要的一部分。注册服务器把新注册的用户代理的信息传到定位服务器中,定位服务器也可以和本地的数据库相连,用来存储这些用户的注册信息,包括位置、IP 地址等信息,为用户提供定位的功能。一些定位服务器使用的是轻量级目录访问协议(Lightweight Directory Access Protocol, LDPA)或 My SQL 和 SIP 服务器进行通信。第三章 SIP工作流程及注册服务器配置和实现方法3.1 SIP 工作流程SIP 定义了注册/注销、呼叫、重定向以及能力查询四种工作过程,下面结合图例说明几种典型的呼叫处理。3.1.1 注册目的注册就是将自己

19、的 IP登记给注册服务器的过程, 以便其他用户通过一个称为统一资源指标符 URL 的地址来访问到。URL 地址可在该用户域的 SIP代理中解析。 每个用户在启动时, 都要到注册服务器注册当前的 SIP URL 和 IP地址的绑定,服务器最后把这些信息保存在位置服务器中。用户发送 REGISTER 请求向服务器通知他们当前所处的位置,这样,所有进入以 SIP格式所表示的目的地址的请求都被代理处理,或重定向到用户当前所在的 IP地址。注册过程为后续会话连接做准备。3.1.2 注册过程用户代理要通过SIP进行通信,首先要在相应的服务器上登记注册,如图 3-1 所示:图3-1 SIP注册流程注册的具体

20、流程如下:1) 用户代理 Alice 发送 REGISTER 请求给注册服务器,请求登记注册;2) 注册服务器通过在数据库中查询发现该用户不合法,返回一个 401 错误(Unauthorized)给 Alice,该错误响应中包含了令牌信息,用于用户再次注册的安全验证;3) Alice 再次发出注册请求,这时用户的账号密码等已被步骤 2 中的令牌作了加密处理;4) 注册服务器再次收到 REGISTER 请求,通过对用户的加密信息进行解密后再到数据库中进行合法验证,若 Alice 的信息合法,则登记入库,注册成功。另外,注册服务器会返回一个 200 OK 响应(成功响应)给用户代理 Alice。3

21、.1.3 通过重定向服务器的呼叫图 3-2 给出了两个UA之间通过重定向服务器进行呼叫的具体流程:图3-2 通过重定向服务呼叫的具体流程具体的呼叫流程如下:1) 用户代理 Alice发出会话邀请消息INVITE;2) 服务器收到请求后查询被叫方 Bob 的地址,然后发送302 响应(Moved Temporarily)给 Alice 的代理,告知 Bob 的地址信息;3) Alice 的代理收到响应后发送 ACK 向重定向服务器证实收到的响应消息;4) Alice 依照 302 的 Contact 中指明的地址直接发送 INVITE 消息给代理 Bob;5) Bob 端振铃的同时发送 180

22、响应给 Alice;6) Bob 用户摘机,发送 200 OK 响应给 Alice;7) Alice 收到响应后返回 ACK 进行确认;8) Alice 和 Bob 会话连接成功,两用户之间可以进行媒体流的传输;9) Bob 欲结束通话,于是发出 BYE 请求,提出终止通话的请求;10) Alice 同意结束会话,返回一个 200 响应,此后通话结束。3.2 注册服务器配置及实现方式3.2.1注册服务器SIP 提供了一个搜索机制,如果一个用户希望建立和其他用户的会话,SIP必须查找能够找到对方用户正在使用的当前主机(hosts)。这个搜索机制经常被 SIP网络基本元素使用,比如 proxy 服

23、务器,重定向服务器等等。他们在接收、以及响应一个请求的时候,会基于这个用户的位置信息来判定这个消息应该发送到哪里。要实现这个,SIP 网络部件考虑了一个抽象的服务:位置服务;位置服务是通过对特定地区提供地址绑定来实现的。一个 proxy 会从把输入的 URI 转换到用户实际位置的位置服务中得到最终用户的位置。注册服务为特定地区的位置服务创建绑定关系,这个绑定关系是用来建立包含一个或者多个联系地址的 address-of-record URI。因而,当那个地区的 proxy接收到一个请求,这个请求的 Request-URI 和 address-of-record 的记录匹配,那么这个 proxy

24、 会转发请求到这个 address-of-record 中登记的联系地址中去。3.2.2 注册服务器实现方式注册服务是为了实现位置的绑定,而这种绑定的目的在于最大可能的搜索到目标地址,从而成功转发消息。怎么样才能最大可能的完成搜索呢?这个就要求登记服务所覆盖的区域和 URI 中的 address-of-record 所覆盖的区域相同。注册服务器通过两种不同的注册方式来实现,用户注册方式和服务器注册方式。3.2.3 用户注册方式只有当对那个 address-of-record 的请求会被路由到这个区域的时候,登记这个address-of-record 到这个区域的位置服务才是有意义的。因为每个

25、proxy 主要处理本域的 UA,所以,发往这些 UA 的消息基本上都是要经过他的 proxy。这就要求UA 必须向负责他的域的注册服务器进行注册。UA 通过发送一个 register 消息到注册服务器进行注册,注册信息存储在位置服务。凡是发送到 UA 的 proxy 的消息,通过查询 UA 的注册信息得到 UA 地址,然后转发消息。如图3-3所示:图3-3 用户注册第四章 重定向服务器的设计以及在SDL上的实现4.1 重定向服务器概述代理服务器负责请求消息的路由。某些体系结构下可能需要降低它们的负荷,并提高信令传输通道的鲁棒性,这时可依靠请求重定向来达到目的。重定向即服务器用响应消息将某一请

26、求的路由信息返回给客户端,从而使服务器既起到了帮助选路的功能,又可以不必处理由该请求所导致的更多消息往来当请求的发起者收到重定向响应后,它将基于收到的URL发送新的请求。重定向通过把URL信息从网络的核心传递到边缘而使网络获得了相当大的扩展升级能力。重定向服务器逻辑上由一个服务器端事务端的事务层和一个能够访问某种定位服务的事务用户组成。定位服务器实质上是一个数据库,它包含单个URL到一个或者多个联系地址之间的映射,通过这些联系地址就能找到URL所对应的用户或实体。重定向服务器自己不发送任何SIP请求。在收到除CANCEL以外的请求时,重定向服务器可以拒绝它,或者通过定位服务获得一个可选地址列表

27、并返回一个3XX最终响应。对格式正确的CANCEL请求,重定向应返回2XX最终响应。该响应将结束被取消请求的SIP事务。重定向服务器维护整个SIP事务的状态。客户端检测重定向服务器之间发生的转发循环。当重定向服务器返回某个请求的3XX响应时,它在Contact头字段中装入一个地址列表(含一个或多个可选地址)。Contact头字段值中还可能提供“expires” 参数,以指名Contact数据的有效期。Contact头字段包含了可供发送的URL,这些URL给出了新的目标位置或新的用户名,或者只是简单地指定了其它的传输参数。301(永久移动)或302(临时移动)响应可能会给出与初始请求不一样的目标

28、位置和用户名,同时又指定另外的传输参数,比如一个不同的服务器地址或多播地址,或者将SIP消息的传输方式从UDP改为TCP或者从TCP改为UDP,等等。然而,重定向服务器决不能将请求重定向到一个与请求的Request- URI相同的URL地址。如果重定向的目的地URL所指的并非当前重定向服务器,它可能将请求向重定向目的地转发,或用一个404(未找到)响应来拒绝请求。重定向服务可以归结成为访问一个绝对位置服务来构建新的目的地址的形式,该服务是从 SIP 注册服务器创建的位置服务获得信息。通过 Request-URI 访问注册服务器中的注册信息,找到 Request-URI 对应的 Contact

29、列表,把 Contact 列表中的地址作为目标地址集合。在 Request-URI 的区域并非本 proxy 负责的区域的情况下,由于 proxy 之间存在注册关系,仍然可以尝试重定向服务,如果失败才把 Request-URI 放在目标集合中,并且作为唯一的一个目标 URI。在 Request-URI 的区域是本 proxy 负责的区域的情况下,如果 Request-URI 没有提供足够的信息来让 proxy 产生目的地集和,它应当返回一个 485(Ambiguous)应答。这个应答应当包含一个 Contact 头域,包含一些应当尝试的新位置。重定向服务流程如图4-1 所示。图4-1 重定向服

30、务流程4.2重定向服务器软件设计4.2.1 OSIP开发库OSIP是按照RFC3261(SIP)和RFC2327(SDP)标准,并使用标准c编写的一个SIP协议栈。它是一个公开源码的免费协议栈。OSIP协议栈结构简单而小巧,它并不提供高层的SIP会话控制的API,它主要提供一些解析SIP/SDP消息的API和事务处理的状态机。OSIP的优点:OSIP没有给开发者限定在特定的某个执行模式下,能够使开发者选定一个比较适合自己的模式;OSIP的各个模块是相对清晰、独立的,因而去掉某个模块时也比较容易;OSIP的解析器提供了较为完善的API,包含了消息的构造、修改和产生等;OSIP的缺点:OSIP目前

31、版本源代码结构、定义比较混乱,并且缺乏文档,阅读比较困难;该问题将在OSIP2中得到改善;OSIP不提供任何快速产生请求消息和响应消息的方法,所有请求消息和响应消息的形成必须调用一组sip message API来手动组装完成; 由于OSIP结构简单,外围相关模块需要用户自己开发,如SIP消息的接收和发送,RTP/RTCP的语音数据的处理等.4.3.2 OSIP结构分析OSIP主要包括三大部分的内容:状态机模块(Finite State Machines)、解析器模块和工具模块。其结构如图4-2图所示。图4-2 SIP结构图4.2.2 SIP消息解析模块解析器模块主要有SIP解析器,URL解析

32、器和SDP解析器三种。SIP解析器可以处理SIP起始行,SIP头域(如TO、FROM、CSEQ、VIA等),可以处理SIP消息体和状态码,其流程如图4-3所示。图4-3 消息解析4.3 SIP重定向服务器在sdl_ttcn上的仿真实现4.3.1 重定向呼叫SIP系统支持重定向,目前对重定向的使用主要包括完成呼叫转移业务和完成路由寻址或载荷分担应用两个方面。对于利用重定向完成路由寻址或载荷分担一般应用于组网环境下。此时网络中存在类似于路由查询的服务器,当此服务器接收到请求后,返回路由地址,从而完成路由查询或载荷分担功能。对于完成呼叫转移类业务,一般是用户的具体业务需求使用重定向功能。例如,用户可以定义在某种条件下(对于某一时刻或某人的呼叫)将呼叫路由到其他路径。这种业务类似于目前我们所使用的呼叫转移业务。该业务可以由网络启动也可以由用户终端启动。用户终端启动重定向的呼叫模型如图4-4所示.该

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1