




已阅读5页,还剩56页未读, 继续免费阅读
(计算机系统结构专业论文)实时直播系统的设计及实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
诵璺 随着i n t e r a c t 的高速发展和多媒体通讯时代的到来,结合计算机网络和多 媒体技术的视频会议、实时直播等业务也得到了迅猛的发展。他们都具有较高的 实际应用价值和非常广阔的发展前景。但是,由干现在的i n t e r n e t 上延迟和丢 包现象随时在变化,对子视频流传输的影响非常大。因此,设计一个能使网络资 源得到最有效地利用,并尽量地满足用户的0 0 s 的多媒体实时直播系统,显得很 有挑战性了。 本文提出了一个利用组播协议的实时直播系统的设计及其实现。在i p 组播条 件下,利用用r t p r t c p 协议传输数据并利用反馈信息,计算包丢失率,并利用 计算结果,动态调整码率,以适应网络带宽的变化。通过实验,证明了系统有相 当好的网络适应性,并取得较好的效果。 系统具有视音频的采集、压缩、网络传输、解压、存储、远程播放等功能。 这些功能都采用软件的方法实现,功能强大,采用先进的视频压缩标准m p e g 4 对视频进行编码解码。在硬件方面只作很少的投资,因此,成本低,易于升级。 关键词:实时传输与控制协议,组播,m p e g 4 砷辩l - 刊啄懿j a b s t r a c t w i t ht h eh i 曲d e v e l o p m e n to fi n t e r a c ta n dt h ee m e r m i n go fm u l t i m e d i a c o m m u n i c a t i o ne r a ,t h ev i d e oc o r k f e r e n c ea n dr e a l - t i m eb r o a d c a s ts y s t e m ,w h i c hi s c o m b i n a t i o no fc o m p u t e rn e t w o r ka n dm u l t i m e d i at e c h n o l o g yi su s e dm o r ea n dm o r e w i d e l y h o w e v e rd e l a ya n dl o s si nt h ec u r r e n ti n t e m e ta r ed r a s t i c a l l yv a r y i n gf r o m l i m et ot i m e ,w h i c hi sv e r yd e t r i m e n t a lt ov i d e os t r e a m i n g s oi tp o s e san u m b e ro f c h a l l e n g e st h a td e s i g na ne f f i c i e n tm u l t i m e d i ar e a l t i m eb r o a d c a s ts y s t e mt h a tc a r l a c h i e v eh i g hr e s o u r c eu t i l i z a t i o ni nt h ei n t e r a c tw h i l em a x i m i z i n gu s e r sp e r c e i v e d q u a l i t yo fs e r v i c e ( q o s ) , t h i sp a p e rg i v et h ed e s i g na n di m p l e m e n to fr e a l t i m eb r o a d c a s ts y s t e m u n d e r r t p r t c pp r o t o c o la n da p p l y i n gi pm u l t i e a s tt e c h n o l o g y ,t h es y s t e md e l i v e r r e a l t i m ev i d e os t r e a m i n g b a s e do nt h ef e e d b a c ki n f o r m a t i o nf r o mt h er e c e i v e r r e p o t s ,t h es e n d i n ga p p l i c a t i o nc o m p u t ep a c k e tl o s sa n dg e tt h ec o n g e s t i o ns t a t eo f t h er e c e i v e rw h i c hi s a p p l i e dt oa d j u s t t h er a t eo fv i d e os t r e a m i n g t h r o u g h e x p e r i m e n t ,t h er e s u l ti n d i c a t e si t sp e r f o r m a n c ei ss a t i s f y i n g t h e s y s t e mc o m p r i s e sf u n c t i o n so fv i d e o - a u d i od a t ac o l l e c t i n g ,c o d i n g ,n e t w o k t r a n s m i s s i o n ,d e c o d i n g ,r e m o t ep l a y b a c k a sm o s to f t h ef u n c t i o n sa r ea r c h i v e d b ys o f t w a r e ,t h es y s t e mc o s t sl o wi nh a r d w a r ei n v e s t m e n ta n dc a l lb ei n c r e a s e de a s i l y o nv i d e oc o d i n ga n dd e c o d i n g ,w eu s em p e g 4t h a ti st h eb e s tv i d e oc o m p r e s s i o n s t a n d a r d k e yw o r d s :r t p r t c em u l i t i c a s t ,m p e g 4 i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 i i i i :o 千年3 月日 ( 。 i 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此觌定) 繇邀聊繇啦 电子科技大学硕士论文 第一章引言 1 多媒体通信发展的趋势 2 0 世纪9 0 年代初,计算机应用由单一媒体向多媒体发展,伴随计算机应用 的不断向深度和广度发展,人们对信息的获取、处理和交流的需求越来越多。随 着多媒体通信的发展非常迅速,以视频实时直播,视频会议、可视电话、视频点 播等为代表的多媒体通信产品大量涌现,进入到社会生活的方方面面。 多媒体通信作为一种新型的通信业务是一种群体通信业务,目前大致可以分 为交互型业务和分配型业务两类。其特点是:业务多样性、一对多服务、以视频 交互业务为核心和跨网络的可操作性。 2 多媒体通信的特点 ( 1 ) 多媒体数据量大 多媒体通信传输不仅是文本,而是声、文、图,像一体化的多媒体信息。多 媒体通信的最大特点就是信息量比较大,特别是音频、视频数据,即使是使用了 压缩技术后,其数据量还是相当大。 ( 2 ) 实时性强,但允许一定的传输错误和丢失 多媒体数据中的音频、视频数据是对时间敏感的连续数据,这些信息只有在 它特定的时间范围才有效。否则不仅无法接受,且会引起误解。因此,这些信息 的传输,必须保证在一定的时间内,传输一定的特定的数据。 ( 3 ) 媒体间要严格同步 由于视频、音频数据是一种连续性和时间相关的媒体数据,不仅要求实时性, 而且各媒体要求稳定的同步关系。某一个媒体不能连续就失去了整个每的自然 性。如果视频、音频不同步,送到用户就毫无意义。因此,在传输过程中,各媒 体阳j 要求有严格的同步关系。 本文中实现的实时直播系统属于典型的多媒体通信业务。但是由于前面所述 的由于多媒体数据通常占用带宽很大,而且码流速率通常变化很大,因此在高效 的传输音频、视频码流方面,遇到了很大的挑战。由于现有的计算机网络对其业 务并不提供服务质量( q o s ) f f q 保证,本系统采用利用反馈信息调整服务端发送速 率,使其使用网络带宽的变化,并且在视频数据压缩方面采用m p e g 4 压缩,该 压缩方式效率相当高。 电子科技大学硕士论文 2 1 系统结构 第二章系统结构及相关协议 如下图所示,从视频源采集来的数据被送入m p e g 4 编码器,编码器根据码率 控制算法选择适合的码率进行编码,编码后的数据经过r t p 打包,通过网络采用 组播协议发给各个接收端,接受端收到数据后,利用r t c p 协议反馈给发送端相 关的信息,发送端分析接受到的相关反馈信息,采用一定的算法,作出码率调整 决定,以适应网络拥塞状况的变化。同样采集的音频数据也是编码后,通过组播 发送出去,客户端接收后重放。 2 2i p 组播技术 图2 1 系统结构图 2 2 1i p 组播技术产生的背景 2 2 1 1 互联网的起源 i n t e r n e t 是全世界最大的计算机网络,许多人认为它起源于美国国防部高级 研究计划局1 9 6 8 年主持研制的用于支持军事研究的计算机实验网a r p n e t 。 a r p n e t 是一个试验性的计算机网,用于军事目的,其设计要求是支持军事活 动,特别是研究如何建立网络才能经受如核战争那样的破坏或其他灾难性破坏, 当网络的一部分( 某个主机或部分通讯线路) 损坏时,整个网绍仍然能够照常工 电子科技人学硕士论文 作。 实际上,互连网的真正发展从n s f n e t 的建立开始。n s f n e t 曾试图用m m t 作为通讯干线,但这个决策没有取得成功,因为m m t 用于军事目的,并且受控 于政府。2 0 世纪8 0 年代是网络技术取得巨大进展的年代,不仅大量涌现出诸如 以太网电缆和工作站组成的局域网,而且奠定了建立大规模广域网的技术基础。 正是在这时提出了发展n s m t 的计划。1 9 8 8 年底,n s f 把在美国建立的五大超 级计算机中心用的通讯干线连结起来,组成全美国科学技术网n s f n e t ,并以此 作为互联网的基础,实现同其他网络的联结。今天,n s a n e t 链接了全美国数 百万台计算机,拥有数千万用户,它是互联网的最主要的成员网络。采用互联网 的名称是在m i l n e t 和n s f n e t 链接后开始的,以后美国政府其他部门的计算 机网页相续并入互联网。 2 2 1 2 互联网的发展 互联网之所以在本世纪8 0 年代产生并迅速得到发展和壮大,主要有以下几 大主要原因: ( 1 ) 计算机网络通讯技术、网络互连技术和信息工程技术的发展奠定了必要的技 术基础。 ( 2 ) 促进能源共享作为普遍的用户需求,成为一股强大的驱动力量。 ( 3 ) 互联网载起建立和发展过程中始终坚持非常开放的策略,对开发者和用户都 不施加不必要的限制。 ( 4 1 商业潜力巨大:a 电子邮件:电子邮件的优势是能够实现一对多的信息传递; b 与专家和科研人员的网上交流与合作:通过电子布告板提出问题听取专家学者 和用户各方面的建议;c 了解商业机会和发展趋势:更多的公司通过i n t e m e t 收 集、调研和销售与商贸活动有关的信息;d 远距离数据检索:查询各种商业性和 专业数据库等。 2 2 1 3 t o p i p 体系结构 计算机网络是由许多计算机组成的,要实现网络的计算机之间传输数据,必 须要作两件事,数据传输目的地址和保证数据迅速可靠传输的措施,这是因为数 据在传输过程中很容易丢失或传错,i n t e m e t 使用一种专门的计算机语言( 协议) , 以保证数据安全、可靠地到达指定的目的地,这种语言分两部分:t c p ( t r a n s m i s s i o nc o n t r o lp r o t o c o l 传输控制协议) 和i p ( i n t e m e tp r o t o c 0 1 ) 网 间协议。 t c p i p 这个术语并不仅指网际协议( i p ) 和传输控制协议( t c p ) ,它包括许 电子科技大学硕士论文 多与之相关的协议和应用程序,是一个协议族。除了i p 和t c p 外,t c p i p 较低 层的协议还有地址解析协议( a r p ) 、反向地址解析协议( r a r p ) 、差错与控制协 议( i c m p ) 、路由协议、用户数据报协议( u d p ) ;t c p i p 应用层的协议有文件 传输协议( f t p 、远程登录协议( t e l n e t ) 简单邮件传输协议( t f t p ) 、简单网 络管理协仪( s n m p ) 等。 t c p i p 协议已有二十多年的实践经验,以t c p i p 为网络协议建立起来的 i n t e r n e t 发展又非常迅猛,二者之间已形成良性发展循环,几乎所有网络公司的 产品都支持t c p i p 。 2 2 1 4t o p l p 体系中t c p 协议与u o p 协议的对比 t c p i p 协议所采用的通信方式是分组交换方式。所谓分组交换,简单既就 是数据在传输时分成若干段,每个数据段称为一个数据包。数据包是t c p i p 协议的基本传输单位。t c p i p 协议的两个主要的协议,即t c p 协议和i p 协议, 可以联合使用,也可以与其他协议联合使用,它们在数据传输过程中主要完成以 下功能: ( 1 ) 首先由t c p 协议把数据分成若干数据包,给每个数据包写上序号,以便接收 端把数据还原成原来的格式。 ( 2 ) i p 协议给每个数据包写上发送主机和接收主机的地址,一旦写上的源地址和 目的地址,数据包就可以在物理网上传送数据了。i p 协议还具有利用路由算法 进行路由选择的功能。 这些数据包可以通过不同的传输途径( 路由) 进行传输,由于路径不同,加 上其它的原因,可能出现顺序颠倒、数据丢失、数据失真甚至重复的现象。这些 问题都t c p 协议来处理,它具有检查和处理错误的功能,必要时还可以请求发 送端重发。简言之,i p 协议负责数据的传输,而t c p 协议负责数据的可靠传输。 而对应的u d p 则不能保证可靠传输。 为了保证t c p 可靠地提服务,t c p 协议在内部做了大量工作,来解决通信中 的不可靠问题,实现的方法比较复杂,在协议内部提供了确认和超时重传机制, 并引进三次握手机制来建立连接与撤消连接,t c p 以效率为代价获得了可靠性, 也就是说,为了传输的可靠性,其效率是比较低。 用户数据报协议u d p 协议是对i p 组的扩充,同样是建立在i p 协议之上, 同i p 协议一样提供无连接数据报传输。相对于i p 协议,它唯一增加的能力是提 供协议端口,以保证进程通信。由于u d p 是无连接通信,因而没有连接的建立 和拆除的开销,而且没有差错校验,流量控制等开销,所以u d p 的效率是最高 的。u d p 数据报是不可靠的,它几乎直接建立在i p 协议上,由于i p 协议的个 电子科技大学硕士论文 准则是“尽力传输”,因此,u d p 具有高效率,传输快,连接建立时间短的优点, 适合于实时通信,如视频会议、网上直播等多媒体通信业务。但基于u d p 的应 用程序在不可靠的网络上必须自己解决可靠性问题比如报文丢夫、重复、失序和 流量控制等) 。由干很多未来的通信业务需要组播( m u l t i c a s t ) 和广播( b r o a d c a s t ) 支持,而这两种技术在i n t e m e t 上只有u d p 才能提供支持,因此可以预料基u d p 协议的应用将越来越多,而基于u d p 协议的相关协议也会逐渐成熟。 本系统中,声音数据、视频数据、质量反馈信息都是用u d p 协议传输的。 2 2 2i p 组播技术介绍 2 2 2 1 l p 组播技术概述 i p 组播( m u l t i c a s t ) 技术是基于t c p i p 体系结构上的,它并非新技术,它 在i e t f 的r f c l l l 2 中提出,但由于一些关键技术,如路由算法和操作系统等未 能很好地支持,使得i pm u l t i c a s t 技术不能应用到实践中去。近年来,带宽与时 延敏感、数据量大的多媒体应用之间的矛盾日益突出,越来越多的应用系统需要 高效的组播技术支持。自从1 9 9 2 年i e t f 第一次建立组播主干网。( m u l t i c a s t b o n e ) ,且利用它成功地举行了一次网络会议以来,组播技术得到了重视并取得 了很大的发展。目前,i p 组播技术走向成熟,c i s c o 、3 c o m 和l u c e n t 等网络设 备公司提供的路由器和交换机都支持i p m u l t i c a s t ,这为以i p 组播为平台的多媒 体传输提供了基础网络条件。 一般说来,组播使用一种网络硬件技术,它保留了大量的用于组播的地址。 当一组机器要通信时,它们选择了一个特殊的组播地址( m u l t i c a s ta d d r e s s ) 用于 通信。在配置好网络接口硬件后,就能识别该组播地址,而组中所有的机器就会 收到该组播地址上的每个分组的拷贝。假如网络硬件不直接支持组播地址,只好 利用广播方式( 硬件广播或i p 广播) 将数据报传到所有的机器上,然后由各机 器的i p 层去识别数据报是否应当接收,当然,这种作法引起的开销更大。 i p 组播允许将i p 数据报传输到一个构成了组播组( m u l f i e a s tg r o u p ) 的主机集 合。组的各个成员可能分布于各个独立的物理网络上。i p 组播组中成员的关系 是动态的。主机可能在任何时候加人或退出组。此外。主机可以是任意多个组的 成员。组的成员关系决定了主机是否接收送给该组的组播数据报,不是某个组的 成员的主机也能向该组发送组播数据报。 每个组播组拥有唯一的组播地址( d 类地址) 。与协议端口一样,一部分i p 组播地址也是由i n t e m e t 管理机构分配的。其它的组播地址作为暂时地址被用户 使用,需要时可被创建,而在组员数为零时被撤销。 电子科技大学硕士论文 i p 组播可用于单个物理网络,也可用于互连网络。在后一种情况下,由组播路 由器( m u l l i c a s tr o u t e r ) 负责向前转发组播数据报。组播数据报中的寿命字段 ( t t l ) 限制了它在路由器上的传输,就像单播数据报中的寿命字段限制了它的 传输。 2 2 2 2 组播编址 在组播技术中,使用点分十进制表示法来描述组播地址的范围是2 2 4 0 0 0 到2 3 9 2 5 5 2 5 5 2 5 5 。但是地址2 2 4 0 0 0 是保留的,它不能彼赋给任何组,而 2 2 4 0 0 1 也是永久性地赋给了全主机组,它包括了参与该i p 组播的所有主机和 路由器的集合。应用程序只需要在其范围内选定一个地址就可以实现组播应用, 如本系统选用了2 2 4 1r 23 作为它的组播地址。 i p 组播地址仅能用作目的地址,它们决不能出现在某个数据报的源地址字段, 也不能出现在源路由器和路由记录选项中。此外,不能针对组播数据报生成i c m p 差错报文( 例如,目的站不可到达,源站抑制、回送应答或超时等。在支持组播 的物理网络上,需要用a r p 协议把d 类地址映射成物理地址。例如,要把i p 组播地址映射成为相应的以太网组播地址,只需将l p 组播地址的低位2 3 比特放 到指定的以太网组播地址的低比特上。 2 2 2 3 t t l ( t i m e t ok i v e ) 对札l t i c a s t 范围的影响 每个i pm u l t i c a s t 包使用i p 头中的t t l 域指定组播范围,它决定了 m u l t i c a s t 包能够经过多少跳( h o p ) ,每经过个路由器,t t l 值减1 ,当减到 0 时,此m u l t i c a s t 包被抛弃,但是不产生任何错误通知,这一点与普通i p 协议 不一样,普通i p 包彼丢弃后会产生i c m p 错误报文。同子网中的m u l t i c a s t 能 够立即到达所有组员,所以t t l = 1 ,如果t t l 1 ,与该子网相连的路由器负 责传递此包,t t l 的限制有效地阻止了m u l t i c a s t 数据包传递到指定区域( 企业 或园区) 以外,也防止在网上无止境地传送。 2 2 2 4i n t e r n e t 组管理协议( 1 g m p ) 从远端来的m u l t i c a s t 数据包必须依赖路由器进行中转,并且传递到一定的 子网,即该子网上有属于m u l t i c a s t 组的接收者。路由器使用i g m p 协议获取与 之直接相连的子网上是否存在m u l t i c a s t 组成员,路由器通过发送i g m p 询问和 接收主机报告来获悉组成员关系。i g m p 协议定义在r f c i l l 2 中。i g m p 的实现 与i c m p 类似,都是封装在i p 数据报中。1 g m p 报文分两种,一种是i g m p 查询 报文( 类型为“l ”) ,由路由器发出;一种是1 g m p 响应报文( 类型为“2 ”) , 由参加组播的主机发出。两种报文格式相同,只是前者的“组地址”域取值为0 。 电子科技大学硕士论文 为了判断一个子网内是否有主机属干某个m u l t i c a s t 组,路由器定期发送i g m p 成员关系询问,这个询问发往2 2 4 0 0 1 ,即子网上的所有组,t t l = l 。每个主 机收到询问后需要回答一个i g m p 成员关系报告,这个报告的目的地址是该主机 所在的本组地址,所以同组的其他成员都可以看到这个报告,从而不用发送相同 的报告。为避兔各同组主机同时响应,一般随机等待一个时问,若在这段时间内 收到了同组的其他成员发送了报告,那么他就不再发送。这种处理方法节省了不 必耍的开销。 当一台主机的进程请求加入某个m u l f i c a s t 组时,驱动程序就创建一个i o m p 组成员报告,报告中包含进程所要求加入的m u l t i c a s t 地址。每个主机也要维持 一个组成员关系表,当该组内的晟后一个进程离开后,该主机自动从组中撤离, 即不再报告组员关系。 i g m p 更新消息通过m u l t i c a s t 路由协议从一个路由器传递到相临的路由器, 这样组成员关系就被相关的路由器获得,传递这些消息需要占用一定的带宽,但 与m u l f i c a s t 的流量相t l q 艮d , ,所以是经济可行的。 2 2 2 5 i p 组播机制 i p 组播机制是指m c r ( m u l t i c a s tr o u t e r ,即组播路由器) 之间的信息传递, 包括m c r 之间控制信息的交流和从数据源到远程组员之间的数据报的复制和路 由选择。目前,流行的组播机制有:距离向量组播路由协议( d v m r p ) 、组播开 放最短路径优先( m o s p f ) 、与协议无关的多播( p i m ) 等几种。关于组播路由 协议的细节,并非本系统要考虑的主要问题,在此不再讨论。 2 2 2 6 软件实现过程 编写组播的通信进程,可按以下几个步骤来完成: ( 1 ) 创建s o c k e t s = s o c k e t ( a f i n e ts o c k _ d g r a m o ) ; 要创建组播s o c k e t ,一定要用数据报方式( s o c k _ d g r a m ) ,因为传输层只能 用u d p 协议。 ( 2 ) 绑定,与普通s o c k e t 编程一样 i n a d d r l o c a l a d d r ; l o c a l a d d r s i n _ f a m i l y = a f _ i n e t ; l o c a l a d d r s i na d d r sa d d r = h t o n l ( i n a d d ra n y ) : l o c a l a d d r s i np o r t = h t o n sf p o r t ) ;指定端口 电子科技大学硕士论文 b i n d ( s ,( s t r u c ts o c k a d d r + ) & l o c a l a d d r ,s i z e o f ( l o c a l a d d r ) ) : ( 3 ) 加入m u l t i c a s t 组 为了能够接收i p 组播数据,一个主机必须成为组播成员。程序用网络接口参数 向主机提出申请加入一个组播组。 组的结构定义如下: s t r u c t i pm r e q ( s t r u c ti na d d ri m rm u l t i a d d r ;i pm u l t i c a s t 组地址 s t r u c ti na d d ri m ri n t e r f a c e ;本地i p 地址,若主机有多个接口, 从中选一个 ) 应用程序语句如下: s t r u c ti p _ m r e q m r e q ; m r e q i m r _ m u l t i s a d d r s _ a d d r = i n e t a d d r ( a d d r ) : s e t s o c k o p t ( s ,i p p r o ti p ,i p a d d m e m b e r s h i p ) ,( c h a r ) & m r e q , s i z e o f ( m r e q ) ) ; ( 4 ) 设置t t l i mt t l = t t l _ v a l u e ; s e t s o c k o p t ( s i p p r o t o i p , i p m u l t i _ c a s t _ t t l ,( c h a r + ) & t t l , s i z e o f ( t t ) ) ; ( 5 ) 禁止l o o p b a c k 本地s o c k e t 发送的数据被它本身接收,称为l o o p b a c k ,要禁止l o o p b a c k 可用 下面的语句: b o o ll o o p b a c k = f a l s e s e t s o c k o p t ( s ,i p p r o t o i p , 1 pm u l t i _ c a s t - l o o p , ( c h a r - k ) l a o p b a c k , s i z e o f ( l o o p b a c k ) ) : ( 6 ) 发送数据到目的地址 发送数据给组成员,自身可以不是组的一员,即( 3 ) 步骤可省。 i n a d d rt o a d 出: t o a d d r s i n f a m i l y = a f _ i n e t ; t o a d d r s i na d d r sa d d r = h t o n l ( i n a d d ra n y ) : t o a d d r s i np o r t = h t o n s ( p o r t ) :指定定端口 s e n d t o ( s ,b u f , s i z e o f ( b u t ) ,0 , ( s t r u c ts o c k a d d r + ) 8 电子科技大学硕士论文 & t o a d d r , a d d r _ s i z e ) ) ;b u f 是数据指针; ( 7 ) 从组中接收数据 要从组中接收数据,自身必须是组的一员,( 3 ) 步骤不能可省。 i n a d d rf r o m a d d r ; f r o m a d d r s i n _ f a m i l y = a f _ i n e f ; f r o m a d d r s i na d d r sa d d r = h t o n l ( i n a d d r _ a n y ) : f r o m a d d r s i np o r t = h t o n s ( p o r t ) :措定端d r e c v ( s ,b u f , 0 ,( s t r u c ts o c k a d d r + ) & f r o m a d d r , a d d rs i z e ) ;b u f 是数据指针 经过以上设定,s o c k e t 变成m u l t i c a s t 的通信进程,通信软件以组播的方式进行 通信。 2 3r t p r t c p 协议 r t p r t c p 主要用于多媒体实时数据传输,其包括实时传输协议( r t p ) ,实 时传输控制协议( r t c p ) 两部分。 2 3 1 r t p 协议分析 2 3 1 1 概述 r t p r t c p 协议是用于i n t e r n e t 上针对多媒体数据流的一种传输协议。r t p 被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流 同步。r t p 通常使用u d p 来传送数据,但r t p 也可以在t c p 或a t m 等其他协议之 上工作。当应用程序开始一个r t p 会话时将使用两个端口:一个给r t p ,一个给 r t c p 。r t p 本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量 控制或拥塞控制,它依靠r t c p 提供这些服务。通常r t p 算法并不作为一个独立 的网络层来实现,而是作为应用程序代码的一部分。实时传输控制协议r t c p 。 r t c p ( r e a l t i m e t r a n s d o r t c o n t r 0 1 p r o t o c 0 1 ) 和r t p 一起提供流量控制和拥塞控 制服务。在r t p 会话期间,各参与者周期性地传送r t c p 包。r t c p 包中含有己发 送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这 些信息动态地改变传输速率,甚至改变有效载荷类型。r t p 和r t c p 配合使用, 它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的 实时数据。 r t p 提供端对端网络传输功能,适合通过组播( m u l t i c a s t ) 和单播 ( u n i - c a s t ) 传送实时数据,如视频、音频和仿真数据。r t p 没有涉及资源预订和 质量保证等实时服务,r t c p 扩充数据传输以允许监控数据传送,提供最小的控 9 电子科技大学硕士论文 制和识别功能。r t p 与r t c p 设计成独立传输和网络层。( 注:为了保证传输的实 时性,本系统中的r t p 协议是构建在u d p 协议上的。) 2 3 1 2r t p 头格式: r t p 头格式如下: 01234 567890l234 56 789 0l2345678901 + - - + - - + - - + - - + - - + - + - - + - - + - - + 一+ 一+ 一十+ 一+ 一+ 一十+ 一+ 一+ 一+ 一+ + 一十一+ - - 4 - - - + - - + - - + 一+ - - + - - + - - + v = 2 1p x ic c ;川p ts e q u e n c en u m b e r + 一+ 一十一+ 一十一+ 一+ 一+ 一+ 一+ 一+ 一十一斗一+ 一十一+ 一+ 一+ 一十一+ + 一+ 一+ 一+ 一+ 一十一十一+ 一十一十一+ 一+ 一十 t l m e s t a m p + - - 4 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ - - + - - + - + 一+ 一十一十一+ + 一十一十一十+ 一十一十一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ s y n c h r o n i z a t i o ns o u r c e ( s s r c ) i d e n t i f ie r + = + = 十= + = + = + = + = + = + = + = + = + = + = + = + = + = 十= + = + = + = 十= + = + = + = + = + = + = + = + = + = + = + = + c o n t r i b u t i n gs o u r c e ( c s r c ) i d e n t i f i e r s + 一十一+ 一+ - + - + 一十一+ 一+ 一+ 一+ 一+ + 一 一+ 一+ 一+ + 一 一 一+ 一 一+ 一+ 一+ 一+ 一+ 一 一+ 一十一+ 一+ 一十 图2 - - 2r t p 包头格式 如图所示,r t p 固定头为1 2 个字节大小,包含了v ( 版本号) ,x ( 扩展位) ,c c ( c s r c 个数) ,p t ( 负载类型) ,s e q u e n c en u m b e r ( 顺序号) ,t i m e s t a m ( 时间戳) ,s s r c ( 同 步源) ,c s r c ( 贡献源) 等信息。 p t ( 负载类型) :7 位,标志所运载的负载类型。p t 码和编码方式的对应关系由附 加规范定义,接收端用此字来对接收的数据迸行解码。 s e q u e n c en u m b e r ( 顺序号) :1 6 位,发送方每发出一个r t p 报文就将顺序号加一, 此字段被接收方用来检测报文的丢失情况。 t i m e s t a m p ( 时间戳) :3 2 位,此字段反应了r t p 报文第一个字节的采样时间。为 了同步和计算时延抖动,时钟必须单调线性增长。时钟频率和采样频率有关,如 果定时产生发送数据,则相邻r t p 报文的时间戳间隔就是采样间隔时间。 s s r c ( 同步源) :3 2 位,标志数据的来源。 c s r c ( 贡献源) :3 2 位,标志混合报文的各个来源。由于c c 字段的长度位4 ,一 个r t p 混合报文最多能标志1 6 个c s r c x ( 扩展位) :为了满足各种应用的需要,r t p 报头可进一步扩充,此时扩展位x 将被置1 ,扩充的r t p 报头部分将紧随在c s r c 清单之后。扩展位x 将被置l , 那么r t p 固定头后紧随着一个扩展头, r t p 报文中没有一个长度的字段,因为r t p 把数据的分段交给了底层的协议来处 理,由u d p 进行数据的分段,组成几个u d p 数据报进行数据的传输。 电子科技大学硕士论文 2 3 2r t c p 协议 r t c p 是r t p 协议中的控制功能协议,它单独运行在底层协议的基础上。r t c p 协议将控制包周期发送给所有连接者,应用与数据包相同的分布机制。r t c p 负 责监视网络服务质量,通信带宽以及网上传递的信息,并将其通知给发送端。低 层协议提供数据与控制包的复用,如使用单独的u 1 ) p 端口号。 2 3 2 1r t c p 功能 主要是提供数据发布的质量反馈。是作为r t p 传输协议的一部分,与其他传 输协议的流和阻塞控制有关。反馈对自适应编码控制直接起作用,但i p 组播经 验表明,从发送者收到反馈对诊断发送错误是致关重要的。给所有参加者发送接 收反馈报告允许问题观察者估计那些问题是局部的,还是全局的。诸如i p 组播 等发布机制使网络服务提供商类团体可能接收反馈信息,充当第三方监控者来诊 断网络问题。反馈功能由r t c p 发送者和接收者报告执行。 r t c p 带有称作规范名字( c n a m e ) 的r t p 源持久传输层标识。如发现冲突, 或程序重新启动,既然s s r c 标识可改变,接收者需要c n a m e 跟踪参加者。接收 者也需要c n a m e 与相关r t p 连接中给定的几个数据流联系。 前两种功能要求所有参加者发送r t c p 包,因此,为了r t p 扩展到大规模数量, 速率必须受到控制。让每个参加者给其它参加者发送控制包,就大独立观察参加 者数量。该数量用语计算包发送的速率。 第四个可选功能是传送最小连接控制信息,如参加者辨识。最可能用在”松 散控制“连接,那里参加者自由进入或离开,没有成员控制或参数协调,r t c p 充 当通往所有参加者的方便通道,但不必支持应用的所有控制通讯要求。 在i p 组播场合应用r t p 时,前3 个功能是必须的,推荐用于所有情形。r t p 应 用设计人员必须避免使用仅在单播模式下工作的机制,那将导致无法扩展规模。 2 3 2 2r t c p 包格式 下面定义几个携带不同控制信息的r t c p 包类型: s r :发送报告,当前活动发送者发送、接收统计。 r r :接收报告,非活动发送者接收统计。 s d e s :源描述项,包括规范名称c n a m e 。 b y e :表示结束。 a p p :应用特定函数。 电子科技大学硕士论文 类似于r t p 数据包,每个r t c p 包以固定部分开始,紧接着的是可变长结构 元素,但以一个3 2 位边界结束。包含安排要求和固定部分中长度段,使r t c p 包可堆叠。不需要插入任何分隔符将多哥r t c p 包连接起来形成一个r t c p 组合包, 以低层协议用单一包发送出去。由于需要低层协议提供提供整体长度来决定组合 包的结尾,在组合包中没有单个r t c p 包显式计数。 组合包中每个r t c p 包可独立处理,不需要根据包组合顺序。但未了执行协议功 能,强加如下约束: 接收统计( 在s r 或r r 中) 应该经常发送,只要带宽允许,因此每个周期发 送的组合r t c p 包应包含报告包。 新接收者需要接收c n a m e ,并尽快识别源,开始联系媒介进行同步,因此每 个包应该包含s d e sc n a m e 。 出现在组合包前面的是包类型数量,其增长应该受到限制,以提高常数位数量, 提高成功确认r t c p 包对错误地址r t p 数据包或其他无关包的概率。 因此,所有r t c p 包至少必须以两个包组合形式发送,推荐格式如下: 加密前缀( e n c r y p t i o np r e f i x ) :仅当组合包被加密,才加上一个3 2 位随机数 用于每个组合包发送。 s r 或r r :组合包中第一个r t c p 包必须为一个报告包。即使没有数据发送, 也没有接收到数据,也要发送一个空r r 。 附加r r :如报告统计源数目超过3 l ,在初始报告包后应该有附加r r 包。 s d e s :包含c n a m e 项的s d e s 包必须包含在每个组合r t c p 包中。如应用要求, 其他源描述项可选,但受到带宽限制。 b y e 或a p p :其它r t c p 包类型可以任意顺序排列,除了b y e 应作为最后一个 包发送,包类型出现可不止一次。 建议转换器或混合器从多个源组合单个r t c p 包。如组合包整体长度超过网络路 径最大传输单元,可分成多个较短组合包用低层协议以单个包形式发送。注意, 每个组合包必须以s r 或r r 包开始。 2 3 2 3r t c p 传输间隔 r t p 设计成允许应用自动扩展,连接数可从几个到上千个。例如,音频会议 中,数据流量是内在限制的,因为同一时刻只有一两个人说话:对组播,给定连 接数据率仍是常数,独立于连接数,但控制流量不是内在限制的。如每个参加者 电子科技大学硕士论文 以固定速率发送接收报告,控制流量将随参加者数量线性增长,因此,速率必须 按比例下降。 一旦确认地址有效,如后来标记成未活动,地址的状态应仍保留,地址应继 续计入共享r t c p 带宽地址的总数中,时间要保证能扫描典型网络分区,建议为 3 0 分钟。注意,这仍大于r t c p 报告间隔最大值的五倍。 这个规范定义了除必需的c n a m e 外的几个源描述项,如n a m e ( 人名) 和e m a i l ( 电子邮件地址) 。它也为定义新特定应用r t c p 包类型的途径。给附加信息分配 控制带宽应引起注意,因为它将降低接收报告和c n a m e 发送的速率而损害协议的 性能。建议分配给单个参加者用于携带附加信息的r t c p 带宽不要超过2 0 。而 且并没有有意让所有s d e s 项包含在每个应用中。 2 3 2 4 发送者与接收者报告 r t p 接收者使用r t c p 报告包提供接收质量反馈,报告包根据接收者是否是 发送者而采用两种格式中的一种。除包类型代码外,发送者报告与接收者报告间 唯一的差别是发送者报告包含一个2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小班第二学期班级工作总结
- 护理继续教育年度工作总结
- 审核年终工作总结
- 数据中心运维年终总结
- 雅思培训机构工作总结
- 消防安全培训员工内容课件
- 心理部述职报告会
- 消防安全培训厦门课件
- 退行性关节炎护理查房
- 消防安全员规章制度培训课件
- 电子政务概论-形考任务5(在线测试权重20%)-国开-参考资料
- 2024年贵州省贵阳市中考生物地理合卷试题(含答案逐题解析)
- DNDC模型使用手册
- DL∕T 2487-2022 电力燃煤机械名词术语
- 起重机械生产单位质量安全总监-特种设备考试题库
- JBT 9189-2016 水基材料防锈试验方法 铸铁屑试验
- JJF 1064-2024 坐标测量机校准规范
- 《春江花月夜》省公开课金奖全国赛课一等奖微课获奖课件
- 人音版小学六年级上册音乐教案(本)
- 19S406建筑排水管道安装-塑料管道
- 《福建省泰宁县》参考课件
评论
0/150
提交评论