




已阅读5页,还剩53页未读, 继续免费阅读
(通信与信息系统专业论文)流媒体网络性能监测与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
流媒体网络性能监测与实现 摘要 网络性能的监测及其研究是互联网领域和电信领域的共同热点, 是在网络上提供流媒体通信业务时的重要基础之一。已经提出了多种 具体技术和相关的解决策略,这些技术和策略有着各自的技术特点和 适用范围,当它们被综合应用到网络性能的监测和流媒体网络的环境 中时,具体的应用效果不尽相同。在这种情况下,对流媒体网络的网 络性能进行测量、分析、评价、控制、调整受到越来越多的关注。 本文主要对流媒体网络性能进行研究和分析。流媒体网络性能监 测技术主要涉及流媒体网络性能的测量参数的选取,测量指标的确 定,具体参数的测量方法( 包括测量点的布置,测量结果的采样方法 等) ,网络性能的评测方法,网络性能的控制与调整策略等内容。 为了进一步研究的需要,本文实现了一个流媒体网络性能监测的 服务器( p m s e r v e r ) ,该服务器实现了从网络捕获到协议分析,再到 数据库存储,最后进行动态性能数据演示的整套性能监测机制,由 此,可以更为准确和全面地了解网络能力及其性能指标的特点。基于 对网络特征的深入了解,p m s e r v e r 不仅可以实时的显示出网络各种 性能指标的情况,而且提供了一条路径来优化流媒体网络,从而达到 更好的性能和服务。 最后,本文给出了动态显示的部分结果,从而验证了该服务器平 台的有效性和和结果的可靠性。由此,可以看出该服务器平台完成了 最初的设计目标,性能指标,性能分析结果均符合要求,具有较强的 实用价值。 关键词:流媒体网络性能可用带宽网络捕获协议分析动态显示 性能测量 、 一 s t r e a mm e d i an e t w o r kp e r f o r m a n c e m e a s u r e m 匣n ta n d 脚l e m 匝n t a bs t r a c t t h er e s e r c ho fp e r f o r m a n c em e a s u r e m e n ti sah o tt o p i co fb o t h i n t e r n e ta n dt e l e c o m u c a t i o nf i e l d s ,a n da l s oo n eo f v e r yi m p o r t a n tb a s eo f p r o v i d i n g s t r e a mm e d i as e r v i c ei nt h e n e t w o r k t h e r ea r e m a n y t e c h o l o g i e sa n ds t r a t e g i e sr e l a t e dw h i c ha l lh a v et h e i ro w ns p e c i a l t i e sa n d a p p l y i n ga r e a ,i nw h i c ht h er e s u l t sa r ed i f f e r e n t i nt h i ss i t u a t i o n ,m o r ea n d m o r ea t t e n t i o n sa r ep a i dt ot h em e a s u r e m e n t ,a n a l y s i s ,e v a l u a t i o n ,c o n t r o l a n da d j u s t m e n to ft h en e t w o r kp e r f o r m a n c e r n 1h i sp a p e ri sm a i na b o u tt h er e s e r c ha n da n a l y s i so fs t r e a mm e d i a n e t w o r kp e r f o r m a n c e t h er e l a t e dt e c h n o l o g i e sa r ea sf o l l o w s :t h ec h o o s e o f p a r a m e t e r su p o ns t r e a mm e d i an e t w o r k p e r f o r m a n c e ,t h e c o n f i r m a t i o no fm e a s u r e m e n ti n d e x e s ,t h em e t h o do fm e a s u r e m e n t ,t h e e v a l u a t i o na n dt h es t r a t e g yo fc o n t r o la n da d j u s t m e n t ,a n ds oo n f o r d e e pr e s e r c h ,as t r e a mm e d i an e t w o r k p e r f o r m a n c e m e a s u r e m e n ts e r v e ri si m p l e m e n t e da n da l s of r o mn e t w o r kc a p t u r et o p r o t o c o la n a l y s i s ,d a t a b a s ea n dp e r f o r m a n c ei n d e x e sd y n a m i cs h o w s o w ec a ng e taw i d e l yu n d e r s t a n do ft h es p e c i a l t i e so ft h es t r e a mm e d i a n e t w o r kf r o mt h i s s e r v e r b a s e do n d e e pu n d e r s t a n d o fn e t w o r k s p e c i a l t i e s ,p m s e r v e rn o to n l ys h o w su st h en e t w o r kp e r f o r m a n c e ,b u t a l s oo f f e r su s a na p p r o a c ht oo p t i m i z et h es t r e a mm e d i an e t w o r ki n o r d e rt oa c h i e v eb e t t e rp e r f o r m a n c ea n ds e r v i c e f i n a l l y , t h e r ea r es o m er e s u l t ss h o w i n gi nt h i sp a p e ra n dp r o v e dt h e e f f i c i e n c ya n dr e l i a b i l i t yo ft h es e r v e r s ow ec a ns a yt h a tt h eo r i g i n a l a i m sa r ea c h i e v e d ,w ea c q u i r es o m ep e r f o r m a n c ei n d e x e sa n dr e s u l t st h a t f u l f i l lo u rr e q u i r e m e n t sa n dp r o v e di t si m p o r t a n ta p p l i e dv a l u e k e yw o r d s :s t r e a mm e d i a ,n e t w o r kp e r f o r m a n c e ,a v a i l b a n d w i d t h , n e t w o r k c a p t u r e ,p r o t o c o la n a l y s i s ,d y n a m i cs h o w , p e r f o r m a n c e m e a s u r e m e n t 流媒体网络性能监测与实现 第一章概述 1 1 网络性能监测 随着i n t e r n e t 技术和网络业务的飞速发展,用户对网络资源的需求空前增长, 网络也变得越来越复杂。不断增加的网络用户和应用,导致网络负担沉重,网络 设备超负荷运转,从而引起网络性能下降。这就需要对网络的性能指标进行提取 与分析,对网络性能进行改善和提高。因此网络性能测量便应运而生。发现网络 瓶颈,优化网络配置,并进一步发现网络中可能存在的潜在危险,更加有效地进行 网络性能管理,提供网络服务质量的验证和控制,对服务提供商的服务质量指标 进行量化、比较和验证,是网络性能测量的主要目的。 1 1 1 网络性能监测的重要性 在流媒体网络中采用网络性能监测技术,可以实现: ( 1 ) 实时监测网络状况 能实时获得网络的当前运行状况,减轻运维人员的工作负担。能在网络出现 故障或拥塞时发出自动告警,在网络即将出现瓶颈前给出分析和预测。 ( 2 ) 合理规划和优化网络 通过对网络流量的监视、数据采集和分析,给出详细的链路和节点流量分析 报告,获得流量分布和流向分布、报文特性和协议分布特性,为网络规划、路由 策略、资源和容量升级提供依据。 ( 3 ) 引导提供网络增值业务 通过对业务占用带宽的分布、业务会话的统计分析,能够了解和分析网络特 性和用户使用偏好,引导开发和规划新的网络应用和业务平台,进行增值业务的 拓展和市场宣传,引导用户需求。 ( 4 ) 灵活的资费标准 通过对用户上网时长、上网流量、网络业务以及目的网站的数据分析,摆脱 目前单一的包月制,实现基于时间段、带宽、应用、服务质量等更加灵活的资费 标准。 ( 5 ) 有力支撑业务平台 通过具体的流量数据获得业务的经营情况和用户的认可程度,引导后续发 展,而改进的结果仍需要流量来验证,最终实现业务拓展流程的良性循环。 二二? 流媒体网络性能监测与实现 1 1 2 网络性能的主要监测对象 流媒体网络端到端的服务质量的参数主要包括以下几个: ( 1 ) 可用性:用于表明网络是否可以使用的参数。如果一个端到端网络业 务的包丢失率低于一定的门限值,则认为该端到端多媒体网络业务是可用的,否 则就是不可用的。根据可用性的定义,可以把网络业务的全部持续时间分为可用 时间和不可用时间( 不可用时段就不应支付使用费用) 。 ( 2 ) 媒体数据包传输时延:媒体数据包传输时延定义为穿过一个或多个网 络段,传送媒体数据包所经历的时间( 不考虑传送成功与否) 。 ( 3 ) 媒体数据包丢失率:媒体数据包丢失率是丢失的媒体数据包传送结果 与所有i p 包的比值。 ( 4 ) 媒体数据时延变化( 即抖动) :连续传递时,包与包之间的时间延迟的 变化。 ( 5 ) 媒体数据包误差率:是错误媒体数据包传送结果与成功媒体数据包传 送结果加错误媒体数据包传送之和的比值。 ( 6 ) 虚假媒体数据包率:指在一个特定时间间隔内,在测量点上观测到的 虚假媒体数据包数量除以该时间间隔。 在上述测量的基础上,需要综合分析从而获得: ( 1 ) 网络线路利用率和趋势、流量分布、流量走向。 ( 2 ) 网络区域间的流量模式,即以网络拓扑为依据划分被测流量,突出网 络规划和运维的目的。 ( 3 ) 网络用户的流量模式,即测量用户或用户群的流量特征,突出用户管 理和客户服务的目的,也是用户s l a 保证的基础。 ( 4 ) 网络业务的流量模式,测量网络中指定业务的流量模式和质量,突出 网络的业务规划和运营的目的。 1 1 3 网络性能测量的方法 网络性能测量涉及到许多内容,如采用主动方式还是被动方式进行测量;发 送测量包的类型;发送与截取测量包的采样方式;所采用的测量体系结构是集中 式还是分布式等等。 3 1 测量包 网络性能测量中,影响测量结果的一个重要因素就是测量数据包的类型。 3 1 1p 类型包 类型p 是对口包类型的一种通用的声明。只要一个性能参数的值取决于对 测量中采用的包的类型,那么参数的名称一定要包含一个具体的类型声明。 3 1 2 标准形式的测量包 流媒体网络性能监测与实现 在定义一个网络性能参数时,应默认测量中使用的是标准类型的包。比如可 以定义一个p 连通性度量为:“i p 某字段为0 的标准形式的p 类型i p 连通 性 。在实际测量中,很多情况下包长会影响绝大多数性能参数的测量结果,包 长的变化对于不同目的的测量来说影响也会不一样。 3 2 主动测量与被动测量方式 最常见的i p 网络性能测量方法有两类:主动测量和被动测量。这两种方法的作用 和特点不同,可以相互作为补充。 3 2 1 主动测量 主动测量是在选定的测量点上利用测量工具有目的地主动产生测量流量,注 入网络,并根据测量数据流的传送情况来分析网络的性能。主动测量的优点是对 测量过程的可控性比较高,灵活、机动,易于进行端到端的性能测量;缺点是注 入的测量流量会改变网络本身的运行情况,使得测量的结果与实际情况存在一定 的偏差,而且测量流量还会增加网络负担。主动测量在性能参数的测量中应用十 分广泛,目前大多数测量系统都涉及到主动测量。 要对一个网络进行主动测量,需要一个测量系统,这种主动测量系统一般包括以 下四个部分:测量节点( 探针) 、中, z , h h 务器、中心数据库和分析服务器。有中心 服务器对测量节点进行控制,由测量节点执行测量任务,测量数据由中心数据库 保存,数据分析则由分析服务器完成。 3 2 2 被动测量 被动测量是指在链路或设备( 如路由器,交换机等) 上利用测量设备对网络进 行监测,而不需要产生多余流量的测量方法。被动测量的优点在于理论上它不产 生多余流量,不会增加网络负担;其缺点在于被动测量基本上是基于对单个设备 的监测,很难对网络端到端的性能进行分析,并且可能实时采集的数据量过大, 另外还存在用户数据泄漏等安全性和隐私问题。被动测量非常适合用来进行流量 测量。 3 2 3 主动测量与被动测量的结合 主动测量与被动测量各有其优、缺点,而且对于不同的性能参数来说,主动 测量和被动测量也都有其各自的用途。因此,将主动测量与被动测量相结合将会 给网络性能测量带来新的发展。 3 3 测量中的抽样 3 3 1 抽样概念 抽样,也叫采样,抽样的特性是由抽样过程所服从的分布函数所决定的。研 究抽样,主要就是研究其分布函数。对于主动测量,其抽样是指发送测量数据包 流媒体网络性能监测与实现 的过程;对于被动测量来说,抽样则是指从业务流量中采集测量数据的过程。 3 3 2 抽样方法 依据抽样时间间隔所服从的分布,抽样方法可分为很多种,目前比较常用的 抽样方法是周期抽样、随机附加抽样和泊松抽样。周期抽样是一种最简单的抽样 方式,每隔固定时间产生一次抽样。因为简单,所以应用的很多。但它存在以下 一些缺点:测量容易具有周期性、具有很强的可预测性、会使被测网络陷入一种 同步状态。随机附加抽样的抽样间隔的产生是相互独立的,并服从某种分布函数, 这种抽样方法的优劣取决于分布函数:当时间间隔以概率1 取某个常数,那么 该抽样就退化为周期抽样。随机附加抽样的主要优点在于其抽样间隔是随机产生 的,因此可以避免对网络产生同步效应,它的主要缺点是由于抽样不是以固定间 隔进行,从而导致频域分析复杂化。 在r f c 2 3 3 0 中,推荐泊松抽样,它的时间间隔符合泊松分布,它的优点是: 能够实现对测量结果的无偏估计、测量结果不可预测、不会产生同步现象。但是, 由于指数函数是无界的,因此泊松抽样有可能产生很长的抽样间隔,因此,实际 应用中可以限定一个最大间隔值,以加速抽样过程的收敛。 1 1 4 性能指标的测量与分析 4 1 连接性 连接性也称可用性、连通性或者可达性,严格说应该是网络的基本能力或属 性,不能称为性能,但i t u - t 建议可以用一些方法进行定量的测量。目前还提出 了连通率的概念,根据连通率的分布状况建立拟合模型。 4 2 延迟 延迟的定义是:p 包穿越一个或多个网段所经历的时间。延迟由固定延迟 和可变延迟两部分组成。固定延迟基本不变,由传播延迟和传输延迟构成;可变 延迟由中间路由器处理延迟和排队等待延迟两部分构成。对于单向延迟测量要求 时钟严格同步,这在实际的测量中很难做到,许多测量方案都采用往返延迟,以 避开时钟同步问题。 往返延迟的测量方法是:入口路由器将测量包打上时戳后,发送到出口路由 器。出口路由器一接收到测量包便打上时戳,随后立即使该数据包原路返回。入 口路由器接收到返回的数据包之后就可以评估路径的端到端时延。 4 3 丢包率 丢包率的定义是:丢失的i p 包与所有的i p 包的比值。许多因素会导致数据 ! 4 流媒体网络性能监测与实现 包在网络上传输时被丢弃,例如数据包的大小以及数据发送时链路的拥塞状况 等。 为了评估网络的丢包率,一般采用直接发送测量包来进行测量。对丢包率进 行准确的评估与预测则需要一定的数学模型。目前评估网络丢包率的模型主要有 贝努利模型、马尔可夫模型和隐马尔可夫模型等等。贝努利模型是基于独立同分 布的,即假定每个数据包在网络上传输时被丢弃的概率是不相关的,因此它比较 简单但预测的准确度以及可靠性都不太理想。但是,由于先进先出的排队方式的 采用,使得包丢失之间有很强的相关性,即在传输过程中,包被丢失受上一个包 丢失的影响相当大。假定用随机变量代表包的丢失事件,x i = 0 表示包丢 失,而x i = 1 表示包未丢失。则第i 个包丢失的概率为p x i x i 1 ,2 ,x i - n , x i 1 ,x i 2 ,x i n 取所有的组合情况。当n = 2 时,该m a r k o v 链退化为著名的 g i l b e r t 模型。隐马尔可夫模型是对马尔可夫模型的改进。 m a y ay a j m k 等人所作的1 7 2 小时的测量试验结果表明,在不同的数据采样 间隔下( 2 0 m s ,4 0 m s ,8 0 m s ,1 6 0 m s ) 采用三种不同的丢包率分析模型进行分析得到 的结果完全不同,在不同的估计精确度的要求下实验结果也各有不同。因此,目 前需要能够精确描述丢包率的数学模型。 4 4 带宽 带宽一般分为瓶颈带宽和可用带宽。瓶颈带宽是指当一条路径( 通路) 中没 有其它背景流量时,网络能够提供的最大的吞吐量。对瓶颈带宽的测量一般采用 包对( p a c k e tp a i r ) 技术,但是由于交叉流量的存在会出现“时间压缩”或“时间 延伸”现象,从而会引起瓶颈带宽的高估或低估。另外,还有包列等其它测量技 术。 可用带宽是指在网络路径( 通路) 存在背景流量的情况下,能够提供给某个 业务的最大吞吐量。因为背景流量的出现与否及其占用的带宽都是随机的,所以 可用带宽的测量比较困难。一般采用根据单向延迟变化情况可用带宽进行逼近。 其基本思想是:当以大于可用带宽的速率发送测量包时,单向延迟会呈现增大趋 势,而以小于可用带宽的速率发送测量包时,单向延迟不会变化。所以,发送端 可以根据上一次发送测量包时单向延迟的变化情况动态调整此次发送测量包的 速率,直到单向延迟不再发生增大趋势为止,然后用最近两次发送测量包速率的 平均值来估计可用带宽瓶颈带宽反映了路径的静态特征,而可用带宽真正反映了 在某一段时间内链路的实际通信能力,所以可用带宽的测量具有更重要的意义。 4 5 流量参数 i t u t 提出两种流量参数作为参考:一种是以一段时间间隔内在测量点上观 流媒体网络性能监测与实现 测到的所有传输成功的p 包数量除以时间间隔,即包吞吐量;另一种是基于字 节吞吐量:用传输成功的i p 包中总字节数除以时间间隔。 i n t e m e t 业务量的高突发性以及网络的异构性,使得网络呈现复杂的非线性, 建立流量模型越发变得重要。早期的网络流量模型,是经典流量模型,也即借鉴 p s t n 的流量模型,用p o i s s o n 模型描述数据网络的流量,以及后来的分组火车模 型,m a r k o v 模型等等。随着网络流量子相似性的发现,基于自相似模型的流量 建模研究也取得了不少进展和得到了广泛的应用,譬如分形布朗运动模型和分形 高斯噪声模型以及小波理论分析等等。高速网络技术的发展使得对巨大的网络流 量进行直接测量几乎不可能,同时,大量的流量日志也使流量分析变得相当困难。 为了解决这一问题,近几年,流量抽样测量研究已成为高速网络流量测量的研究 重点。 1 2 流媒体技术简介 1 2 1 “流”的定义 现在网上传输视频、音频主要有下载( d o w n l o a d ) 和流式传输( s t r e a m i n g ) 两种方式。流式传输是连续传送视音频信号,当流媒体在客户机播放时其余部 分在后台继续下载。流式传输有顺序流式传输( p r o g r e s s i v es t r e a m i n g ) 和实时流式 传输( r e a l t i m es t r e 赫i i l 亩两种方式。实时流式传输是实时传送,特别适合现场事 件,实时流式传输必须匹配连接带宽,这意味着图像质量会因网络速度降低而变 差,以减少对传输带宽的需求。“实时”的概念是指在一个应用中数据的交付必 须与数据的产生保持精确的时间关系。 在i n t e m e t 中使用流式传输技术的连续时基媒体就称为流媒体,通常也将其 视频与音频称为视频流和音频流。实现流式传输一般都需要专用服务器和播放 器。 1 2 2 流媒体系统组件 流媒体是由各种不同软件构成的,这些软件在各个不同层面上互相通信,基 本的流媒体系统包含以下3 个组件: 播放器( p l a y e r ) ,用来播放流媒体的软件。 服务器( s e r v e r ) ,用来向用户发送流媒体的软件。 编码器( e n c o d e ) ,用来将原始的音频视频转化为流媒体格式的软件。 流媒体网络性能监测与实现 这些组件之间通过特定的协议互相通信,按照特定的格式互相交换文件数 据。有些文件中包含了由特定编解码器解码的数据,这种编解码器通过特定算法 压缩文件的数据量。 1 2 3 流媒体服务器的基本功能和服务方式 3 1 流媒体服务器的主要功能 ( 1 ) 响应客户的请求,把媒体数据传送给客户。流媒体服务器在流媒体传 送期间必须与客户的播放器保持双向通信( 这种通信是必需的,因为客户可能随 时暂停或快放一个文件) 。 ( 2 ) 响应广播的同时能够及时处理新接收的实时广播数据,并将其编码。 ( 3 ) 可提供其他额外功能,如:数字权限管理( d r m ) ,插播广告,分割或 镜像其他服务器的流,还有组播。 3 2 流媒体服务器的服务方式 ( 1 ) 单播。在客户端与媒体服务器之间建立一个单独的数据通道,从l 台 服务器送出的每个数据包只能传送给1 个客户机。 ( 2 ) 组播。在以组播技术构建的网络上,允许路由器一次将数据包复制到 多个通道上。 ( 3 ) 点播与广播。点播连接是客户端与服务器之间的主动的连接,在点播 连接中,用户通过选择内容项目来初始化客户端连接,用户可以开始、停止、后 退、快进或暂停流。广播指的是用户被动地接收流,在广播过程中,数据包的单 独一个拷贝将发送给网络上的所有用户,客户端接收流,但不能控制流。 1 2 4 构建流媒体服务器 4 1r t p r t c p 协议简介 实时传输协议r t p ( r e a l t i m et r a n s p o r tp r o t o c 0 1 ) :是针对i n t e m e t 上多媒体数 据流的一个传输协议,由i e t f ( i n t e m e t 工程任务组) 作为r f c l 8 8 9 发布。r t p 被 定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同 步。r t p 的典型应用建立在u d p 上,但也可以在t c p 或a t m 等其他协议之上工作。 r t p 本身只保证实时数据的传输,并不能为按顺序传送数据包提供可靠的传送机 制,也不提供流量控制或拥塞控制,它依靠r t c p 提供这些服务。 实时传输控制协议r t c p ( 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 0 1 ) :负责管理传 输质量在当前应用进程之间交换控制信息。在r t p 会话期间,各参与者周期性地 传送r t c p 包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资 料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类 型。r t p 和r t c p 配合使用,能以有效的反馈和最小的开销使传输效率最佳化, 流媒体网络性能监测与实现 故特别适合传送网上的实时数据。 r t c p 主要有4 个功能: ( 1 ) 用反馈信息的方法来提供分配数据的传送质量,这种反馈可以用来进 行流量的拥塞控制,也可以用来监视网络和用来诊断网络中的问题; ( 2 ) 为r t p 源提供一个永久性的c n a m e ( 规范性名字) 的传送层标志,因 为在发现冲突或者程序更新重启时s s r c ( 同步源标识) 会变,需要一个运作痕迹, 在一组相关的会话中接收方也要用c n a m e 来从一个指定的与会者得到相联系 的数据流( 如音频和视频) ; ( 3 ) 根据与会者的数量来调整r t c p 包的发送率; ( 4 ) 传送会话控制信息,如可在用户接口显示与会者的标识,这是可选功 能。 4 2r t p r t c p 工作过程 工作时,r t p 协议从上层接收流媒体信息码流( 如h 2 6 3 ) ,装配成r t p 数据 包发送给下层,下层协议提供r t p 和r t c p 的分流。如在u d p 中,r t p 使用一个 偶数号端口,则相应的r t c p 使用其后的奇数号端口。r t p 数据包没有长度限制, 它的最大包长只受下层协议的限制。 4 3 服务器的算法 服务器软件模型主要有两种,即并发服务器和循环服务器。循环服务器 ( i t e r a f i v es e r v e r ) 是指在一个时刻只处理一个请求的服务器。并发服务器 ( c o n c u r r e n ts e r v e r ) 是指在一个时刻可以处理多个请求的服务器。事实上,多数 服务器没有用于同时处理多个请求的冗余设备,而是提供一种表面上的并发性, 方法是依靠执行多个线程,每个线程处理一个请求,从客户的角度看,服务器就 像在并发地与多个客户通信。 由于流媒体服务时间的不定性和数据交互实时性的请求,流媒体服务器一般 采用并发服务器算法。本文构建了一个基本的流媒体服务器,能够同时响应多个 用户的请求,把本地硬盘流媒体文件或实时数据流( h 2 6 3 格式) 发送给用户。 在应用中,把客户分为请求实时数据的实时客户和请求文件数据的文件客户两 类。主要算法为: ( 1 ) 打开设备,分配资源。当设备准备好时,创建一个r t p 实时服务线程 和一个r t c p 实时服务线程。 ( 2 ) 创建一个u d p 套接字并将其绑定到所提供服务的地址之上。 ( 3 ) 反复调用接收模块,接收来自客户的r t c p 报告,根据其类型做出响应。 对新实时客户的请求,把客户地址添加到实时服务的客户列表中,对新文件客户 流媒体网络性能监测与实现 的请求,则创建一个新r t p 文件服务线程和一个新r t c p 文件服务线程;对已经 在服务中的客户则根据r t c p 报告的内容调整服务。 1 2 5 流媒体服务器实现中应注意的问题 5 1 会话和流的两级分用 一个r t p 会话( s e s s i o n ) 包括传给某个指定目的地对( d e s t i n a t i o np a i r ) 的所有 通信量,发送方可能包括多个。而从同一个同步源发出的r t p 分组序列称为流 ( s t r e a m ) ,一个r t p 会话可能包含多个r t p 流。一个r t p 分组在服务器端发送出 去的时候总是要指定属于哪个会话和流,在接收时也需要进行两级分用,即会话 分用和流分用。只有当r t p 使用同步源标识( s s r c ) 和分组类型( p t y p e ) 把同一 个流中的分组组合起来,才能够使用序列号( s e q u e n c en u m b e r ) 和时间戳 ( t i m e s t a m p ) 对分组进行排序和正确回放。 5 2 多线程的管理 并发服务器模式要求用多线程来提供服务,所以多线程的管理十分重要。在 本文构建的服务器中,不同客户的请求和反馈都由服务器的主线程处理,由于实 时数据的独有性,不同实时客户可以共用一个r t p 实时服务线程和_ 个r t c p 实 时服务线程,这样可以大大减小服务器的负担,而每个文件客户由于请求的文件 不同,相应地对速度和开始时间的要求都可能不同,所以需要有自己独有的r t p 文件服务线程和r t c p 文件服务线程。 r t p 服务线程负责把实时数据流发送给客户,r t c p 服务线程根据r t p 线程的 统计数据,产生发送方报告给客户。r t p 线程和r t c p 线程之间通过一段共享内 存交互统计数据,对共享内存必须设置互斥体进行保护,防止出现错误读写。在 这种方式下,服务器可以根据每个用户的不同请求和具体情况方便地提供不同的 服务。 5 3 时i 司戳的处理 时间戳字段是r t p 首部中说明数据包时间的同步信息,是数据能以正确的时 间顺序恢复的关键。时间戳的值给出了分组中数据的第一个字节的采样时间 ( s a m p l i n gi n s t a n t ) ,要求发送方时间戳的时钟是连续、单调增长的,即使在没有 数据输入或发送数据时也是如此。在静默时,发送方不必发送数据,保持时间戳 的增长,在接收端,由于接收到的数据分组的序号没有丢失,就知道没有发生数 据丢失,而且只要比较前后分组的时间戳的差异,就可以确定输出的时间间隔。 r t p 规定一次会话的初始时间戳必须随机选择,但协议没有规定时间戳的单 9 流媒体网络性能监测与实现 位,也没有规定该值的精确解释,而是由负载类型来确定时钟的颗粒,这样各种 应用类型可以根据需要选择合适的输出计时精度。 在r t p 传输音频数据时,一般选定逻辑时间戳速率与采样速率相同,但是在 传输视频数据时,必须使时间戳速率大于每帧的一个滴答。如果数据是在同一时 刻采样的,协议标准还允许多个分组具有相同的时间戳值。 5 4 媒体数据发送速度的控制 由于r t p 协议没有规定r t p 分组的长度和发送数据的速度,因而需要根据具 体情况调整服务器端发送媒体数据的速度。对来自设备的实时数据可以采取等时 间间隔访问设备缓冲区,在有新数据输入时发送数据的方式,时间戳的设置相对 容易。对已经录制好的本地硬盘上的媒体文件,以h 2 6 3 格式的文件为例,由于 文件本身不包含帧率信息,所以需要知道录制时的帧率或者设置一个初始值,在 发送数据的时候找出发送数据中的帧数目,根据帧率和预置值来计算时延,以适 当的速度发送数据并设置时间戳信息。 5 5 多种流同步 r t c p 的一个关键作用就是能让接收方同步多个r t p 流,例如:当音频与视频 一起传输的时候,由于编码的不同,r t p 使用两个流分别进行传输,这样两个流 的时间戳以不同的速率运行,接收方必须同步两个流,以保证声音与影像的一致。 为能进行流同步,r t c p 要求发送方给每个传送一个唯一的标识数据源的规范名 ( c a n o n i c a ln a m e ) ,尽管由一个数据源发出的不同的流具有不同的同步源标识 ( s s r c ) ,但具有相同的规范名,这样接收方就知道哪些流是有关联的。而发送方 报告报文所包含的信息可被接收方用于协调两个流中的时间戳值。发送方报告中 含有一个以网络时间协议n t p ( n e t w o r kt i m ep r o t o c 0 1 ) 格式表示的绝对时间值, 接着r t c p 报告中给出一个r t p 时间戳值,产生该值的时钟就是产生r t p 分组中 的t i m e s t a m p 字段的那个时钟。由于发送方发出的所有流和发送方报告都使用同 一个绝对时钟,接收方就可以比较来自同一数据源的两个流的绝对时间,从而确 定如何将一个流中的时间戳值映射为另一个流中的时间戳值。 1 0 流媒体网络性能监测与实现 1 3 论文结构安排 论文的第二章介绍了p m s e r v e r 的结构和实现原理,并详细介绍了p m s e r v e r 的各个模块的功能和关键技术;在第三章中,本文对p m s e r v e r 的重要类进行了 详细的介绍,并图示了其工作流程;第四章根据数据库中的数据显示了网络的性 能数据,进而显示了网络的状态:第五章总结全文,并说明性能监测服务器平台 的适用范围以及进一步改进的方向。 流媒体网络性能监测与实现 第二章流媒体网络性能监测服务器p m s e r v e r 介绍 2 1流媒体网络性能监测服务器p m s e r v e r 简介 图2 1 流媒体网络性能监测服务器p m s e r v e r 整体框架 流媒体网络性能监测服务器p m s e r v e r 整体框架如图2 - i 所示。服务器主要 由五大模块组成。包截获模块( p m s e r v e r p c a p ) 主要完成了对实际网络数据包的 捕获和存储功能;协议分析模块( p m s e r v e r p a ) 模块包含缓冲区,用于存储捕 获到的数据包,同时完成对所捕获到的数据包进行协议分析,过滤不需要的数据 包,并初步得到性能参数的原始数据;数据库模块( p m s e r v e r d b ) 主要用于存 储和查询性能参数数据;数据处理模块( p m s e r v e r d p ) 属于一个全局管理的模 块,负责调用其他模块来完成测量和最终显示数据;最后,动态显示模块负责显 示经过分析得到的性能参数数据,以便进行分析和调整。 2 2 实现实时仿真平台的关键技术 2 2 1 多线程技术 为了保证平台运行的实时性,不受网络情况等外部因素的干扰,平台的多个 模块必须保证相对独立但同步运行,因此,程序中大量采用了多线程技术。多线 程技术相对多进程而言,尤其自身的优势。根据操作系统的定义,进程是系统资 源管理的最小单位,线程是程序执行的最小单位。线程和进程十分相似,不同的 只是线程比进程小。首先,线程采用了多个线程可共享资源的设计思想。例如, 12 流媒体网络性能监测与实现 它们的操作大部分都是在同一地址空间进行的。其次,从一个线程切换到另一线 程所花费的代价比进程低。再次,进程本身的信息在内存中占用的空间比线程大。 因此,线程更能允分地利用内存。线程可以看作是在进程内部执行的指定序列。 线程和进程的最大区别在于线程完全共享相同的地址空间,运行在同一地址上。 使用多线程的理由之二是线程间方便的通信机制。对不同进程来说,它们具 有独立的数据空间,要进行数据的传递只能通过通信的方式进行,这种方式不仅 费时,而且很不方便。线程则不然,由于同一进程下的线程之间共享数据空间, 所以一个线程的数据可以直接为其它线程所用,这不仅快捷,而且方便。 除了以上所说的优点外,不和进程比较,多线程程序作为一种多任务、并发 的工作方式,当然有以下的优点: 1 ) 提高应用程序响应。这对图形界面的程序尤其有意义,当一个操作耗时 很长时,整个系统都会等待这个操作,此时程序不会响应键盘、鼠标、菜单的操 作,而使用多线程技术,将耗时长的操作( t i m ec o n s u m i n g ) 置于一个新的线程, 可以避免这种尴尬的情况。 2 ) 使多c p u 系统更加有效。操作系统会保证当线程数不大于c p u 数目时, 不同的线程运行于不同的c p u 上。 3 ) 改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几 个独立或半独立的运行部分,这样的程序会利于理解和修改。 当然,由于多线程是运行在同一地址空间上,共享内存也带来了问题,如果 不采取适当的措施,其他线程往往会在线程处理任务结束前就去访问处理结果, 这就很有可能得到有关处理结果的错误了解。例如,多个线程同时访问同一个全 局变量,如果都是读取操作,则不会出现问题。如果一个线程负责改变此变量的 值,而其他线程负责同时读取变量内容,则不能保证读取到的数据是经过写线程 修改后的。因此线程间的同步显得尤为重要。 为了确保读线程读取到的是经过修改的变量,就必须在向变量写入数据时禁 止其他线程对其的任何访问,直至赋值过程结束后再解除对其他线程的访问限 制。象这种保证线程能了解其他线程任务处理结束后的处理结果而采取的保护措 施即为线程同步。 仿真平台中主要采用的线程同步技术主要包含以下几种方法: 互斥对象( m u t e xo b j e c t s ) 互斥对象是最基本的同步形式。互斥对象用于保护临界区( c r i t i c a ls e c t i o n ) , 以保证任何时刻只有一个线程在执行其中的代码( 假设互斥对象由多个线程共 享) ,或者任何时刻只有一个进程在执行其中的代码( 假设互斥对象由多个进程 共享) 。保护一个临界区的代码的通常轮廓大体如下: 流媒体网络性能监测与实现 l o c kt h em u t e x ( ) 临界区 u n l o c k _ t h e _ m u t e x ( ) 当某一运行线程a 运行到临界区代码时,首先运行l o c kt h em u t e x ( ) ,取 得了临界区代码的运行权。当另一线程b 运行至此时,为保护临界区数据,将 被l o c k _ t h e _ m u t e x ( ) 阻塞。直到线程a 结束临界区代码,运行 u n l o c k t h em u t e x ( ) 释放运行权时,被阻塞线程b 才能得以运行临界区代码。 : 一 信号量( s e m a p h o r eo b j e c t s ) 信号量对象对线程的同步方式与互斥对象方法不同,它允许多个线程在同一 时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目。在用 c r e a t e s e m a p h o r e ( ) 创建信号量时即要同时指出允许的最大资源计数和当前可 用的资源计数。一般是将当前可用资源计数设置为最大资源计数,每增加一个线 程对共享资源的访问,当前可用资源计数就会减1 ,只要当前可用资源计数是大 于0 的,就可以发出信号量信号。但是当前可用计数减小到0 时则说明当前占用 资源的线程数已经达到了所允许的最大数目,不能在允许其他线程的进入,此时 的信号量信号将无法发出。线程在处理完共享资源后,应在离开的同时通过 r e l e a s e s e m a p h o r e ( ) 函数将当前可用资源计数加1 。在任何时候当前可用资源计 数决不可能大于最大资源计数。 图2 。2 使用信号量对象控制资源 在图2 。2 中,以箭头和白色箭头表示共享资源所允许的最大资源计数和当前 可用资源计数。初始如图a 所示,最大资源计数和当前可用资源计数均为4 ,此 后每增加一个对资源进行访问的线程( 用黑色箭头表示) 当前资源计数就会相应 减1 ,图b 即表示的在3 个线程对共享资源进行访问时的状态。当进入线程数达 到4 个时,将如图c 所示,:此时已达到最大资源计数,而当前可用资源计数也 : 1 4 流媒体网络性能监测与实现 已减到0 ,其他线程无法对共享资源进行访问。在当前占有资源的线程处理完毕 而退出后,将会释放出空间,图d 已有两个线程退出对资源的占有,当前可用 计数为2 ,可以再允许2 个线程进入到对资源的处理。可以看出,信号量是通过 计数来对线程访问资源进行控制的,而实际上信号量确实也被称作d i j k s t r a 计数 器。 2 2 2 缓冲区技术 优于网络通信中,存在一定的数据突发性,因此缓冲区的设置是十分必要的。 缓冲区一方面平滑网络突发,另一方面也成为仿真平台各模块之间通信的媒介。 缓冲区的逻辑模型如下图所示: 缓冲区 图2 1 缓冲区逻辑模型 缓冲区的大小是影响仿真平台整体性能的重要因素之一。缓冲区设置过小会 在网络产生突发时发生数据包的丢失,而缓冲区设置过大会占用过多的系统资 源,降低系统的运行效率。 2 3 网络捕获模块: 包截获模块( p m s e r v e r p c a p ) 主要完成了对实际网络数据包的捕获和存储功 能。下面是该模块工作的流程图: 流媒体网络性能监测与实现 函数 捕获回调处理函数 图2 2 网络捕获模块工作流程图 模块内部定义的数据结构 为了便于内部各模块间数据信息的交换和通信,必须定义统一的数据结构。 数据结构的定义一方面增加了数据的可操作性,另一方面也为接口函数提供了统 一的形式。 2 3 1 内部包结构( p k t ) t y p e d e fs t r u c tq p m s e r v e r p k t d o u b l et s ;t i m es t a m p i n tp k t _ l e n ; p a c k e tl e n g t h u c h a r 幸p a c k e t ; u s e rd a t a ) p k t ; 该结构对网络捕获模块捕获到的数据包做了封装。t s 是指时间戳;p k t记_len 录内部数据包的长度:指针p a c k e t 为指向实际数据包数据的指针。p k t 结构是各模 块间数据交换的结构单元。 1 6 流媒体网络性能监测与实现 2 3 2 相关函数: s t a t i cc h a r 木p m s e r v e r p c a p :g e t d e v ( ) 获取网卡的设备描述符以打开网卡捕获数据包; u n s i g n e d _ _ s t d c a l lp m s e r v e r p c a p :p c a p ( l p v o i dp p a r a m ) ; 根据g e t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 穿刺过程中的无菌技术安全护理
- 2025年广东省海丰县事业单位公开招聘辅警考试题带答案分析
- 经济法基础试题及答案
- 2025年浙江省云和县事业单位公开招聘辅警考试题带答案分析
- 差班家长会教学课件
- 工笔基础知识课件
- 工程项目管理王老师课件
- 工程质量审计课件
- 2025年厂房装修工期进度与质量监管合同
- 2025版汽车租赁与汽车后市场服务合同
- DL-T 2561-2022 立式水轮发电机状态检修评估技术导则
- 新警培训考核体能项目
- 工业云平台架构设计
- 精神科 护理查房记录
- 教师心理健康教育培训主题(八篇)
- 16949-PPAP培训资料课件
- 公司年度季度预算项目明细记录excel表模板
- 零工派工单(可用)
- 6月安全生产月会议记录安全生产会议记录内容
- ☆初中语文阅读理解必备100篇
- 三轮摩托车科一模拟考试题
评论
0/150
提交评论