同儕式網路影音串流傳輸,是目前最受重視的研究方向。因為同儕式網路的機制能 夠有效地節省伺服器端頻寬與計算能力,非常適合在網際網路上提供影音服務並節省營 運成本。BitTorrent 是一種基於同儕網路的檔案傳輸分享協定,因為特殊的獎勵(Incentive)
機制設計,在網際網路上被廣大的使用者下載做為檔案分享的媒介,而且也證明了其同 儕式網路之優異性。對於流量日益劇增的網路影音串流,有許多類BitTorrent 的同儕網 路串流設計(如BASS、CoolStreaming、BiToS);另針對隨選視訊系統亦有許多相關研 究。
2.1 BitTorrent
BitTorrent 是一個熱門的 P2P 的檔案分享架構,於 2001 年由 Bram Cohen 發明,它 將檔案提供者發佈出來分享的檔案切成許多的檔案片段(Piece),下載者下載部份片段 並互相分享彼此的片段,將上傳的負荷分配給下載者。
根據BitTorrent 協議,檔案發佈者會根據要分享的檔案產生一個種子檔案文件,也 簡稱為 Torrent;Torrent 檔描述了原始檔案的一些特性,以及想要下載這個檔案的同儕 們必需知道的基本資訊與同儕列表記錄者(Tracker)資訊,Tracker 是一個集中式的伺 服器,並不負責實際檔案的傳輸,而是幫助這些要下載檔案的同儕可以找到彼此,主要 工作內容是負責紀錄有哪些同儕正在下載或分享該檔案,而每個同儕也會定時向Tracker 通知自己的最新下載狀況。
當使用者想要透過BitTorrent 網路去下載某個檔案的時候,他必須要先取得此檔案 的種子檔,而種子檔一般可透過HTTP 協定向網頁伺服器取得,接著使用者根據種子檔 提供的Tracker 的 IP 位址連到 Tracker 之後,Tracker 回傳給下載者同樣在下載這個檔案 的同儕列表清單。下載者即根據這個清單直接與其它同儕交換檔案片段,進而下載完整 檔案。
3
2.1.1 Piece Selection
由於同儕常與多個檔案提供者請求下載服務,故會產生向哪位同儕請求下載哪一個 片段會較有效率的問題,因此在BitTorrent 的架構中,片段選擇(Piece Selection)就成 為一個重要的議題。片段選擇的主要目的就是希望儘快將不同的片段散佈到不同的同儕 中,以增加同儕彼此之間的分享效率,主要的片段選擇法可以分為下面四種:(1)Strict Priority(2)Rarest First(3)Random First Piece(4)Endgame Mode。
2.1.2 Peer Selection
由於BitTorrent技術不是集中式的資源分配,每一個同儕都有責任讓自己的下載速率 最大化。當同儕下載時,會根據對方同儕提供我們的下傳速度給予適當的回報,對於有 貢獻的同儕則對它提供上傳服務,對於沒有貢獻的同儕就給予阻塞(Choking)。Choking 是暫時拒絕上傳給檔案對方,但仍可以下載,而當Choking暫停時,連線不需要重新建 立。Choking不是BitTorrent的主要技術,但它對於BitTorrent整體的效能表現來講是很重 要的機制。它讓所有可用資源的使用分享最大化,並且提供每個人合理的下載速度,主 要分為:(1)Pareto Efficiency(Tit-For-Tat)(2)Choking Algorithm(3)Optimistic Unchoking1
(4)Anti-Snubbing(5)Upload Only。
2.2 CoolStreaming/DONet
在2004 年,由香港科技大學的Bo Li團隊發表,並實作了DONet(Data-driven Overlay Network)這個架構成為CoolStreaming。CoolStreaming使用Gossip協定來散播同儕列表 清單,類似於BitTorrent的點對點的傳輸協定,可在用戶(Partner)之間互相傳送多媒體 資料封包,並使用隨機的Peer Selection(Tit-For-Tat),在傳遞多媒體內容時也使用「混 合式pull and push」策略,系統主要包含三種模組,分別為Membership Manger、Partnership
4
1 Tit-For-Tat 的行為模式是先將過 20 秒內上傳給自己的速度大於 256 Bytes/sec 的該 Peers,根據其上傳速 度由快至慢做排序後並依序提供它們下載自己的檔案片段。
Manager與Stream Manager,他們彼此分工,使得系統更加易於佈建、更有效率,也更加 強韌與可靠。由於CoolStreaming的成功,使得後期出現的PPLive[11]、PPStream[12]等 P2P視訊串流技術也大多沿用了CoolStreaming的運作模式。圖 1 為DONet的系統示意 圖。
圖1:DONet 系統圖
2.3 BASS
BitTorrent Assisted Streaming System(BASS),為設計於大規模的隨選視訊系統服務,
對BitTorrent 作了少許的修改,並加上外部的多媒體串流伺服器(Media Server),使點 對點傳播技術融合主從式架構(如圖 2),不僅降低多媒體串流伺服器的頻寬負擔,亦減 少了串流播放的等待時間。
由於需仰賴串流「依序」地傳送才能正常播放影音,因此BitTorrent 的最稀有優先 策略(Rarest First)不適合作為串流傳播之用,為處理這個問題,BASS 對 BitTorrent 做 了些許修改:在下載「目前播放片段點」前不會下載任何資料。
5
圖2:BASS 系統架構圖
另外當綜合了多媒體串流伺服器與同儕的連線時,為使BASS 能依序下載串流的片 段,BASS 提供如下圖 3 的 Client Model 運作方式:首先,同儕們先各自下載所需的片 段並存於本地儲存設備直到這些片段被使用;再來,為使同儕們能「依序」地接收影片 串流片段,同儕們會根據以下三種狀況來「放棄」從多媒體串流伺服器下載影音串流片 段:
I. 同儕們已從BitTorrent 同儕網路部分下載該影音片段,此時略過多媒體串流伺服 器。
II. 「正在」從同儕網路中下載片段時,不向多媒體串流伺服器要求串流傳送。
III. 在預計播放的時間抵達前結束收看,此時後段的串流也不需向多媒體串流伺服 器接收。
圖3:BASS Client 模組圖
6
2.4 BiToS
BitTorrent Streaming(BiToS),屬於 BitTorrent 的一種擴充網路協定,其特色在於 BiToS 為支援串流設計了專用的片段選擇策略。由於 BitTorrent 的 Rarest First 機制並不 像影音串流技術需考慮到時間是否過期,故BiToS 對時間敏感度有較佳之考量,其想法 是將需要下載的檔案片段分成Received Pieces、High Priority Set、Remaining Pieces Set 三個階段,並透過可動態調整的機率變數 p 來控制下載 High Priority Set、Remaining Pieces Set 的比例,以影響其運作策略。
圖4:BiToS 替 BitTorrent 支援串流之示意圖
2.5 Cache Replacement in Peer-Assisted VoD Systems
運作在同儕網路下的隨選視訊系統,往往需要一塊快取空間(Cache),供下載完成 後預備播放與播放後分享他人之用。此篇[13]即探討何種快取替換演算法為較佳之選擇,
經過數學推算出最佳化之演算法,與最簡單之基本演算法如LRU、LFU比較後,雖然最 佳化演算法的效能較佳,但大多數狀況中仍推薦使用之演算法越簡單越好。
7