(计算机科学与技术专业论文)流媒体代理服务器的设计与实现.pdf_第1页
(计算机科学与技术专业论文)流媒体代理服务器的设计与实现.pdf_第2页
(计算机科学与技术专业论文)流媒体代理服务器的设计与实现.pdf_第3页
(计算机科学与技术专业论文)流媒体代理服务器的设计与实现.pdf_第4页
(计算机科学与技术专业论文)流媒体代理服务器的设计与实现.pdf_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

流媒体代理服务器的设计与实现 流媒体代理服务器的设计与实现 摘要 随着i n t e m e t 互连网络的飞速发展,流媒体技术已经被广泛应用。 流媒体的访问流量在i n t e m e t 的访问中占据了越来越重要的地位,研 究流媒体在i n t e m e t 上的代理传输成为提高流媒体有效、合理使用的 重要手段。 本文首先对照了流媒体流量和肿p 流量间的不同特征,得出传 统h t r p 代理服务器并不适合代理流媒体流量的结论。然后,针对流 媒体流量的特征研究和分析了各种的流媒体缓存和分发技术。在此基 础上对流媒体前缀缓存策略进行了改进。改进后的前缀缓存结合考虑 了节目的流行程度,对于不同流行度的节目分配大小不等的缓存空 间。在后缀数据的处理上,采用了i n t e r v a l 缓存算法,最大程度地共 享后缀流量。在此基础上设计和实现了一种新型的流媒体代理服务 器。 本论文主要有以下工作成果: 研究和分析了各种主要的流媒体缓存策略和分发技术; 利用流媒体节目的流行程度对前缀缓存进行了改进; 使用i n t e r v a l 算法对后缀数据进行替换管理; 实现了流媒体相关协议; 最后,对新型流媒体代理服务器进行了测试并和原始的前缀缓存 进行了性能对比,得出结论:该代理服务器部署在骨干网络和接入网 络边缘,可以达到降低网络流量、降低传输时延、降低源流媒体服务 器负载等良好效果。 关键词:流媒体代理前缀缓存i n t e r v a l 缓存r t s pr t p 流媒体代理服务器的设计与实现 ad e s i g na n di m p l e m e n to fs t r e a m i n g m e d i ap r o x y a b s t r a c t w i t ht h eq u i c kd e v e l o p m e n to ft h ei n t e r n e t ,t h es t r e a m i n gm e d i a t e c h n o l o g yi su s e dw i d e l y t h et r a f f i co fs t r e a m i n gm e d i ah a st a k e na n i m p o r t a n tp a r ti n i n t e r a c ta c c e s s s t r e a m i n gm e d i at r a n s p o r tr e s e a r c h b e c o m e sa ni m p o r t a n tw a yt oi m p r o v es t r e a m i n gm e d i au t i l i z a t i o no n i n t e m e t i nt h i sp a p e r ,f i r s t l yw ec o n t r a s tt h ec h a r a c t e r i s t i co fh r 兀pa n d s t r e a m i n gm e d i ai nt r a f f i c w ew i l lf i n dt h a tt h et r a d i t i o n a lh m p r o x yi s n o tf i tf o rs t r e a m i n gm e d i a b a s e do nt h ec h a r a c t e r i s t i co fs t r e a m i n g m e d i a ,w es t u d ya n da n a l y z ek i n d so fc a c h i n gs t r a t e g i e s t h e nw em a k e s o m ei m p r o v e m e n to fp r e f l xc a c h i n gs t r a t e g yu s i n gt h ep o p u l a r i t yo ft h e p r e s e n t a t i o n s i nt h ei m p r o v e ds t r a t e g y , e v e r yp r e s e n t a t i o nh a sa c c o r d i n g o w np r e f i xc a c h i n gs i z eb a s e do ni t sp o p u l a f i t y f o rs u f f i xm e d i a ,ak i n d o fb u f f e r i n ga l g o r i t h mn a m e d i n t e r v a l i su s e dw h i c hc a ns h a r et h em o s t o fr e q u e s tf o rt h es a m es u l t t xm e d i a a tl a s t ,d e s i g na n di m p l e m e n tt h e n e wk i n do fs t r e a m i n gm e d i ap r o x y t h ec o n t r i b u t i o no ft h i sp a p e ri sa sf o l l o w s : s t u d ya n da n a l y z et h ed i f f e r e n tc a c h i n gs t r a t e g i e sw h i c ha r ef i tf o r s t r e a m i n gm e d i a ; i m p r o v et h ep r e f i xc a c h i n gs t r a t e g yu s i n g t h ep r e s e n t a t i o n s p o p u l a r i t y ; u s ei n t e r v a lb u f f e r i n ga l g o r i t h mf o rs u f f i xm e d i ad a t a ; i m p l e m e n tt h ep r o t o c o l sa b o u ts t r e a m i n gm e d i a ; f i n a l l y , w et e s tt h ep e r f o r m a n c eo ft h en e wk i n do fs t r e a m i n gm e d i a p r o x ya n dc o m p a r ei tw i t ht h eo r i g i n a lp r e f i xc a c h i n gt e c h n o l o g y a n dw e c o n c l u d et h a tt h en e wk i n do fp r o x yi sd e p l o y e di nt h ee d g eo fn e t w o r k , 流媒体代理服务器的设计勺实现 a n du s i n gt h ep r o x yw ec a nh a v eag o o de f f e c ti nr e d u c i n gn e t w o r kt r a f f i c , t r a n s m i s s i o nd e l a ya n dl o a do fs t r e a m i n gm e d i as e r v e r k e y w o r d :s t r e a m i n g m e d i ap r o x yp r e f i x - - c a c h i n gi n t e r v a l b u f f e r i n g r t s pr t p i v 流媒体代理服务器的设计与实现 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论 本人签名: 处,本人承担一切相关责任。 日期:趔! i : 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借 阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密论 文注释:本学位 本人签名: 导师签名:日期:竺塑:! 二: 流媒体代理服务器的设计与实现 1 1 课题背景 第一章绪论 流媒体系统通过流技术实现视频、音频等信息的实时传输。相对传统的下载 一播放技术而言,流技术提供了一种手段使得视频和音频形成稳定、连续的传输 流和回放流。采用流技术的特点是:即点即播,客户几乎不需要等待即可以获得 高质量的连续多媒体服务,同时对客户的存储空间要求也很低。 一方面随着互连网络基础设施持续改进,尤其是宽带接入技术的发展,另一 方面得益于媒体编解码技术逐步成熟,流媒体技术在娱乐、教育、培训和企业通 信等多个领域获得了广泛应用。早在2 0 0 5 年,e x c i t e h o m e 市场调查公司对美 国市场的调研发现,美国网民数目接近2 亿人,其中8 9 的用户在线收看流式视 频,8 6 的用户在线收听流式音乐和广播。单就流媒体视频点播应用( v o d ,v i d e o o nd e m a n d ) 来说,由于技术巨头的对流媒体技术的不断关注和参与,如苹果电 脑公司和亚马逊公司进入v o d 市场,市场研究公司i s u p p l i 预测i l l ,全球v o d 市 场销售额将在2 0 0 8 年开始进入爆炸性增长,从2 0 0 6 年销售额1 7 亿美元增长到 2 0 1 0 年的1 3 0 亿美元。 在中国,第2 0 次中国互联网络发展状况统计报告表明【2 】,截至2 0 0 7 年6 月, 中国网民总人数达到1 6 2 亿,较2 0 0 6 年末新增网民2 5 0 0 万,增长迅速。在各 种接入方式中,宽带网民数达到1 2 2 亿。这意味着上网条件进一步改善,更多 的网民可以通过较快的网速、较稳定的带宽连接畅游互联网。同时,该报告调查 和统计了各种互联网应用的使用情况,调查表明:网络音乐使用率达6 8 5 、网 络影视使用率达6 1 1 ,二者都高于电子邮件等传统应用,接近搜索引擎的使用 率7 4 8 。其中流媒体的数字音乐和影视比例非常高,尤其是网络影视,基本都 采用了流媒体技术。另据i n s t a t 市场调查公司预测,2 0 0 7 年中国互联网视频 产业规模将达2 5 3 亿,未来5 年间规模保持3 0 9 6 的增长速度。 总而言之,流媒体技术已在国内外获得了广泛应用并可以预计在未来几年间 将获得空前成长。 流媒体代理服务器的设计j 实现 1 2 课题目的与意义 随着流媒体应用被广泛接受,越来越多的i n t e r n e t 用户访问流媒体数据。传 统流媒体应用大部分都采用了c s ( c l i e n t s e r v e r ,客户端一服务器端) 网络架构, 如图1 - - 1 。尽管网络带宽不断扩张,但用户数增长速度远快于带宽增长。另外 由于流媒体的数据量大、时延要求高、连接时间长等固有特点,传统架构中已经 出现了骨干网络流量激增拥塞严重、流媒体服务器负载过大、客户端传输时延大、 服务质量下降等不良现象。 流 体客户端1 流媒体客户端2 体客户端3 图卜i 流媒体服务架构示意图 其实早在h t i p ( h y p e r t e x tt r a n s f e rp r o t o c 0 1 ) 的服务架构中,代理服务已经成 为了一种重要技术。代理技术为网络应用提供了高效、稳定、安全的内容和应用 的分布式服务。正是由于这种分布式服务显著的降低了网络带宽的流量和服务器 的负载,代理服务市场前景广阔,越来越多的内容提供商和信息服务商开始关注 和进入这一领域。同时由于代理服务具有较好的安全性,在企业用户中也获得了 很快的发展。流媒体的广泛应用和传统代理服务技术的成功促使人们考虑如何利 用代理服务技术来解决流媒体当前面临的问题。采用代理技术的架构如图1 2 所 示。 流 体客户端1 流媒体客户端2 体客户端3 i i i1 - 2 使用代理服务器的流媒体服务架构示意图 然而,流媒体对象和i t i q p w e b 对象存在根本性的差异。这些差异将导致不 流媒体代理服务器的设计与实现 能直接使用传统代理服务器对h t r pw e b 对象的缓存方式缓存流媒体对象。这些 差异主要体现在: 1 流媒体数据量大,完全缓存不但从存储上难以实现而且效率低下 典型的h t r pw e b 对象大小通常仅几k 字节至几十k 字节,因此传 统代理服务器可以完整地将对象缓存。流媒体对象相比之下,数据量大 得多。例如,一部一小时地m p e g 1 格式的视频节目占用约6 5 0 m 字节 左右的存储空间。如果完全缓存,代理服务器存储系统压力过大。 2 流媒体连续传输时间长,对时延要求高,容易造成代理服务器i o 瓶颈 由于w e b 对象较小,代理服务器可以很快将其从磁盘上读出,并发 送至网络,响应用户请求。此时,代理服务器较容易响应多个并发请求。 而流媒体自身特征决定了它需要消耗较大的磁盘i o 和网络带宽,从而 限制了流媒体代理服务器的服务吞吐率。如何节约系统资源是流媒体代 理服务器和传统代理服务器的重要不同之处。 3 流媒体服务需要交互 和w e b 页面浏览过程比较,流媒体播放过程通常会持续较长的时间。 在这个过程中,用户可以和流媒体服务器进行信令交互,控制流媒体的 播放、暂停、快进等等。交互性使得流媒体代理服务器比传统代理服务 器的缓存更加复杂,设计难度也更大。 流媒体代理技术面临较多的挑战,目前还处于研究阶段。流媒体行业中许多 处于领先地位的厂商如m i c r o s o f t 、r e a ln e t w o r k 、a p p l e 、m m 等都没有流媒体 代理的成熟产品。如何让代理服务技术能满足流媒体缓存需求成为了学术界和工 业界的一个重要研究课题。由于本课题设计和实现的流媒体代理系统将在实际应 用中使用,因此本课题重点研究如何在现有网络环境下有效缓存流媒体数据、设 计流媒体传输系统,实现流媒体代理服务器等传输系统组件。通过流媒体代理服 务器,终端用户可以通过就近访问,提高流媒体应用响应速度和服务质量;通过 服务器边缘化,降低骨干网络流量;通过分布式访问降低流媒体服务器负载。 1 3 课题主要工作 本课题需要解决的问题主要是如何在现有网络环境中对流媒体对象的缓存 和分发。课题重点是研究和设计流媒体缓存策略,设计和实现流媒体代理服务器。 该服务器能够完成对流媒体对象的缓存、终端用户的交互以及与源流媒体服务器 的交互和数据传输。该流媒体代理服务器对终端客户隐藏源流媒体服务器。流媒 体代理服务器能够为视频点播、现场直播等应用提供就近访问和高服务质量,同 时具有节目管理功能。 流媒体代理服务器的设计与实现 主要的工作内容包括: 1 流媒体相关协议的研究和实现。包括用于交互的r t s p 、用于多媒体传输 同步的r t p r t c p 、用于多媒体描述的s d p 等。阅读r f c ,理解协议通 信过程,参考相关开源项目,实现协议。 2 研究流媒体的缓存策略、替代算法。对代理服务器缓存策略的选择决定 了代理服务器的功能和性能。参考国内外发表的相关文献和最新进展, 比较各种缓存策略,选择一种合适的缓存策略和替代算法并对其改进, 设计代理服务器的功能和结构。 3 在u n u x 平台下实现流媒体代理服务器。 4 针对本实现,对系统进行测试并对测试数据统计分析,着重比较了各种 缓存性能的关键数据,为进一步改进提供基础。 1 4 论文章节安排 本论文章节安排如下: 第一章绪论介绍了课题背景和课题意义、目的等。 第二章流媒体传输技术主要介绍本课题用到的流媒体相关技术和协议,现 有大部分应用都是基于这些标准技术和协议的。 第三章流媒体缓存技术主要介绍了当前国内外研究的各种流媒体缓存替 换和分发算法,并对它们进行了详细分析和研究。 第四章流媒体代理服务器系统设计主要阐述了代理服务器系统的设计思 路、算法改进、原理和架构,同时给出了各个模块的详细设计。 第五章流媒体代理服务器系统实现主要介绍了代理服务器各个模块的具 体实现。包括编程模型、多线程技术、核心数据结构以及流程等。 第六章测试与展望对实现的流媒体代理服务器进行测试和对比,总结论文 并给出本课题中的不足之处以及需要继续进行的工作。 参考文献 致谢 硕士期间发表的论文列表 流媒体代理服务器的设计与实现 2 1 传输方式 第二章流媒体传输技术 目前通过i n t c r n c t 传输音视频多媒体信息主要包括直接下载和流式传输两种 方式【3 1 。下载方式就是先将媒体文件下载到本地然后播放本地文件。由于音视频 文件一般比较大,受网络基础设施的限制,下载通常速度缓慢,花费时间较长。 流式传输主要是指通过网络,服务器向客户端连续、实时传输数据,用户不必等 待整个媒体下载完成,而只需较短的缓冲时间就可以收看。流式传输优点包括: 1 实时传输和实时播放:流媒体客户端在缓冲小部分数据后就可以播放, 边收看边接收后续数据,从而可以接收现场数据和提高用户体验。 2 节省大量系统资源:一方面客户端不需要缓存整个媒体文件,另一方面 流媒体通常经过了优化编码,这样就节省了大量的存储空间和减轻了客 户端性能要求。 当前有顺序流式传输和实时流式传输两种方法实现流式传输,二者都获得了 广泛应用。 2 1 1 顺序流式传输 顺序流式传输,即服务器将媒体文件通过顺序流发送,客户端顺序下载媒体 文件。对于已经下载的数据,用户可以立即收看。但是用户不可以往后跳过尚未 下载的部分,进行后续收看。此外,顺序流式传输不能在传输期间根据用户带宽 进行调整,无法获得传输质量反馈信息。常见的h 1 曙和m 等协议可以进行 顺序流式传输。顺序流式传输的优点是实现简单,适用于高质量、持续时间较短 的媒体。同时,它的缺点也是明显的:不支持用户交互、不支持传输质量反馈以 及管理功能较弱等。 2 1 2 实时流式传输 针对顺序流式传输的缺点,实时流式传输能保证媒体被实时观看。不但支持 随机访问,而且支持现场数据的传输。一般实时流式传输依赖特殊的网络协议。 因此,流媒体服务器一般不同于w e b 服务器或f t p 服务器,而是针对网络流媒 流媒体代理服务器的设计与实现 体进行设计,具有更大的优势,主要包括: 1 实时流拥有更高的网络传输效率:实时流一般通过u d p ( u s e rd a t a g r a m p r o t o c 0 1 ) 传输。u d p 不提供传输质量保证,没有拥塞控制和差错控制, 包头简化。此外u d p 还支持组播。相反,提供可靠传输的t c p ( t r a n s f e r c o n t r o lp r o t o c 0 1 ) 却由于不必要的重传和流量控制反而不适合流媒体的传 输。 2 实时流拥有更好的系统资源利用率:实时流的实现专门为多媒体传输进 行了优化。流媒体服务器对磁盘、内存以及网络进行实时调度,使得系 统资源利用效率大为提高。一个设计良好的实时流媒体服务器支持的并 发用户数目一般比直接使用w e b 服务器性能提高2 - - 3 倍。 3 实时流给用户带来更好的服务质量:实时流具有流控功能,服务器能够 自动调整媒体的质量等级。比如,在网络状况比较拥塞的情况下,服务 器能自动丢弃一些非关键音视频帧。对于节目的收看者,仍然能够收看 质量下降的媒体节目,而不至于被中断。 2 2 流媒体传输和控制协议 2 2 1r t s p 在现有i n t e m e t 网络架构上,多媒体应用越来越多,需要能控制多媒体传输 的协议。i n t e m e t 最主要的协议是h i t p 协议。它是标准的w e b 服务器和客户端 通信协议。但是主要由于以下原因,导致h t t p 不能满足控制流媒体传输的需求: 1 流媒体服务器需要维持通信状态,而h 1 t r p 服务器是一个无状态服务器 2 流媒体服务器和客户端可能都需要发送请求,而h 1 瞪仅支持单向请求 3 流媒体资源标识使用绝对u r i ,而h 1 曙有时仅使用相对u r l 在此背景下,由哥伦比亚大学、n e t s c a p e 和r e a l 网络公司等共同发起, i e t f ( i n t e m e te n g i n e e r i n g t a s kf o r c e ,互联网工程任务组) 制定了r t s p ( r e a lt i m e s t r e a m i n gp r o t o c o l ,实时流协议) ,定义于r f c 2 3 2 6 1 剞。r t s p 是一个应用层协议, 不依赖特定的传输层传输,控制实时数据的传送。该协议目的在于控制多个数据 发送连接,选择发送通道。r t s p 提供了一个可扩展框架,使实时数据,如音频 与视频的受控、点播成为可能。形象地说,在通信双方间,r t s p 扮演着“远程 遥控器 的角色,利用这个“远程遥控器 ,用户可以对音视频提出播放、暂停、 录制等操作。 r t s p 主要提供以下功能: 1 从媒体服务器上获得媒体,并控制传输 流媒体代理服务器的设计与实现 2 邀请一个媒体服务器加入一个会话 3 向已有节目中添加媒体 2 2 1 1r t s p 语义 r t s p 采用客户端一服务器模型,使用请求一应答通信方式。 r t s p 请求主要指客户端向服务器端请求,包括能力查询、媒体查询和媒体 操作。主要的请求方法包括: 1 o p t i o n s :一般为第一个请求报文,查询服务器端支持的方法。 2 d e s c r i b e :查询服务器端的节目信息,节目的u r i 一般为非r t s p 方 法获得。 3 a n n o u n c e :客户端和服务器端都可以发出。客户端发出请求用于将节 目信息通告给服务器端,服务器端发出请求用于在一个已有节目中更新 媒体。 4 s e t u p :让服务器端为连接分配资源,s e t u p 商定双方r t p r t c p 端口。 5 p l a y :向服务器端发出播放指定节目的命令。 6 p a u s e :向服务器端发出暂停指定节目的命令。 7 t e a r d o w n :向服务器端发出终止指定节目的命令,拆除连接。 r t s p 响应主要是指服务器端向客户端响应,包括能力描述、媒体描述和操 作响应。响应消息由响应码标识,响应码出现在响应消息的开始处。大部分消息 响应码和h 几m 的响应码类似,主要的响应码分为以下几类: 1 2 x x 含义:请求成功响应,例如2 0 0 响应码表示成功响应。 2 3 x x 含义:请求被重定向,例如3 0 0 响应码表示请求被重定向。 3 4 x x 含义:请求错误,例如4 0 5 响应码表示服务器不支持该请求方法。 2 2 1 2r t s p 语法 r t s p 报文采用i s o1 0 6 4 6 ( u t f 8 ) 编码。 1 r t s p 请求报文语法格式如图2 1 : l i :l lc r l fi 图2 - 1r t s p 请求报文格式 2 r t s p 响应报文语法格式如图2 2 : 流媒体代理服务器的设计与实现 图2 - 2 r t s p 响应报文格式 其中s p 为空格,c r 为回车,l f 为换行标识;头域为一些可选参数或必选 参数,用于提供该请求或响应的详细信息;主体实体可以是s d p 等信息,消息 主体实体和头域之间用空行间隔;目前r f c 2 3 2 6 规定的v e r s i o n 为r t s p 1 o ;消 息结束以c rl f 空行作为标识。 2 2 1 3r t s p 时序 r t s p 时序主要是请求一响应顺序。一般采用t c p 传输,保证可靠传输,应 用层无需考虑计时器超时重传。但应用层可以多次发送相同请求,进行多次尝试。 一次成功的r t s p 通信时序如图2 3 所示: 2 2 2r t p r t c p 图2 - 3r t s p 消息交互时序图 r t p r t c p ( r e a i - t h n et r a n s p o r tp r o t o c o l ,实时流传输协议和r e a l - t i m e t r a n s p o r tc o n t r o lp r o t o c o l ,实时流传输控制协议) 由哥伦比亚大学等发起,由i e t f 制定,最新版本定义于r f c 3 5 5 0 1 5 1 。r t p 传输实时多媒体数据,r t c p 提供传输 流媒体代理服务器的设计j 实现 质量反馈。在r t p 出现前,i n t e m e t 最主要的传输协议是t c p 和u d p 协议。但 是t c p 和u d p 主要存在问题: 1 流媒体数据不需要可靠传输,实时数据的重传没有意义,故t c p 不合适。 2 一个多媒体节目可能包括多路媒体流,如视频和音频。u d p 不提供一个 u d p 连接传输多路数据的能力,而只能依赖应用层。 3 u d p 不提供对负载类型的指示。如果采用u d p ,应用层负责对媒体类型 的标识。 r t p r t c p 被设计成为传输层和应用层间的夹层。它们都不依赖于特定传输 层,一般r 1 嘲r c p 使用u d p 传输协议。r t p 采用u d p 传输是因为实时数据的 性质决定的。r t c p 采用u d p 传输主要是因为它是一个信令协议,所以要求: 1 报文立即发送,而t c p 采用滑窗机制。 2 重传并不重要,而t c p 一旦一个报文出错整个滑动窗口重传。 3 报文短小,而t c p 报文头部相对u d p 头部过大。 r t p 会话包括以下两个连接:r t p 连接和r t c p 连接。在端口的使用上,一 般对应两个端口号,端口分别位于偶数端口和相连的高奇数端口。r t p 会话示意 图如图2 4 所示: r t p 连接 r t pu s e r a r t c p 连接 r t pu s e rb 图2 - 4r t p 会话连接示意图 r t p 提供的功能如下: 1 提供负载类型指示,标识媒体类型和编码方法。 2 提供不同数据源的标识和数据分组序号,从而可以从多个源正确接收并 重组原始数据。 3 提供数据发送时间戳,为重组和同步提供时间依据。 r t c p 提供如下功能: 1 提供数据传输质量的反馈信息:包括丢失率、时延抖动、往返时延。帮 助发送者和接收者观察网络状态。 2 传送r t p 源运输层永久标识,即c n a m e 。c n a m e 用于r t p 的s s r c 冲突或重启后跟踪会话参与者;c n a m e 也用于关联多个媒体流,同时 利用r t c p 的n t p 和r t p 时戳,可以同步同一个会话中的多个流。 流媒体代理服务器的设计1 j 实现 3 确定r t c p 分组发送速率,根据网络状态和会话大小以及会话参与者组 成比例,动态计算r t c p 报文发送问隔,从而提供服务质量反馈且有效 利用带宽。 2 2 2 1r t p r t c p 语义 r t p 语义主要是告知报文接收者以下信息: 1 负载的媒体类型 2 媒体的采样速率和时间 3 媒体属于哪个媒体源 4 报文序号 r t c p 定义了几种不同的报文,不同的r t c p 报文的语义如下: 1 s r ( s e n d e r r e p o a ) 数据发送者报告自己发送r 1 r p 报文信息 2 r r ( r e c e i v e rr e p o r t ) :接收者报告自己接收r t p 报文的信息 3 s d e s ( s o u r c ed e s c r i p t i o n ) :对自己进行描述 4 b y e ( b y e ) :表示自己希望退出会话 5 a p p ( a p p l i c a t i o n ) - 指示应用特定功能 2 2 2 2r t p r t c p 语法 r t p 报文格式如图2 - 5 所示: vpx c c p a y l o a dt y p es e q u e n c e t i m e s t a m p s s r ci d e n t i f i e r c s r ci d e n t i f i e r p a y l o a d 图2 - 5r t p 报文头部格式 各字段意义如下: 1 v 字段:2 比特,协议版本信息号; 2 p 字段:1 比特,填充指示位。是否有填充比特。最后一个填充字节表明 填充比特数; 3 x 字段:1 比特,扩展指示位。是否扩展r t p 。如果扩展,固定头部后有 扩展头部; 4 c c 字段:4 比特,表明固定头部后c s r c 的数目; 流媒体代理服务器的设计与实现 5 m 字段:1 比特,标志位,根据不同的应用含义不同。如负载格式为m p e g 4 时,此位置1 表明这是最后一个r t p 报文。 6 p a y l o a d t y p e 字段:7 比特,净荷类型。对音视频数据类型说明,并说明 编码方式。 7 s e q u e n c e 字段:1 6 比特,序列号。初始值为随机值,用于接收方检测分 组丢失和恢复分组次序。 8 t i m e s t a m p 字段:3 2 比特,时间戳。初始值为随机数,为同步不同的媒 体流提供采样时间,用于重新建立原始音频或视频时序。此外,还可以 帮助接收方确定数据到达时间的一致性和时延抖动。 9 s s r c 字段:3 2 比特,同步源标识。每个数据源分配的随机数标识。用 于帮助接收端区分多个同时的数据流。 1 0 c s r c 字段:3 2 比特,分信源标识。c s r c 标识由混合器插入,其 值为组成复合信号的各个分信号的s s r c 标识,用以标识各个组成分信 号的信源。 1 1 p a y l o a d :r t p 净荷,即r t p 传输的数据,如音频抽样信号、压缩视 频数据等。 每种r t c p 分组由公共头部和若干个可变长度的数据单元组成。分组长度是 3 2 比特的整数倍,头部有长度字段。r t c p 报文公共头部格式如图2 - 6 所示。各 字段解释如下: 1 v 字段:2 比特,版本号; 2 p 字段:1 比特,填充指示位。含义同r t p 分组头部; 3 。r c 字段:5 比特,接收报告计数。指示本分组包含的接收报告数: 4 p t 字段:8 比特,r t c p 的净荷类型; 5 l e n g t h 字段:1 6 比特,分组长度,包括头部和填充字节; 6 s s r c 字段:3 2 比特,发送该报文的s s r c 标识。 i 篁堕 图2 - 6r t c p 报文公共头部格式 r r 分组头部盯字段为2 0 1 。数据单元包括如下字段,如图2 7 所示: 1 s s r cn 字段:3 2 比特。本报告块所属信源的s s r c 标识: 2 丢失率:8 比特,自上次s 刚r r 发送以来,由s s r cn 发来的r t p 丢失 比率; 3 累计丢失分组数:2 4 比特,从开始接收以来,累计丢失来自s s r cn 的 r t p 报文个数: 流媒体代理服务器的设计与实现 4 扩展的已接收最高序号:低1 6 位为接收来自s s r c n 的l 唧数据包最大 序号,高1 6 位为序号循环计数: 5 到达时延抖动:3 2 比特,r t p 数据包到来时延统计方差估计: 6 l s r 字段:3 2 比特,最末s r 时戳,为最近收到的来自s s r c n 的s r 分 组中n t p 时戳的中间3 2 比特: 7 d l s r 字段:3 2 比特,最未s r 后的时延,自收到最近一个来自s s r c n 的s r 分组至发送本接收报告块的时间间隔。 s s r cn 丢火率累计丢失分组数 扩展的已接收最高序号 剑达时延抖动 l s r d l s r 图2 7r t c p 报文接收者报告格式 s r 分组头部p t 字段为2 0 0 。分组数据单元同r r 分组的数据单元,但包 含了一个发送者信息。它包括如下字段,如图2 8 所示: 1 n t p t i m e s t a m p字段:32比特,该sr发出的绝对时间的整数部分。它h 是距1 9 9 0 1 1 时间差的整数部分; 2 n t p t i m e s t a m pl 字段:3 2 比特,该发出的绝对时间的小数部分。它 s r 是距1 9 9 0 1 1 时间差的小数部分; 3 r t pt i m e s t a m p 字段:3 2 比特,它指示上面n t p 时戳指示的时间,但时 间单位和初始值和数据分组中的r t p 时戳相同。这个值是利用r t p 时戳 计数值和实际时间的关系由相应得n t p 时戳计算得出的; 4 r t pp a c k e tc o u n t 字段:自开始发送起至本s r 生成时发送的r 皿包总个 数; 5 r t pb y t e sc o u n t 字段:自开始发送起至本s r 生成时发送的r t p 的总净荷 字节数。 m pt i m e s t a m p _ h n r pt i m e s t a m p _ l r t pt i m e s t a m p r t pp a c k e tc o u n t r t pb y t e sc o u n t 图2 - 8r t c p 报文发送者报告格式 d e s 分组头部p 1 r 字段为2 0 2 。它包括如下字段,如图2 - 9 所示: 1 s s r c c s r c _ n :3 2 比特,信源的s s r c 或c s r c 标识; 2 s d e s 描述项:3 2 比特。描述项一般结构包括类型、长度、描述文本等。 其中前文所叙的c n a m e 为必备的描述项,其他描述项为可选描述项。 流媒体代理服务器的设计与实现 s s r c c s r cn s d e s 描述项 图2 - 9r t c p 报文描述报告格式 除了上面的几种数据单元外,还有b y e 报文和a p p 报文的数据单元。其 中,b y e 数据单元包含退出理由等字段。a p p 数据单元主要供新应用或新功能 使用,不再列举。 2 2 2 3r t p r t c p 时序 r t p 发送速率受以下因素影响: 1 媒体采样速率 2 应用程序可以根据事先约定的带宽大小以及r t c p 反馈做出调整 3 r t p 的接收方可能会因为接收速率过低而丢失过多的报文 r t c p 时序依照计算得出的r t c p 报文间隔严格进行。这是因为r t p 被设计 成能在i n t e r a c t 进行上大规模会话,随着用户数目增多,如果固定时白j 间隔发送 r t c p 报文将导致r t c p 占用带宽随用户数目线性增长,从而削弱了r t p 的传输 能力。r t c p 时间间隔计算主要依据: 1 r t c p 占用带宽= 会话带宽5 2 收发r t c p 报文的平均大小( 包括u d p , i p 头部) 3 参与者数目和组成比例 4 最小间隔时间为5 秒 依据r f c 3 5 5 0 提供的标准算法,可以保证r t c p 占用带宽小于会话带宽的 5 。r t p 和r t c p 时序关系如图2 1 0 所示: b b + i 流嫘体代理服务器的设计j 实现 图2 - 1 0r t c 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 ,会话描述协议) 在2 0 0 6 年定 义与r f c 4 5 6 6 1 6 1 中。s d p 定义了会话描述的统一格式,但并不定义多播地址分配 和s d p 消息的传输,也不支持媒体编码方案的协商,这些功能都由下层传送协 议完成。s d p 采用一种称为“o f f e r - a n s w e r 的模型进行通信。典型的,s d p 作 为一种消息实体封装在r t s p 报文中。当用户通过r t s p 请求某节目时,r t s p 响应消息中包含了该节目的相关信息描述。这些信息包括:会话名称和意图,用 于标识和区分不同的会话;会话持续时间( 会话开始时间、结束时间、时间段相 关信息) ;构成会话的媒体( 媒体类型、传送协议、媒体格式以及媒体地址端口) ; 有关接收媒体的信息( 地址、端口、格式等) 。s d p 的接收者根据这些信息自行 处理。比如,如果本地不支持该媒体类型,就可以重新协商或终止连接。 s d p 描述信息为文本信息,采用u ,r f 8 编码中的i s o1 0 6 4 6 字符集。描述 部分有多个文本行组成。每个文本行格式均为“ = 的形式。从描 述信息的用途上看,可以将描述部分分为会话级描述部分和媒体级描述部分【7 1 。 会话级描述部分给出适用于整个会话和所有媒体流的信息。主要的会话级描 述包括: 1 v = 目前版本号为0 ,无子版本号: 2 0 = 给出了会话发起者( 由用户名和用户主机地址确定) 以及会话标识和会 话版本号; 3 s = 字符表示的会话名称。每个会话描述必需有且仅有一个会话名; 4 c = 给出连接信息。一般为一个i p v 4 的地址。可以是单播或组播地址。如果 是组播地址,同时提供t r l 值。如果会话级和媒体级描述部分都有本字段, 仅一个有效; 5 a = : 或 第一种形式的属性为数值属性:第二种形式的属性为二进制属性。一个 会话描述种可以包括零个或多个会话属性行。它是s d p 扩展的基本手段。可 以出现在会话级描述,也可以出现在媒体级描述部分。 媒体级描述部分给出只适用于该媒体流的信息。它以“m = 文本行开始。格 流媒体代理服务器的设计与实现 式为:m = 。目前定义了五种媒体类型: 音频、视频、应用、数据和控制。一个会话描述可以包含零个或多个媒体级描述。 其中,媒体类型为i e t f 对不同类型的媒体赋予的不同编号。端口为该媒体在网 络传输时出现的端口,从而告知本s d p 的接收者从该端口上读取数据。传送层 以r t p a v p 和u d p 常见。对于r t p ,媒体格式就是r t p 应用文档中的净荷类 型号。如果为静态净荷,即媒体编码方式已由类型号完全确定,则只需媒体格式 即可以完全确定,称为静态绑定。如果是动态净荷,即媒体编码方式并没有完全 确定,则尚需要属性行进一步给出信息。 流媒体代理服务器的设计j 实现 第三章流媒体代理缓存技术 3 1 流媒体代理服务器 在流媒体技术发展初期,人们将精力放在磁盘调度、海量存储等方面,重点 是提高流媒体服务器的服务能力。随着流媒体用户数目增加,仅仅依靠升级流媒 体服务器的网络带宽和i 0 能力变得越来越困难,而且开销越来越昂贵。近年来, 人们开始借鉴w e b 代理服务方式,希望以此来提高流媒体系统性能,降低系统 造价。 传统w e b 代理服务器已被证实为一种降低互联网流量和终端用户时延的有 效途径。代理服务器本身是一台主机或服务器,但它扮演终端用户和整个互联网 之间的中介角色。代理服务器主要作用体现在: 1 降低了源服务器负载,因为代理服务器对一些请求进行了响应: 2 节约了骨干网络资源,因为代理服务器缓存了用户数据,避免了重复传 输; 3 利用缓存数据直接服务终端用户,提高了用户响应速度; 4 代理服务器还可作为透明代理,提高安全性和可管理性; 如1 2 节所述,流媒体不同于传统h 1 曙静态数据,传统代理不能满足需求。 对于流媒体代理服务器来说,采用缓存技术希望达到如下目标: 1 减少客户端和源流媒体服务器间的网络流量,降低网络带宽开销。缓存 用户所需的数据可以大大减少对源流媒体服务器重复请求的数量。此外, 代理和客户端同在一个高速局域网中也减少了骨干网络的流量。 2 快速响应用户请求,降低客户端启动时延。客户端为了播放节目,同时 防止网络时延抖动,必须预先缓存一定的数据。缓存这些数据的时间称 为启动时延。由于代理直接将数据发送给客户端,速度大于与远程源流 媒体服务器的传输速度,因此能降低时延。 3 提高数据共享和命中率。代理应该采用好的缓存策略。缓存数据应该得 到及时更新,淘汰“冷门 数据。同时代理间同步、容错性、健壮性都 需要可靠保证。 流媒体代理服务器的设计与实现 3 2 流媒体代理服务缓存的性能评价咖 3 2 1 命中率 用户请求到达流媒体代理服务器时,代理服务器查找缓存数据。如果代理服 务器缓存中有用户请求的数据,称该请求在此缓存中命中。否则,代理服务器需 要代替用户向源流媒体服务器发起请求,获得请求数据,然后将数据调入缓存中 并传输给终端用户。命中率代表了代理服务器中缓存数据的有效程度,是流媒体 代理服务器缓存性能的重要评价标准。一般采用如下计算方法计算: 套由杰一代理缓存中命中数据长度 ”。 用户访问资源总长度 3 2 2 平均访问延迟 访问延迟是指从用户请求发出开始计时,直

温馨提示

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

评论

0/150

提交评论