P2P電視的網路架構

P2P電視系列三連發,又是想好以後拖延數日才寫的。這是對P2P電視網路的一點技術研究,以下會討論到在〈P2P電視實業計畫〉中提到的 PeerCast 的網路架構。不過 PeerCast 的網路架構和我希望的 BT-like 網狀架構不一樣,它基本上還是樹狀的架構,此為美中不足之處。

傳統串流技術的網路架構是樹狀的,訊號由伺服器發出,然後直接傳送到客戶端,個別客戶端之間沒有聯繫,所有的資料都來自伺服器。因此越多人收聽/收視時,伺服器的負擔越大,頻寬使用越多,成本就會不斷上漲。PeerCast 利用 P2P 技術改善這個問題,方法和其它 P2P 的應用一樣,由接收訊號的客戶端分擔伺服器的工作,所以即使越多人聽,伺服器的負擔還是一樣,而整個網路上的總頻寬和資料流量也隨人數上漲,讓收聽更順暢。不過 PeerCast 的 P2P 技術並不是像 BitTorrent 一樣由客戶端組成網狀網絡並互相傳檔,它的架構還是樹狀的階層式架構,和傳統串流技術不同的只有一項,就是客戶端也要上傳資料給其它人。這種架構可以用一張簡圖表示:

PeerCast-Network.gif
PeerCast 網路架構﹝我叫它「逆老鼠會」架構 XD﹞

伺服器將資料傳給1和2,然後它們兩個客戶端除了收聽外,還各自把資料傳給下線1A、1B、2A、2B,然後它們再傳下去。在這個網路架構中,位階相同的客戶端之間是不交換資料的,它們的資料都來自上一層的客戶端。這個架構的確可以分散源頭伺服器的負擔,也符合P2P的定義,但只要有一個節點出了問題,它所有的下線都會受影響。例如1B的家突然停電了,那1Ba、1Bb和它們的下線都會斷訊,必須要重新找到還有餘力分享上傳的客戶端,其收聽/收視才不會斷訊。不過在經驗上它在斷線後自動找其他來源的能力好像不強,遇到問題時還是手動重新連線比較快。另外一個 P2P 廣播網路 FreeCast 也和 PeerCast 用同樣的網路架構,所以出現的問題應該也差不多。

比「逆老鼠會」的樹狀架構更進步的 P2P 網路是 BitTorrent 式的網狀架構,在這個架構中每一個客戶端都可以傳資料給任何客戶端,但目前 PeerCast 並不支援這項技術。在 PeerCast 的網站上有一連串關於這項功能的討論,可說是目前使用者最希望新增的功能,不過有幾項問題要克服。首先,BT 類的網路在傳輸時要將檔案切成小塊,這些小塊到客戶端會在組合起來成為完整的檔案,這項工作稱為 swarming。Swarming 在只傳檔案 BT 不難辦到,因為檔案是有頭有尾的;也就是一個線段。但是串流是沒頭沒尾的,或說,客戶端不知道哪裡是開頭,也不知道哪裡是結尾,它就像河水不斷流下來;或許可以說,這是個通過客戶端的開始點與結束點的直線。在不知頭尾的情況下,swarming 就沒那麼簡單了。再者,BT 的目標是把檔案的小塊湊齊,小快到達的順序對它來說不重要,但是對串流來說順序就很重要了,不然我們可能會先看到全壘打然後才看投手把球投出。因此串流的每一個小塊都需要在檔頭附上 metadata 才可以,但 metadata 的量也會影響傳輸效率,而這正是 PeerCast 的發展者頭痛的地方。

其實到達順序的問題還可以用一個折衷的方法解決,就是把串流按照一定的時間切割,例如第一分鐘、第二分鐘......,然後一分鐘一分鐘地傳給客戶端,這樣客戶端只要在那一分鐘到達前湊齊所有的小塊就可以了。這個作法類似 buffering。不過作者自己也提出這個方法的限制,那就是聽眾端的時間可能會比DJ端晚很多,甚至一小時以上都有可能。這是用到 buffering 的串流服務都會遇到的問題,以前狂聽台北之音時,常常在連續收聽數小時後發現整點都過了快十分鐘,整點鐘響才出來。只是在傳統的串流網路上就這麼嚴重了,而 PeerCast 傳輸時要經過的節點、各節點的客戶端運作的時間,雖以毫秒計,但累積起來也是很可怕的。這個也是作者 Giles 正在頭痛的問題。

以上是 open source 的 P2P 電視網路的架構和已知的困難。很明顯地,在這些問題解決前P2P電視都不能實用化。有些人也在觀望發展中的 IceSahre,這是由發展 Ogg 格式和 IceCast 的 Xiph.org 提出的計畫。不過現在好像停滯中。

參考:
PeerCast - Wikipedia
FreeCast
FreeCast 網路架構﹝類似 PeerCast﹞
IceShare - XiphWiki

PS: 中國那邊的P2P電視似乎發展的很蓬勃,但是對他們的發展我倒有點不知從何瞭解的困擾。這就像做在觀眾席中看一場不懂規則的球賽一樣,場中看起來玩得很熱烈,但怎麼看就是不知道他們在玩什麼,所以這部份就讓熟門路的人補完吧。

分類: 經世無用之論
FreeLeaf 發表於 ephemeris│2006年08月08日 05:24│[列印版]
Cite this article

本著作物依照創用 CC「姓名標示-非商業性-禁止改作 2.0 台灣」授權使用。
重製、散布、展示及演出本著作時請註明本文的授權條款,以便您的讀者再次使用。
詳細轉載規定。簡單授權‧輕鬆使用 ,更多創用CC的資訊請見:CC Taiwan

本站/本文網址可自由轉貼,自由連結,自由使用

Citing with MLA format:
FreeLeaf. "P2P電視的網路架構." :: ephemeris ::. 8 2006年08月. <http://mt.leafportal.org/archives/001726.html>.

Citing with APA format:
FreeLeaf. (2006, 8). P2P電視的網路架構 Retrieved from http://mt.leafportal.org/archives/001726.html

TrackBack URL for this entry:
http://mt.leafportal.org/mt-tb.cgi/1360

Check In-bound Links with Talk Digger:
In-bound Links to "P2P電視的網路架構"

以下是引用本文的記錄

Comments