(电路与系统专业论文)视频流媒体组播系统的设计与实现.pdf_第1页
(电路与系统专业论文)视频流媒体组播系统的设计与实现.pdf_第2页
(电路与系统专业论文)视频流媒体组播系统的设计与实现.pdf_第3页
(电路与系统专业论文)视频流媒体组播系统的设计与实现.pdf_第4页
(电路与系统专业论文)视频流媒体组播系统的设计与实现.pdf_第5页
已阅读5页,还剩51页未读 继续免费阅读

(电路与系统专业论文)视频流媒体组播系统的设计与实现.pdf.pdf 免费下载

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

文档简介

硕士学位论文 m a s t e r st h e s i s 摘要 随着互联网和宽带技术的飞速发展,视频流媒体实时传输已经成为当前的研究 热点。流媒体以边下载边播放的特点,不但除去了用户漫长的下载等待痛苦,而且 极大地降低了对系统存储容量的需求,同时流媒体传输技术中的组播技术具有更大 的优势,它能让媒体服务器同时向多个客户端发送连续数据流而不产生延时,而且 又不会产生广播风暴,极大地提高了网络利用率。 本文在对流媒体基础理论深入研究的基础上,结合i p 组播和d i r e c t s h o w 播放 技术,提出了视频流媒体组播系统的整体方案并给出了系统的具体架构。最后就系 统各个模块的具体实现进行了详细的论述和分析。 本文首先介绍t c p 协议以及用于无连接传输的u d p 协议,i p 组播原理和应用编 程,其中包括b e r k e l e y 和w i n d o w s 系统下的组播a p i ,讨论了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 播放模块进行了深入分析并给出了实现代码。最后在 指定的网络环境下对整个视频流媒体系统进行了测试,测试结果表明该系统能够成 功实现视频组播,接收端画面流畅,音视频同步。 关键词:u d p ;流媒体;组播;d i r e c t s h o w ;过滤器;套接字;客户端;服务器 a - b s t r a c t w i t ht h ef a p i dd e v e l o p m c mo fh l t e m e t 锄db m a db a i i d ,t h er e a lt i m et r a l l s m i s s i o n o fv i d c 0s t r e a mm e d i ah a sb e c o m ear c s e a r c h f u i h o t s p o ta tp r e s e n t w i t ht h i st e c h n o l o g y m em u l t i m e d i ai i l f o m l a t i o nc a i lb ed i s p l a y e dw h i l ei ti sb e i n gd o w n l o a d e d ,s ot h a tt t l e u s e r sd on o th a v et ow a s t et h e i rt i m ew h e nd o w n i o a d i n 舀a n dt h c r ew i i ib ear e d i c “i y r e d u c e dn e e di nt h es y s t e mm e m c o 珂c a p a c i t y a n dt l l e nt h em u l t i c a s tt e c l l i l o l o g yo ft l i e s t 阼a m i i l gm e d j at r a n s m i tt e c h n o l o g yh a sm o r ea d v a l l t a g e ,i th a st h ef l l n c t i o n sw l l i c hc 柚 t m s m i tas t r e a mf b fa 掣o u po fd i e n tw i m o u ta i l yd e l a yo rb r o a d s ts t o 肌t h e t e f o r ei t c a ni n p r m ,et 1 1 ea v a i l a b i l j t yo ft h en e m o r ks y s t e m t h ep a p e ri sb 懿e do nt h er e a r c ho ft l i eb a s i ct l i e o r ) ,o fv i d e os t r e 锄m e d i a , c 伽d b i n 龉t e c h n o l o g yo f 婵m u l t i c a s ta n dd i r e c t s h o w p f 叩o s e s 也e 、】l r :h o l e c h e m eo f v i d c os 仃e 锄m e d i ai pm u l t i c 粥ts y s t e ma n d 百v e 血ew h o l ea d u a l e l a s t l yi d c s c r i b ea n da n a l y s et l l ea 咖a li m p k m e n to fl 【i n d so f m o d l i a l si nd e t a i l i i lt l l i s p a p e r ,ie x p o u n dt h eu d pp r o t o c o l ,t l l ep r i n c i p l eo f i pm u l t i c 镐t 跏d a 即l i c a 廿0 np f 0 铲锄m i n 吕w h i c hi n d u d e sm em u l t i c a s ta p ib a s e do nb e r k e l e y 蛆d w 协d a w so p c 珀t cs y s t e m ,d i s c u s st e c h n o l o g yo fd i r c c c s h o w w h i c hi n d u d e st h ew h o l e d i f e c t s h a ws y s t e m ,f i l t e rg r 印h 如t h cc o 埘e c t i o no fm t e r 蛐dt l l et 跚s m i to ff i l t e rd a t a i tr e s e a r c h st l i em a i nm o d u a l so fv i d c os t r e 姗s e r v e f 蛐dd i e n ti i ld e t a i l ,w h i c hi n d u d e s m ci n i t i a l i z a t i o no fs o c k e t ,t h em o d u a lo fs e n d e r ,p l a y e rm o d u a lo fs e r v e r ,t h em o d u a lo f r e c c i v e r t l l ei m p l e m e mo fm u l t i w i i l d o w 锄dt h cp l a y e rm o d u a lo fd ir e i :t s h o w ,粕d t h e n 画v ei m p l e m e t a ls o u r c ec o d e 壮d 趾a l y s et h e mi nd e t a i l f i n a l l yih a v cat e s to nt h c w h o l ev i d e os t r e a mm e d i ai na 舀v e nn e 押o r ke n v 曲蛳e n t 1 1 1 er e s u l to ft e s ti n d i c a t e s t h a tt h es y s t 啪i sa b l et oi m p l e m e n tv i d c ot r a n s 血s s i o ns u c c e s s f u l l ya n dt h ep i c t i l r e r c c e i v e di sc l e a ra n ds m o o m y a u d i oa dv i d e ok e e ps y n c h 砌u s k e y w o r d s :u d p ;s t r e a mm e d i a ;m u l t i c a s t ;d i r e c t s h o w ;f i l t e r ;s o c k e t ;c l i e n t ;s e n r e r 硕士学住论文 m a s t e r st h e s i s 第一章绪论 1 1 流媒体现状及发展趋势 作为多媒体和网络领域的交叉学科,流媒体“1 技术的应用和研究得到了迅速 发展。多媒体使计算机能够综合处理声音、文字。图像和视频,它以丰富的声、文、 图信息和方便的交互性,极大地改善了人机界面,改变了人们使用计算机的方式, 从而为计算机进入人类生活和生产的各个领域打开了方便之门,给人们的工作、生 活和娱乐带来了深刻的变化。随着网络宽带化的发展趋势,人们不再满足于信息高 速公路中仅有文本、图像或声音这一类简单的信息,而越来越更直观、更丰富的新 一代信息的表现形式,流媒体( m e d i as t r e 硼i n g ,又称s t r e 锄i n gm e d i a ) 技术由 此便应运而生。 以前,多媒体文件需要从服务器上下载后才能播放。由于多媒体文件内存一般 比较大,一个典型m p e g l 瑚编码视频节目,1 分钟的数据为l1 3 m b ,利用5 6 k b p s 调制解调器至少需要2 7 分钟进行下载,因而限制了人们在互联网上使用多媒体数 据进行交流。流媒体不同于传统的媒体,它的主要特点就是边下载边观看,以流的 形式进行数字媒体的传送,从而使人们可在线欣赏到连续不断的多媒体节日。在互 联网迅速发展的时代,流媒体技术的产生和发展必然会给我们的日常生活和工作带 来深远的影响“1 。 目前,i n t e r n e t 中最通用的流媒体系统包括m i c r o s o f tw i n d o wm e d i ap 1 a y e r , r e a lr e a l n e t w o r k ,a p p l eq u i c kt i m e 等。毒芒中w i n d o w sm e d i ap 1 a y e r ,r e a l n e t w o r k s 等流媒体播放器嘲甚至已成为p c 的标准配置。专业级v o d 系统及视频服务器产品包 括c i s c oi p t v ,n c u b e m e d i a c u b e ,o r a c l eo v s ,s u nm e d i a c e n t e r ,h pm e d i a s t r e a m 等;专业视频会议系统包括p i c t u r e t e l ,n e t m e e t i n g 等。流媒体的各种产品受到 i t 产业界的极大关注,从1 9 9 8 年开始的流媒体展览会目前已成为计算机业界最为 重要的展览会之一。这些产品的迅速普及和应用,极大地促进了流媒体的国际标准 和协议的制定与竞争,同时也推动了流媒体基础研究的逐步展开。 目前,多媒体及网络领域的相应国际标准和协议充分考虑了流媒体的应用。在 多媒体领域,m p e g 系列( m p e g 一1 m p e g 一2 m p e g 一4 ) 对网络传输的重视逐渐加强。 m p e g 一2 定义了传输流( t r a n s p o r ts t r e 砌) ,支持多路m p e g 一2 码流在网络中的传输 硕士学住论文 m a s t e r s t h e s l s 复用;m p e g 一4 标准中精细的可扩展性编码p f g s ( p r o g r e s s i v ef j n eg r a n u l a r s c a l a b l e ) 均针对网络中码率变动的特性而制定。 2 0 世纪9 0 年代中后期,不以语音业务为中心的第三代无线通信系统( 3 g ) 以 及未来的宽带无线通信网络,均以提供高速接入和多媒体服务为特征。例如,属于 第三代无线通信标准i m t 一2 0 0 0 ( i n t e r n a t i o n a lm o b i l et e l e c 0 t i n u n i c a t i o n s2 0 0 0 ) 中的u m t s ( u n i v e r s a lm o b i l et e l e c o 唧u n i c a t i o ns y s t e m ) 承诺,u m t s 用户的网 络接入速度在快速移动时可达到1 4 4 k b p s ,步行时可达到3 8 4 k b p s ,户内可达到 2 m b p s 。高接入带宽为无线网络多媒体服务提供了物质基础,是无线通信与多媒体 通信的结合成为可能。未来的i n t e r n e t 与无线通信网的发展将不再是孤立的,通 信世界正面临着通信、计算与i n t e r n e t 的结合,固定服务与移动服务的结合。跨 越网络界限,自由地传输多媒体信息,将使人类在任何地方。任何时间、与任何人 通信的梦想成为现实,从而为流媒体的发展带来新的空间和挑战。 流媒体的应用推动了流媒体研究的发展。流媒体的研究包括流媒体编码技术、 流媒体服务器技术、端到端”1 ( e n dt oe n d ) 流媒体技术和流媒体系统技术等。流 媒体编解码技术建立在传统多媒体编解码技术的基础上,在最近几年内得到迅速发 展。到目前为止,最具代表性的流媒体编解码技术为可扩展性编解码嘲技术f g s ( f i n e g r a n u l a rs c a l a b l e ) 和p f g s ( p r o g r e s s i v ef i n eg r a n u l a rs c a l a b l e ) 。流媒体服务 器技术是流媒体早期研究的重点,它对传统文件服务器进行扩展和改造,使之能够 有效地支持流媒体应用。典型的流媒体服务器技术包括数据放置策略、磁盘调度算 法、内存缓冲区管理算法等。端到端流媒体技术用以解决流媒体在两个端系统问传 输的相关问题,典型的研究包括流媒体拥塞控制( c o n g e s t i o nc o n t r 0 1 ) 策略、差 错控制( e r r o rc o n t r 0 1 ) 策略、速率整形( r a t es h a p i n g ) 策略等,端到端技术 的研究目标是为了提高流媒体应用的q o s 。1 ( q u a l i t yo fs e r v i c e ) 。而流媒体系统 技术不仅仅关注流媒体的q o s ,还注重提高流媒体的系统效率。典型的流媒体系统 技术包括调度技术( s t r e a m i n gs c h e d u l i n g ) 、多媒体代理服务器及缓存技术 ( m u l t i m e d i ap r o x ya n dc a c h i n g ) 、流媒体的应用层组播技术( s t r e a m i n g a p p l i c a t i o nl e v e lm u l i t c a s t ) 等。由于流媒体系统技术不仅要综合其他三类技 术,还要优化系统的综合性能,因此该类研究非常具有挑战性,也是流媒体技术研 究的重点和趋势。 硕士学住论文 m a s t e r st h e s i s 1 2 论文的背景和意义 在传输领域,现今流媒体应用的主要部分采用在服务器和客户机之间建立点到 点连接的单播方式,如视频点播,用户通过点击就可以看到想看的节目,这符合互 联网高交互性的需要,然而在有限的带宽资源下,视频点播不能够满足大量用户的 点击。因此组播方式的优越性越显突出。在流媒体技术领域,推动组播应用和广播 式服务的力量正在增长,现场直播也不再是电视台、电台的专利,越来越多的站点 ( w e b s i t e ) 开始采用流媒体技术传输多媒体信息,为用户提供丰富的节目内容, 也使得网站变得更加精彩。i p t v “”牌照也正在成为各大电信运营商争夺的焦点。作 者在研究生阶段,参与过u t s t a r c o m 公司的r o l li n gs t r e 锄1 系统的技术研究和测 试工作,这形成了本文的技术背景。 本文以视频流媒体i p 组播应用为背景,着眼于i p 电视、网上直播、视频会议、 远程教学等应用,力求提供包括基于i p 网络视频流媒体组播服务器和客户端在内 的全套解决方案。该方案的设计是以小型的局域网为平台,融台了网络编程、i p 组 播以及d i r e c t s h o w 播放技术o ”。本系统能够为网络教学、现场直播、视频会议、 网络监控提供应用。 1 3 论文研究的主要内容 本文的主要目标是围绕网络编程、i p 组播、d i r e c t s h o w 技术和在视频流媒体 中应用,融合这几方面的技术实现了视频流媒体在局域网上的组播。本文主要内容 包括以下几个方面: 介绍t c p i p 协议以及i p 组播技术,并对i p 组播应用编程进行了详细论述。 分析了d i r e c t s h o w 工作原理以及过滤器的开发过程。 给出了整个视频流媒体系统的构架。包括发送模块、接收模块以及视频播 放模块。 完成了系统实现的关键代码。包括服务器端的组播套接字的初始化、发送 线程、停止发送线程和客户端的多窗口实现、数据接收、d i r e c t s h o w 播放 等这些模块,并且进行详细的分析和探讨。 对整个系统进行测试,并作了相关的分析。 硕士学位论文 m a s t e r st h e s i s 第二章流媒体组播原理与d i r e c t s h o w 技术 2 1 流媒体技术 流媒体简单来说就是应用流技术在网络上传输的多媒体资源,而流技术就是把 连续的影像和声音信息经过压缩处理后放到网络服务器上,让用户一边下载一边观 看、收听,而不需要等整个压缩文件下载到自己机器后才可以观看的网络传输技术。 该技术先在使用者的电脑上创建一个缓冲区,在播放前预先下载一段资料作为缓 冲。当网络实际数据接收速度小于播放所耗用资源的速度时,播放程序就会取用这 一小段缓冲区内的资料,避免播放的中断,使播放品质得以维持。流媒体技术主要 包括流式网络传输技术,流媒体的编码o 、播发和发布等。 2 1 1 流式传输基础 流媒体实现的关键技术是流式传输。流式传输时,声音、影像或动画等媒体由 音、视频服务器向用户计算机连续、实时传送,用户不必等到整个文件全部下载完 毕,而只需经过几秒或十数秒的启动延时即可进行观看。当声音等媒体在客户机上 播放时,文件的剩余部分将在后台从服务器上继续下载,这不仅使启动延时成十倍、 百倍地缩短,而且不需要太大的缓存容量,极大地弥补了用户播放端占用存储资源 的缺点。流式传输的定义很广泛,现在主要指通过网络传送媒体( 如视频、音频) 技术的总称,其特定含义为通过i n t e r n e t 将影视节目传送到p c 机。实现流式传 输有两种方法:渐进式流式传输o ”( p r o g r e s s i v es t r e a i n i n g ) 和实时流式传输 ( r e a l t i m es t r e a m i n g ) 。采用哪种方法需要依赖用户的具体需求。 一般来讲,渐进式流式传输适应于短片段。如果短片段要求较高的画面质量, 可能会导致用户等待时间的延长,但是流服务器并不会调整其传输质量。当播放较 长时间的片段时,如讲座、发言和电影,实时流式传输是更好的选择。渐进式流式 传输在h t t p 服务器上工作具有如让媒体文件更易于管理等优点。具体而言,渐进 式流式传输不像实时流式传输那样在传输期间根据用户连接的速度进行调整。由于 标准的h t t p 服务器可发送这种形式的文件,也不需要其他特殊协议,它经常被称 作h t t p 流式传输。渐进式流式传输比较适合高质量的短片段,如片头、片尾和广 4 硕士学住论文 m a s t e r st h e s i s 告。由于该文件在播放前观看的部分是无损下载的,这种方法保证电影播放的最终 质量。这意味着观看前,必须经历延迟,对较慢的连接尤其如此。顺序流式文件放 在标准h t t p 或f t p 服务器上,易于管理,基本上与防火墙无关。渐进式流式传输 不适合长片段和有随机访问要求的视频,如讲座、演说与演示等,它也不支持现场 广播。实时流式传输则需要专用的流媒体服务器与传输协议。实时流式传输总是实 时传送,特别适合现场事件,也支持随机访问,可快进或后退以观看前面或后面的 内容。理论上,实时流一经播放就可不停止,但实际上,可能发生周期性暂停。实 时流式传输必须匹配连接带宽,以调制解调器速度连接时图像质量较差。而且,由 于出错丢失的信息被忽略掉,网络拥挤或出现问题时,视频质量很差。如欲保证视 频质量,渐进式流式传输也许更好。实时流式传输需要特定服务器,如q u i c k t i m e s t r e a m i n gs e r v e r 、r e a l s e r v e r 与w i n d o w sm e d i as e r v e r 。这些服务器允许对媒 体发送进行多级别的控制,因而系统设置、管理比标准h t t p 服务器更复杂。 2 1 2 流媒体技术原理 准确地说,流媒体是指在互联网上以数据流的方式实时发布声音、视频多媒体 内容的媒体,而流媒体技术则是用于在i p 网络上发布多媒体数据流的技术,它与 传统媒体文件播放技术的区别在于: 1 传统的播放技术是由客户端从服务器下载完整的文件,然后进行播放。 2 流媒体技术则采用了流式传输方式,将整个多媒体文件压缩解析成多个压缩数 据包,服务器实时地顺序传送。所以用户无须等待整个文件下载完毕,便可以一边 解压播放前面传送过来的压缩包,一边下载后续的压缩包,从而节省了用户的时间。 我们知道,流式传输这些功能的实现需要缓存技术的支持。因为i n t e r n e t 是 以包传输为基础进行断续的异步传输,所以一个实时a v o ”源或存储的a v 文件 在传输中要被分解为许多包( p a c k e t ) 。由于网络是动态变化的,各个包选择的路 由可能不尽相同,故到达客户端的时间延迟也就不等,甚至先发的数据包还有可能 后到。为此,使用缓存系统来减少延迟和抖动的影响,并保证数据包的顺序正确, 从而使媒体数据能连续输出,而不会因为网络暂时拥塞使播放出现停顿。通常高速 缓存所需容量并不大,因为高速缓存使用环形链表结构来存储数据:通过丢弃已经 播放的内容,流可以重新利用空出的高速缓存空间来缓存后续尚未播放的内容。 一般来讲,由于t c p 是面向连接的传输协议,不适合大量的数据传输,故流式 传输方案采用u d p 来传输实时媒体数据,而用t c p 来传输控制信息。其过程一般是 5 这样的:用户选择某一流媒体服务器,然后视频服务器与客户端之间用t c p 交换控 制信息,以便把需要传输的实时数据从原始信息中检索出来;然后客户机上的w e b 浏览器启动a vh e l p e r 程序,使用h t t p 从w e b 服务器检索相关参数对h e l p e r 程序初始化。这些参数可能是目录信息、a v 数据的编码类型或与a v 检索相关 的服务器地址。a vh e l p e r 程序及a v 服务器运行实时流控制协议( r t s ”6 1 ) , 以交换a v 传输所需的控制信息。r t s p 提供了操纵播放、快进、快倒、暂停及录 制等命令的方法。a v 服务器使用r t p u d p 协议将a v 数据传输给a v 客户程 序,一旦客户端收到即可播放输出。 2 2i p 组播技术 2 2 1 组播 i p 组播是网络多媒体研究领域的热点技术。视频会议系统、v o d 系统、可视电 话系统等一系统应用使音频、视频等流媒体逐渐成为网络传输的主流数据;传统的 媒体,例如广播、电视等也迅速完成其数字化过程。数字化媒体的传输,或称流媒 体传输,对网络协议提出一些新的要求,组播技术在这种背景下提出,用以解决流 媒体的多路传输问题o “。 1 组播组地址 图2 1 显示了d 类i p 地址的格式。 2 8 萎囡丑工二二二二至墅 二二二二二 图2 一ld 类i p 地址格式 不像其他三类i p 地址( a 、b 和c ) ,d 类i p 地址分配的2 8 b i t 均用作组播组号而不 再表示其他。 组播组地址包括为1 1 1 0 的最高4b i t 和组播组号。它们通常可表示为点分十进 制数,范围从2 2 4 o o 0 到2 3 9 2 5 5 2 5 5 2 5 5 “。 能够接收发往一个特定组播组地址数据的主机集合称为主机组( h o s tg r o u p ) 。 一个主机组可跨越多个网络。主机组中成员可随时加入或离开主机组。主机组中对 主机的数量没有限制,同时不属于某一主机组的主机可以向该组发送信息。 6 硕士学位论文 m a s t e r st h e s i s 一些组播组地址被互联网号分配机构( i n t e r n e ta s s i g n e dn u m b e r sa u t h o r i t y , i a n a ) 确定为知名地址。它们也被当作永久主机组,这和t c p 及u d p 中的熟知端口相 似。同样,这些知名组播地址在r f c ( r e q u e s tf o rc o m e n t s ) 最新分配数字中列 出。注意这些组播地址所代表的组是永久组,而它们的组成员却不是永久的。 例如,2 2 4 o 0 1 代表“该子网内的所有系统组”,2 2 4 0 o 2 代表“该予网内 的所有路由器组”。组播地址2 2 4 o 1 1 用作网络时间协议n t p ,2 2 4 0 1 2 用作s g i 公司的d o g f i g h t 应用。 2 组播组地址到以太网地址的转换 i a n a 拥有一个以太网地址块,即高位2 4b i t 为0 0 :o o :5 e ( 十六进制表示) ,这 意味着该地址块所拥有的地址范围从o o :o o :5 e :0 0 :o o :0 0 到o o :o o :5 e :f f :f f :f f 。 i a n a 将其中的一半分配为组播地址。为了指明一个组播地址,任何一个以太网地址 的首字节必须是0 1 ,这意味着与i p 组播相对应的以太网地址范围从 0 1 :0 0 :5 e :0 0 :0 0 :0 0 到0 1 :0 0 :5 e :7 f :f f :f f 。 这种地址分配将使以太网组播地址中的2 3 b i t 与i p 组播组号对应起来,通过将 组播组号中的低位2 3 b i t 映射到以太网地址中的低位2 3 b i t 实现,这个过程如图2 2 所示。 由于组播组号中的最高5 b i t 在映射过程中被忽略,因此每个以太网组播地址对 应的组播组是不唯一的。3 2 个不同的组播组号被映射为一个以太网地址。例如,组 播地址2 2 4 1 2 8 6 4 3 2 ( 十六进制e 0 8 0 4 0 2 0 ) 和2 2 4 o 6 4 3 2 ( 十六进制 e 0 0 0 4 0 2 0 ) 都映射为同一以太网地址o l :0 0 :5 e :o o :4 0 :2 0 。 既然地址映射是不唯一的,那么设备驱动程序或i p 层就必须对数据报进行过滤。 因为网卡可能接收到主机不想接收的组播数据帧。另外,如果网卡不提供足够的组 播数据帧过滤功能,设备驱动程序就必须接收所有组播数据帧,然后对它们进行过 滤。 上慧黼懒删 口 : ,:鹅蟮嚣瓣撒 张龇臣强= 卫= = j = = = e 盈 i 囊翻斟雌巾辑懒船猕麓i 剖l r 菇赢翔弱f 1 稿慌黻箍墟 图2 2d 类i p 地址到以太网组播地址的映射 硕士学住论文 m a s t e r st h e s i s 2 2 2l p 组播的技术规范 组播技术创始人s t e v ee d e e r i n g 定义组播为:“将i p 数据包发送到共享相同 i p 地址的一个主机组中,该主机组的成员数目可为零个或多个。组播数据包的传输 可靠性与i p 单播相同。主机组成员是动态的,任何主机可以在任何时候加入或退 出某个主机组,主机组对其成员没有位置和数量的限制,且一台主机可同时是多个 组播组的成员”。 i p 组播作为i p 协议的扩展,也要支持上层协议。组播被绑定到u d p 中,其使 用与传统u d p 传输兼容。组播发送方首先创建s o c k e t 并绑定本地地址,被绑定地 址不一定是d 类地址,协议不作强制要求;其次,发送方设定t t l ”1 ( t i m et ol i v e ) 和l o o p b a c k 参数以约束和配置组播数据的发送;最后发送方向某个d 类地址发送 组播数据。组播接收方首先加入某个组播地址,即绑定一个d 类地址( 虽然接收方 网卡设备本身有一个i p 地址,但是这并不妨碍绑定d 类地址,协议甚至不限制在 一块网卡上绑定多个d 类地址,甚至允许d 类地址相同,只要其端口号不同即可) , 在接收方绑定d 类地址之后,开始接收数据。 t t l 和l o o p b a c k 参数是i p 组播的两个很重要的参数。1 u r l 参数反映组播数据 包跨越网络路由器的能力。广播类型数据容易引发“数据风暴”。“,因此路由设备 禁止广播数据跨越子网;而组播数据包含目的地址,因此可跨越路由,t t l 表示组 播数据能够跨越路自器的个数。如果设置t t l = l ,那么组播数据仅能在发送主机所在 子网段内传输;t t l = 2 表示组播数据能跨越一层路由器而不能跨越第2 层路由器。 路由器每接收到一个组播数据包,就将包内t t l 值减l ,直到t t l 值为0 。设置t t l 可以限制组播数据包的传递距离,以节约网络带宽。l o o p b a c k 参数则决定组播数据 是否回传到发送主机。 在l a n 环境下,使用组播协议仅需主机网络支持协议。目前,1 | i n d o w s 操作系 统内包含对w i n d o w ss o c k e t 2 o 标准的支持,因此也支持组播协议。对于w a n 环境, 则要求网络设备,特别是路由器支持组播协议。传统网络设备对组播不提供支持, 目前的解决方案是更换硬件设备或以软件模拟的隧道技术来实现组播。 2 2 3i p 组播的应用编程 r f c l l l 2 推荐了些支持组播的应用程序接口: 加入一个组播组; 离开一个组播组; 为调整范围对一个组播数据的i pt t l 值进行设定; 为组播传输和接收设定本地的接口; 禁止输出的组播数据回送。 现在,许多t c p i p 实现都支持r f c l l l 2 所提到的要求,下面简要介绍u n i x ( b e r k e l e ys o c k e t ) 和w i n d o w s ( w i n s o c k ) 应用程序编程接口( a p p l i c a t i o np r o g r a i i l i n t e r f a c e ,a p i ) 。 1 b e r k e l e ys o c k e t 组播a p i 所有b e r k e l e ys o c k e ta p i 都采用s e t s o c k o p t ( ) 的“套接字选项”功能来 设置( 对于某些选项,g e t s o c k o p t ( ) 功能可用来获得当前的设置) 。表2 1 描述了 b e r k e l e yb s d 的s e t s o c k o p t ( ) g e t s o c k o p t ( ) 组播命令。 表2 1b s ds e t s o c k o p t ( ) g e t s o c k o p t ( ) 组播命令的说明 i s i 鳓戮缫鞘孵灏囔鬻鞲狳惫黪 。誓冀。= i 看撼瀵甥鏊l 藏囊鬈j 。jj ”i 誊 i pm u c a s t1 t n 设置输出组播数据的盯l 值 i pm u l n c a s tl o o p禁止组播数据回送 i pm u c a s ti f 获得默认接口或设置接u j pa d dm e m b e r s h i p 在指定接口上加入组播组 j pd r o pm 卫m b e r s h i p 退出组播组( 在j g m p v 2 中实现) 对于套接字编程,首先要使用函数s o c k e t ( ) 建立一个数据包套接字,然后用 b i n d ( ) 函数将套接字与一个地址和端口号连接起来。 为了发送一个组播数据包,需要在s e n d t o ( ) 调用中指定一个组播地址作为目 的地址( 所有i p 地址都使用网络字节序) 。 为了接收一个组播数据包,需要在r e c v f r o m ( ) 调用中指定所要接收的组播地 址。 i p _ m u l t i c a s t j t l 允许将随后的组播数据的t t l 设定成从0 2 5 5 之间的任何 值。 i p _ m u l t i c a s t - l 0 0 p 网络参数控制i p 层是否回送所发送的数据例如: u c h a r1 0 0 p ; s e t s o c k o p t ( s o c k ,i p p r o t 0 一i p ,i p m u l t i c a s t l 0 0 p ,l o o p ,s i z e o f ( 1 0 0 p ) ) 。若 将1 0 0 p 值设置为o ,则禁止回送,设置为1 则允许回送。 9 硕士学位论文 m a s t e r st h e s i s 为了能够接收i p 组播数据,主机必须加入某个或多个组播组,程序通过使用 i p _ a d d _ m e m b e r s h i p 网络接口参数向主机提出加入组播组的申请。例如: s t r u c ti p j i l r e q s t r u c ti n _ a d d ri 帅u l t i a d 打:ai p 组播组地址木 s t r u c ti n a d d ri i i l r j n t e r f a c e : a 本地接口的i p 地址 ) m r e q : s e t s o c k o p t ( s o c k ,i p p r o t o i p ,i p a d d m e m b e r s h i p ,m r e q ,s i z e o f ( s r e q ) ) : 其中眦e q 包含了在i p _ a d d _ m e m b e r s h i p 命令中相同的值 2 w i n d o 可ss o c k e t 组播a p i 基于w i n s o c k l 1 的组播编程与b e r k e l e ys o c k e t 类似,这里不再赘述w i n s o c k 2 是w i n s o c k l 1 的扩展,除兼容b e r k e l e ys o c k e t 组播a p i 以外,还定义了一套支持 i p 组播的协议独立a p i ,见下表2 2 表2 2w i n s o c k2 的协议独立组播a p i 说明 在w i n s o c k2 中,定义了“数据平面”( d a t ap l a n e ) 和“控制平面”( c o n t r 0 1 p l a n e ) 的概念,其中,数据平面决定在不同的网络成员之间数据如何传送;控制平 面决定网络成员的组织方式;这两个方面的特征既可以是“有根的”( r o o t e d ) ,也 可以是“无根的”( n o n r o o t e d ) 。在“有根的”的控制平面内,存在一个特殊的组 播成员,称作c _ r o o t ( 根节点) ,其余的组成员称作c _ l e a f ( 叶节点“7 3 ) 。对无根 的”控制平面而言,只存在叶节点。 在“有根的”平面中,根节点负责组播的建立以及同任意数量叶节点的连接。 叶节点可申请加入一个特定的组播组。数据传送只能在根结点和叶节点之间进行, 根节点将数据组播到每一个叶节点上。 在“无根的”平面中,只存在叶节点,他们可以任意加入一个组播组。从叶节 点发送的数据会组播到每一个叶节点上。 组播技术针对流媒体传输而设计,流媒体的典型特征是“1 : 1 0 顽士学位论文 m a s t e r st h e s i s 海量数据。典型m p e g 一1 媒体流占用1 5 m b p s 的网络带宽。 时间敏感性。媒体数据均含有时间信息,网络延迟将影响某些对时间特别 敏感的数据;因网络故障而丢失的数据也因超时而失去了重传的必要。 一定的容错性。除了少数用于精确分析,大多数媒体应用都允许一定的数 据错误。人的主观感受是评价媒体传输质量的主要依据,音频和视频中的 一些错误在主观感受中并不敏感。例如,偶然丢失视频帧或音频帧片断, 几乎不影响媒体数据的播放质量。媒体数据的容错特性,保证网络媒体传 输容忍一定的错误。 共享类型数据应用较多。在多媒体会议系统中,相同媒体数据需要传输到 不同的终端;v o d 系统的视频广播也要求不同用户共享数据。 组播属于无连接协议,其传输速度和效率远高于面向连接的t c p 协议,因此他 具有良好的网络利用率;由于没有采用差错重传的机制,组播有利于保障数据的时 间特性;虽然因其无连接的机制而导致可能的网络差错,但这对媒体传输无大碍, 共享网络带宽则是组播的基本特性。因此,组播成为流媒体传输的基本平台。 2 3 t c p l p 端口号及协议 2 3 1 端口号 当一个客户想要跟一个服务器接触时,它必须标识将与之通信的这个服务器。 t c p 和u d p 定义了一组众所周知的端口( w e l l k n o wp o r t ) ,用于标识众所周知的 服务。例如,对于每个t c p i p 实现来说,f t p 服务器的t c p 端口号都是2 1 ,每个t e l n e t 服务器的t c p 端口号都是2 3 。分配给简单文件传送协议( t r i v i a lf 订et r a n s f e r p r o t o c 0 1 ,简称t f t p ) 的u d p 端口号则是6 9 。 另一方面,客户通常使用短期存活的临时端口号( e p h e e r a lp o r t ) 。这些端 口号通常由传输层协议自动赋予客户。客户一般不关心其临时端口的具体值,而只 需确信它所在主机中是唯一的就行。传输层协议的代码确保这种唯一性。大多数 t c p i p 实现给临时端口分配1 0 2 4 5 0 0 0 之间的端口号。大于5 0 0 0 的端口号是为其 他服务器预留的( i n t e r n e t 上并不常用的服务) 。 套接口对 一个t c p 连接的套接口对( s o c k e tp a i r ) 是个定义该连接的两个端点的四 硕士学位论文 m a s t e r st h e s i s 元组:本地i p 地址、本地t c p 端口号、远端i p 地址、远端t c p 端口号。套接口对 唯一标识一个互联网上所有t c p 连接。套接口的概念同样可以扩充到u d p 。 标识每个端点的两个值( i p 地址和端口号) 通常称为个套接口。 2 3 2i p 协议 i p 协议是一个简单的无连接服务,它不能提供重发功能,允许两台主机之间交 换通信数据而无须先进行呼叫建立。i p 数据报协议非常简单,它没有可靠性机制, 不具备底层网络进行差错恢复的功能,也没有流量控制机制。因此,必须依靠一个 上层协议( 如t c p ) 来保证数据传输的可靠性。 t c p i p 协议是为包含多种物理网技术而设计的,而这种包容性主要体现在i p 层当中。我们知道,各种网络技术的帧格式、地址格式等上层协议的差别很大,设 置i p 层的重要思想之一就是通过i p 数据报和i p 地址将它们统一起来,达到屏蔽 底层细节提供一致性向上接口的目的。i p 协议向上层( t c p 、u d p 等) 提供统一的 i p 数据报,使得下层网络对上层协议透明。 2 3 3t c p 协议 t c p 协议是为下层i p 层无连接的通信提供可靠性的服务。t c p 是一个面向连接 的传输层协议,它的主要工作是:连接管理、流量控制和崩溃恢复等。其中连接管 理要解决的主要问题是由于确认和超时重传机制造成的延时和重复,传输层( t c p ) 用到了报文生存时间和三次握手等机制。流程则采用滑动窗口机制。崩溃恢复的主 要工作是恢复崩溃前的连接状态,为此主机需向其它主机广播一个查询报文。t c p 协议的另一项工作是提供复用( 进程问通信) 手段,它利用端口来控制传输端口。 为了要保证可靠性,t c p 协议相当复杂。 t c p 协议采用的最基本的可靠性技术是:确认与超时重传、流量控制和拥塞控 制。 2 3 4u d p 协议 u d p 是一个简单的面向数据报的传输层协议。它不提供可靠性,u d p 把应用程 序传给i p 层的数据发送出去,但是并不保证它们能达到目的地。然而正是因为无 需对方返回接收确认( a c k ) ,才使得u d p 具有更高的效率。对于传输大量的音视频 顾士学住论文 m a s t e r st h e s l s 数据来说,u d p 无疑是最佳选择。u d p 进程的每个输出操作都正好产生一个u d p 数 据报,并组装成一份待发送的i p 数据报。这与面向流字符的协议不同,如上面的 t c p ,应用程序产生的全体数据与真正发送的单个i p 数据报可能没什么联系。u d p 数据报封装成一份i p 数据报的格式如图2 3 所示。 卜一u d p

温馨提示

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

评论

0/150

提交评论