本章对因特网提供音频/视频服务进行概述,然后介绍流式音频/视频中的媒体服务器和实时流式协议RTSP,并以IP电话为例介绍交互式音频/视频所使用的一些协议,如实时传送协议RTP、实时传送控制协议RTCP、H.323以及会话发起协议SIP。接着讨论改进“尽最大努力交付”的服务的一些措施,包括怎样使因特网能够提供服务质量,并介绍综合服务IntServ、资源预留协议RSVP和区分服务DiffServ的要点。(无线局域网和下一代因特网不介绍)
一、概述
多媒体信息和传统数据信息不同。它是指内容上相互关联的文本、图形、图像、声音、动画和活动图像等所形成的复合数据信息。
多媒体的两个特点:信息量往往很大;在传输多媒体数据时,对时延和时延抖动均有较高的要求。
模拟的多媒体信号只有经过数字化后才能在因特网上传送。就是对模拟信号要经过采样和模数转换变为数字信号,然后将一定数量的比特组装成分组进行发送。这些分组在发送时的时间间隔都是恒定的,通常称这样的分组是等时的。等时分组进入因特网的速率也是恒定的,但传统的因特网本身是非等时的。这是因为
在使用IP协议的因特网中,每一个分组是独立地传送,因而这些分组在到达接收端时就会变成非等时的。如果我们在接收端对这些以非恒定速率到达的分组边接收边还原,那么就一定会产生很大的失真。看下图。
要解决这个问题,可在接收端设置适当大小的缓存,当缓存中的分组数达到一定的数量后再以恒定速率按顺序将这些分组读出进行还原播放。看下图。T叫做播放时延。这清除了时延的抖动。
有些问题未讨论——
①播放时延T设置多大?大了,可消除更大的时延抖动,但所有分组经受的平均时延也增大了,这对于实时应用如视频会议是很不利的。小了,消除时延抖动效果差,因此折中考虑。
②在因特网上传输实时数据的分组时有可能会出现差错或甚至丢失。如果用TCP协议对这些差错或丢失的分组进行重传,那么时延就会大大增加。因此实时数据的传输在运输层就应采用用户数据报协议UDP而不使用TCP协议。这就是说,对于传送实时数据,我们宁可丢失少量分组,也不要太晚到达的分组。在连续音频或视频中,丢失少量的影响并不大。
由于分组的到达不按序,但将分组还原和播放时又应当是按序的。因此在发送多媒体分组时还应当给每一个分组加上序号。这表明还应当有相应的协议支持才行。
还有一种情况,就是要使接收端能够将节目中本来就存在的正常的短时间停顿(如音乐中停顿几拍)和因某些分组的较大迟延造成的“停顿”区分开来。这就需要增加一个时间戳,以便告诉接收端应当在什么时间播放哪个分组。
目前因特网提供的音频/视频服务有三种:
①流式存储音频/视频
将已压缩的录制好的音频/视频文件存储在服务器上。用户可边下载边播放,这里下载没有把内容存储在硬盘上,这对保护版权有利。
②流式实况音频/视频
音频/视频节目不是事先录制好和存储在服务器中,而是在发送方边录制边发送(不是录制完毕后发送)。在接收时也是要求能够连续播放。接收方收到节目的时间和节目中的事件的发生时间可以认为是同时的。
③交互式音频/视频
是用户使用因特网和其他人进行实时交互式通信。
二、流式存储音频/视频
为什么不在浏览器中直接播放音频/视频?——播放器没有集成在万维网浏览器中,因此必须使用一个单独的应用程序来播放这种音频/视频节目,这个应用程序通常称为媒体播放器。媒体播放器具有的主要功能:管理用户界面、解压缩、消除时延抖动和处理传输带来的差错。
1.具有元文件的万维网服务器
元文件:非常小。描述或指明其他文件的一些重要信息。如音频/视频文件的信息。
①浏览器用户点击所要看的音频/视频文件的超链,使用HTTP的GET报文接入到万维网服务器。实际上,这个超链没有直接指向所请求的音频/视频文件,而是指向一个元文件。这个元文件有实际的音频/视频文件的统一资源定位符URL。
②万维网服务器把元文件装入HTTP响应报文的主体,发回浏览器。在响应报文中还有指明该音频/视频文件类型的首部。
③客户机浏览器收到万维网服务器的响应,分析其内容类型首部,调用相关的媒体播放器,把提取出的元文件传送给媒体播放器。
④媒体播放器使用元文件中的URL直接和万维网服务器建立TCP连接,并向万维网服务器发送HTTP请求报文,要求下载浏览器想要的音频/视频文件。
⑤万维网服务器发送HTTP响应报文,把该音频/视频文件发送给媒体播放器。媒体播放器在存储了若干秒的音频/视频文件后(这是为了消除抖动),就以音频/视频流的形式边下载边解压缩边播放。
2.媒体服务器
也称为流式服务器。媒体服务器和万维网服务器可以运行在一个端系统内,也可以运行在两个不同的端系统中。媒体服务器与普通万维网服务器的最大区别就是,媒体服务器支持流式音频和视频的传送。看下图步骤。
①~③同上。
④媒体播放器使用元文件中的URL接入到媒体播放器,请求下载浏览器所请求的音频/视频文件,下载可以借助于使用UDP的任何协议,例如使用实时运输协议RTP(见8.3.3节)
⑤媒体服务器给出响应,把该音频/视频文件发送给媒体播放器。媒体播放器在延迟了若干秒后,以流的形式边下载边解压缩边播放。
注意——
媒体服务器也可以在TCP连接上向媒体播放器传送音频/视频文件。由于TCP有重传丢失报文段的功能,因此音频/视频文件还原后的质量应当会更好些(只要重传时不造成缓存的清空)。但如果网络发生分组丢失而重传时应用程序的缓存已被抽空,那么媒体服务器在播放音频/视频文件时就会出现暂停。
3.实时流式协议RTSP
real-time streaming protocol。本身不传达数据, 而仅仅是使媒体播放器能够控制多媒体流的传送(有点像文件传送协议FTP有一个控制信道),因此RTSP又称为带外协议(out-of-band protocol)。它能使用户在播放从因特网下载的实时数据时能够进行控制,如暂停、播放、快进、快退等。
RTSP的语法和操作与HTTP协议的相似(所有的请求和响应报文都是ASCII文本)。但与HTTP不同的地方是RTSP是有状态的协议(HTTP是无状态的)。RTSP记录客户机所处于的状态(初始化状态、播放状态或暂停状态)。RTSP控制分组即可在TCP上传送,也可在UDP上传送。RTSP没有定义音频/视频的压缩方案,也没有规定音频/视频在网络中传送时应如何封装在分组中。RTSP不规定音频/视频流在媒体播放器中应如何缓存。
三、交互式音频/视频
1.IP电话概述
Ⅰ、狭义的和广义的IP电话
狭义的IP电话就是指在IP网络上打电话。IP网络就是“使用IP协议的分组交换网”的简称。
广义的IP电话则不仅仅是电话通信,而且还可以是在IP网络上进行交互式多媒体实时通信(包括语音、视像等),甚至还包括即时传信IM。即时传信是在上网时就能从屏幕上得知有哪些朋友也正在上网。
Ⅱ、IP电话网关
是公用电话网与IP网络的接口设备。作用是:①在电话呼叫阶段和呼叫释放阶段进行电话信令的转换;②在通话期间进行话音编码的转换。
Ⅲ、IP电话的通信质量
IP电话的通话质量与电路交换电话网的通信质量有很大的差别。在电路交换电话网中任何两端之间的通信质量都是有保证的。但IP电话则不然。IP电话的通信质量主要由两个因素决定。一是通话双方端到端的时延和时延抖动,二是话音分组的丢失率。但这两个因素都是不确定的,而是取决于当时网络上的通信量。通信量大时,端到端时延和时延抖动以及分组丢失率都会很高。因此,一个用户使用IP电话的通信质量取决于当时其他的许多用户的行为。但是电路交换电话网的情况完全不是这样,当电路交换网的通信质量太大时,往往使我们无法接通电话(听到的是忙音),即电话网拒绝对正在拨号的用户提供接通服务。但是只要我们拨通了电话,那么电信公司就能保证让用户满意的通话质量。
IP电话端到端时延是由以下几个因素造成的:
(1)话音信号进行模数交换要经受时延。
(2)已经数字化的话音比特流要积累到一定的数量才能够装配成一个话音分组,这也产生时延。
(3)话音分组的发送需要时间,此时间等于话音分组长度与通信线路的数据率之比。
(4)话音分组在Internet中经过许多路由器的存储转发时延。
(5)话音分组到达接收端在缓冲区暂存所引起的时延。
(6)最后将话音分组还原成模拟话音信号的数模转换也要经受一定的时延。
(7)话音信号在通信线路上的传播时延。
(8)由终端设备的硬件和操作系统产生的接入时延。
3和7:当采用高速光纤主干网时,3不大。话音信号在通信线路上的传播时延一般很小(卫星通信除外),7不考虑。
1、2和6:取决于话音编码的方法。有两种标准:G.729和G.723.1。
帧大小是压缩到每一个分组中的话音信号时间长度。处理时间是对一个帧运行编码算法所需的时间。帧长是一个已编码的帧的字节数(不包括首部)。数字信号处理MIPS(每秒百万指令)是用数字信号处理芯片实现编码所需的最小处理机速率。
4和5:困难。当网络发生拥堵而产生话音分组丢失时,还必须采用一定的策略(称为“丢失掩蔽算法”)对丢失的话音分组进行处理。例如, 可使用前一个话音分组来填补丢失的话音分组的间隙。
接收端缓存空间和播放时延的大小对话音分组丢失率和端到端时延也有很大的影响。看下图。
举例——Skype
2.IP电话所需要的几种应用协议
IP电话通信中,至少需要两种应用协议。一种是信令协议,它使我们能够在因特网上找到被叫用户。另一种是话音分组的传送协议,它使我们用来进行电话通信的话音数据能够以时延敏感属性在因特网中传送。这样,为了在因特网中提供实时交互式的音频/视频服务,我们需要新的多媒体体系结构。
实时传输协议 [RTP] 和 实时控制协议 [RTCP]
四、改进“尽最大努力交付”的服务
1.使因特网提供服务质量
可设法增加一些机制,即:分组的分类、管制、调度以及呼叫接纳
2.调度和管理机制
Ⅰ、调度机制
调度是指排队的规则,默认先进先出FIFO。但最大缺点是不能区分敏感分组和一般敏感分组。也可加上按优先级排队。
分组到达路由器后就由分类器(又称为分类程序)对其进行优先级分类,然后按照类别进入相应的队列。优先级排队缺点是:在高优先级队列中总是有分组时,低优先级队列中的分组就长期得不到服务。
公平排队FQ是对每种类别的分组流设置一个队列,然后轮流使每一个队列一次只能发送一个分组。对于空的队列就跳过去。缺点是:长分组得到的服务时间长,而短分组就比较吃亏,并且公平排队并没有区分分组的优先级。
可增加队列“权重”的概念,这就是加权公平排队WFQ。
Ⅱ、管制机制
平均速率——指在一定的时间间隔内通过的分组数。
峰值速率——限制了数据流在非常短的时间间隔内的流量。
突发长度——网络也现在在非常短的时间间隔内连续注入到网络中的分组数。
对上面三个指标进行管制,可用非常著名的漏洞管制器。工作原理如图。
Ⅲ、漏桶机制与加权公平排队相结合
3.综合服务IntServ与资源预留协议RSVP
IntServ特点:
(1)资源预留。一个路由器需要知道不断出现的会话已经预留了多少资源(即链路带宽和缓存空间)
(2)呼叫建立。在一个会话开始之前必须先有一个呼叫建立(又称为呼叫接纳)过程,它需要在其分组传输路径上的每一个路由器都参加。每一个路由器都要确定该会话所需的本地资源是否够用,同时还不要影响到已经建立的会话的服务质量。
IntServ定义了两类服务:
(1)有保证的服务
可保证每一个分组在通过路由器时的排队时延有一个严格的上限。
(2)受控负载的服务
可以使应用程序得到比通常的“尽最大努力”更加可靠的服务。
IntServ共有四个组成部分:
(1)资源预留协议RSVP,它是IntServ的信令协议
(2)接纳控制,用来决定是否同意对某一资源的请求
(3)分类器,用来把进入路由器的分组进行分类,并根据分类的结果把不同类别的分组放入特定的队列。
(4)调度器,根据服务质量要求决定分组发送的前后顺序。
资源预留协议RSVP在进行资源预留时采用了多播树的方式,发送端发送PATH报文(即存储路径状态报文)给所有的接收端指明通信量的特性。每个路由器都要转发PATH报文,而接收端用RESV报文(即资源预留请求报文)进行响应。路径上的每个路由器对RESV报文的请求都可以拒绝或者接受。拒绝时,路由器就发送一个差错报文给接收端,从而终止了这一信令过程。接受时,链路带宽和缓存空间就被分配到这个分组流,而相关的流状态信息就保留在路由器中。“流”是在多媒体通信中的一个常用的名词,定义为具有同样的源IP地址、源端口号、目的IP地址、目的端口号、协议标识符及服务质量需求的一连串分组。
综合服务IntServ体系结构的问题:
(1)状态信息的数量与流的数目成正比
(2)IntServ体系结构复杂
(3)综合服务IntServ所定义的服务质量等级数量太少,不够灵活
4.区分服务DiffServ
Ⅰ、区分服务的基本概念
要点:
(1)力图不改变网络的基础结构,但在路由器中增加区分服务的功能。因此DiffSev将IP协议中原有8位的IPv4的服务器类型字段和IPv6的通信量类字段重新定义为区分服务DS。路由器根据DS字段的值来处理分组的转发。因此利用DS字段的不同数值就可提供不同等级的服务质量。前6位是区分服务码点DSCP,后2位不使用CU(currently unused)。
在使用DS字段之前,因特网的ISP要和用户商定一个服务等级协定SLA。在SLA中指明了被支持的服务类别(可包括吞吐量、分组丢失率、时延、时延抖动、网络的可用性等)和每一类别所容许的通信量。
(2)网络被划分为许多个DS域。DiffServ将所有的复杂性放在DS域的边界结点,而使DS内部路由器工作得尽可能地简单。
(3)边界路由器的功能多,可分为分类器和通信量调节器。
(4)DiffServ提供了聚合功能。DiffServ是把若干个流根据其DS值聚合成少量的流。路由器对相同DS值的流都按相同的优先级进行转发。这就大大简化了网络内部的路由器的转发机制。区分服务DiffServ不需要使用RSVP信令。
Ⅱ、每跳行为PHB
per-hop behavior。行为是指转发分组时路由器对分组是怎样处理的。每条是强调行为只涉及到本路由器转发的这一跳的行为,而下一个路由器再怎么处理则与本路由器的处理无关。
分为迅速转发PBH和确保转发PBH。