Seminar

開場與演講簡介

  今天大家看到這個網路電視節目TVBS,讓大家知道現在已經有這麼一個服務,約年底會在美國對該地或全世界華人播放,目前在測試階段且伺服器在我的實驗室,不過公司和我並無很大關係,我只是那間公司技術上的顧問。這網路電視主要目的是將台灣所有Cable TV的頻道,超過100以上,轉成網路上的訊號,並透過網路將訊號傳到各地。但各位知道做IPTV的最大問題在何處嗎,光有技術沒有用,因為業者不願意將節目放在網路上,這樣使得他們收不到錢,例如在2004年世界杯足球賽的時候,交大將世界杯節目放在網路上,流量跳了三倍且遭人抗議,因為我們侵權了。但今天介紹的服務就沒有這問題,因為台北有家軟體公司叫中嘉,將電視業者信號轉成網路訊號,並且把內容送至世界各地,以前因為客戶量大就需要很大的伺服器,但今日用peer-to-peer的方式傳送包括voice、video的media,也就是今天要談的主題P2P Streaming Media。

  首來看我們要討論的大綱,第一先介紹peer-to-peer的網路,再來是數位內容如何透過P2P方式傳送,第三是介紹Media Streaming應用在哪方面以及相關技術,最後是P2P安全性與面對的挑戰。

P2P基本概念介紹

  基本上各位應該都知道P2P而且也使用過,像eDonkey、BitTorrent程式,跑這些程式的使用者互相形成一個P2P的網路,這觀念在1969年就有人提出,但當時電腦設備不佳,空有觀念但無法實行,於是它發展到2000年左右,開始有人提供類似P2P的服務,由一台伺服器告訴用戶端哪裡有他想要的音樂檔案,再去該peer下載,當時相當熱門且股票高漲,但業者出面控告侵權後就結束了,這是第一代P2P。第二代P2P有別於第一代的centralized,它是decentralized,沒有一台主要固定的server,是透過到處去尋問檔案而非集中在一台server上,例如問電話號碼播打查號台即可,若找不到就到處去打聽,因此centralized好處是有固定的尋問點,decentralized好處是減少成本。第三代P2P多了加密功能,為了在傳送過程中怕別人攔截於是將資料加密,透過它可隱藏身份和資料。第四代P2P目前最常見是BitTorrent,不僅File Sharing還可傳送即時的影像、音樂,專門做Streaming Media,像今天給大家看的網路電視。

P2P與Client-Server之差異

  P2P和傳統Client-Server比較,強調的重點是Client-Server需要一個server bound,當使用者量非常大時只用一兩個伺服器是絕對不夠,且需要大量頻寬,例如高解析度影像需要700~800kb,一位使用者佔1mb而言,一萬位使用者就要10gb的頻寬,現在頻寬的租金以臺灣來說一個月1mb最便宜需要四、五千元,中華電信則要一萬元,1000mb就要一千萬元,所以無名小站到yahoo去之後,和信電訊要求無名付七、八千萬的頻寬費用,因此頻寬是相當昂貴的,連同機房租金、電費等,一個網站需要大量金錢支撐,隨著無名小站的擴大,交大再也無法養它了,且商業化後也不能在交大校園內架設。

  因此用Client-Serve提供影音服務的障礙相當大,而P2P既不需要server bound也不用太大的頻寬,不用讓每一條線都從伺服器出去,以投影片上的圖示來說,Client-Serve之下每位使用者要看節目都需連接至伺服器,四人就需要四條串流,有人說為何不用Multi-Chain,通常業者就會收不到錢,因為Unit-Chain可以監控到每位使用者的狀況,若是P2P之下伺服器只需一個串流出去即可,各使用者再去互相抓取,此法好處是可節省許多電視頻寬的成本,例如傳送至美國,有一萬個使用者並且有一萬個連結至這個伺服器,佔用最少也要5gb的頻寬,從台灣至美國一年就需好幾千萬的成本,所以透過P2P方式可將成本降至最低。

P2P之應用

  P2P之應用可在許多方面,Skype就是P2P的VOIP方式,還有生物醫學的計算,以及將大量電腦串接起來形成類似超級電腦的技術,甚至在教學上像長春藤或MIT將課程分享出來,而美國國防部也在應用P2P技術,至於哪方面並無公布。還有長度較長的隧道中裝設監視器,透過P2P連結到監控中心隨時觀察,以及商務上應用,公司自行發展一套P2P系統包括security、prtocol,每家分公司視為一個peer,別間公司就無法入侵。還有大眾傳播針對不同區塊打廣告,因現在廣告看板不只靜態的,辦公大樓就是對上班族打廣告,中小學就針對學生,透過P2P傳送動態廣告看板,最後就是娛樂部份,例如下載音樂等。

傳送技術的演進

  至於傳送內容的技術,從早期到現在而言,專門來分送的技術最早期是CDN(Content Distribution Network)由MIT發展出來,例如伺服器在美國,其他日本、亞州、澳洲的內容和美國是相同,把原伺服器東西複製到全世界各地,建成一個content distribution網路,抓取資料不需連到較遠的地方,像美國有許多伺服器將站設在高速電腦中心,因為那邊頻寬快。接著是Web catch,像是在網路上下載的東西,在短時間內放在Web catch,下次要下載時從Web catch直接拿,不用到遠處拿,這些都是分送內容的方式。最後是P2P的方式,就是我們剛才之前講P2P的方式。

兩種角度看P2P

  可以將P2P分兩種角度看,第一是針對它的應用,可分成這幾大類,File Sharing這是大家最常用的,例如mp3互相下載。接著是Publishing和Storage,顧名思義,讓你免費的在網路上發表東西,storage像海洋一樣容納我們存入的東西,但不知東西在哪裡,等於分散式的storage,透過它的軟體將東西存在網路上,要抓時可以抓的到,實際上放在哪裡不知道,原理就是我的電腦跑這P2P的軟體,而硬碟基本上都很大,只要一台貢獻1至2g,多台電腦加起來就是相當大的storage空間,可存很多檔案。最後一類Media delivery就是透過它讓我們看影音,以上是它的應用。

  第二是架構的部份,可以分幾點來看,用P2P來提供你的searching和routing,一般搜尋是直接到伺服器找,造成到伺服器會有瓶頸,若用P2P去找你的搜尋就會分散,不一定只在伺服器找尋,但也可能原先一步就找到的東西,現在變好幾步,這就是將搜尋分散掉。而User anonymity是在P2P傳送時可以隱匿你的名字,保護傳送者與接收者,可以不知不覺將資料做傳送,網路上別人看不見你且資料也幫你加密,有人要攔截也不知你從何來以及資料被加密也看不清楚。所以routing是從頭到尾一站一站,一般TCP在送資料是end-to-end,所有來源位址在header上看得一清二楚,類似我們的轉車,搭車坐台北到高雄,看車子從台北來就知道你從台北出發,可是你若從台北轉到桃園,桃園轉到台中,台中轉到嘉義,嘉義轉台南,台南再轉到高雄,這樣根本不知道你從哪裡來,因為你每一站都轉,所以他只知道你從台南轉過來,不知道你是從台北來,來源經由轉車就無法判斷,透過這樣方式保護網路上的傳送者。最後是Reputation management,因為P2P沒有固定一伺服器,到該peer抓資料時先看它的Reputation值,若此peer只接收不分享則Reputation低,例用一些參數評估此peer的Reputation好壞,根據此決定我們想找的peer,像買東西要找有信譽的廠商。

Media Streaming服務特性與應用

  接著來看Media Streaming服務需要特性,第一是不太需要storage,例如我在看電視,同時別人從這邊轉過去也在看,而我們都不需要儲存,因為資料是即時的,在收看的時候馬上就放出再轉送別處,要存也可以但基本上是不需要的,同時全世界不分白天黑夜,任何時間都要能提供這種服務。第二是要一定的品質,若停格亂七八遭就不會想看。第三是要能夠讓使用者付得起,像一般電視一個月四、五百元正常來說負擔得起,若網路電視也是差不多價格,但節目來自世界各地,使用者當然更願意收看,以上是提供media服務的一些基本條件。

  而Media Streaming可應用在哪些地方呢,像以後我們不需跑錄影帶店,只需上網搜尋即可,付費機制考量,以及許多免費的網路電台且擁有多樣的節目,上網即可收聽。還有運動的轉播,例如王建民球賽不需透過電視,用網路也可直接轉播,再來通訊方面如VOIP、video phone等,以及動態廣告部份,還有教育上的e-learning應用,這些都需用到Media Streaming應用。

Streaming技術

  關於Streaming技術這邊分成幾類,有Streaming的技術然後再Streaming的protocol。Media Streaming有個問題在file sharing時任一bit都不能有錯誤,所以要用TCP/IP,而影音的部份一個畫面錯幾個bit沒太大影響,但怕封包遺漏太多會造成畫面不清楚,所以用Forward correction,例如原本傳送一百個封包,再多送幾個至一百一十個封包,若資料不是太嚴重的遺失就有辦法復原回來,不需要重送,接收者抓到資料也可馬上播放,降低等待的時間。而我們在做Streaming時,早期做VOD時所用的技術,先把頻寬分成k個,再把要送的影音切成k段,例如一個25分鐘的影音切成1分、3分、5分、7分、9分鐘五個段落,1分鐘的從這個channel播放、2分鐘從另個channel播放,若有一新的用戶想看影音,就先去抓一個channel馬上播放,一分鐘時間看第一個channel,同時去抓第二個channel,等於第一分鐘看完時第二分鐘已經累積一些,就算沒完全抓完也可播放,邊抓邊放同時再繼續抓下一個,有點類似接力,這狀態下影音的供應不會斷掉,這是一種技術。第二種技術類似第一種,和前者不同的是影音切割大小一樣,第一位使用者從最初開始看,第二位使用者從中插入看,但晚了一分鐘才從頭開始看,所以傳統的方式是你看第一個channel,我看第二個channel,我比你晚收看所以晚你一分鐘,從第二分鐘開始這兩個channel都被佔用了,有別於傳統作法,第二位使用者雖晚了一分鐘進入,看channel2的同時也去下載別的channel,所以有如一個快取補足了第一個channel,伺服器可以省掉channel的成本,這是patching的方式。另外一個skimming的方式,將影片切成許多部份,當一channel正常播放,第二channel比較慢要求所以播放時間點較慢,利用多一點的頻寬下載快一點,即可追上第一個,讓中途插進來者也能正常播放,讓伺服器少用一個channel,若愈多人集中在multicast這channel則伺服器可省更多channel,這也是種節省頻寬的方法。

Protocol介紹

  接下來是關於大家常聽到的RTP,最主要用途在提供了count set,我的封包內有些count set,例如我們兩個DB的count set會一樣,第一個封包打的是一,第二個封包打的是二,第三個打的是三,接收時就知道一和二之間差的時間單位是一,當我把第一個封包送出去後,等一的時間才能送第二個封包,第二封包也是如此,紀錄了每一封包之間的相對時間,畢竟兩個影音要時間同步是很困難的,尤其是距離隔很遠的時候,例如我們手錶今日同步也許明日就跑掉了,這樣使得每個stream的每個封包間做同步,不論聲音或影像上面都會有這個東西,否則就不知道封包的間隔差多久,像是我的聲音透過VOIP送過去,兩段話中間停頓多久你不知道,說不定是停了幾秒鐘,你需要知道中間間隔,所以送資料時中間會塞一些控制的封包,例如送出去1000個封包,對方收950個封包,當它回來的時候送出者便知道遺失率有百分之五且網路品質不是很好,讓傳送者做一些改變像是降低傳送速度等。剛才講的protocol是一些軟體上或更上層的,基本上常用的都是這些。

Media的壓縮

  談到關於coding,畢竟影音不可能沒壓縮就直接傳送,因為容量太大,所以和stream有關的是影像和聲音壓縮,也是今日討論的目標。MPEG1和現在可隨時隨地聽的mp3音樂和VCD相關,MPEG2是做數位電視和DVD的,MPEG4是對MPEG1做extension與一些web的部份,MPEG7是做搜尋聲音的,例如在網路上找Michael Jordan上籃的影片,也許找不到,不過我們弄個籃球就可找相關有籃球的影像,還有找聲音,例如在網路上找一首歌,可以哼出旋律進行搜尋,目前清大和交大有這部份實驗正在進行著。

  針對MPEG4它可做很多東西,有些同學若做這方面研究應該很清楚,影像由許多單一畫面連續構成,一個畫面為一個scene,畫面上又分成上面藍天中間白雲,藍天、白雲各為一個物件,並把它們抽出來且稱為video物件,這些物件可以分成不同層次來壓縮,例如壓縮十倍、五倍等,呈現效果也不同。這個group of video object plan的說明,基本上有video object plane,電影一秒鐘有24個畫面,電視在台灣和日本是一秒鐘30個畫面,歐洲和香港是一秒鐘25個畫面,所以video object plane是取video中的某一段,在MEPG而言可針對該段去做壓縮,兩段壓縮方式不見的一樣,例如這段都是動態的,壓縮比就會較低,下一段是靜態的,壓縮比會比較高,所以MPEG4定義了標準之後,可將這一些片段group起來,當你放映一個MPEG影像出去透過P2P的方式,我電腦看到畫面和你電腦畫面會因設備不同而有差異,所以可以有不同的方式解壓縮stream。所以現今絕大多數的video透過MPEG的方式,在網路上針對不同使用者的需求,傳送的時候就不是問題,不必一個一個去送,只需要送一次後每人在根據自己需要去解壓縮,因此一個video在每個螢幕上都可以放,不會因為1024*768可以放,但在1280*1024就不能放。

  再來是audio部份,基本上分成Lossy和Lossless,Lossy類似MPEG聲音多多少少會有點失真,Lossless是與原音相同。Voice部份就多了,一般在網路上都透過這一類的token,從不到10k到幾10k的都有,所以關於media coding大家知道他東西很多,且全世界各地也很多人在做,臺灣也是。

Content Search

  再來是content search,在網路上要找一個content,早期的伺服器是很簡單的,不像是centralized的伺服器,就是要找的東西不知道誰有,於是把它廣播出去,旁邊有人有他就回應我,沒有人有就會收回來把他廣播出去,速度會很慢。那THT的話是用hash的方式,從一個table hash到另一table,若沒有則繼續hash下去,透過一層層hash找出想要的資料。

  關於Swarming等等再談,基本上來說這些找的都是精確資料,敘述什麼就照你的文字去找,像我們剛講的音樂、影像或者比較相似的東西搜尋,這些無法幫你找。所以做media streaming的時候,第一個你要buffer data,也不能buffer太多會造成delay很長,問題但當你伺服器很遠的時候,source到destination中間距離很遠,例如從美國到這邊,skype在台灣打聲音很好,但美國到這邊就斷斷續續,封包旅行的愈遠中間經過愈多點,delay愈無法掌控,因此利用P2P的方式說不定從旁邊就可抓到需要的source,所以它streaming的效果會比較好。

Bit torrent的swarming方式

  接著來看最流行的Bit torrent的swarming方式,先執行此程式讓它會先去找到tracker,只要抓到torrent檔裡面會包括一些基本資訊,根據基本資訊去找到附近的peer,再來去找到你想要的資料,就是你可以找到一群peer,從很多人手上拿到一些片段,兜起來就是一個完整影片,像是做交易一樣從別人手中拿再把東西給別人,問題就在新進入時沒東西給別人,它有個機制對於一些已經存在很久的peer,它的Reputation很好,會定期將一部份頻寬隨機丟給這些隨機的peer,每個bit torrent的peer都會保留一些頻寬,透過這些頻寬,會把它抓到的這些資料隨機的丟出去,所以新進入的peer也可收到東西,也能和其他peer進行交易,確保每個peer不會因為沒有東西就收不到。

  再來PPstream是大陸的產品,作法和那個很類似,基本上也是抓資料然後送出去,會提出這個是因為有很多P2P的東西是大陸那邊做出來,他們那邊相當發達是因為人多,P2P就是人愈多愈好玩且不用擔心沒有peer。

Digital Right Management (DRM)

  所以談到streaming、coding之後,最大問題是DRM(Digital Right Management),這戰爭就類似廠商和使用者之間的戰爭,使用者當然希望免費最好,廠商覺得盜版不行會讓我賺不到錢,戰爭至何時不知道,但有人提出這看法,買東西永遠嫌東西貴,不過到廟宇或做禮拜時掏錢就不手軟,於是希望看影片時也能貢獻一點而使用者也能看到東西,但是還不知道多久能走到這階段,目前廠商還是要protected,要防止copy是很難的,重點在防止copy後能否播放出來,例如收到video時上面有浮水印讓你一半畫面看不到,所以DRM基本上是在做這種事。

  這邊舉幾個例子,像windows vista是用PVP(Protected video path)讓你能夠copy但無法執行,需要有授權碼,其他如Intel、IBM、Sony等大廠也都在做DRM,不過audio部份大家都放棄,像是電腦不能播放而一般播放器可以放,而播放器不能播放的電腦則能放,相當難防範,所以audio的DRM已經沒人在做。像Apple和iTunes的做法是它賣的音樂用微軟的logo就可以播放,但必須要在微軟的系統才能,這邊最後看到一些DRM的系統,例如有種機制是影音限制只能看三天或者看三次,或是提供一些傳送過程中不怕被攔截,所以現在要防止他人copy是很困難。

P2P security

  接下來是P2P security,雖然它有些優點,但是缺點也不少,第一個問題是P2P中有很多版權問題,第二個是透過P2P會有許多攻擊與病毒,且對公司而言P2P不好擋,它的protocol是藏在內容裡,必須一個一個去檢查,若內容再做加密那麼檢查就更困難,若封包檢查困難時問題就來了,例如員工下載電影的內容埋藏病毒或木馬,那公司就被植入木馬了,這是相當嚴重,偏偏P2P在公司的防火牆很難擋,像交大買三個檔P2P的設備要價一千萬,可擋到幾百mb但不到1gb,主要在擋出去的P2P,學生下載一些電影後不能再讓外界下載出去,否則出去的P2P到美國或歐洲他們就會回頭抓我們侵權。

P2P的一些挑戰

  第一個是找尋Reputation與source較佳的peer,那麼多peer中隨時找尋一個可靠的,第二個是在動蕩的環境下如何維持影音播放的品質,再來是你的storage如何去維持,像是分配多少頻寬與storage要分享出去,接著是security的問題,P2P中間藏有許多病毒、攻擊,像在德國有80%~90%的頻寬被P2P佔據,以及DRM的問題,所以許多廠商不願意將電影放在網路上,像交大之前想找附近有線電視弄到校園內播放,但他們不願意,唯一只有一家民視願意,因為怕一但放進校園後就會把他再播送到全國,就不必從他們那邊出去。

總結

  P2P是個分散式系統而且可做許多應用,以及再來的ADSL有100mb上下,現在中華電信已經招標了,只要你家ADSL離中華電信機房1.5公里以內就有100mb的速度,和學校的網路一樣能力,這樣P2P之下每家的電腦都可當Super node,很有運用的空間,在未來幾年可能有趨勢發展peer-to-peer很大的改變,例如每個人只要能做出節目,就能夠開一個有線電視台,100mb至少可以放幾十個節目,只需考慮節目從哪裡來。再來是streaming media可以用到很多方面,就像之前提到的,接著是Qos (quality of service),這是目前廠商還不敢嘗試的,因為網路的變化實在太大,不過隨著網路頻寬愈來愈大,P2P會愈來愈順,且這是3G的影音,以後拿手機也可以看電視。

Q&A

Q1:教授請問一下,最近媒體上吵很紅,教育部因為台灣學生P2P非法下載太嚴重,有打算禁掉所有P2P軟體,是否造成以後想做學術研究被抓了,有些加密技術做很好的反而抓不到,且是用校規訂定。以及我們做相關研究,是否有辦法向教育部反應這問題?

A1:那要法律規定,沒人理會校規的,現在也有遠端遙控,說在家裡弄而不是在學校裡。他應該不可能,這個矯枉過正,如果在學校禁止用的話,那學校就用個擋P2P就好了,學校沒錢那教育部再給錢,問題是現在學校裡面擋,那在家也擋不住。

Q2:我想請問一下廣告的問題,目前P2P是比較沒有額外廣告的部份,所以本身難賺錢,比如中國PPstream,那一般來說廣告有辦法即時插播content裡面嗎?那網路的提供者自己插入廣告至別人的content中,此法可行嗎?

A2:廣告有呀,像剛才給各位看的電視,基本上是從cable tv來的廣告,只是透過P2P方式來送。就像我們看球賽會有廣告蓋掉影像一部份,若後制的影像要插入廣告很容易,而現場直播只能以蓋掉的方式。

Q3:請問之前提到這個播送節目至美國的想法為何?

A3:他的主要business model是美國那邊的華人要看台灣或大陸的節目不容易,且頻道只有一兩台,現在把臺灣與大陸好幾個頻道轉成網路上的訊號,透過P2P方式以一個stream送到美國加州去,那邊再透過P2P方式分散到每個家庭,他的頻寬與伺服器的錢可以省很多,比如台灣這邊電視收五百元,轉送至美國再家一百元,美國那邊每戶收二十多元,一筆小錢就可看到很多節目當然樂意,做這個最難部份反而是與每家廠商去洽談接觸。

Q4:藉著剛才這位同學的問題,既然P2P技術還算成熟的話,那為什麼頻道廠商不自己做呢?

A4:做一個頻道需要許多財力支持,且已經有人集中所有頻道,若自己做少數的頻道做再好也沒辦法吸引使用者收看。

Q5:美國大部份家裡用ADSL上網收看,他們上傳頻寬較低,而Bit Streaming同時有download和upload,那download會把upload頻寬吃掉,且download與upload的數量應該差不多,若每個人download和upload一堆的話,實際上就不可行了,理論上要平均每個人download與upload應該差不多這model才會work,因為以前BitTorrent在download TCP時就出現問題,現在streaming如果有好多人在用網路,把upload塞住後其他就無法使用吧?

A5:他們有考慮到這個問題,有一些伺服器存在,若上行1mb~2mb還勉強可以,在抓的時候不一定從單一來源,例如要抓1mb就從十個人各抓100kb。像是頻寬變寬問題就會少,現在家裡的upload還是有點問題,例如下行2mb上行512kb,就不會找你當super node,會特地挑選根據上行頻寬選擇適不適合在你這裡抓東西,這就是它的reputation management要做好。

Q6:請問被駭客破解節目訊號且免費發送的話,有何防範措施?

A6:基本上要去伺服器登入才有辦法下載它的程式播放節目,但問題歸納成一個後端的問題,畢竟一個月20塊的事情,就像租錄影帶回來再copy分享給他人一樣,對一般駭客而言就算破解了也不會拿去賣,沒有太大利益可圖。