(信号与信息处理专业论文)网络视频会议的关键技术设计与实现.pdf_第1页
(信号与信息处理专业论文)网络视频会议的关键技术设计与实现.pdf_第2页
(信号与信息处理专业论文)网络视频会议的关键技术设计与实现.pdf_第3页
(信号与信息处理专业论文)网络视频会议的关键技术设计与实现.pdf_第4页
(信号与信息处理专业论文)网络视频会议的关键技术设计与实现.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(信号与信息处理专业论文)网络视频会议的关键技术设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 多媒体通信给传统的单一的通信方式带来了巨大的变化,通信的内容不再局 限于单一的文字或声音,而是集文字、图像、声音和视频于一体多媒体信息。视 频会议作为一种典型的多媒体通信手段,能给处于异地的人提供实时的、直观的 互动和沟通,开始得到越来越广泛的应用。 随着分组交换网络地发展,基于口网络的视频会议成为多媒体通信的研究热 点。实现视频会议的关键在于会议信令的控制和多媒体的处理。基于此,本文提 出并实现了基于s i p 协议、r t p 协议和d i r e c t s h o w 技术的视频会议系统。 s i p 协议是实现会议控制的关键。本文将会详细介绍s i p 协议的原理和工作方 式,并分析现有的优秀开源协议栈o s i p e x o s i p ,然后在此基础上实现自己的库 l i b s i p ,用以辅助视频会议的开发。 r t p 协议用于视频会议的流媒体传输。本文将会详细介绍r t p 协议的格式和 原理,并分析现有的开源协议栈o r t p ,然后在该协议栈的基础上实现自己的库 l i b 却,用以辅助视频会议的开发。 d i r e c t s h o w 是微软提供的一套w i n d o w 平台下的多媒体处理平台。本文将会介 绍d i r e c t s h o w 技术,并借助d i r e c t s h o w 技术实现自己的库l i b m e d i a 。 结合上面的三个技术和辅助库,在详细分析视频会议的功能需求的前提下, 本文设计并实现整个视频会议系统。系统经过了测试并达到了预期的要求。 关键字:网络视频会议,s i p , r t p r t c ed i r e e t s h o w a b s t r a c t m u l t i m e d i a c 0 m m u 】缸c a t i o nh a sh a das i g n i f i c a n ti m p a c t o nt r a d i t i o n a l s i n m e m e d i ac o m m u n i c a t i o n t h ec o n t e n to fc o m m u n i c a t i o ni sn o tr e d s t r i c t e dt oj u s t t e x to rs o 岫d o nt h ec o n t r a r y , t h ec o n t e n tc a l lb em u l t i m e d i ai n t e r g r a t i n gt e x t ,n n a g e s o u l l dv i d e oa l l ds oo n v i d e oc o n f e r e n c e ,w h i c hi so n et y p i c a lm e a no fm u l t i m e d i a c 0 衄u n i ca _ t i o n ,c 锄p r o v i d ep e o p l ei n d i f f e r e n tp l a c e sw i t hr e a l - t i m e , i n t u i t i o n a l i i l t e = 删o n n o wv i d e oc o n f e r e n c ei sw i d e l yu s e di no u r l i f e m o n gw i t hd e v e l o p m e n to fp a c k e ts w i t c hn e t w o r k , v i d e oc o n f e r e n c eb a s e d 0 1 1l p n e t w o r kn o wb e c o m e sf o c u so fs t u d yi nm u l t i m e d i ac o m m u n i c a t i o nf i e l d t h ek e y st o i m p l e m e l l tv i d e oc o n f e r e n c es y s t e m a lec o n t r o lo fv i d e os i g n a l i n ga n dp r o c e s so f m u l t i m e d i a t h i sp a p e rp r e s e n t sa n di m p l e m e n t sa v i d e oc o n f e r e n c es y t e mb a s e do ns i p , i 玎pa n dd i r e c t s h o w s i pi st h ek e yt oc o n t r o lc o n f e r e n c e t h i sp a p e rw i l ld e s c r i b et h ep r i n c i p l ea n d w o r k i n gw a y so fs i p , a n da n a l y s i st h eo s i p e x o s i pw h i c hi so n e o fo p e ns o l i c es i p s t a c l 【s t h el i b r a r yl i b s i p ,w h i c hw i l lb eu s e db y o u rv i d e oc o n f e r e n c e ,i sg o i n gt ob e d e s i g n e db a s e do no s i p e x o s i p r t pw i l lb eu s e dt ot r a n s p o r tm u l t i m e d i as t r e a mi nv i d e oc o n f e r e n c e t h i sp a p e r w i l ld e s c r i b em ef o m a ta n dp r i n c i p l eo fr t p , a n da n a l y s i st h eo r t pw h i c hi s o n eo f o p e ns o u r er t ps t a c k s t h el i b r a r yl i b r t p ,w h i c h w i l lb eu s e db yo u l v i d e oc o n f e r e n c e , i sg o i n gt ob ed e s i g n e db a s e do no r t e d i r e c t s h o wi sam u l t i m e d i ap r o c e s s i n gp l a t f o r m f o rw i n d o w sp r o v i d e db y m i c r o s o r t h i sp a p e rw i l lg i v ea ni n t r o d u c t i o nt od i r e c t s h o w t h el i b r a r y l i b m e d i aw i l l b ed e s i g n e db a s eo nd i r e e t s h o w c o i n b 越n g 也et h r e et e c h n i q u e s a b o v ea n dt h et h r e el i b r a r i e s ,t h i sp a p e r i m p l e 】:i l e n t s a ne n t i r ev i d e o c o n f e r e n c es y s t e ma f t e ra n a l y z i n gd e m a n d so fv i d e o c o n f e r e n c e t h es y s t e mp a s s e dt h et e s t sa n dm e tt h er e q u i r e m e n t k e y w o r d v i d e oc o n f e r e n c e ,s i p , r t p r t c p , d i r e e t s h o w 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:j 耳l 日期: 呻年 钼 矿日 论文使用授权 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:羞隆兰导师签名: 日期: 叫 第一章绪论 1 1 课题背景及意义 第一章绪论 在计算机和网络通信技术高速发展的今天,人们不再满足于如电话、传真、 电子邮件等传统的文字或语音的通信方式,希望能有一种集声音、文字、图像、 视频等于一体的多媒体通信,多媒体通信以其信息多样性和直观性等优点不断受 到人们的青睐。其中,视频会议将计算机的交互性、通信的分布性和多媒体的实 时性结合起来,使两个以上的不同地方的个人或群体以多种媒体方式实时沟通和 互动,成为新一代的热门交互方式。 视频会议是利用一组交互式的通信技术,让不同地域的人通过实时的多媒体 传输进行沟通的一种方式【l 】。视频会议可以非常简单,如仅有两个人参加的会议( 点 对点) ,也可以同时容纳很多人。与会者不仅可以听到对方声音,还可以以看到视 频,可以与其它人交流数据、文字和图像等多种多样的媒体信息,这种交互完全 可以替代真实的会议。 最初的视频会议可以追溯到2 0 世纪3 0 年代,那时视频会议还是模拟的。当 时的视频会议是建立在电视的发明上,由电缆连接的闭路电视系统来实现。德国 柏林的g e r m a nr e i c hp o s t z e n t r a l a m t 网络就是这样的一个例子。【l 】 不久开始有人基于当时的电话网络来尝试传输低分辨率的视频。第一套实验 系统由a t & t 开发,后来由于糟糕的视频质量和缺少有效的视频压缩技术宣告失 败。2 0 世纪7 0 年代,有人开发出超过1 m h z 的带宽和6 m b i t s 传输率的 p i c t u r c p h o n e ,但是并没有得到推广。【l 】 2 0 世纪8 0 年代,出现了数字电话传输网络,如i s d n ,可以提供最小达 1 2 8 k b i t s s 的速率用于压缩的音频和视频。随着i s d n 网络的逐渐普及,开始有基 于i s d n 网络的视频电话出现在市面上。 到2 0 世纪9 0 年代时,基于m 的视频会议成为可能。此时许多更有效的视频 压缩技术的出现,使得p c 等家用计算机也可以进行视频会议。1 9 9 2 年,t i md o r c e y 等在c o r n e l l 发布了c u s e e m e 视频会议软件。在2 1 世纪初,视频会议得到快速 发展,逐渐走向千家万户。【l 】 视频会议在现实生活中有着极其广泛的应用,给人们的生活带来了巨大的便 电子科技大学硕士学位论文 利。如商务谈判、远程教育、办公自动化、救援指挥等都可以采用视频会议。 1 2 视频会议所涉及的技术 视频会议综合运用了通信、计算机交互和多媒体等多种技术。视频会议所使 用的关键的技术大致可以分为两个方面:信令协议和多媒体技术。下面对这两个 方面分别讨论。 信令协议方面,目前的视频会议主要包括两种:基于h 3 2 3 协议1 2 j 的视频会 议系统和基于s i p 协议【3 】的视频会议系统。h 3 2 x 协议由i t u t ( i n t e m a t i m t e l c o m m u n i c a t i o n su n i o n ,国际电信联盟) 推出,旨在开放式的网络和应用平台上 实现多媒体通信、带宽控制、会话管理等业务。之前国内许多电信运营商的视讯 业务都是基于的h 3 2 3 协议。但是h 3 2 3 由于其成本高、较为复杂、扩展性差、 维护性差等特点,现在正逐渐被新一代的协议s i p 协议所取代。s i p ( s e s s i o n i n i t i a t i o np r o t o c o l ,会话初使化协议) 协议是由i e t f ( i m e m e te n g i n e e r i n gt a s kf o r c e , 因特网工程任务组) 开发,主要面向分组交换网络,与h 3 2 3 协议相比,s i p 协议 简单、开放、扩展性好,所以一发布便得到业界的广泛关注和支持。两者间的详 细比较可以参考文献 4 】, 5 】。不久之前,3 g p p ( t h i r dg e n e r a t i o np a r t n e r s h i pp r o j e c t , 第三代合作伙伴计划) 已经将s i p 作为其i p 业务的控制协议。微软力推的m i c r o s o f t c o m m u n i c a t i o n s 系列也集成了对s i p 协议的支持,取代了原有的h 3 2 x 协议。另 外,s i p 协议也是n g n ( n e x tg e n e r a t i o nn e t w o r k ,下一代网络) 的主要协议之一。 多媒体技术方面可以进一步细分为媒体处理和媒体传输。媒体处理包括多媒 体的制作、采集、编解码、回放、存储等等,如果要一一实现这些功能,工作量 无疑十分巨大。所以一些多媒体处理的平台或者框架被陆续推出,开发者可以利 用这些框架很方便的实现自己的多媒体处理功能。现在比较流行的平台有: m i c r o s o f t 公司的d k e c t s h o w 技术【6 】,a p p l e 公司的q u i c k t i m e 框架【7 】和l i n u x 平台 下的g s t r e a m e r 8 1 、) ( i n e 【9 】等。由于本文主要研究w i n d o w s 平台下的视频会议实现, 所以采用的d i r e c t s h o w 技术来实现多媒体处理。d i r e c t s h o w 曾经是d i r e c t x 的一 部分,现在已经被移到w i n d o w ss d k 中。多媒体处理中很关键的一部分是音视频 的编解码。多媒体处理平台通常不会自己提供编解码器,需要用户来实现。现在 有非常多的音视频编码标准供用户选择,音频编码如a a c ,a c 3 ,a m p , f l a c , g 7 2 2 ,m p 3 等等,视频编码如h 2 6 1 ,h 2 6 3 ,h 2 6 4 a v c ,h 2 6 4 s v c ,m p e g l , m p e g 2 ,m p e g 4 等等。通常音频和视频需要打包,便于网络传输或存储,因此需 2 第一章绪论 要容器( c o n t a i n e r ) 的支持,容器可以把多路音频和视频打包,有的还可以支持同 步,容错等多种功能。容器格式也有很多,如3 g p , m p e g 2 t s ,m p e g 2 p s ,a s f , f l v 等。用户可以根据自己的需要选择合适的编码器和容器格式。 多媒体技术另一个重要的方面就是媒体传输。在p 网络上,由于口网络的不 稳定和实时传输的要求,如何传输或者说选择一个合适的传输协议很重要。现在 使用的最多就是r t p r t c p ( r e a l t i m et r a n s p o r tp r o t o c o l r t pc o n t r o lp r o t o c o l ,实时 传输协议实时传输控制) 协议【l o 】。r t p 由i e t f 的多媒体传输工作小组发布,协议 详细说明了在互联网上传递音频和视频的标准数据包格式。r t p 协议常用于流媒 体系统,这使得它成为v o i p f v o i e eo i li p ,网络电话) 产业的技术基础。r t p 是多媒 体网络传输的标准协议。 1 3 本文的主要工作 本文采用s i p 协议、r t p 协议和d i r e c t s h o w 技术来实现整个视频会议系统。 本文首先对这三个技术进行探讨,然后在此基础上实现一个完整的视频会议系统。 主要工作有: 1 研究s i p 协议体系结构,分析s i p 协议的组成元素、协议内容和工作方式,设 计将s i p 协议应用于视频会议系统的一套方案。在开源s i p 协议栈的基础上, 结合实现方案,开发出会议管理功能。 2 研究r t p 协议体系结构,分析r t p 协议的构成和工作方式,探讨如何将r t p 高效的用于视频会议系统。利用开源r t p 协议栈,实现视频会议的流媒体传输 功能。 3 研究d i r e c t s h o w 技术,掌握d i r e c t s h o w 的开发流程,用d i r e c t s h o w 实现会议 视频会议中的多媒体交互和多媒体处理功能。 基于前面的三种技术,辅以其它技术,以v i s u a lc + + 和s q ls e r v e r2 0 0 5 为平 台,综合设计出一套完整的视频会议系统。 1 4 本文的组织结构 本文共分为六章,每章的内容概要如下: 第一章概述视频会议的概念,发展历程,讨论了视频会议的关键技术和研究现状, 最后介绍了论文的研究内容和组织结构。 3 电子科技大学硕士学位论文 第二章详细介绍s i p 协议的基本概念和功能,对s i p 协议的特点进行了说明,并 介绍了与s i p 一起使用的另一套协议s d p 协议。本章最后介绍了库l i b s i p 的实现。库l i b s i p 用于辅助实现视频会议系统。 第三章详细介绍了r t p 和r t c p 协议的协议格式,并介绍了r t pp r o f i l e 的概念和 使用方法。本章最后讲述了库l i b 却的实现,库l i b 却用于辅助实现视频会 议系统。 第四章主要讨论了d i r e c t s h o w 技术的原理,工作方式和开发方法。重点讲述了多 媒体处理库l i b m e d i a 的实现。 第五章讲述了视频会议的整体实现。通过利用第2 、3 和4 章所开发的辅助库, 实现一整套视频会议系统。本章分别介绍了系统管理模块、会议控制模块、 多媒体模块的实现过程。 第六章对以上工作进行总结,并指出了下一步研究的方向,并对发展进行了展望。 1 5 本章小结 本章主要介绍了网络视频会议的研究背景和意义,并对视频会议所涉及的技 术进行了讨论,最后对本文的主要工作和组织结构进行了简介。 4 第二章s i p 协议研究与实现 第二章s i p 协议研究与模块实现 s i p 协议是由i e t f 所制订,全称是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 协议的第一个版 本是r f c 2 5 4 3 ,后来被r f c 3 2 6 1 t 3 1 取代。 2 1s i p 协议基础 s i p 协议是一种信令协议,广泛用于控制p 网络上的多媒体通信。s i p 协议可 以用来创建,编辑和终止两方或多方的会话。s i p 协议可以用在视频会议,流媒体 分发,即时消息和在线游戏等等许多场合。s i p 协议是基于t c p i p 的应用层协议, 建立在传输层之上,也就是说s i p 协议可以工作在t c p 或者u d p 协议上。s i p 协 议是文本类型的协议,借鉴了h t t p ( h y p e r t e x tt r a n s f e rp r o t o c o l ,超文本传输协议) 和s m t p ( s i m p l em a i lt r a n s f e r p r o t o c o l ,简单邮件转发协议) 1 2 1 ,协议格式比较类似。 图2 1 显示了s i p 协议的这种分层结构。 图2 1s i p 协议分层结构 s i p 的载体内容可以是任意格式,文本,二进制数据等等。会话过程中,常用 到的一种载体是s d p ( s e s s i o nd e s c r i p t i o np r o t o c o l ,会话描述协议) 消息,s d p 协议 负责对双方媒体进行协商。2 2 节会有详细的介绍。 要了解s i p 协议,首要需要知道s i p 地址。s i p 协议中每个通信方用一个s i p u r i o o n i f o r mr e s o u r c ei n d i c a t o r s ,统一资源定位符) 来表示。s i p 地址不仅包含该通 信方的口、端口,还包括了初使和维护会话的一些信息。s i p 地址的组成格式用伪 5 电子科技大学硕士学位论文 代码表示为s i pu r i = s i p :u s e r :p a s s w o r d h o s t :p o r t :p a r a m t e r s ? h e a d e r s 。s i pu r i 必须 以一个前缀“s i p :”开始,然后紧跟用户名( u s e r ) ,密码( p a s s w o r d ) ,主机地址( h o s t ) , 端口( p o r t ) ,参数( p a r a m e t e r s ) 和头部( h e a d e r s ) 。其中,密码是可选的,h o s t 可以是 域名,也可以是口v 4 或i p v 6 地址。参数用来定义会话的建立方式,如传输协议使 用t c p 还是u d p 、传输是否加密等等都可以在参数里指定,参数可以为空。头部 表示往会话消息附加的头部信息,s i p 消息交换时使用,头部可以为空。像 s i p :a l i c e a t l a n t a c a 3 m 、 s i p :a l i c e :s e c r e t w o r d a t l a n t a c o m ;t r a n s p o r t 气c p 、 s i p :a l i c e 1 9 2 o 2 4 都是一些s 口地址。 s i p 协议的交换的实体是消息,下一节将详细介绍消息的格式。 2 1 1s i p 消息 s i p 协议类似于h t t p ,是一个文本类型的协议,使用u t f 8 字符集。s i p 协 议所使用的消息有两种:请求( r e q u e s t ) 和应答( r e s p o n s e ) ,这两种消息构成方式如 下:第一行是一个起始行,然后是一个或多个头部,接着紧跟一个空行指出头部 的结束,最后是一个可选的消息体。消息的结构如图2 2 所示。 起始行( s t a r tl i n e ) m e s s a g e - h e a d e r1 m e s s a g e - h e a d e r2 m e s s a g e - h e a d e rn e m p t yl i n e 】 m e s s a g eb o d y 图2 2s i p 消息结构 请求消息的起始行被称作请求行( r e q u e s t l i n e ) ,请求行包含了一个方法 ( m e t h o d ) 名,一个请求地址( r e q u e s t u e d ) ,和一个协议版本。方法名定义了此求请 求的动作,请求地址指出请求的目标方。在r f c 3 2 6 1 中规定了六个基本的s i p 方 法: 1 r e g s i t e r 向服务器注册 2 i n v i t e 邀请对方进行会话 3 a c k进行会话的再次邀请( 与t c p 的三次握手类似) 4 c a n c e l 取消对话 5 b y e结束对话 6 o p t i o n s 查询服务器信息 6 第二章s i p 协议研究与实现 而应答消息的起始行被称作状态行( s t a t u s l i n e ) ,状态行包含了一个协议版本 信息,一个状态码( s t a t u sc o d e ) ,和一个原因短语( r e a s o np h a s e ) 。状态码是一个十 进制的3 位数,用来说明请求被处理的结果,原因短语用文本的方式补充解释状 态码。状态码3 位数的第一个数字表示类别,后面两个数字由用户自己定义。根 据这种规定,在1 0 0 1 9 9 之间的状态码可以统一用l x x 来表示,其它类似。s i p 协 议中规定了六种类别的响应: 1 1 x x 代表临时响应( p r o v i s i o n a l ) 。表示请求已收到,正在处理中。 2 2 x x 代表成功响应( s u c c e s s ) 。请求已收到并被接受。 3 3 x x 代表重定向响应( r e d i r e c t i o n ) 。需要重定向到另一个地址继续请求。 4 4 x x 代表客户端错误( c l i e n te r r o r ) 。请求语法错误,不能被处理。 5 5 x x 代表服务器错误( s e r v e re r r o r ) 。无法处理请求。 6 6 x x 代表全局错误( g l o b a lf a i l u r e ) 。请求无法被任何服务器处理。 介绍完了起始行,下一个很重要的就是头部。s i p 头部可以给出这个消息额外 的信息。s i p 头部与h t t p 头部的语法和语意都很相似,其格式的伪代码为: m e s s a g e h e a d e r = f i e l d n a m e :f i e l d v a l u e 。头部由一个名称和值对来表示。中间用冒 号隔开。f i e l d v a l u e 的格式由f i e l d n a m e 来决定。如s u b j e c t 头部表示一次会话的主 题,其f i e l d v a l u e 的格式为一个字符串。s i p 协议中常用的头部有:s u b j e c t 、r o u t e 、 c o n t a c t 、v i a 、f r o m 、t o 、c a l l i d 等等,详细请参考l 强c 文档。 消息的最后一个组成部分是消息体,消息体是指消息的具体内容,也可以称 作s i p 消息的载荷( p a y l o a d ) 。消息体的格式可以是任意的,可以是s d p 消息、文 本字串、x m l 等等,主要由上层的应用来决定。消息体的格式必须由c o n t e n t t y p e 头部来标明,如果被编码过,还需要用c o n t e n t e n c o d i n g 头部来指出,另外还可以 用c o n t e n t l e n g t h 头部来指明消息体的大小。 综合上面的说明,具体的消息的示例如图2 3 所示。 i n v i t es i p :b o b u e s t c e d u c ns i p 2 0 f r o m :。a l i c e ;t a g = l c 4 1 。t o :s i p :b o b u e s t c e d u c n c a l l i d :c a l l - 2 0 1 0 0 3 1 2 1 4 1 7 5 5 c s e q :1i n v i t e c o n t a c t :a l i c e s i p 2 02 0 0o k f r o m :。a l i c e 。 ;t a g = l c 4 1 t o :s i p :b o b u e s t c e d u c n c a l l i d :c a l l 一2 0 1 0 0 3 1 2 1 4 1 7 5 5 c s e q :1i n v i t e c o n t a c t :。b o b 图2 3s i p 消息示例 那用s i p 协议进行一次具体的会话的过程是怎样的呢? 这里以v o i p 为例,其 流程图如图2 4 所示。首先主动呼叫方发送i n v i t e 请求给被呼叫方,被呼叫方收 7 电子科技大学硕士学位论文 到请求后,发送1 8 0 应答,表示已收到请求,正等待处理。被呼叫方若同意接听, 则发送2 0 0 应答。呼叫方收到2 0 0 应答后,再回发a c k 请求进行进一步确认,然 后双方的连接建立。接着双方可以进行语音通信,语言数据可以采用r t p 进行传 输。通信完成后,一方发送b y e 请求,结束通话。 2 1 2s i p 实体 呼叫 交谈 图2 4s i p 的v o i p 流程图 振铃 应答 交谈 挂断 s i p 实体是指在s i p 网络中相对独立的对象,每种s i p 实体在s i p 网络中担任 的特定的角色,完成特定的任务。r f c 3 2 6 1 中定义了以下五种s i p 实体: 1 用户代理( u s e r a g e n t ,u a ) :用户代理是一个终端,可以发送和接收s i p 消息。 u a 既可能是用户代理客户端( u s e r a g e n tc l i e n t ,u a c ) ,负责发送s i p 请求, 也可能是用户代理服务端( u s e r a g e n ts e r v e r ,u a s ) ,负责接收请求及返回响应。 实际上,u a c 和u a s 的概念仅在一次事务期间有效,事务的概念在2 1 3 中有 详细介绍。 2 重定向服务器( r e d i r e c ts e r v 神:重定向服务器可以当作一个u a s ,不过它工作 方式有点特殊:收到请求后,解析r e q u e s t u r i ,从l o c a t i o ns e r v i c e 中取得 r e q u e s t u r i 的真实地址,回复3 x x 响应,响应含有这个真实地址,用户然后 发送请求到新的地址。 3 代理服务器( p r o x ys e r v e r ) :代理服务器处在中间层,功能是代替客户端转发请 求。代理服务器在行为上既是服务器也是客户端。将收到的请求转发给最接近 8 第二章s i p 协议研究与实现 目标用户的接收者( 下一级代理或最终用户) 。代理可以进一步分为有状态代理 ( s t a t e f u lp r o x y ) 和无状态代理( s t a t e l e s sp r o x y ) ,有状态代理维护着u a c 和u a s 之间的事务。而无状态代理则不会维护,只是简单的把收到的消息直接转发出 去。 4 注册服务器( r e g i s t r a r ) :注册服务器负责所辖域名的s i p 地址注册,用户注册时 发送r e g i s t e r 请求给注册服务器,注册服务器将注册的域地址和真实联系地 址保存在位置服务( l o c a t i o ns e v i e e ) 中。 5 位置服务( l o c a t i o ns e r v i c e ) :位置服务保存着用户的域地址和真实联系地址之 间的映射表,其它服务器如注册服务器和代理服务器通过查询位置服务来获得 用户的真实联系地址。 这几种s i p 实体之间的关系如图2 5 所示。 2 1 3s i p 事务 图2 5s i p 事体之间的关系图 s i p 协议中将u a c 和u a s 的最小的消息交换称为事务( t r a n s a c t i o n ) ,事务由 一个请求和至少一个应答组成,事务根据所在地分两种,客户端的被称作客户端 事务,服务端的被称作服务端事务。客户端事务只负责发送请求,服务端事务只 发送响应,事务只存在于u a 和有状态代理服务器中。根据请求是不是i n v i t e , 事务被进一步分为邀请客户端事务( i n v i t ec l i e n tt r a n s a c t i o n ,i c t ) 、非邀请客户 端事务( n o n 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 ) 、邀请服务端事务( i n v i t es e r v e r t r a n s a c t i o n ,i s t ) 、非邀请服务端事务( n o n i n v i t es e r v e rt r a n s a c t i o n ,n i s t ) 。之 9 电子科技大学硕士学位论文 所以要根据i n v i t e 来分,是因为有i n v i t e 的事务和没有i n v i t e 的事务处理方 式互不相同。不相同的原因是,i n v i t e 消息需要进行三次握手,而普通请求只需 要两次,另外对于可靠连接( 如t c p ) 来说事务的处理比不可靠连接( 如u d p ) 要简单 得多,而s i p 多用于不可靠连接中,下面只对不可靠连接下的s i p 事务进行介绍。 i c t :当u a c 发送i n v i t e 请求时,为了确保u a s 收到,客户端以一定的时 间间隔重发请求,但收到l x x 响应,重传才停止,然后等待进一步的响应。当 收到最终响应后,事务才完成。i c t 状态机如图2 - 6 所示。 发岂i n v r r e 图2 6i c t 状态机图 i s t :u a s 收到i n v i t e 请求后,先发送l x x 临时响应,再发送最终响应,在 收到a c k 之前,需要不断重发最终响应,以确保对方收到。i s t 状态机如图2 7 所示。 n i c t :由于非i n v i t e 请求没有a c k 这一步,所以n i c t 相对i c t 而言要简 单。u a s 会不断的发送请求,直到收到应答。如果收到临时应答,仍然会继续重 传,只是重传的间隔变大,如果收到最终应答,则停止重传。n i c t 的状态机如图 2 8 所示。 n i s t :u a s 收到请求后在收到下一次重传请求之前会一直重传应答。这样以 保证对方收到响应。n i s t 状态机如图2 9 所示。 1 0 第二章s i p 协议研究与实现 收到i n v i t e 发送响应 收到i n v r r e 发送响应 收到i n v r r e 图2 7i s t 状态机图 发送请求 图2 - 8n i c t 状态机图 1 1 电子科技大学硕士学位论文 2 1 4s i p 对话 图2 - 9 n i s t 状态机图 如果说消息组成了事务,那么可以说事务组成了对话( d i a l o g ) ,一个对话代表 了两个u a 之间的持续一段时间的端到端( p 2 p ) 的关系。对话是一种上下文环境 ( c o n t e x t ) ,消息在这个环境中发送和接收,对话起着按顺序发送消息及确定消息路 径的功能。当然,消息也可以脱离对话的环境发送,这种消息被称做对话外的( o u t o f d i a l o g ) 。对话可以用d i a l o gi d 来标识,d i a l o gi d 由c a l l i d ,l o e a lt a g 和r e m o t et a g 组成,c a l l i d 是用来标识一组消息的标识符,l o c a lt a g 和r e m o t et a g 是两个u a 生成的一个随机串,一个u a 的l o c a lt a g 和另一个的r e m o t et a g 相同。当收到 消息时,如果消息c a l l i d 、l o c a lt a g ( 如果是u a c ,在f r o m 头部,否则在t 0 头部) 、r e m o t et a g ( 如果是u a c ,在t o 头部,否则在f r o m 头部) 与现有对话的 d i a l o g i d 相同,那么就可以确定该消息属于该对话。消息内对话比消息外对话更 容易管理,逻辑上也更清晰,所以通常的s i p 消息都是对话内的。 那对话是怎么建立起来的呢? 它是通过特定的请求并收到成功的响应来创建 的。哪些请求可以创建对话是由请求的具体规范决定。可以创建对话的一个请求 是i n v i t e ,发送n v i t e 消息后,如果收到1 0 1 1 9 9 或2 x x 响应才能算是对话建立 成功,如果只是收到临时响应,这个对话仅仅处于e a r l y 状态,被称做e a r l yd i a l o g , 这点需要特别留意。 1 2 第二章s i p 协议研究与实现 2 1 5s i p 扩展 s i p 被设计为一套开放的协议,它很灵活并且易于扩展,扩展使得s i p 可以根 据用户的需要实现多种多样的功能。s i p 协议的请求方法和头部都可以用来扩展, 现有的许多扩展都已经成s i p 的标准扩展,如p r a c k 1 3 】、m e s s a g e 1 4 】、 u p d a t e 15 1 、r e f e r 16 1 、s u b s c r i b e n o t i f y 17 】等等方法扩展,还有一系列的头 部扩展,这里不在一一列出。 在实际会话中,一方并不知道另一方到底支持哪些扩展,所以扩展的协商过 程是很重要的,这个协商过程是靠s i p 的两个头部来实现:r e q u i r e 和s u p p o r t e d 。 r e q u i r e 头部指出u a c 建立会话时所必须的扩展,并将其支持的所有扩展列在 s u p p o r t e d 头部,u a s 收到请求时,根据这两个头部来决定在最终会话中使用哪些 扩展,将这些扩展列在r e q u i r e 头部,而在s u p p o r t e d 头部填入自己所能理解的扩 展,这样,双方就可以达到互相交换和协商扩展的目的。 除了可以利用现有的一些s i p 扩展,我们也可以根据需要自定义,在本文设 计的视频会议系统中,就实现了一些特有的扩展,详情参见第5 章。 2 2s d p 协议 在一个多媒体会话中,通信双方需要知道当前会话的详细信息,以及多媒体 通信的方式,这些都需要一个双方都能理解的格式,这就是会话描述协议( s e s s i o n d e s c r i p t i o np r o t o c 0 1 s d p ) 的出发点。s d p 规定了会话的必要信息的编码方式,s d p 是应用层协议,一些下层协议利用它来实现多媒体的协商,如s i p 、r t p 等。 s d p 协议由i e t f 制定,1 9 9 8 年四月发布最初的版本,2 0 0 6 年7 月发布了修 订版r f c 4 5 6 6 1 8 】。s d p 也是一个文本协议,不同于s i p ,s d p 采用的是a s c i i 字 符集。下面简单介绍s d p 的协议格式。 s d p 是由多个格式为“t y p e - - v a l u e 的行组成。t y p e 是一个字符长,代表这一 行的类型,v a l u e 是具体的值。常用的类型有: v e r s i o n ( v 1s d p 协议的版本 o r i g i n ( o )会话创建者的名字、地址和会话标识符 s e s s i o nn a m e ( s )会话名称 s e s s i o ni n f o r m a t i o n ( i )会话描述 t m i ( u )会话附加信息的u r i 地址 1 3 电子科技大学硕士学位论文 c o n n e c t i o nd a t a ( c )会话的多媒体连接信息 t i m i n g ( t ) 会话的开始和结束时间 a t r r i b u t e ( a 1 属性用于扩展s d p ,由上层应用解释。 m e d i ad e s c r i p t i o n s ( m ) 多媒体描述信息 s d p 描述中含有会话级信息和媒体级信息,会话级信息用于整个会话,是全 局性的,而媒体级信息用于特定的媒体流,是局部性的,局部性的值可以覆盖全 局性的值。s d p 的一个例子如下: v = 0 o = a l i c e2 4 5 6 1 3 22 3 5 4 8 6 5i ni p 42 0 2 1 0 1 4 1 s = n e ws e s s i o n i = s e s s i o ni sa b o u t u = h t t p :w w u e s t c e d u c n s d p m = a u d i o5 0 0 0 1r t p | 姗q a = r t p m a p :op c m u 8 0 0 0 m - - - v i d e o5 0 0 0 2r t p a v p31 a = r t p m a p :3 1h 2 6 1 9 0 0 0 0 从上述的s d p 描述中可以知道:a l i c e 在2 0 2 1 0 1 4 1 创建了一个多媒体会话, 主题为n e ws e s s i o n ,描述为s e s s i o ni sa b o u t ,会话的附加信息可以在 h t t p :w w w u e s t c e d u c

温馨提示

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

评论

0/150

提交评论