1 多媒体网络应用
1.1 多媒体网络应用
如果按照用户使用时的交互的频繁程度来划分,多媒体网络应用可分成3类:
1). 现场交互应用(live interactive applications):
因特网电话和实时电视会议是频繁交互的应用例子。在这种应用场合下,与会者在任何时候都可能说话或者移动。从与会者说话或者移动的动作到达接收端的时延应该小于几百毫秒才能为用户接受。人的听觉系统对延迟小于150毫秒的声音感觉不到有时延,在150毫秒~400毫秒之间的时延可以接受,时延超过400
毫秒的会话就令人甚感别扭。
2). 交互应用(interactive applications):
声音点播、影视点播是交互应用的例子。在这种应用场合下,用户仅仅是要求服务器开始传输文件、暂停、从头开始播放或者是跳转而已。从用户发出请求播放到在客户机上开始播放之间的时延大约在1~5秒钟就可以接受。对信息包时延和抖动的要求不像因特网电话和实时会议那样高。
3). 非实时交互应用(non-interactive applications):
现场声音广播和电视广播或者预录内容的广播是非实时交互应用的例子。在这些应用场合下,发送端连续发出声音和电视数据,而用户只是简单地调用播放器播放,如同普通的无线电广播或者电视广播。从源端发出声音或者电视信号到接收端播放之间的时延在10秒或者更多一些都可以接受。对信号的抖动要求也可以比交互应用的要求低。
1.2 应用开发面临的问题
因特网为所有应用提供两种类型的服务:①可靠的面向连接服务(reliable
connection-oriented service):使用TCP(Transfer Control
Protocol)协议提供的服务属于可靠服务,可靠的TCP服务保证把信息包传送到对方,对信息包的时延要求并不高。②不可靠的无连接服务
(unreliable connectionless service):使用UDP(User Datagram
Protocol)协议提供的服务属于不可靠服务,不可靠的UDP服务不作任何担保,既不保证传送过程中不丢信息包,也不保证时延满足应用要求。此外,因特网现在提供的服务对所有信息包的传送都是平等的,像对时延要求很高的声音信息包和电视信息包在路由器的队列中都没有任何的优先权,在因特网上任何人都要排队等待。
由于对信息包的时延和时延的大小缺乏任何保证,因此开发任何一种成功的多媒体网络应用都是非常困难的。时至今日,因特网上的多媒体应用取得了重大的成就,但还只是有限度的成功。例如,虽然只有几秒种时延的交互式声音点播在因特网上已是老生常谈的事情,但它是工作在因特网上,在越大洋过大海的拥挤的链路上传输时,声音的时延和丢失往往就令人难于接受。即使在大陆区里,由于在高峰期出现的拥挤,使声音的质量大大下降。
归纳起来,目前多媒体网络应用要集中解决个问题是:①提高网络带宽,②减少时延(delay),③减少抖动(jitter)。
2. 因特网上存取声音和电视的方法
经过压缩的声音或者电视文件可以放在Web服务器上,或者放在声音/电视流放服务器(streaming server)上。对于前一种情况,由Web服务器通过HTTP协议把文件传送给客户。对于后一种情况,由流放服务器通过非HTTP协议把文件传送给客户。
由于声音点播和影视点播应用还没有完全直接集成到现在的Web浏览器中,就需要一个单独的应用程序——帮助器(helper),通常叫做媒体播放器
(media
player)来播放声音和影视。典型的媒体播放器要执行好几个功能,包括解压缩、消除抖动、错误纠正和用户播放等功能。现在可以使用像插件这种技术把媒体播放器的用户接口放在Web客户机的用户界面上,浏览器在当前Web页面上保留屏幕空间,并且由媒体播放器来管理。目前,客户机可使用几种方法来读取声音和影视文件,下面介绍其中的三种。
2.1 通过Web浏览器把声音/电视从Web服务器传送给媒体播放器
对客户机读取多媒体的最简方法是把声音/电视文件放到HTTP服务器上,然后通过浏览器把文件传送给媒体播放器
① Web浏览器与Web服务器建立TCP连接,然后提交HTTP请求消息请求传送声音/电视文件。
② Web服务器给Web浏览器发送响应消息和请求的声音/电视文件。
③ Web浏览器检查HTTP响应消息中的内容的类型,调用相应的媒体播放器,然后把声音/电视文件或者是指向文件的指针递送给媒体播放器。
④ 媒体播放器播放声音/电视文件。
这种方法虽然简单,但存在比较大的时延问题。因为媒体播放器必须通过第三者——Web浏览器才能从Web服务器上得到声音/电视文件,而且浏览器需要把整个文件从Web服务器下载到浏览器之后才把它传送给媒体播放器。这样做的结果是,即使对中等大小的文件,在这传输过程中引入的播放时延也是很难接受的。
由此想到的改进方法是去掉中间环节,设法让媒体播放器与Web服务器直接建立链接,
通过Web浏览器把声音/电视从Web服务器传送给媒体播放器
2.2 直接把声音/电视从Web服务器传送给媒体播放器
为把声音/电视文件直接传输给媒体播放器,须要在Web服务器和媒体播放器之间建立直接的TCP连接(TCP connection)
(1) 用户点击超级链接以请求传送声音/电视文件。
(2) 这个超级链接不直接指向声音/电视文件,而是指向一个播放说明文件(presentation description file),这个文件包含有实际的声音/电视文件的地址(URL)。播放说明文件被封装在HTTP响应消息中。
(3) Web浏览器接收到HTTP响应消息之后就检查响应消息中的内容的类型,调用相应的媒体播放器,然后把响应消息中的播放说明文件传送给媒体播放器。
(4) 媒体播放器直接与Web服务器建立TCP连接,然后把传送声音/电视文件的HTTP请求消息发送到TCP连接上。
(5) 在HTTP响应消息中把声音/电视文件传送该媒体播放器并开始播放。
直接把声音/电视从Web服务器传送给媒体播放器
前面提到的播放说明文件是有关声音/电视文件本身的文件,也称元文件(meta
file),它可以是仅由声音/电视文件网址组成的只有一行的文本文件,也可以包含更多内容的文件。例如,播放说明文件可以是同步多媒体集成语言
(Synchronized Multimedia Integration
Language,SMIL)文件,读成“smile”,这是由W3C提出的在Web页面上显示电视的语言。这种文件可以包含多个声音/电视文件以及如何
播放的使用说明,说明在播放文件时各种声音/电视文件应该如何同步等。
使用这种方法传送声音/电视文件的中间环节,但这种方法依然使用HTTP传送文件,不容易使用户获得与Web服务器的满意的交互性能,如暂停、从头开始重放等功能。虽然在市场上有这种产品出售,但一般不推荐这种结构。
2.3 直接把声音/电视从多媒体流放服务器传送给媒体播放器
第三种方法是可考虑从独立的多媒体服务器(如声音服务器、电视服务器)把多媒体文件传送给媒体播放器。这种策略允许应用开发人员为多媒体点播(multimedia-on-demand)设计一种流(式播)放协议(streaming
protocol)。这种方案需要两个服务器:一个是HTTP服务器,用于Web页面服务;另一个是流放服务器,用于声音/电视文件服务。两个服务器可以运行在同一服务机上,也可以运行在不同的服务机上。如果Web服务器非常繁忙,使用两台服务机是有利的。
使用这种结构,媒体播放器就向流放服务器请求传送文件,而不是向Web服务器请求传送文件,媒体播放器和流放服务器之间可以使用它们自己的协议进行通信,声音/电视文件可以使用UDP而不是TCP直接从流放服务器传送给媒体播放器。
直接把声音/电视从多媒体流放服务器传送给媒体播放器
2.4 媒体播放器的主要功能
媒体播放器(media player),用来播放声音或者电视文件,一般都具有下述功能。
(1) 解压缩:几乎所有的声音和电视图像都是经过压缩之后存放在存储器中的,因此无论播放来自存储器或者来自网络上的声音和电视都是要解压缩。
(2) 去抖动:由于到达接收端的每个声音信息包和电视图像信息包的时延不是一个固定的数值,如果不加任何措施就原原本本地把数据送到媒体播放器播放,听起来就会有抖动的感觉,甚至对声音和电视图像所表达的信息无法理解。在媒体播放器中,限制这种抖动的简单方法是使用缓存技术,就是把声音或者电视图像数据先存放在缓冲存储器中,经过一段延时之后再播放。
(3) 错误处理:由于在因特网上往往会出现让人不能接收的交通拥挤,信息包流中的部分信息包在传输过程中就可能会丢失。如果连续丢失的信息包太多,用户接收的声音和图像质量就不能容忍。采取的办法往往是重传。
(4) 用户可控制的接口:这是用户直接控制媒体播放器播放媒体的实际接口。媒体播放器为用户提供的控制功能通常包括声音的音量大小、暂停/重新开始和跳转等等。
3 网络上的信息交换技术
3.1 概述
远程通信网络可分成两类网络:线路交换网络(circuit-switched
networks)和信息包交换网络(packet-switched networks)。信息包交换网络也称数据网络(data
networks)。在线路交换网络中,双方交换消息期间通道上的全部资源(如链路带宽等)都被租用,而在信息包交换网络中双方交换消息期间不租用通道上
的资源,也就是不保留资源,而是根据需要来使用资源,交换的信息包往往需要等待可用资源。打个比方,例如有两种类型的饭馆:一种需要预定的饭馆,另一种不需要或者不接收预定的饭馆。对于前者,在去饭馆之前必须要和第一个打电话(或发email)的人竞争,但到饭馆后通常马上就可与服务员联系并定饭菜;对于后者,客户没有预定座位的问题,但到饭馆之后也许必须等座位,然后才能定饭菜。
电话网络( telephone
networks)是线路交换网络的一个例子。如果要在电话线路上与他人通话或者发送传真,你必须首先与对方建立连接方可进行,这就叫做线路连接,或者叫做线路交换。当线路连接建立之后就租用了这个线路的带宽,你就可以用常数速率传输数据。
因特网是信息包交换网络的例子。例如,如果你想在因特
网上给人发送一个消息,因特网并不给你保留任何带宽。在你的消息到达接收端之前,必须要经过一系列通信链接(link)才能传递到接收端。由于许多消息都在因特网上传输,如果其中有一个链接处发生拥挤,你的消息就不得不要在缓冲存储器中等待,这样就产生了延迟。虽然因特网使用了很多很好的技术来克服这些问题,但依然不能像线路交换网络那样来保证以恒定的速率来传送消息。
不是所有的远程通信网络都属于线路交换网络或者属于信息包交换网络。例如,ATM网络技术既有保留带宽的连接又有不保留带宽的链接。
3.2 线路交换
线路交换(circuit
switching)的特点是,在开始通信之前通信双方由线路交换中心建立物理连接,维持连接的时间长短取决于消息交换的需要。图是线路交换网
络的示意图。在这个网络中,使用2条传输链路(link)把3个线路交换机连接在一起,每条传输链路都有“n条线路”,“n条线路”是指通过时分多路复用技术(time-division multiplexing,TDM)或者频分多路复用技术(frequency division
multiplexing,FDM)来获得的,因此每条链路可同时支持n个连接(connection)。每个接收端(如PC机或者工作站)直接连接到其中的一台交换机,或者通过调制解调器直接连接到交换机。我们使用的普通电话也连接到交换机上,但没有在图上表示出来。当两台主机希望通信时,两台主机之间
就要建立一个专门的端-端线路连接,每个端-端线路得到1/n的链路带宽。
线路交换的概念
TDM是数字通信的主要手段。TDM技术把时间分割成许许多多固定的帧(frame),而每一帧又划分成固定数目的时间间隔,称为时间槽(time
slot)。当用户A与用户B进行通信时,系统为这对用户指定一个时间槽,仅在这个时间槽里建立连接,每对用户连续占用的资源仅是其中的一个时间槽的带宽,这样就可以使许多用户共用一条传输链路。
FDM是模拟通信的主要手段。FDM技术把传输线的频带分割成若干部分,每个频带均可作为一个独立的传输信道使用,因此一对传输线上也可以同时有若干对用户进行通话,每对用户连续占用资源的仅是其中的一个频段。采用频分多路复用技术的通信又称为载波通信。在电话网络中使用FDM,每个链接使用4 kHz的带宽,调频广播使用FDM共享微波频谱。
图简要说明FDM和TDM的概念。从目前的发展趋势看,TDM有取代FDM的可能,美国的大多数电话网络和其他发达国家已使用TDM。
FDM和TDM的概念
许多人认为,线路交换网络建立链接是使用专用线路,因此在通信处于空闲时浪费了宝贵的通信资源。例如打电话,在对话期间出现长时间停顿时,沿着链接线路上的网络资源(频带或者时间槽)不能由其他链接利用。
3.3 信息包交换
通常人们把任何一个应用数据块称为消息(message),例如,ASCII文件,Postscript文
件,Web页面和声音文件等等。在现代的信息包交换(packet
switching)网络中,发送端把整个消息分割成许多小的数据块,经过包装并“贴上”标签之后再发送到网络上。发送到网络上的这种数据包裹称为信息包
(packet),比较准确地说,信息包是一个经过包装且具有固定大小的传输单元,这种数据包裹既包含用户的数据又包含按照协议规定加入的标题,而标题中包含有识别号码、发送地址、接收地址等信息。在接收端把接收到的信息包拆开后重新拼接成原来的完整消息。不像点对点的电路交换需要在收发双方建立物理连接,在信息包交换网络上的每个信息包都包含有目的地址,因此一个消息分装成的许多信息包不必都沿着同一条线路到达目的地,也不必同时到达目的地,到达目的地的次序也不必按照发送的次序,那条信道有空就往那里传送。
发送端把一个很长的消息分割成比较小的信息包之后,在发送端和接收端之间,每个信息包通过通信链路和信息包交换机(packet
switches),有时也称路由器(routers)传送到接收端。信息包在每个通信链路上以传输速率同链路传输速率相等的速度传输。大多数信息包交换
机在输入端使用存储转发方法(store and
forward)把信息包转发到输出链路上,这意味着交换机必须把整个信息包接收完之后才能把信息包的第1位(bit)转发到输出链路上,这样就产生了存储转发时延,时延的长短与信息包的大小(长度)成正比。如果信息包的长度为L,传输链路的数据率为R,时延就为L/R。
在每台交换机中有多个缓冲存储器,每个信息包在输出到链路之前必须要在链路缓冲存储器中排队,如果在信息包到达时缓冲存储器是空的或者没有其他信息包到达的情况下就不需要排
队。因此除了前面介绍的存储转发时延(store-and-forward delays)之外,还要附加信息包的排队时延(queuing
delay),它是一个不确定的时延,取决于网络上的拥挤情况。
图表示一个简单的信息包交换网络。假设主机A和B正在向主机E发送
信息包,信息包A和信息包B首先通过28.8 Kb/s链路传送到第一个信息包交换机,然后把它们传送到1.544
Mb/s的链路上。如果在这条链路上出现拥挤现象,这些信息包就在链路缓存存储器中排队等待输出到链路上。输出到链路上的次序不按照任何预先定义的规则,
是随机的或者是统计方式的,因此这种信息包交换技术也称为统计多路复用技术,它与每个主机获得相同时间槽的TDM技术截然不同。
信息包交换的概念
人们对线路交换和信息包交换技术有不同的看法。对信息包交换持不同见解者认为:由于信息包的时延长短不定且不可预测,因此信息包交换技术不宜用在实时服务业务上,例如,电话会议和电视会议。而对线路交换持不同见解者认为:①信息包交换比线路交换能够提供比较好的带宽共享特性,②比较简单,成本比较低。一般来说,人们比较喜欢信息包交换技术。
信息包交换网络上的第一个国际标准是X.25,它用在模拟线路
上,而且对噪声很敏感。后来开发了用于数字线路的帧中继(frame relay)和通过电话网实现的交换式多媒体/多兆位数据服务(Switched
Multimedia / Multi-Megabit Data Service,SMDS)。
3.4 消息交换与信息包交换
在现代信息包交换(Packet
Switching)网络中,消息从一端传送到另一端的过程是发送端把很长的消息分割成比较小的信息包,然后送到网络上。接收端把接收到的小的信息包拆包之后重新拼接成原来的消息。如果发送端不把消息分成小的信息包,而是把整个原始消息发送到网络,信息包交换网络就执行消息交换(message
switching),这是信息包交换的一种特殊情况。为了加深对信息包交换和消息交换的理解,下面将对它们做一个比较。
图14-08说明消息交换的工作过程。假设在接收端与发送端之间有两个交换机和3条链路,由于交换机的工作方式是存储转发方式,在它转发消息到输出链路之前必须要完整地接收整个消息。
图14-08 消息交换工作原理
图14-09说明信息包交换的工作过程。同样假设在发送端和接收端之间有两个交换机和3条链路。在这个例子中,
假设发送端把消息分割成P1,P2,…,P5共5个信息包,P1已经到达接收端,P2和P3正在网络中传送,而P4和P5仍然在发送端。由于交换机工作在
存储转发方式,在它转发信息包到输出链路之前必须要完整地接收整个信息包。
图14-09 信息包交换工作原理
信息包交换与消息交换相比,它的一个主要优点是端-端之间的时延要小得多。假设一个消息的长度为7.5
Mbits,在发送端和接收端之间有两个交换机和3条链路,每条链路的数据传输速率为1.5
Mb/s。在网络中不发生拥挤的情况下,消息从发送端到发送端所需要的时间可估算如下。
(1) 消息交换:由于交换机使用存储
转发工作方式,在接收到整个消息之前不能向链路发送任何1位数据,因此消息从发送端到第一个交换机需要7.5/1.5 =
5秒。同样,从第一个交换机到第二个交换机需要5秒钟,从第2个交换机到达接收端也需要5秒钟。如图14-10所示,消息从发送端到达接收端共需要15秒
钟。
图14-10 消息交换时延
(2) 信息包交换:假设发送端把消息分成5000个信息包,每包含1.5
Kbit。如图14-11所示,5000包从发送端传输到发送端须要花费的时间约为5.002秒。因此可见,信息包交换比消息交换所花费的时间少得多,这
是因为信息包交换使用的传输技术是并行传输,而消息交换采用的是串行传输。
图14-11 信息包交换时延
使用信息包交换的另一个优点是可大大节省错误处理时间。例如,在消息交换中,当消息中仅有1位数据出错时,整个消息都要重新发送。而在信息包交换中,当出现同样错误时,只需重新传送那个包含错误数据的信息包。因此传送信息包的时间比传送整个消息的时间要少得多。
14.3.5 面向连接服务与无连接服务
因特网通常叫做TCP/IP网络,提供两种类型的服务:无连接服务(connectionless
service)和面向连接服务(connection-oriented
service)。任何一种因特网服务都必须使用这两种服务之一。对这两种服务,每个信息包都带有目的地址,而交换机就按照信息包的目的地址来发送信息包
的。
1. 面向连接服务
在因特网上,应用程序通过使用传送控制协议(TCP)来调用面向连接服务。面向连接服务的
含义是,在开始发送信息包之前发送端和接收端要进行沟通,建立直接连接,并提醒对方准备接收信息包,然后才开始进入信息包的传送过程。面向连接服务提供有
下列3种功能来确保信息包从发送端传送到接收端:
(1) 确认(acknowledgements):当接收端接收到信息包时,接收端向发送端发送一个确认信号,当发送端接收到确认信号时,说明相应的信息包已被对方接收到。
(2) 流程控制(flow control):接收端也许因为忙于其他任务或者限于它的处理能力,须要限制发送端发送信息包的速率,这可在开始沟通时告诉发送端所须要限制的速率。
(3) 拥挤控制(congestion control):当交换机拥挤时,交换机中的缓冲存储器可发生溢出,导致信息包丢失,面向连接服务提供了一种机制(方法)来限制传输速率。
由于采用了上述措施,因特网的面向连接服务被认为是可靠的服务,而因特网的无连接服务被认为是不可靠的服务,理由是它不能确保把数据传送到目的地。
2. 无连接服务
在因特网上,通过使用用户数据包协议(UDP)来调用无连接服务。无连接服务的含义是发送端简单地把信息包送到网络上,在传送信息包之前发送端和接收端
没有沟通的过程,也没有对方来的确认,因而也不知道目的地是否接收到。无连接服务既没有拥挤控制功能,也没有流程控制功能。
目前,为大多数人
比较熟悉的应用程序都使用传输控制协议(TCP),也就是因特网的面向连接服务。这些服务包括Telnet (用于远程登录), SMTP
(用于电子邮件), FTP (用于文件传输)和HTTP
(用于万维网Web)。然而,也有许多应用程序使用用户数据包协议(UDP),这些服务包括正在出现的多媒体应用,例如,因特网电话,声音点播,影视点播
和电视会议等等。
TCP和UDP都是传输层的协议,将在第15章作比较详细的介绍。
14.3.6 网络分类
远程通信网络的分类大致如图图14-12所示。远程通信网络使用线路交换和信息包交换。在线路交换中,使用频分复用频分多路复用(FDM)技术和时分复用多路复用(TDM)技术来提高传输容量。
图14-12 网络分类
信息包交换网络分成两类,一类叫做数据包网络(datagram
network),另一类叫做虚拟线路网络(virtual circuit
network)。如果信息包按照目的地址发送,这种网络就称为数据包网络,因特网的IP协议就是按照目的地址发送信息包;如果信息包按照虚拟线路号发
送,这种网络称为虚拟线路网络。
数据包网络在许多方面与邮政服务类似。当寄件人发送一封信到目的地时,寄件人把信装入信封,并且在信封上写上
带层次结构的收件人地址,如国家-省-市-街道-门牌号-收件人。邮政服务系统就根据信封上的地址把信件送目的地。在数据包网络中,网络上传送的每个信息
包都包含有目的地址,它很类似于邮件上的分等级的地址。由于每台信息包交换机都有路由表,当信息包到达网络中的交换机时,交换机就抽出信息包中的目的地址
部分,并用该地址在路由表中进行检索,以找出合适的外向链路,然后把信息包送到链路上。
虚拟线路就是临时创建的通信通路,虚拟线路网络中信息
包的传送线路由3个部分组成:①发送端和接收端之间的一系列链路和交换设备,称为路径(path)。②沿着这条路径上的虚拟线路号(virtual
circuit
number),一个号码对应路径上的一条链路。③沿途交换设备里的虚拟线路转换表中的表项。发送端和接收端之间的虚拟线路一旦建立,信息包就可选择合适
的虚拟线路号进行发送。由于虚拟线路在每个链路上有不同的虚拟线路号,中间的信息包交换机必须用新的虚拟线路号替代每个行进中的信息包虚拟线路号。
数据包网络对某些消息可提供无连接服务,对某些消息可提供面向连接服务。虚拟线路网络一般都是面向连接服务,例如X.25,帧中继(frame relay)和异步传输模式ATM(Asynchronous Transfer Mode)网络。