(通信与信息系统专业论文)sip协议研究及ua实现.pdf_第1页
(通信与信息系统专业论文)sip协议研究及ua实现.pdf_第2页
(通信与信息系统专业论文)sip协议研究及ua实现.pdf_第3页
(通信与信息系统专业论文)sip协议研究及ua实现.pdf_第4页
(通信与信息系统专业论文)sip协议研究及ua实现.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(通信与信息系统专业论文)sip协议研究及ua实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆大学硕士学位论文中文摘要 摘要 最近几年来s i p 协议越来越多的被重视。s i p 被3 g p p 工作组定义为第三代移 动通信系统的信令协议,这使得更多的人对s i p 协议感兴趣。s i p 协议能够融合移 动电话通信和i n t e r n e t 网络,可望在未来通信网络中发挥了良好的作用,论文对s i p 协议在视频通信中的应用进行研究,具有较好的实用价值。 文中首先简单阐述了本课题研究的背景和意义,再详细介绍了s i p 协议的功 能、特性以及应用。主要完成的工作有: ( 1 ) 详细介绍了s i p 协议的功能结构、实现原理、消息机制和信令流程,并详 细介绍了s i p 协议的移动性管理优势。在此基础上,针对通话前终端移动性的频 繁位置更新使得网络负荷增加、时延增加的问题,提出了改进的会话前终端移动 性管理框架。 ( 2 ) 结合o s i p 、e x o s i p 、j r t p l i b 、s d l 源码以及v 4 l i n u x ,设计并初步实现 了一套基于s i p 协议建立呼叫连接的口视频通信软电话。实现过程中,为了提高 视频采集速度,采用了内存映射的方法。同时在视频传输模块中,考虑到视频编 码后的视频帧数据可能大于r t p 可以携带的负荷,提出并实现了视频分帧算法。 ( 3 ) 模拟呼叫前终端移动性的信令建立过程,采用a s t e r i s ks i p 服务器为注册 服务器和代理服务器,仿真了用户代理u a 的注册过程和用户代理u a 之间的简单 呼叫过程。 论文的实现基于l i n u x 平台,采用c c + + 编写代码。局域网内视频通信不存在 时延和抖动问题,因此,点对点的视频通信能够流畅进行,实现的系统满足局域 网内的视频通信。由于a s t e r i s k 服务器支持s i p 的注册和代理服务功能,并且具有 优越的用户权限管理能力,所以在此基础上仿真的注册过程完全符合s i p 协议规 定的信令流程。 关键词:s i p ,视频,v o i p ,u a ,可视电视 a b s t r a c t s i ph a sg a i n e dal o to fa t t e n t i o no v e rt h el a s tf e wy e a r s t h ed e c i s i o nt ou s es i p a s t h es i g n a l i n gp r o t o c o lt op r o v i d ei pm u l t i m e d i as e r v i c e si nt h et h i r dg e n e r a t i o n o f m o b i l es y s t e m sh a sd r a m a t i c a l l yi n c r e a s e dt h en u m b e ro fp e o p l ei n t e r e s t e di nk n o w i n g a b o u ts i p s i pi st h ep r o t o c o lt h a tw i l lm e r g et o g e t h e rt h ec e l l u l a ra n dt h e i n t e m e t w o r i d s w i t ht h ed e v e l o p m e n to fn e t w o r kt e c h n o l o g y , s i pp r o t o c o lw i l lp l a yt h em o s t i m p o r t a n ta n dt h em o s tc r u c i a lr o l e si n t h en e a rf u t u r e t h i sp a p e rs t u d yo nm e d i a c o m m u n i c a t i o nu s i n gs i ph a se n o r m o u sp r a c t i c a b i l i t y i nt h ep a p e r , if i r s te x p l a i n e dt e c h n o l o g i c a lb a c k g r o u n da n ds i g n i f i c a n c e o ft h i s p a p e ra n dt h e nm a k ead e t a i li n t r o d u c t o r ya b o u tf u n c t i o n sa n dc h a r a c t e r i s t i c so fs i p p r o t o c 0 1 s u m m a r i l yt h i sp a p e rc o m p l e t e st h e w o r ka sf o l l o w s : ( 1 ) h a v ead e t a i l e di n t r o d u c t i o na b o u tt h ef u n c t i o ns t r u c t u r e ,r e a l i z a t i o np r i n c i p l e , m e s s a g em e c h a n i s ma n ds i g n a l i n gf l o wo f s i pp r o t o c o l ,a n dt h ea d v a n t a g eo fs i p - b a s e d m o b i l i t vm a l l a g e m e n t a n dt h e nip r o p o s e da l li m p r o v e df r a m eo fs i pm o b i l i t yb e f o r e c a l l i n ga b o u tt i m ed e l a ya n dji t t e rw h i c h c a u s e db yh i g hf r e q u e n c yo fr e g i s t e r ( 2 ) iu s e ds o m eo p e ns o u r c e s ,s u c ha so s i p 、e x o s i p 、j r t p l i b 、s d l a n dv 4 l i n u x t oi m p l e m e n tas y s t e m b a s e do ns i pp r o t o c o l ,t h i ss y s t e mc a ne s t a b l i s h am e d l a c o m m u n i c a t i o ns e s s i o n i no r d e rt oi n c r e a s et h es p e e do fv i d e oc a p t u r eiu s e d am e t h o d n a j t l e dm e m o r ym a p p i n g i nt h em o d u l eo fm e d i at r a n s m i s s i o n ,ii m p l e m e n ta r i t h m e t l c t op a r t i t i o nv e d i of r a m e ,s ot h a tt h e s ed a t a ss u m i ss m a l l e rt h a nt h en u m b e rt h a to n e r t pc a l lb r i n g ( 3 ) iu s ea s t e r i s ks i ps e r v e ra sr e g i s t r a ra n dp r o x y t os i m u l a t er e g i s t e ra n dc a l l i n g s i g n a l i n gs e t u pa f t e rt e r m i n a lm o b i l i t y ii m p l e m e n tt h i sp a p e ro nt h ep l a t f o r mo fl i n u x ,u s ec c + + c a p t u r e dv i d e od a t a c a nb e 仃a n s r l l i t t e df l u e n t l yb e t w e e np o i n tt op o i n tt e r m i n a l sb e c a u s eo ft r a n s m i t t i n g i n l o c a la r e an e t w o r k a sa s t e r i s ks e r v e rs u p p o r t ss i pr e g i s t r a t i o na n dp r o x yf u n c t i o n ,a l l d i th a se x c e l l e n tm a n a g e m e n ti nu s e ra u t h o r i t y ,t h es i m u l a t i o n o fu ar e g i s t r a t i o nl s c o n s i s t e n tw i t hs i g n a l i n gf l o w i n gr e g u l a t e db ys i pp r o t o c o l k e y w o r d s :s i p ,v i d e o ,v o i p , ,u a ,i pt e l e p h o n e i l 学位论文独创性声明 文中不包含其他人己经发表或撰写过的研究成果。与我一同工作的同志对本研究 所做的任何贡献均己在论文中作了明确的说明并表示了谢意。 学位论文作者签名:稍交屯签字日期:切口7 厂争 导师签名: 签字日期:矽哆彦纱 学位论文使用授权书 本人完全了解重庆大学有关保留、使用学位论文的规定。本人完全同意中 国博士学位论文全文数据库、中国优秀硕士学位论文全文数据库出版章程( 以 下简称“章程) ,愿意将本人的颂士学位论文绰盘虹蠲霭焱霉身砂 提交中国学术期刊( 光盘版) 电子杂志社( c n k i ) 在中国博士学位论文全文数 据库、中国优秀硕士学位论文全文数据库以及重庆大学博硕学位论文全文 数据库中全文发表。中国博士学位论文全文数据库、中国优秀硕士学位论 文全文数据库可以以电子、网络及其他数字媒体形式公开出版,并同意编入c n l 【i 中国知识资源总库,在中国博硕士学位论文评价数据库中使用和在互联 网上传播,同意按“章程”规定享受相关权益和承担相应义务。本人授权重庆大 学可以采用影印、缩印或其他复制手段保存论文,可以公开论文的全部或部分内 容。 作者签名:聊躲磕型 砷年石月d 日 备注:审核通过的涉密论文不得签署一授权书一,须填写以下内容: 该论文属于涉密论文,其密级是,涉密期限至 年一月一日。 说明:本声明及授权书:鲤装订在提交的学位论文最后一页。 重庆大学硕士学位论文1 绪论 1 绪论 1 1 课题的背景和意义 随着3 g 移动牌照在我国的发放,整个网络将转向全网络。会话初始化协议 ( s e s s i o ni n i t i a t i o np r o t o c o l ,简称s i p ) 【i 】近年来在移动通信和i n t e r n e t 网络领域受到极 大关注,是下一代网络中的核心协议之一。它最初是由正球的m m u s i c ( m u l t i p a r t y m u l t i m e d i as e s s i o nc o n t r 0 1 ) t 作组提出的一个标准,用来解决口网络上的信令控 制。在口网络分层模型中,如图1 1 所示【2 】,s i p 是工作在应用层的一个信令协议。 露 痿 藿 鬣 痿 雯 层 图1 1v o i p 网络层次结构 f i g u r e l 1l a y e r so fv o i p 随着网络带宽的增加,使视频通信应用在移动通信领域成为可能,v o i p 技术 逐渐成熟。s i p 最初提出的应用场景包括i p 电话呼叫、多媒体会议、多媒体分发 ( d i s t r i b u t i o n ) 等等。但是由于s i p 协议其简单性、基于文本性、易扩展性【3 1 等,使得 s i p 的应用领域远远不限于这些场景。s i p 协议是基于i n t e r n e t 两个最成功的服务w e b 和e m a i l 进行设计的。现在s i p 已经被3 g p p 工作组定义为第三代移动通信系统的信 令协议以提供口多媒体服务【4 】。它能够将蜂窝移动通信系统和i n t e m e t 应用领域融合 在一起。利用s i p ,用户能够把传统的i n t e m e t j j 民务! t l :i e m a i l 、w e b 以及多媒体跟即时 消息等新服务结合起来。同时s 口又是天然的支持用户移动性管理,是属于应用层 移动控制范围。s i p 对移动性的支持在于s i p 的会话属性调整和灵活的消息功能。 重庆人学硕十学位论文1 绪论 s i p 移动性的支持包括对终端、个人以及服务等方面。 由于s i p 协议跟其他通信关键技术的高效联通性和互操作性,如s i p 协议与 s d p 、r t p 、r t c p 、t c p i p 、u d p 等协议及视频编解码技术等的相关性。使我在 写论文的过程中,在学习s i p 协议的同时,掌握了其他相关网络知识,并努力掌握 了整个通信网络中涉及的各种相关技术如传输技术、编码技术等等,对于巩固自 身的通信知识起了重大作用。 1 2 本文的主要工作和安排 本课题主要完成了基于s i p 协议的u a c u a s 的建立和简单的视频通信,u a c 采集视频数据,传输视频数据,u a s 接收视频数据并且回放视频数据。模拟呼叫 前终端移动性的信令建立过程,采用a s t e r i s ks i p 服务器为注册服务器和代理服务 器,完成了s i p 用户代理之间的简单呼叫过程。 论文内容章节安排如下: 第一章主要介绍课题研究的背景、目的和意义以及简单介绍课题内容安排情 况。 第二章介绍文献【l 】中定义的s i p 协议的具体规范说明,如s i p 协议的消息结构、 实现机制、实体元素、消息请求及响应流程、s i p 消息体s d p 协议的规范等等。 第三章介绍s i p 协议在移动通信领域中支持用户各种类型移动性管理的功能, 可以分通话前和通话中移动性管理,也可以分为终端、会话、个人、服务等移动 性管理 第四章介绍了本论文实现过程中采用到的几个关键技术的开源库。实现s i p 协 议的开源协议栈o s i p 及其扩展e x o s i p ,以及在视频通信中用到的各项关键技术如 视频编解码m p e g - 4 开源库x v i d c o r e ,r t p r t c p 视频传输的开源库j r t p l i b 第五章介绍了实现s i p 注册服务器功能的a s t e r i s ks i p 服务器及其简单使用配 置。并基于o s i p 和e x o s i p 开源实现了u a 向a s t e r i s ks i p 服务器的注册过程,模 拟呼叫前的终端移动性,实验成功。 第六章为本课题的重点,实现了u a c u a s 的视频通信,具体涉及的模块有 u a 终端信令模块,视频采集模块,视频编解码模块,视频传输模块,视频回放模 块。同时模拟了u a 终端移动后,呼叫信令的会话建立过程。本章结束简单显示 了整个系统的测试结果。 第七章总结了本课题的成功之处,同时也简单阐述了本课题不足的地方,如由 于整个系统都是本人单独完成,考虑时间问题,而没有完全的实现与用户交互信 2 重庆入学硕十学位论文1 绪论 息的主控模块和界面,没有对视频编码进行优化措施,没有考虑r t p r t c p 在非 局域网内的传输质量问题对传输性能的影响,也没有考虑n a t t 5 1 穿透等问题。 重庆人学硕十学位论文2 会话初始化协议s i p 协议分析 2 会话初始化协议s i p 协议分析 s i p 协议属于应用层协议,应用于口网络的通信终端,它主要的功能包括呼叫 建立、修改、终止等功能,它同样能够邀请其他用户参加已经存在的媒体会话。 会话是指用户之间的数据交换。对于已经存在的会话,s i p 能够增加另外的媒体, 比如会话开始只有语音信息,你能够通过s i p 的o f f e r a n s w e r 模式增加视频信息。 s i p 支持名字映射和重定向服务,主要用于个人移动性:不管用户的具体网络地址, 用户只有一个外部的唯一可见标识。 s i p 支持五个方面的媒体通信的建立和终止功能:1 用户定位功能( u s e rl o c a t i o n ) : 用于决定会话通信中具体的哪个终端系统。2 用户的有效性( u s e ra v a i l a b i l i t y ) :能够 检测被叫用户参与会话的意愿。3 用户的能力( u s e rc a p a b i l i t i e s ) :决定用户的媒体和 媒体参数使用。4 会话建立( s e s s i o ns e t u p ) :响铃、呼叫方和被叫放的会话建立参数。 5 会话管理( s e s s i o nm a n a g e m e n t ) :包括呼叫转移、会话终止,会议参数修改和激活 服务。 s i p 协议只有结合其他正正协议才能提供完整的多媒体通信服务。一般来说具 体的协议有如下几个:整个多媒体通信框架中包括传输媒体数据和提供q o s 反馈信 息的实时传输协议r t p r t c p ,控制流传输的实时流传输协议r t s p ,跟p s t n 网 络通信的媒体网关控制协议m e g a c o 和提供会话描述服务的s d p 协议。但是s i p 协议并不依赖于其他任何协议。s i p 本身并不提供业务,但是s i p 提供的基础可以 用来实现不同业务。s i p 是类似于h t t p 的基于文本的请求响应事务模式。 2 1s i p 实现机制 t r a n s a c t i o n u s e r ( t u ) t r a n s a c t i o n l a y e r t r a n s p o r t l a y e r s y n t a xa n d e n c o d i n gl a y e r 图2 is w 层次结构图 f i g 2 il a y e r so fs i p 4 重庆人学硕士学位论文2 会话初始化协议s i p 协议分析 s i p 采用四层分层结构。从底层往高层分别是编码与语法层、传输层、事务层 和事务用户层。如图2 1 所示。各层行为根据一组平等独立的处理阶段来描述,每 一阶段之间只是松耦合。协议分层是从逻辑功能角度来描述的,当我们说某个元 素包含某层时,是指该元素服从该层定义的一系列规则,但并不是协议规定的每 个元素都包含每个层。 底层编码规定使用扩展巴克斯范式b n f 。传输层位于语法编码层之上,传输 层定义了在网络上一个客户端怎样发送请求和接收响应以及服务器端如何接收请 求和返回响应。所有的s i p 元素都包含一个传输层。位于传输层上面的是事务层, 事务是s i p 的核心概念。一个事务的组成包括由一个客户端事务通过传输层发送 一个请求消息到服务器端事务以及从服务器端事务返回的所有响应该请求的响应 消息。事务层处理应用层的重传命令,为返回的响应消息搭配对应的请求消息以 及处理应用层的超时任务,u a c 的任何任务都是由一系列的事务构成的。u a 用 户代理跟状态服务器一样都有一个事务层,无状态服务器没有事务层因为它不需 要保存和管理用户代理的处理和响应的中间过程。s i p 系统通过使用事务实现在不 可靠的传输层上实现s i p 消息的可靠传输。事务通常由一个客户端事务和一个服 务端事务组成,它们使用有限状态机进行操作。 在事务层上面的是事务用户层。当一个事务用户想要发送一个请求消息时,它 创建一个客户端事务,并向该事务传递一个请求消息以及发送该消息需要的目的 地p 地址,端口和传输层协议。一个事务用户既能创建事务也能删除该事务。当 一个客户端希望取消一个事务时,它应该发送一个c a n c e l 请求,命令服务器端 停止下一步的处理,将实体的状态恢复到事务创建之前的状态,并且生成特定的 错误响应到该事务。 2 2s i p 实体 s i p 实体包括u a c 用户代理客户端、u a s 用户代理服务器端、代理服务器、 注册服务器、重定向服务器,区分他们的是事务用户核心。 u a c 和u a s 是终端用户设备,如移动电话,多媒体手持设备、p c 、p d a 等。 u a c 和u a s 是相对事务而言的,由于一个呼叫中可能同时存在多个事务,因此对 于同一个功能实体,在同一个呼叫中的不同阶段会充当不同的角色。例如:主叫用 户在发起呼叫时,逻辑上完成u a c 的功能;当呼叫结束时,如果由被叫用户发起 b y e ,此时主叫用户侧的代理就是u a s 。 代理服务器,根据在会话过程中代理服务器能够存储状态信息的多少,可以分 为呼叫状态服务器、状态服务器和无状态服务器1 6 。 呼叫状态服务器( c a l ls t a t e f u lp r o x y ) , g , 须始终存在于会话之中,始终存在于会 5 重庆火学硕士学位论文2 会话初始化协议s i p 协议分析 话双方的链路中,它需要知道所有的s i p 事务,这种类型的代理服务器存储从会 话开始到会话结束的所有会话信息。这种类型的服务器一般能够提供与呼叫相关 的业务,比如计算通话耗时,该服务器可以在通话结束后以邮件的方式给通话双 方,提示双方通话总共多少时间等等。状态服务器( s t a t e f u l lp r o x y ) 通常也被叫做事 务状态服务器( t r a n s a c t i o ns t a t e f u l lp r o x y ) ,该服务器仅仅关心事务的信息。状态服务 器并不需要始终处于通信双方的链路中。例如存在这样一种情况,代理服务器起 到分支的作用( f o r k ,为了快速的找到通信目的端) ,该代理服务器把从u a c 接收 到的i n v i t e 请求消息分支发给不同的通信地址( 比如张三的家庭地址、学校地址、 寝室地址,为了快速的找到张三) ,此时该代理服务器必须保存该i n v i t e 事务的 状态信息,这样才能知道分支后的哪个i n i v t e 信息顺利的到达张三,哪些i n v i t e 地址无法抵达,是否有最终响应( f i n a lr e s p o n s e ) 或者临时响应。一旦张三被找到, 那么该状态服务器的任务已经完成,就没有必要再滞留在该次通信链路中,不再 保存该次事务信息。还有一点值得注意的是,状态服务器发送的a c k 信息仅仅针 对非成功的响应,比如响应状态码是大于2 9 9 的响应。而对于响应状态码为2 0 0 2 9 9 之间的成功响应,状态服务器是无权做出a c k 确认。对应2 0 0o k 响应的a c k 确认一般都由u a 做出确认,这是因为,分支后的每个i n v i t e ,当对端不可抵达 时,针对该i n v i t e 返回一个非成功响应,状态服务器作出a c k 确认以后,那么 就没有必要每次向u a c 返回非成功响应信息。无状态服务器( s t a t e l e s sp r o x y ) 就不 需要存储事务的状态信息,该服务器仅仅起传递信息作用,服务器收到请求消息, 把请求消息传递给下一跳( n e x th o p ) 然后立即清除所有关于该请求消息的任何状态 信息。当该无状态服务器收到响应时,仅仅根据响应消息中的v i a 头域来判断下一 跳( n e x th o p ) 。 重定向服务器是在s i pu a 更新位置后,对于定位被呼叫者起作用。重定向服 务器逻辑上由一个服务器端事务层( as e r v e rt r a n s a c t i o nl a y e r ) 和一个事务用户组成 ( t u ) 。它能够访问位置服务数据库从而得到用户的位置信息,然后把该位置信息 返回给客户端。注意:重定向服务器并没有做出实际a c t i o n 去定位被叫者位置,而 是通过返回被叫用户当前可能的所有位置列表给呼叫者,由呼叫者自己根据位置 列表重新发起呼叫到被叫用户。这是为了减少负责路由请求的代理服务器p r o x y 的负荷,提高信令路径的鲁棒性,它返回用户可能出现的位置列表,由用户代理 去进行用户定位的所有尝试。这里显示了重定向服务器跟代理服务器之间的区别, 代理服务器会自己尝试传递请求消息给下一个可能的位置而不是返回地址信息给 发送者。 6 重庆大学硕士学位论文2 会话初始化协议s i p 协议分析 2 3s i p 消息 2 3 1s i p 消息格式 s i p 是基于文本的协议,它使用u t f - 8 字符集。s i p 消息既可以是个从客户端 到服务器端的请求消息也可以从服务器端到客户端的响应消息。s i p 消息包括一个 起始行,一个或者多个头域、一行表示结束头域的空行以及含有可选的消息体。 空行必须存在,不管有没有消息体。大部分的s i p 头域和消息的语法跟h t t p 1 1 相似。但是s i p 绝对不是h t t p 的扩张版本。s i p 仅仅定义了请求消息和响应消息 两种,起始行可分为请求行和状态行两中格式。请求行规定了请求消息的方法 ( m e t h o d ) 类型,如玳v i t e 、r e g i s t e r 、a c k 、c a n c e l 、b y e 、i n f o 、r e i n v i t e 、 o f f e r 等等。请求行还包括接收消息的u r i ( r e q u e s t u r i ) 以及版本信息。 i n v i t e :在s i p 中,最重要的方法是i n v i t e 方法,该方法邀请其他用户加入 会话,相应的消息体是对会话参数的描述,描述的内容有主叫用户信息、媒体类 型以及相关参数,它用来在用户之间建立会话。 b y e :该方法用来结束一个会话,可以是服务器端产生也可以是客户端发起。 该消息相当于摘机结束通话。 a c k :a c k 用来确认从服务器端返回的响应,对于i n v i t e 方法,a c k 表示会 话建立成功。a c k 可以包含消息体。 c a n c e l :该方法用来告诉u a s 取消对接收到的请求消息处理,该请求消息通 常是i n v i t e 。c a n c e l 对那些需要u a s 长时间处理的请求消息如i n v i t e 特别 有用。此时c a n c e l 跟需要取消的请求消息具有相同的c a l l i d ,t o ,f r o m ,c s e q 标题字段。u a c 和大多数服务器都可以发起c a n c e l 消息。 r e g i s t e r :s i p 协议的更新用户位置功能是基于r e g i s t e r 的。一个用户代理 u a 向注册机r e g i s t r a r 发送r e g i s t e r 请求消息注册当f j 所在的位置信息, r e g i s t r a r 访问l o c a t i o ns e r v e r 位置服务裂刀( 位置数据库) 更新用户的当前位置信 息,这样当有其他用户代理向该用户发起呼叫建立请求时可以查询位置服务器得 到用户的位置信息。 o p t i o n s t 串删:用于查询网络中服务器和客户端的能力。例如,该方法可以判 断被叫用户代理是否支持某种特定类型的媒体。 除了上面的方法外还有其他方法如:s u b s c r i b e t l l l ( 预订某种服务功能如查询 对端的状态,在线、离线或者隐身等状态) ,n o t i f y ( 根据s u b s c r i b e 预订的需 求而返回相应信息如本地在线、本地离线等) ,d o ( d o 方法可以需要对端响应或者 不需要对端响应,可以使用在创建会话前或者会话中。功能有控制对方动作,更 新对方信息、查询对方状态、历史监控资料查询和回放等) 。r e f e r t l 2 1 方法用来呼 叫转移功能。s i p 是简单、容易扩展的协议,所以不停有新的方法被扩展应用。 7 重庆人学硕士学位论文 2 会话初始化协议s i p 协议分析 状态行包括s i p 版本信息、状态码和原因短语( r e a s o n p h r a s e ) 。状态码用三个 数字表示对请求消息的处理或理解结果。状态码的第一位表示响应类型,所以任 何包含状态码从1 0 0 到1 9 9 的响应消息用“1 x x 响应”表示。 s i p 2 0 规定了如下几种状态码类型: l x x :临时响应一请求消息已经接收到,正在开始处理该请求消息,用户代理 服务器端发送临时响应消息。 2 x x :成功响应一请求消息被成功的接收、理解和认可。返回成功接收响应。 3 x x :重定向一为了完全的处理该请求消息,需要对该请求进行另外的处理, 比如原接收端改变了当前位置,发送给原接收端的请求消息需要重定向到新的当 前位置。 4 x x :客户端错误一请求消息中包含错误的语法,服务器端无法理解或者无 法处理该请求消息。 5 x x :服务器端错误一请求消息明显的有效,但是用户代理服务器端处理该 请求消息失败。 6 x x :全局失败一该请求消息在任何服务器端都处理失败。 各种类型的具体状态码值说明如下表2 1 : 表2 i 各种状态码及其含义 里垒! 丝:! 墨! 坐g q 垒箜塑鱼墅生丛曼型璺g ! 状态码含义状态码含义 8 重庆人学硕士学位论文2 会话初始化协议s i p 协议分析 续表2 1 状态码含义状态码含义 4 0 2 4 0 3 4 0 4 4 0 5 4 0 6 4 0 7 p a y m e n tr e q u i r e d 5 01 f o r b i d d e n5 0 2 n o tf o u n d5 0 3 m e t h o dn o ta l l o w e d5 0 4 n o ta c c e p t a b l e5 0 5 p r o x y a u t h e n t i c a t i o n6 0 0 r e q u i r e d n o ti m p l e m e n t e d b a dg a t e w a y s e r v i c eu n a v a i l a b l e g a t e w a yt i m e - o u t s i pv e r s i o nn o ts u p p o r t e d b u s ye v e r y w h e r e 4 0 8 r e q u e s tt i m e o u t 6 0 3d e c l i n e 4 0 9 c o n f l i c t 6 0 4 d o s en o te x i s ta n y w h e r e 4 10g o n e6 0 6n o ta c c e p t a b l e 兰! ! 垦星里g ! 垫! 曼9 坚! 堡垒 s i p 消息( 请求消息和响应) 的格式为: 起始行 一个或者多个消息头域 c r l f ( 空行) ( 消息体) 起始行分为请求行( r e q u e s t ) 和状态行( 1 x x 一6 x x ) ,请求行就是上面所说的各种消 息方法。状态行是对于响应来说的。 不管是请求消息还是响应消息,s i p 都包括多个头域。其中几个主要的头域含 义是: t o 字段表示被叫用户的注册地址,而起始行中的r e q u e s t u r l 中的域名地址 为下一跳地址( n e x th o p ) 。t o 字段表示的是终端用户的永久地址,由于移动性或者 其他原因,该用户的当前地址可能会和永久性地址有所不同,在请求消息的传送 过程中,代理服务器可能会根据定位查询的结果更改r e q u e s t u r l ,但是t 0 字段 地址值始终保持不变。 f r o m 字段表示发送方的帐户地址,c o n t a c t 字段表示用户的当前能够直达的地 址。v i a 字段表示请求消息实际经过的各个实体,响应消息根据v i a 字段逆向穿越 各个实体。 c a l l i d 字段为标识呼叫的全局唯一的标识符,用来区别若干个请求消息是否 是属于同一个呼叫。t o 和f r o m 中的t a g 联合c a l l i d 表示一个完整的p 2 p 会话 关系一对话( d i a l o g ) 。比如:b o b 邀请l a u r a 参加象棋游戏( i n v i t e l ) 采用一个 9 重庆大学硕十学位论文2 会话初始化协议s i p 协议分析 c a l l i d ,l a u r a 接受请求然后会话开始。过了一会b o b 邀请l a u r a 在玩游戏的同时 使用语音聊天,此时i n v i t e 2 的c a l l i d 2 将区别与原先的c a l l i d l 。然后b o b 想结 束语音聊天,b o b 发送一个b y e 消息给l a u r a ,该b y e 携带一个c a l l i d 2 ,l a u r a 接收到请求消息根据c a l l i d 2 得知b o b 想结束的是语音聊天而不是游戏。然后 l a u r a 终止语音聊天。其他头域将在下面详细介绍。 以上几个头域的解说都将在下面具体实现中得以证实。下面表2 2 列出了目前 s i p 支持的各种头域。 表2 2s i p 支持的头域 :! 垒坠! 曼三:兰旦曼垒垒曼! ! 卫坐兰堡墨坠巳巳q 盟曼垒 a c c e p tc o n t e n t - e n c o d i n g m a x f o r w a r d sr o u t e a c c e p t - e n c o d i n gc o n t e n t - l a n g u a g e m i m e - v e r s i o ns e r v e r a c c e p t l a n g u a g ec o n t e n t - l e n g t ho r g a n i z a t i o n s u b j e c t a l e r t - i n f o c o n t e n t t y p ep f i o f i t ys u p p o r t e d a l l o w c s e qp r o x y - a u t h o r i z a t i o n t o a l s od a t e p r o x y a u t h e n t i c a t et i m e s t a m p a u t h o r i z a t i o n e n c r y p t i o np r o x y r e q u i r eu n s u p p o r t e d c a l l i de r r o r - i n f or e c o r d - - r o u t e u s e r - a g e n t c a l l i n f o e x p i r e sr e q u i r e v i a c o n t a c t f r o m r e s p o n s e k e yw a r n i n g g 旦璺堕旦! :坐! 巳竺墅垒旦翌堡:堡也y :! q垦曼! 翌:垒垒笪鲨竖型尘塑! 堡垒! 曼 2 3 2s i p 事务、对话和会话 对话( d i a l o g ) 的含义是相对于点对点通信双方来说的,表示通信双方维持的一 种状态,在这种状态下通信双方之间内部的信息传递。其实类似于现实生活中甲 跟乙的谈话聊天,而s i p 中的信息传递就类似于甲跟乙的谈话内容传递。在参考 文献【l 】中规定,目前暂时只有i n v i t e 方法能够创建对话,对话的建立成功是在 u a s 返回一个2 x x 响应的时候开始的。 在s i p 中,u a 中对话用d i a l o gi d 标识。一个d i a l o gi d 由s i p 消息中的c a l l i d 、 t o 和f r o m 头域中t a g 组成。t o 中的t a g 是r e m o t et a g ,而f r o m 中的t a g 是l o c a lt a g 。 在同一个对话中u a 的l o c a lt a g 就是对等u a 的r e m o t et a g 。反之,r e m o t et a g 就 是对等u a 的l o c a lt a g 。对话有两个状态,e a r l y 状态由接收到临时响应创建,当 2 x x 最终响应接收到以后,状态转移到c o n f i r m 状态。当接收到其他响应,或者没 有接收到响应,该对话将被终止。 1 0 重庆大学硕十学位论文2 会话初始化协议s i p 协议分析 会话( s e s s i o n ) ,跟对话类似,会话也是由i n v i t e 请求消,g g , j 建,不同的是一 个会话中可能存在多对对话。其原因是这样的,因为一个i n v i t e 可以被分叉( f o r k ) 成多个副本发送给不同的u a s ,一旦两个或者两个以上接收到i n v i t e 消息的u a s 返回各自的2 0 0 0 k 后,每个2 0 0 0 k 被u a c 接收到后将创建一个会话,而其中每 一对u a c - u a s 将是一个对话。 事务( t r a n s a c t i o n ) ,s i p 是一种事务协议。网络实体元素之间互相独立的消息传 递都是经过事务处理的。事务是由一个请求消息( r e q u e s t ) 以及所有该请求消息的响 应( r e s p o n s e ) 组成,响应消息包括o 个或者多个的临时响应( p r o v i s i o n a lr e s p o n s e ) 以 及一个或者多个最终响应( f i n a lr e s p o n s e ) 组成。对于由i n v i t e 消息创建的i n v i t e 事务,a c k 有特殊的处理,当f i n a lr e s p o n s e 不是一个2 x x 类型的响应时,该i n v i t e 事务将包括a c k 消息。如果f i n a lr e s p o n s e 是一个2 x x 类型的响应时,该i n v i t e 事务不包括a c k 消息。此点关于a c k 是否属于i n v i t e 事务在下面的第6 章实 现部分可以体现出来。 事务分为客户端事务( c l i e n tt r a n s a c t i o n ) 和服务器端事务( s e r v e rt r a n s a c t i o n ) 。客 户端事务发送请求消息,服务器端事务发送响应消息。客户端事务和服务器事务 是逻辑实体存在于任何的网络实体元素中。下面对存在于u a 和状态服务器 ( s t a t e f u l ) 中的事务进行说明。在图2 。2 中u a c 执行客户端事务,它的出代理服务器 ( o u t b o u n dp r o x y ) 执行服务器端事务,同时该o u t b o u n dp r o x y 执行客户端事务,发送 请求消息给u a s 的进代理服务器( i n b o u n dp r o x y ) 。i n b o u n dp r o x y 执行服务器端事 务接收请求消息的同时又执行客户端事务发送请求信息给u a s 。 r e q u e s tr e q u e s tr e q u e s t c l i e n t s e r v e rc i i e n t s e r v e rc l i e n ts e r v e r t f a n s t r a n s t f a n s t f a n st r a n st r a u s r e s p o n s q r e s p o n s er e s p o n s u a co u t b o u n dp r o x yi n b o u n dp r o x yu a s 图2 2 事务关系图 f i g u r e 2 2t r a n s a c t i o nr e l a t i o n s h i p s 值得注意的是无状态服务器没有事务这个概念。s i p 客户端事务的作用是从 t u ( t r a n s a c t i o nu s e r ,可以是u a 终端或者状态代理服务器) 获取请求消息,然后可 靠的传输给服务器端事务。同时客户端事务接收响应然后把这些响应传给t u ,客 户端事务过滤掉重复发送的响应和非法的响应。相似的,服务器端事务的作用是 重庆人学硕士学位论文2 会话初始化协议s i p 协议分析 从传输层接收请求消息然后传递给t u ,同时服务器端事务过滤掉重复发送的请求 消息。服务器端事务接收来自t u 传递来的响应,然后把这些响应传递给传输层, 传输层通过网络发送出去。 下面介绍事务管理的状态机转换。事务管理是通过状态机的转换来实现的。客 户端事务可以分为i c t ( i n v i t ec l i e n tt r a n s a c t i o n ) 和n i c t ( n o n i n v i t e c l i e n t t r a n s a c t i o n ) 两种。同时服务器端事务也可以分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论