標籤:
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)網路。
流媒體 7——多媒體網路應用與交換