數(shù)據(jù)傳輸協(xié)議是指在兩臺設備之間傳輸數(shù)據(jù)的標準化格式。協(xié)議類型可以確定諸如錯誤檢查方法、數(shù)據(jù)壓縮方法,以及文件結束確認之類的變量。如果所有的網(wǎng)絡都是以同一方式構建的,并且所有網(wǎng)絡軟件和設備的行為都類似,那么只需要一種協(xié)議即可處理所有的數(shù)據(jù)傳輸需求。而在現(xiàn)實中,Internet是由數(shù)百萬運行各種軟硬件組合的不同網(wǎng)絡組成的。因此,為了以可靠方式向客戶端傳輸數(shù)字媒體內(nèi)容,就需要有一組設計良好的協(xié)議。為了實現(xiàn)流式播放,Windows
Media Services通過使用控制協(xié)議插件支持Microsoft
Media服務器(MMS)協(xié)議、實時流式傳輸協(xié)議(RTSP),以及超文本傳輸協(xié)議(HTTP)。
1.3.1 Windows Media
Servers所需要的協(xié)議類型
Windows Media
Services通過使用控制協(xié)議插件來管理這些協(xié)議的使用。Windows
Media Services包括WMS MMS控制協(xié)議插件、WMS
RTSP控制協(xié)議插件和WMS HTTP控制協(xié)議插件。除WMS
HTTP控制協(xié)議插件外,其他插件在默認情況下都是啟用的。
控制協(xié)議插件接收傳入客戶端請求,確定該請求表示什么操作(例如,啟動或停止流式播放),將請求轉換為命令形式,然后將該命令傳遞給服務器。在出現(xiàn)錯誤或狀態(tài)變化時,控制協(xié)議插件還可以向客戶端返回通知信息。
前面所列出的協(xié)議插件處理高級別的數(shù)據(jù)交換,而諸如用戶數(shù)據(jù)報協(xié)議(UDP)和傳輸控制協(xié)議(TCP)等基本網(wǎng)絡協(xié)議則用于管理諸如網(wǎng)絡連接和數(shù)據(jù)包糾錯之類的基本任務。MMS、RTSP協(xié)議與UDP或TCP協(xié)議一起組合使用。
圖4-3描述了Windows
Media Services如何使用不同的協(xié)議在Windows
Media服務器、編碼器、內(nèi)容源以及客戶端之間協(xié)商連接。

1.3.2 使用MMS協(xié)議
Microsoft
Media服務器(MMS)協(xié)議是Microsoft為Windows
Media
Services的早期版本開發(fā)的專有流式媒體協(xié)議。在以單播流方式傳遞內(nèi)容時,可以使用MMS協(xié)議。此協(xié)議支持快進、倒回、暫停、啟動和停止索引數(shù)字媒體文件等播放機控制操作。如果要支持使用Windows
Media
Player早期版本的客戶端,則需要使用MMS或HTTP協(xié)議滿足其流請求,如圖4-4所示。
如果由播放機指定的連接URL使用了MMS(例如,s://server_name/publishing_point_name/file_name),那么播放機就可以使用協(xié)議翻轉(在Windows
Media
Server無法通過特定協(xié)議建立連接時從一種協(xié)議切換到另一種協(xié)議的過程)協(xié)商使用最佳協(xié)議。MMSU和MMST是MMS協(xié)議的專門化版本。MMSU基于用戶數(shù)據(jù)報協(xié)議(UDP),是流式播放的首選協(xié)議。MMST基于傳輸控制協(xié)議(TCP),用在不支持UDP的網(wǎng)絡上。

如果需要強制服務器使用特定的協(xié)議,可以在公告文件中標明要使用的協(xié)議。用戶還可以在內(nèi)容地址中指定協(xié)議(如mmsu://server_name/publishing_point_name/file_name)。為了利用協(xié)議翻轉,建議在URL中使用通用的MMS協(xié)議。這樣,播放機便可以使用MMSU或MMST協(xié)議連接到流。如果播放機無法通過兩種協(xié)議中的任一種成功連接到流,則會嘗試使用超文本傳輸協(xié)議(HTTP)進行連接。
Windows
Media Serives通過WMS
MMS服務器控制協(xié)議插件實現(xiàn)MMS協(xié)議。在Windows Media
Serives的默認安裝中,此插件是啟用的,并且綁定到TCP端口1755和UDP端口1755。
1.3.3 使用RTSP協(xié)議
WMS也可以使用實時流式傳輸協(xié)議(RTSP)以單播流方式傳遞內(nèi)容,如圖4-5。這是一個應用程序級別的協(xié)議,是為控制實時數(shù)據(jù)(如音頻和視頻內(nèi)容)的傳遞而專門創(chuàng)建的。此協(xié)議是在面向糾錯的傳輸協(xié)議基礎上實現(xiàn)的。該協(xié)議支持停止、暫停、倒回及快進索引Windows
Media 文件等播放機控制操作??梢允褂?span> RTSP 將內(nèi)容傳輸?shù)竭\行Windows Media
Player 9系列(或更高版本)或Windows Media Services
9系列的計算機。RTSP是一個控制協(xié)議,該協(xié)議與數(shù)據(jù)傳遞實時協(xié)議(RTP)依次發(fā)揮作用,實現(xiàn)向客戶端提供內(nèi)容。
如果連接URL中使用了RTSP(如rtsp://
server_name/publishing_point_name/file_name),那么RTSP會自動協(xié)商內(nèi)容的最佳傳遞機制。然后該協(xié)議指示RTP協(xié)議使用用戶數(shù)據(jù)報協(xié)議(UDP)傳遞流式內(nèi)容,或者在不支持UDP的網(wǎng)絡上使用一種以傳輸控制協(xié)議(TCP)為基礎的協(xié)議進行傳遞。
如果需要強制服務器使用特定的協(xié)議,可以在公告文件中標明要使用的協(xié)議。用戶還可以在內(nèi)容地址中指定協(xié)議(如rtspu://server_name/publishing_point_name/file_name)。為了利用協(xié)議翻轉,建議在URL中使用通用的RTSP協(xié)議。這樣,播放機便可以使用RTSPU或RTSPT協(xié)議連接到流。如果播放機無法通過任意一種RTSP協(xié)議成功連接到流,則會嘗試使用某種MMS協(xié)議進行連接。
Windows Media Services通過WMS
RTSP服務器控制協(xié)議插件實現(xiàn)RTSP。在Windows Media
Services的默認安裝中,此插件是啟用的,并且綁定到TCP端口554。

1.3.4 使用HTTP協(xié)議
通過使用超文本傳輸協(xié)議(HTTP),您可以將內(nèi)容從編碼器傳輸?shù)?span>Windows
Media服務器,在運行Windows Media
Services的不同版本的計算機間或被防火墻隔開的計算機間分發(fā)流,以及從Web服務器上下載動態(tài)生成的播放列表。HTTP對于通過防火墻接收流式內(nèi)容的客戶端特別有用,因為HTTP通常設置為使用端口80,而大多數(shù)防火墻不會阻斷該端口,如圖4-6所示。