2008年5月22日 星期四

Coolstreaming: Design, Theory, and Practice.ppt

這是李波在2005 infocom提出的coolstreaming system在加強後再撰寫的journal paper
這篇paper被刊登在2007 12月的IEEE Transaction on Multimedia
李波現在是香港科技大學的教授

他在2005提出的的coolstreaming是第一篇提出在p2p streaming system上使用data driven概念的paper,由於是第一篇,在這之後很多人都follow他的研究,講到topology,資工的人其實第一時間都會想到tree的架搆,但是tree根本就不適合用在p2p streaming,而data driven則打開了tree的桎梏,這種無序的topology就被命名為swarm,data driven說穿了不神奇,畢竟file based的p2p software如BT/eMule之類的就是data driven

現在的這篇journal paper則改進許多

他將peer定義成3種層次的關係,依序為member、partner、parent/child
一個client會收到固定大小的peer list並將其存到名單中,member是名單中的peer但沒有建TCP交換availability information,而partner就是有建TCP交換availability information的member,然後parent/child就是從partner中挑出來的,有真的傳出/收進sreaming data的peer了,所以顯然的,parent/child包含於partner,而partner又包含於member

他也觀察到原先pool based(BT like)的scheme無論是latency還是overhead都有點太大,latency會變長很直覺,而overhead則是per block的transmission都會有control message的overhead,畢竟每一個block都是要靠程式去拉回來的

可是若是改回push不就又變回tree的topology了嗎?於是他將stream分解成multiple substreams,分解的部份有點像是switch fabric的TDMA或是邏輯閘的Multiplexer,而接受的動作比較像是switch fabric的TDMA或是邏輯閘的DeMultiplexer

之後的一切改變都跟這個有關係了,於是一個stream就被分解成幾個substream,於是一個peer就變成他只需要決定跟哪一個peer要哪一個substream,而非要哪一個block,顯然的,第一,運算變簡單了,第二,control message變少了

他先將stream拆成固定大小的block,每個block都給個sequence number,由於是採用TCP,保證收到的block的順序是inorder的,所以顯然的,一個peer只需要告訴別人他substream的最新block的sequence number即可,於是有幾條substream,就只需要傳幾個sequence number,而用sequence number也比較好運算

他說他將本來的pure pull改進成hybrid pull and push scheme,我的理解是
一個peer (child)決定跟某個peer (parent)要哪個substream的動作是pull,因為是由要的人去跟人家拉回來的
而之後,被要的peer (parent)就一直將child要的substream主動送給他,這裡就是push了,這個部份就跟以前要一個block一個block去要差很多了

另外,他將選擇parent的權利留給child,所以一個parent從不obsolete一個child,而是由child來決定是否要obsolete一個parent
他引進了兩個threshold用來判斷是要obsolete一個parent,而這兩個threshold任何一個被違反那麼child就會決定obsolete他的parent,這兩個threshold分別是Ts和Tp
我的感覺是
Ts就是用來判斷child自己收到的substream的速度是否一致,所以Ts就是在child自己的substream之間比較
Tp就是用來判斷child的某個parnet是否落後其他partner太多的,所以Tp就是parent與自己的所有partner比較
在網路中最難判斷的就是一個peer的上傳頻寬是否足夠,他現在導入了這個機制雖然算出的是相對的結果,不過我覺得這個結果就夠用了,因為,網路的環境太過複雜,頻寬從來就不是固定值,所以不能夠被算出來,這種機制很適合實做的p2p streaming system參考

於是這個機制就可以讓這個p2p system變成self organized system,而self organized又是決定p2p system的scale的關鍵,因為self organized 就可以decentralized,而decentralized後p2p的scale才能變大

整個paper到這裡就差不多了,剩下的就是他證明他這樣設計的p2p overlay會是converge to stable
老實說這一段最關鍵的那個公式我看不懂,他說We can model peer adaptation by a continuous time branching process,很遺憾的,我不知道什麼是continuous time branching process,於是我就沒法理解為什麼他可以直接跳出那個結果,不過這並不防礙這是一篇優秀的實做的系統的paper的事實

後面的部份就是看圖說故事了,沒什麼

這篇paper值得一看

這是我present的ppt

沒有留言: