(计算机系统结构专业论文)流媒体服务器中实时传输协议的研究和内核化实现.pdf_第1页
(计算机系统结构专业论文)流媒体服务器中实时传输协议的研究和内核化实现.pdf_第2页
(计算机系统结构专业论文)流媒体服务器中实时传输协议的研究和内核化实现.pdf_第3页
(计算机系统结构专业论文)流媒体服务器中实时传输协议的研究和内核化实现.pdf_第4页
(计算机系统结构专业论文)流媒体服务器中实时传输协议的研究和内核化实现.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

(计算机系统结构专业论文)流媒体服务器中实时传输协议的研究和内核化实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 近年来,随着高带宽网络、高速存储设备以及媒体编码压缩技术的迅速发展, 使得通过网络提供实时流媒体服务成为可能。流媒体服务器中实时传输协议的实 现频繁且集中地进行i o 操作。另一方面,流媒体服务器运行在用户模式,用户程 序的g o 操作只能通过系统调用向内核提出请求,由内核来完成。这种实现方式较 为繁琐。因此,i o 操作已经成为服务器主要的性能瓶颈之一。本文在研究实时传 输协议的实现和l i n u x 内核处理i 0 请求的过程的基础上,提出和实现了通过实时 传输协议内核化实现来提高流媒体服务器性能的方案。本文提出的模型将传统流 媒体服务器中实时传输协议的实现部分独立出来,用一个内核线程来执行,将绝 大多数i 0 操作在内核模式下完成。该模型能够避免传统用户程序的i 0 操作中用 户模式和内核模式来回切换以及数据拷贝所造成的开销。仿真实验的结果表明: 和传统流媒体服务器相比,该模型能够承受的最大并发客户数目和单位时间内完 成的最大网络i 0 次数都具有明显优势。因此,可以得出结论:该模型在负载较重 的情况下,具有较高的资源利用率和系统吞吐量。 关键词:实时传输协议,流媒体服务器,i o 操作,l i n u x 内核,模式切换 a bs t r a c t i nr e c e n ty e a r s ,i ti sp o s s i b l et op r o v i d er e a l - t i m es t r e a m i n gm e d i as e r v i c et h r o u g h t h en e t w o r k , s i n c eb i ga c h i e v e m e n t so fr e l a t e df i e l d s ,s u c ha sn e t w o r kw i t hw i d e b i n d w i d t h , h i g h - s p e e ds t o r a g ed e v i c e s ,m e d i ae n c o d ea n dc o m p r e s st e c h n o l o g y t h e i m p l e m e n to fr e a l t i m et r a n s p o r tp r o t o c o l1 3 f m ) i nt h es t r e a m i n gm e d i as e r v e r p r o p o s ei or e q u e s t sf i e q u e n t l y o t h e r w i s e ,t h es t r e a m i n gm e d i as e r v e ri sr u n n i n gi n 1 珞e fm o d e ,i or e q u e s t sm u s tr i s et h r o u g hs y s t e mc a l l sa n db ed o n eb yt h ek e r n e l t h e h a n d l i n go fi or e q u e s t si no p e r a t i n gs y s t e mi sc o m p l e x o b v i o u s l y , i oo p e r a t i o n sh a d b c 圮z r m e t h em a j o rb o t t l e n e c ko fs t r e a m i n gm e d i as e r v e r s t h i sp a p e ri sb a s eo nt h e r e s e a r c hi ni m p l e m e n to ft h er t pa n dt h em e c h a n i s mo fh a n d l i n gi or e q u e s t si nl i n u x k e r n e l w ep r o p o s e das c h e m et h a tm a k e st h er t pi m p l e m e n t i n gi nl i n u xk e r n e li n o r d e rt oi m p r o v et h ep e r f o r m a n c eo fs 仃e a m i n gm e d i as e r v r s t h em o d u l ew ep r o p o s e d s e p r a t et h ei m p l e m e n to ft h er t p f i o mt h es t r e a m i n gm e d i as e r v e r t h ek e r n e lt h r e a d e x c u t e si t , t h u s ,i tw i l lk e e pm o s to ft h ei oo p e r a t i o n sa c c o m p l i s h i n gu n d e rk e r n e l m o d e i tc a na v o i dt h eu s e r k e r n e lm o d es w i t c h si nh a n d l i n gi or e q u e s t sr a i s e db yu s e r a p p l i c a t i o n s t h es i m u l a t i o ne x p e r i m e n ti n d i c a t i n g :c o m p a r i n gt ot h et r a d i t i o n a l s t r e a m i n gm e d i as e r v e r , t h em o d u l ew ep r o p o s e dc a l la c c e p tm o r ec o n c u r r e n tu s e r sa n d a c c o m p l i s hm o r en e t w o r ki oo p e r a t i o n so nt h ec i r c u m s t a n c eo ff u l l - l o a dw o r k i n g w e c a nm a k eac o n c l u s i o nt h a to u rm o d l eh a sb e t t e ru t i l i z a t i o nr a t i oo fr e s o u r c ea n dh i g h s y s t e mt h r o u g h p u t k e y w o r d s :r e a l t i m et r a n s p o r tp r o t o c o l ,s t r e a m i n gm e d i as e r s e r , i oo p e r a t t i o n , l i n u xk e r n e l ,m o d es w i t e l l i l 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:塾日期:2 矿矽7 年。月口3 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 日期:2 矿矿7 年汐6 月口3 日 第一章绪论 1 1 研究背景和意义 第一章绪论 进入2 1 世纪后,随着全球经济的发展,i n t e m e t 网络覆盖范围和用户数量不断 增加,计算机已经成为通信终端。计算机的不断普及和i n t e r n e t 网络的发展已经客 观上改变了人的工作和生活方式。人们对信息的交流也提出了更高的要求。例如, 人们渴望的交流方式已不仅仅局限于语言和文字,还希望进行影像交流。并且, 交流对象也希望由人与人的沟通,转向人与机器间,机器与机器之间的沟通。 带宽一直是在网络中进行信息交流的瓶颈。但近年来,宽带技术发展很快, 无论从接入网到核心网,i n t e r n c t 网络带宽都比以往得到了显著的提高。其中,光 通信技术的发展居功至伟,目前,单纤单模的传送速率已经超过4 0 g b s ,加上波 分复用技术的发展,使得通信网络的带宽大幅提升。在宽带发展的同时,相关的 多媒体处理和传输技术也日益成熟,包括图像和语音压缩算法加速迈向实用化, 对带宽的需求越来越低。流媒体及其相关的网络协议也就是在这种状态下应运而 生并快速向前发展。如今,流媒体已经充斥到i n t e m o t 网络的各个角落,越来越多 的传统主流媒体( 电视台、电台等) 都发布了流媒体形式的节目内容,开始采用 i n t e m o t 这个传播媒介;作为相关网络协议实现的流媒体服务器更是得到长足发展, 多家知名厂商相继推出了商用流媒体服务器产品,在各个领域得到广泛应用,成 为推动整个行业发展的一大助力。 常见的流媒体应用如下: 在线音视频点播。通常音视频点播是对存储的非实时性内容以淡泊的传 输方式实现。这是当前最为成熟和广泛的流媒体应用。 i p t v 。i p t v 的功能类似于一般的电视,其节目一般也是直接来自电视节 目,通过实时的编码、压缩制作而成。它把节目源组织称频道,以广播的 方式提供。用户通过加入频道收看预订的节目。i p t v 还能实现实况转播。 视频监视。与传统的基于电视系统的监视不同,视频监视信息可以通过网 络以流媒体的形式传输,因此,更加方便和灵活,成本更低。其更为重要 的优势在于极大地扩展了远程监控的距离。 视频会议。视频会议可以是双方的,例如,视频电话;也可以是多方的, 电子科技大学硕士学位论文 需要多点控制单元,集合多路直播和广播的功能。视频会议是典型的交互 性的流媒体应用。 远程教学。远程教学可以看作是多种应用类型的综合,例如,可以采用点 播的方式发布教学节目;以广播的方式直播课堂讲授;以视频会议的方式 参与课堂讨论等。远程教学应用对象明确,内容丰富实用,运营模式成熟, 已成为目前商业上较为成功的流媒体应用。 第2 3 次中国互联网络发展状况统计报告【l 】显示:截止2 0 0 8 年底,截至2 0 0 8 年底,中国网民规模达到2 9 8 亿人,较2 0 0 7 年增长4 1 9 ,互联网普及率达到 2 2 6 0 o ,略高于全球平均水平( 2 1 9 ) 。网络音乐仍然是中国网民的第一大应用服 务,使用网民比例达到8 3 7 ,用户数量较2 0 0 7 年增长了6 7 0 0 万人。网络视频用 户只有轻度增长,相比2 0 0 7 年底净增4 0 0 0 多万用户,达到2 0 2 亿。在美国,根 据i n - s t a t e 公司的调查报告【2 j ,2 0 0 8 年7 7 8 的宽带用户观看了在线视频,预计到 2 0 1 2 年,9 0 的美国家庭将接入宽带网络,其中9 4 的用户将观看在线视频,在 线视频的市场产值将从2 0 0 7 年的1 2 亿美元激增到4 5 亿美元,平均每年增长3 9 以上。如今,绝大部份网络音频、视频都是通过流媒体服务器发布,以流媒体的 格式在网络上传输的。可以预见,支持大规模并发客户的流媒体音视频服务器和 具有流媒体解码能力的硬件芯片等产品,在今后几年内将会有巨大的市场需求。 1 2 研究现状及本文解决的问题 近年来,在巨大的市场需求的驱动下,流媒体技术已成为学术研究的热点领 域之一。基于p 2 p 的流媒体系统【3 】【4 】,可以利用客户端节点的上传能力减轻服务器 的负担,不需要架设特殊的网络基础设施,也不需要口组播的支持,为解决流媒 体内容分发提供了一个新的方向,逐渐引起了人们的重视。多个基于p 2 p 网络的 流媒体系统相继被提出【5 】【6 1 。除此之外,流媒体系统还可以部署在其他诸如基于多 路访问链路层协议的高速网络之上【7 】。 同时,流媒体服务器的性能也在不断改善。文献【7 】提出将流媒体服务器模块 化,添加一个调度模块,专门负责其他模块之间合理分享系统资源。一种配合流 媒体服务器使用的流引擎也被提出来【引。它采用面向流媒体应用的操作系统,作为 流媒体服务器的代理,负责向客户端发送流媒体数据。该引擎具有等时调度,内 核缓存区、多路发送和实时媒体文件系统等特性。文献【9 】致力于提高服务器应对爆 发式访问和错误恢复能力,提出具有重定向能力的冗余服务器系统,设计一种新 2 第一章绪论 的协议缩短在网络拥塞或服务异常情况下响应客户的时间。在硬件方面,出现了 一种p c i 卡【l o l ,可以加速数据从存储设备到网络的传输过程。基于这种硬件的流 媒体服务器框架被用于传输高比特率的媒体内容,因为它能高速访问磁盘,读写 大块数据,同时简化经网络传递磁盘上的媒体文件的过程,避免数据拷贝。 v o 性能一直以来都是流媒体服务器的性能瓶颈之一文献【l l l 提出的异步i o 请求处理,实现了流媒体服务器进程的异步读数据操作,减少由于进程阻塞造成 的无效计算和空闲时间对服务器处理能力的影响;采用定时查询方式代替中断方 式,批量处理完成数据传输的请求,减少了大量中断响应和处理产生的系统消耗。 也可以从外部解决这个性能瓶颈。w e b 代理缓存技术已开始应用于流媒体服务器 【1 2 胛】。代理缓存最大的优势在于拉近客户和服务器在网络拓扑上的距离,缩短数 据传递的路径,以有效利用网络带宽。应该指出的是,代理缓存在某种意义上, 极大地缓解了流媒体服务本身的网络f o 系统和文件f o 系统的压力,提高了系统 吞吐量。 在流媒体技术领域,当前的研究更多的集中于新的网络技术与流媒体系统的 结合和新的硬件以及专用操作系统的支持。这些新技术的出现极大地提高了流媒 体系统的性能,但实现代价相对较高,相关研究有待改善另一方面,经过长期 的发展,流媒体服务器本身的代码结构和实现方式都趋于成熟,性能上可提升的 空间有限。本文另辟蹊径,着简化眼于i o 操作过程,使得流媒体服务器与操作系 统更为紧密地配合,从而提高流媒体服务器性能。 本文提出和实现了一种基于l i n u x 操作系统的流媒体服务器的实现模型。该模 型通过简化f o 操作过程,避免在内核模式和用户模式之间频繁切换来解决服务器 i o 开销过大的问题,以提高系统吞吐量。本文将传统流媒体服务器中f o 操作集 中的部分,即实时传输协议的实现,分割出来,用内核模块的方式实现,在l i n u x 内核中运行。在此结构下,绝大多数网络发包和读文件都不再通过系统调用,而 是直接的函数调用,使得内核模式和用户模式之间的切换大为减少,跨越用户模 式和内核模式地址空间的冗余的数据拷贝也得到有效抑制。 1 3 本文的主要工作及章节安排 本文的主要工作包括: ( 1 ) 流媒体相关技术的研究,重点是流媒体传输协议的研究和分析。通过阅 读相关协议的r f c 文档,参考现有实现,深入理解流媒体数据的传输过程和这些 电子科技大学硕士学位论文 协议在流媒体服务器端的工作原理和过程。 ( 2 ) 研究剖析传统流媒体服务器代码,着重于实时传输协议的典型实现。分 析l i n u x 的i o 操作的处理过程。指出实现实时传输协议的流媒体服务器必然产生 频繁的i o 操作。这种数量巨大的i o 操作必将成为系统最明显的性能瓶颈。 ( 3 ) 在理论研究的基础上,提出通过实时传输协议内核化实现来提高流媒体 服务器i j o 性能的方案来解决现存问题,并给出该模型的设计细节。 ( 4 ) 基于传统流媒体服务器,实现本文提出的流媒体服务器模型。对该模型 进行仿真实验,统计分析实验数据。 本文的组织结构如下: 第一章介绍了本文的研究背景和意义、国内外在该领域的研究现状和本文所 解决的问题。 第二章简要介绍了流媒体技术的发展和应用;重点解析流媒体服务器涉及的 相关协议。 第三章首先介绍了本文对实时传输协议的研究结果,详细分析实时传输协议 实现的细节。其次,展示了l i n u x 中i o 操作的执行过程。最后,基于研究分析, 指出实时传输协议内核化的依据。 第四章给出了本文提出的流媒体服务器模型的设计方案,详细阐述了设计的 原理和思想,功能模块的结构和关系。 第五章首先介绍了该模型的实现细节。最后使用该模型进行仿真实验,分析 实验结果。 第六章是总结和展望。 4 第二章流媒体技术 2 1 流媒体技术概述 2 1 1 流媒体的概念 第二章流媒体技术 在传统多媒体的网络传送过程中,通常要求用户将音频、视频文件整体下载 到本地计算机后,才能进行播放。这种方法有三个突出的问题。首先,由于必须 将整个多媒体文件下载到本地计算机后才能播放,而多媒体文件的数据量通常都 很大,在目前普通用户接入速率较低的情况下,一个很短的视频片段可能都需要 等待很长的下载时间才能观看。其次,由于必须下载多媒体信息,这必然占用本 地计算机的存储资源。第三,因为用户将音频、视频文件下载到本地硬盘后,可 能会对这些资料进行在传播,那么制作单位的知识产权有可能受到侵害。 为了解决这些问题,“流式传输一应运而生。“流式传输 借鉴计算机利用缓 存来提高运行速度的方式,考虑在播放器端放置缓冲区来解决服务质量问题。流 失传输将音频和视频等多媒体文件经过特殊的协议分割成一个个数据包,由流媒 体服务器向客户端连续地,实时地传送。播放器端不必像非流式播放那样等到整 个文件完全下载完毕后才能看到具体的内容,只需经过几秒或几十秒的启动延时 就可以组装已收到数据包,形成一段可播放的片段呈现给用户。同时,多媒体文 件的剩余部分在后台继续下载。当前已片段即将播放完时,播放器已经缓存了继 续播放的足够数据,播放过程不至于停顿。换句话说,当用户观看多媒体的同时, 后续部分正在到达过程中。另外,播放过的多媒体数据片段即时丢弃,播放器端 并不需要太大的缓存容量。 流媒体( s t r e a m i n gm e d i a ) 就是指在i n t e m e t 网络中使用流失传输技术的连续 时基媒体文件,例如,音频或视频。流媒体是一种特殊的多媒体,只不过是在i n t e m e t 网络环境下使用了特殊传输方式的多媒体。或者说,流媒体是再加工的多媒体, 因为多媒体只有经过一定的预处理后才能适合流式传输。 2 1 2 流媒体的发展 流媒体技术起源于窄带互联网时期。由于经济发展的需要,人们迫切渴求一 电子科技大学硕士学位论文 种网络技术以便进行远程信息沟通。从1 9 9 4 年一家叫做p r o g r e s s i v en e t w o r k s 的美 国公司成立之初,流媒体开始正式在互联网上登场亮相。1 9 9 5 年,该公司推出了 c s 架构的音频接收系统r e a la u d i o ,并在随后的几年内引领了网络流式媒体技术 的发展潮流。1 9 9 7 年9 月,该公司更名为r e a l n e t w o r k s ,相继发布了多款应用非 常广泛的流媒体播放器,r e a l p l a y e r 系列。在其鼎盛时期,层易读占据该领域超过 8 5 的市场份额。但是在随后,m i c r o s o f t 和a p p l e 等公司相继进入流媒体领域, 使得流媒体以惊人的速度深入人心【1 2 1 。 早期的流媒体主要是在窄带互联网上应用,受带宽条件的制约,到1 9 9 9 年, 人们在网上也才仅仅可以看到一个不稳定的、诱骗大小的视频播放窗口,并伴有 颤动的、同步不太好的声音。2 0 0 0 年下半年,随着全球范围内的互联网升温,宽 带m 网不再只是梦想,作为流媒体技术倡导者和发起者的美国r e a ln e t w o r k s , m i c r o s o f t 和a p p l e 等公司几乎同时发布了它们最新的流媒体技术的宽带解决方案。 在短短的时间里,流媒体技术有了飞跃性发展。如今,我们完全可以在网络上通 过流媒体技术进行全方位的视听接触。 2 1 3 流式传输的基础 流式传输的实现需要缓存。因为i n t e r n e t 以包传输为基础进行断续的异步传输, 对一个实时音频,视频源或存储的音频、视频文件,在传输中都要被分解为许多 数据包。网络是动态变化的,各个包选择的路由可能相同,故到达客户端的时间 延迟也就不等,甚至先发的数据包可能后到达。因此,使用缓存系统来弥补延迟 和抖动的影响,并保证数据包的顺序正确,从而使媒体数据能连续输出,而不会 因为网络展示拥塞使播放出现停顿。通常缓存所需容量并不大,通过丢弃已经播 放的内容,可以重新利用空出的缓存空间来缓存后续尚未播放的内容。 流式传输的实现需要合适的传输协议,包括i n t e r a c t 本身的数据传输协议,以 及一些实时流式传输协议。在t c p i p 协议族的传输层【1 4 】,由于t c p 需要较多开 销,故不太适合用来传输实时数据。绝大多数流式传输的实现,采用t c p 来传输 控制信息,而用u d p 来传送实时媒体内容。在应用层【1 4 】,最主要的实时流传输协 议有两个:实时传输协议( r e a l - t i m et r a n s p o r tp r o t o c 0 1 ) 0 5 】,即r t p ,提供适合应 用程序传输实时数据的端对端网络传输功能;实时流协议( r e a lt i m es t r e a m i n g p r o t o c o l ,即l 玎s p ) 【1 6 】,即r t s p ,用于控制具有实时特性的数据的传输过程。 6 第二章流媒体技术 流媒体文件 完全接收 l :$ 客户系统 窖户系统 、 丢彝 t e 传输 式 图 i 流式传输方式 流式传输的定义很广泛,现在主要是指通过网络传送媒体( 如音频、视频) 的技术总称。流式传输的过程一般是:用户选择某一流媒体服务后,客户端系统 与流媒体服务器之间使用r 1 踟凹交换控制信息,r t s p 协议提供了查询建立 连接,播放、暂停和停止等命令的方法。这些信息可能包括媒体文件内容描述、 编码格式和传输通道等。客户端系统使用这些信息初始化播放器。然后,流媒体 服务器使用r 皿r j d p 将流媒体数据传输给客户端播放罂。一旦数据抵达客户端, 播放器即可播放输出。流式传输有两种【1 :实时流式传输( r c 8 1 b m e s t r e a m i n g ) 和顺序流式传输( p r o g r e s 菇v es 慨m i n g ) 。 2 14 流媒体系统 流媒体系统大致包括媒体内容制作、媒体内容管理、用户管理、客户端系统 和流媒体服务器。媒体内容制作模块可以进行流的制作与生成。它包括了从独立 的制品、声音、图片、文字组合到制作丰富的流媒体的一系列工具,这些工具产 生的流媒体文件可以存储为固定的格式供流媒体服务器使用。它还可以利用视频 采集设备,实时向流媒体服务器提供各种视频流。媒体内容管理则包括流媒体文 件的存储,查询及节目管理、创建和发布。用户管理主要进行用户的等级、授权、 计费和认证。对商业应用来说,用户管理功能至关重要。流媒体客户端系统支持 实时音频、视频直播和点播可以播放多种流行的媒体格式,支持流媒体中的多 种媒体形式,如文本、图片、音频和视频的集成表现形式。目前应用最多的播放 器有r e 酊n e t w o r k s 公司的r 龆l p l a v e r 、m i c r o s o f 【公司的w i n d o w s m e d i ap l a y e r 和 舅一 黛淼 l _ _ _ _ 曝徽 电子科技大学硕士学位论文 a p p l e 公司的q u i c k t t m e 三种产品。 路由 i 垦雾2 黧7 :羹 j 机 图2 - 2 流媒体系统 流媒体服务嚣是流媒体系统的核心,直接决定着整个系统的总体性能。为了 能同时相应多个用户的服务要求,流媒体服务器应当具备接纳控制,请求处理, 会话管理和按流并发传送等多种功能。另一方面,为了能够适应实时、连续稳定 的音频、视频流服务器的存储量大,数据率高,对系统的i o 性能、文件系统和 网络系统的软硬件性能的要求都非常高。在实际应用中,用户数量通常较大,且 分布不均匀,流媒体服务器通常支持多服务器系统工作,服务器之间能自动进行 负载均衡。目前常用的服务器软件有h e l i xs 抓一m 、w n d o w sm e d l 0 1 目和 q u i c k t i m es t r e a m i n gs e r v e r 【旧。采用r t s 哪p 架构的流媒体服务器系统框图如 下所示: 流蝶体服务器 瀛蝶体文件 r t s p ,7 兰= 二_ = 兰、t c p 1 p 功能模块 控制流。 视频轨道 , r t p毓_ o “1 9 功能模块 音频轨道 u d p i p - 音频流 刚2 - 3 流媒体服务器架构 。愈 釉 ,舱 咖回 第二章流媒体技术 2 2 流媒体相关的网络协议 流媒体在i n t e r n e t 上的传输必然涉及到网络传输协议,其中包括i n t e m e t 本身 的数据传输协议,以及一些实时流式传输协议等。只有采用合适的的协议才能更 好的发挥流媒体的作用,保证传输质量。t h ei n t e m e te n g i n e e r i n gt a s kf o r c e ( i n t e m e t 工程任务组,i e t f ) 2 0 1 是i n t e r n e t 规划与法杖的主要标准化组织,已经设计出几种 支持流媒体传输的协议:定义一对多的应用程序如何有效的通过口网络传送多媒 体数据的实时流协议( i 玎s p ) 、主要用于i n t e m e t 上针对多媒体数据流的实时传输 协议( r t p ) 和与r t p 一起提供流量控制和拥塞控制服务的实时传输控制协议 ( r t c p ) 。 2 2 1 实时流协议 2 2 1 1 实时流协议概述 实时流协议限e a l t i m es t r e a m i n gp r o t o c o l ,即r t s p ) 是由r e a ln e t w o r k s 、 n e t s c a p e 和哥伦比亚大学共同提出的。实时流协议概述是应用层协议,控制具有实 时性数据的传输。实时流协议概述提供了一个可扩展框架,实现实时流媒体数据 的受控地、按需地传送。数据源包括实况流媒体数据和存储流媒体文件。实时流 协议概述用于控制一个或多个流媒体数据发送会话,提供了可供选择的发送通道 ( 例如,u d p 单播、u d p 多播和t c p ) ,并提供了基于实时传输协议的传送机制。 实时流协议概述在服务器和客户之间建立一条虚拟连接,建立和控制一个或 几个时间同步的连续媒体流( 例如,音频和视频) 。尽管连续媒体流与控制流交叉 是可能的,但通常实时流协议概述本身并不发送流媒体数据本身。 实时流协议概述没有实际连接的概念,而是维护被标识的会话。r t s p 会话被 定义为一次完整的r t s p 业务过程,例如,观看一部流式电影。典型地,一个会话 由客户建立连续媒体流的传输机制、播放流和关闭流组成。一个r t s p 会话不会绑 定到传输层的连接( t c p 连接) 上。一次r t s p 会话中,客户可能打丌或关闭多个 到服务器的t c p 连接来发起r t s p 请求。相反地,r t s p 也可能使用无连接的u d p 协议。 实时流协议概述在语法和操作上与超文本传输协议( h y p e rt e x tt r a n s p o r t p r o t o c o l ,即h 兀p ) 【2 i 】类似,因此h t r p 的扩展机制大都可加入实时流协议概述。 和h r r p 相比,h r r p 请求由客户机发出,服务器做出响应;使用实时流协议概述 9 电子科技大学硕士学位论文 时,客户机和服务器都可以发出请求,即实时流协议概述可以是双向的。 实时流协议概述支持的操作如下: 从媒体服务器上检索媒体。 邀请媒体服务器参加视频会议。 在当前媒体流应用中加入新的媒体源。 2 2 1 2r t s p 方法 实时流协议概述提供一系列方法代表相应的功能。按协议规定,有4 种方法 是必选的:o p t i o n 、s e l r i p 、p l a y 和t e a r d o w n 。此外,绝大数实现都支持 d e s c r i b e 方法和p a u s e 方法。对于每一种方法都对应一组r t s p 消息:r t s p 请求和响应。这5 种组成一个最小功能的r t s p 实现。 当客户要使用非标准方法时,就会像服务器提出o p t i o n 请求,而服务器则 以它所支持的所有方法的名称作为响应,发送会客户。例如: c - s :0 p t i o n s 幸i u s p 1 o c s e q :1 r e q u i r e :i m p l i c i t - p l a y p r o x y - r e q u i r e :g z i p p e d - m e s s a g e s s c :l u s p 1 o2 0 0o k c s e q :1 p u b l i c :d e s c l t 】b e ,s e t u p ,t e a rd c f 、n ,p i 趟p a u s e 客户使用d e s r i b e 请求向服务器查询它所请求的媒体文件的初始化信息。服 务器的响应可能包含:服务器m 地址、媒体文件的路径、服务器所有者的邮箱、 时间戳和音频及视频编码格式。例如: c 一 s :d e s c r i b er t s p :s e r v e r , e x a m p l e c o r n t e s t m p 4r t s p 1 0 c s e q :3 1 2 a c c e p t :a p p l i c a t i o n s d p ,a p p l i c a t i o n r t s l ,a p p l i c a t i o n m h e g s 一 c :r t s p 1 02 0 0o k c s e q :3 1 2 d a t e :1j a n2 0 0 90 0 :0 0 :0 0g m t c o n t e n t t y p e :a p p l i e a t i o n s d p c o n t e n t l e n g t h :3 7 6 v = o 1 0 第二章流媒体技术 o - - - m h a n d l e y2 8 9 0 8 4 4 5 2 62 8 9 0 8 4 2 8 0 7i ni p 419 2 16 8 1 2 s = s d ps e m i n a r i - - - as e m i n a ro i lt h es e s s i o nd e s c r i p t i o np r o t o c o l u = h t t p :w w w e x a m p l e c o m t e s t m l m e 磁x m a i l e o m ( x x x ) o = 矾i p 41 9 2 1 6 8 1 2 1 2 7 t = 2 8 7 3 3 9 7 4 9 62 8 7 3 4 0 4 6 9 6 a - - r e c v o n l y r e = a u d i o3 4 5 6r r p m p0 m - - - v i d e o2 2 3 2r t p a p3l m - - - w h i t e b o a r d3 2 4 1 6 唧w 1 e i a = o f i e n t p o r t r a i t s e t u p 请求指定流媒体的传输机制,例如,指定传输所使用的协议和目的端 口号等。客户也可以对一个已经在播放的流提出s e t u p 请求,以改变传输参量。 服务器若能满足s e t u p 请求,则为接下来的播放分配资源,然后以“确认一响应 客户,并在响应中告知服务器端的传输参量。例如 c - s :s e t u p r t s p :s e r v e r e x a m p l e c o r n t e s t m p 4r t s p 1 0 c s c q :3 0 2 t r a n s p o r t :r t p a v p ;u a i e a s t ;e l i e n t _ p o r t - - - - 4 5 8 8 - 4 5 8 9 s 一 c :r t s p 1 02 0 0o k c s c q :3 0 2 d a t e :lj a n2 0 0 90 0 :0 0 :0 0g m t s e s s i o n :4 7 11 2 3 4 4 t r a n s p o r t :r t p a v p ;u n i c a s t ; c l i e n t _ _ p o r t = 4 5 8 8 - 4 5 8 9 ;s e r v e r _ _ p o r t = 6 2 5 6 - 6 2 5 7 客户用p l a y 请求告知服务器可以开始按照s e t u p 商定的机制传输流媒体文 件。在没收到s e t u p 的“确认响应之前,客户不能提出p l a y 请求。p l a y 请 求也可以指定流的起止范围。例如: c 一 s :p l a yr t s p :s e r v e r e x a m p l e c o r n t e s t m p 4r t s p 1 0 c s c q :8 3 5 s e s s i o n :12 3 4 5 6 7 8 r a n g e :c l o c k = 1 9 9 6 11 0 8 t 1 4 2 3 0 0 z 一1 9 9 6 11 0 8 t 1 4 3 5 2 0 z 1 1 电子科技大学硕士学位论文 s c :r t s p 1 02 0 0o k c s c q :8 3 5 d a t e :1j a n2 0 0 90 0 :0 0 :0 0g m t p a u s e 请求告知服务器暂停流的播放,下次p l a y 请求从当前位置开始播放。 t e a r d o w n 请求则是完全终止流的播放,释放先前分配的资源。 完成一次典型r t s p 会话的r t s p 包交换过程如下图所示: 客户播放器流媒体服务器 分配资源 端口、缓存等 播放影片 分配资源 端口、缓存等 发送r 1 r i 咆。 图2 - 4r t s p 包交换时序图 2 2 1 3 服务器端r t s p 状态机 服务器端呈现以下状态: 初始态( i n i t ) :最初的状态,未收到有效的s e t u p 请求。 就绪态( r e a d y ) :成功接收上一个s e t u p 请求,已向客户端发出回复, 或者从播放态迁移而来,成功接收上一个p a u s e 请求,已向客户端发出回复。 播放态( p l a y i n g ) :成功接收上一个p l a y 请求,已向客户端发出回复。 流媒体数据正在发送中。 通常来说,服务器端在收到对请求后立即改变状态。在单播模式下,如果服 务器在一个指定的时间间隔内( 默认是1 分钟) 没有从客户端收到“满意 的信 息,那么它将从播放态或记录态回复到初始态,并且关闭r t s p 会话。服务器在会 话响应中声明另一个超时值。 1 2 第二章流媒体技术 如果处在就绪态的服务器在超过1 分钟的时间间隔内没有收到一个r t s p 请 求,它将回复到初始态。注意某些请求( 比如p a u s e ) 可能会在将来某个时间或 某个位置生效,服务器状态会在恰当的时间改变( 而不是在收到请求后立即改变) 。 到达客户端请求范围的结尾时,服务器状态从播放态回复到就绪态。 如果对象不需要显式的s e t u p 请求,那它将以就绪态开始,并且只有就绪和 播放两个状态。 当前状态收到的请求下一状态 s e t i p就绪 初始 1 e a r d o w n初始 p l a y播放 就绪s e l u p就绪 t e a r d o w n 初始 p l a y播放 p a u s e就绪 播放 t e a r d o w n初始 s e t u p就绪 表2 1r t s p 状态转换表 表中的下一状态 列指示发出一个成功响应后的状态。如果某个请求需要进一 步动作才能完成,则状态变成初始态。如果请求包含语法错误或暂时无法满足, 则不会引起状态改变。根据协议规定,支持实时流协议概述的流媒体服务器必须 至少实现表2 1 所示的r t s p 状态机。 2 2 2 实时传输协议 实时传输协议( r 1 限) 被定义为传输音频、视频及模拟数据等实时数据的传输 协议,最初设计师为了数据传输的多播,但也可以单播。影响多媒体数据传输的 一个关键问题是无法预料数据的到达时间。但是,流媒体的传输则需要数据实时 到达一边播放和回放。实时传输协议就是通过提供时间戳、序列号、同步源标识 以及其他结构用于控制实时数据流的播放。 在流的概念中,时间戳是最重要的信息,发送端按照即使的采样在数据包里 设置了时间戳,接收端在收到数据包后,根据时间戳重排序本是乱序到达的数据 包。同步源( s y n c h r o n i z a t i o ns o t i i c c ,即s s r c ) 1 5 】是指一个流中的r t p 数据包的 电子科技大学硕士学位论文 发送源,由一个3 2 位的数字来标识,与网络地址无关。属于同一个同步源的数据 包位于相同的时间和序列号区间,接收者按同步源来为回放收集数据包。r t p 会 话由一组使用r t p 通讯的参与者组成。一个参与者可以加入多个r t p 会话中,例 如,一个会话交换音频数据而其他会话交换视频数据。对每个参与者来说,会话 通过网络地址和端口号的配对来识别。r t p 会话被设计为传输单一类型的媒体, 不同类型的媒体必须在独立的l m 会话中传递。 实时传输协议本身不负责同步,不提供任何机制来保证实时地传送数据,不 支持资源预留,也不保证服务质量。r t p 报文甚至不包括长度和报文边界的描述。 实时传输协议的数据单元一般使用u d p 分组来承载。本文将在下一章详细阐述实 时传输协议的实现细节。 2 2 3 实时传输控制协议 2 2 3 1 实时传输控制协议概述 实时传输控制协议( r e a l - t i m et r a n s p o r tc o n t r o lp r o t o c o l ,r t c p ) 1 5 】被设计 为和实时传输协议一起使用的进行流量控制和拥塞控制的服务质量控制协议。它 的实现基于周期性地向会话的参与者传递控制信息包。控制信息采用和数据包相 同的分发机制,下层协议( i j l ) p ) 必须提供数据和控制包的多路发送,例如,使 用不同的u d p 端口号。实时传输控制协议提供的功能包括: 实时传输控制协议最主要的功能是提供数据分发质量的反馈。这中反馈需要 和r t p 配合来产生作用,同时也和传输层的流量控制及拥塞控制功能相关。这种 反馈可能直接作用于可适应性编码,但是,i p 多播的经验显示,从接受者获得反 馈对于诊断分发过程中的错误至关重要。 实时传输控制协议的实现传递一种叫做c a n o n i c a ln a m e 的持续性的传输层标 识,用于r t p 源的身份识别。当冲突发生或程序重启时,其他的身份标识方法失 效,接收者需要c a n o n i c a ln a i i l e 来寻找每一个参与者。另外,接收者可能需要通过 c a n o n i c a ln a m e 在一组相关的r t p 会话中,将多个流和给定的参与者联系起来。 前两个功能都要求所有参与者发送r t c p 数据包,这就为r t p 会话提供了统 计所有参与者的途径。通过参与者的数量决定数据包的比特率,使得r t p 会话能 够接受大规模数量的参与者。 作为一种可选功能,实时传输控制协议的实现可以传递少量的会话控制信息, 经常会在参与者加入或退出没有成员控制机制的会话时以及参数协商时被用到。 1 4 第二章流媒体技术 应该指出的是,实时传输控制协议可以看作是到达所有参与者的方便通道,但是, 它并不支持应用程序所需要的所有控制通讯功能。 2 2 3 2r t c p 包类型 实时传输控制协议定义了五种类型的数据包来传递不同的控制信息: ( 1 ) r r :r e c o v e rr e p o r t 。实时传输控制协议的一个主要应用就是封装在r r 包内的接收质量报告。收到r r 包的发送者可以根据包中提供的信息计算当前网络 的往返时间( r 1 盯) ,r 1 广r 在某些交互应用中至关重要;发送者统计r r 包中的包 丢失率来推断丢失时暂时的还是长期的,以此为依据,影响媒体格式的选择,调 整后续发送的数据率;r r 包报告的抖动也是侦测网络拥塞的重要指标。 ( 2 ) s r :s e n d e rr e p o r t 。s r 包用于传递关于正在传输的媒体文件的描述,用于 接收者同步多个媒体流。根据s r 包中的信息,接收方的应用程序可以在未接收数 据包的情况下推算平均载荷数据率和平均数据包数据率,进而推算整体数据吞吐 量。s r 包中的时间戳显示了媒体时钟和外部时钟之间的对

温馨提示

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

评论

0/150

提交评论