欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

驗證流媒體內(nèi)容完整性的方法、設(shè)備以及系統(tǒng)的制作方法

文檔序號:7763916閱讀:470來源:國知局
專利名稱:驗證流媒體內(nèi)容完整性的方法、設(shè)備以及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及一種驗證流媒體內(nèi)容完整性的方法、設(shè)備以 及系統(tǒng)。
背景技術(shù)
流媒體是指采用流式傳輸?shù)姆绞皆诨ヂ?lián)網(wǎng)播放的媒體格式,業(yè)務(wù)運(yùn)營商可以采 用流媒體方式向用戶提供視頻播放業(yè)務(wù),例如寬帶交互式電視(IPTV,Internet Protocol Television)業(yè)務(wù)。目前視頻播放業(yè)務(wù)的發(fā)布手段可以采用節(jié)點(diǎn)輔助分發(fā)方案,即,除了業(yè) 務(wù)運(yùn)營商的流媒體服務(wù)器能夠向用戶發(fā)送流媒體內(nèi)容,用戶也能夠向互聯(lián)網(wǎng)中的其他用戶 發(fā)送自身保存的流媒體內(nèi)容。用戶接收或發(fā)送視頻播放文件是通過業(yè)務(wù)運(yùn)營商提供的終端 設(shè)備來實(shí)現(xiàn),通常這個終端設(shè)備為機(jī)頂盒。為了保證終端設(shè)備所接收的流媒體內(nèi)容正確,終端設(shè)備需要對所接收的流媒體內(nèi) 容進(jìn)行完整性驗證。為了使得業(yè)務(wù)運(yùn)營商能夠提供快速流暢的視頻播放業(yè)務(wù),終端設(shè)備要 能夠絕對保證持續(xù)驗證流媒體內(nèi)容完整性。目前,業(yè)務(wù)運(yùn)營商所采用的方法為流媒體服務(wù)器將流媒體內(nèi)容劃分為許多數(shù)據(jù) 塊,采用基于Merkle樹的樹鏈來構(gòu)造數(shù)據(jù)塊的驗證信息,進(jìn)行網(wǎng)絡(luò)傳輸時所有數(shù)據(jù)塊都攜 帶各自基于Merkle樹的樹鏈構(gòu)造而成的驗證信息,終端設(shè)備按照數(shù)據(jù)塊攜帶的驗證信息 采用基于Merkle樹的樹鏈來驗證所接收的數(shù)據(jù)塊的完整性。上述進(jìn)行流媒體內(nèi)容完整性驗證的過程,也可以用在對端到端(P2P,PeerTo Peer)的連續(xù)數(shù)據(jù)流或流媒體進(jìn)行實(shí)時完整性驗證的工作場景,如P2P文件系統(tǒng),或P2P流 媒體系統(tǒng)。在對現(xiàn)有技術(shù)的研究和實(shí)踐過程中,本發(fā)明的發(fā)明人發(fā)現(xiàn),隨著高清多媒體設(shè)備 的普及,高清流媒體內(nèi)容的容量很大,由于網(wǎng)絡(luò)中能傳輸?shù)臄?shù)據(jù)塊的最大長度是固定的,所 以由高清流媒體內(nèi)容劃分所得的數(shù)據(jù)塊數(shù)量很多,導(dǎo)致按照這些數(shù)據(jù)塊構(gòu)造的Merkle樹 的高度很深,從而使得每個數(shù)據(jù)塊基于Merkle樹的樹鏈構(gòu)造而成的驗證信息的長度很大。 因此在這種情況下,流媒體內(nèi)容進(jìn)行網(wǎng)絡(luò)傳輸時,所有數(shù)據(jù)塊都要攜帶基于Merkle樹的樹 鏈構(gòu)造而成的大容量的驗證信息,會導(dǎo)致終端設(shè)備下載流媒體內(nèi)容的傳輸開銷很大。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種驗證流媒體內(nèi)容完整性的方法和設(shè)備。一種驗證流媒體內(nèi)容完整性的方法,包括流媒體服務(wù)器讀取源流媒體文件的第 N個分片,所述分片包括M個數(shù)據(jù)塊;將所述分片的第M個數(shù)據(jù)塊作為后流媒體文件的第N 個分片的第M個數(shù)據(jù)塊,從所述后流媒體文件的第N個分片的第M個數(shù)據(jù)塊開始,計算所 述后流媒體文件的第N個分片的第m個數(shù)據(jù)塊的驗證信息,通過將第m個數(shù)據(jù)塊的驗證信 息添加到所述源流媒體文件的第N個分片的第m-1個數(shù)據(jù)塊生成第m-1 ‘個數(shù)據(jù)塊,將第 m-Ι'個數(shù)據(jù)塊作為所述后流媒體文件的第N個分片的第m-1個數(shù)據(jù)塊,直至構(gòu)造完所述后流媒體文件的第N個分片的第一個數(shù)據(jù)塊,m屬于1至M之間的任一整數(shù);構(gòu)造所述后流媒 體文件中第N個分片的每個數(shù)據(jù)塊的獨(dú)立驗證信息,并單獨(dú)存儲所述獨(dú)立驗證信息。一種驗證流媒體內(nèi)容完整性的方法,包括終端設(shè)備發(fā)送第一請求消息,所述第一 請求消息用于請求接收的后流媒體文件的分片的第一個數(shù)據(jù)塊的獨(dú)立驗證信息,所述分片 包括K個數(shù)據(jù)塊;接收第一個數(shù)據(jù)塊的獨(dú)立驗證信息;按照所述第一個數(shù)據(jù)塊的獨(dú)立驗證 信息驗證第一個數(shù)據(jù)塊的完整性,當(dāng)?shù)谝粋€數(shù)據(jù)塊是完整的時候,從第一個數(shù)據(jù)塊開始,從 已經(jīng)驗證為完整的第k個數(shù)據(jù)塊中提取出所述分片的第k+Ι個數(shù)據(jù)塊的驗證信息,按照所 述第k+Ι個數(shù)據(jù)塊的驗證信息驗證所述分片的第k+Ι個數(shù)據(jù)塊的完整性,直至驗證完所述 分片的第K個數(shù)據(jù)塊的完整性,k屬于1至K之間的任一整數(shù);在驗證完所述分片的第K個 數(shù)據(jù)塊的完整性之前,當(dāng)?shù)讦觽€數(shù)據(jù)塊的驗證信息缺失時,T為2至K中的任一整數(shù),發(fā)送 第二請求消息,所述第二請求消息用于請求第T個數(shù)據(jù)塊的獨(dú)立驗證信息,接收第T個數(shù)據(jù) 塊的獨(dú)立驗證信息,按照所述第T個數(shù)據(jù)塊的獨(dú)立驗證信息驗證第T個數(shù)據(jù)塊的完整性。一種流媒體服務(wù)器,包括讀取分片單元,用于讀取源流媒體文件的第R個分片, 所述分片包括Z個數(shù)據(jù)塊;構(gòu)造后流媒體文件單元,用于將所述分片的第Z個數(shù)據(jù)塊作為后 流媒體文件的第R個分片的第ζ個數(shù)據(jù)塊,從所述后流媒體文件的第R個分片的第Z個數(shù) 據(jù)塊開始,計算所述后流媒體文件的第R個分片的第Z個數(shù)據(jù)塊的驗證信息,通過將第Z個 數(shù)據(jù)塊的驗證信息添加到所述源流媒體文件的第R個分片的第z-1個數(shù)據(jù)塊生成第
個數(shù)據(jù)塊,將第個數(shù)據(jù)塊作為所述后流媒體文件的第R個分片的第z-1個數(shù)據(jù)塊,直 至構(gòu)造完所述后流媒體文件的第R個分片的第一個數(shù)據(jù)塊,ζ屬于1至Z之間的任一整數(shù); 構(gòu)造獨(dú)立驗證信息單元,用于構(gòu)造所述后流媒體文件中第R個分片的每個數(shù)據(jù)塊的獨(dú)立驗 證信息,并單獨(dú)存儲所述獨(dú)立驗證信息。一種終端設(shè)備,包括發(fā)送請求消息單元,用于發(fā)送第三請求消息,所述第三請求 消息用于請求接收的后流媒體文件的分片的第一個數(shù)據(jù)塊的獨(dú)立驗證信息,所述分片包括 S個數(shù)據(jù)塊;接收驗證信息單元,用于接收第一個數(shù)據(jù)塊的獨(dú)立驗證信息;驗證完整性單元,用于按照所述第一個數(shù)據(jù)塊的獨(dú)立驗證信息驗證第一個數(shù)據(jù)塊 的完整性,當(dāng)?shù)谝粋€數(shù)據(jù)塊是完整的時候,從第一個數(shù)據(jù)塊開始,從已經(jīng)驗證為完整的第S 個數(shù)據(jù)塊中提取出所述分片的第s+1個數(shù)據(jù)塊的驗證信息,按照所述第s+1個數(shù)據(jù)塊的驗 證信息驗證所述分片的第s+1個數(shù)據(jù)塊的完整性,直至驗證完所述分片的第S個數(shù)據(jù)塊的 完整性,s屬于1至S之間的任一整數(shù);在驗證完所述分片的第S個數(shù)據(jù)塊的完整性之前,當(dāng)?shù)贕個數(shù)據(jù)塊的驗證信息缺 失時,G為2至S中的任一整數(shù),發(fā)送第四請求消息,所述第四請求消息用于請求第G個數(shù) 據(jù)塊的獨(dú)立驗證信息,接收第G個數(shù)據(jù)塊的獨(dú)立驗證信息,按照第G個數(shù)據(jù)塊的獨(dú)立驗證信 息驗證第G個數(shù)據(jù)塊的完整性。一種驗證流媒體內(nèi)容完整性的系統(tǒng),包括上述流媒體服務(wù)器和終端設(shè)備。在本發(fā)明實(shí)施例中,流媒體服務(wù)器對源流媒體文件進(jìn)行處理得到后流媒體文件, 其中后流媒體文件中的數(shù)據(jù)塊攜帶下一數(shù)據(jù)塊的驗證信息,流媒體服務(wù)器還構(gòu)造后流媒體 文件中所有數(shù)據(jù)塊各自的獨(dú)立驗證信息,將這些獨(dú)立驗證信息單獨(dú)保存,因此本發(fā)明實(shí)施 例能夠保證終端設(shè)備下載的后流媒體文件中的所有數(shù)據(jù)塊都能絕對持續(xù)得到驗證,并且使得終端設(shè)備下載后流媒體文件所需的傳輸開銷較小。


圖1是本發(fā)明實(shí)施例中驗證流媒體內(nèi)容完整性的方法的實(shí)施例一的流程示意圖;圖2是本發(fā)明實(shí)施例中Merkle樹的示意圖;圖3是本發(fā)明實(shí)施例中驗證流媒體內(nèi)容完整性的方法的實(shí)施例二的流程示意圖;圖4是本發(fā)明實(shí)施例中驗證流媒體內(nèi)容完整性的方法的實(shí)施例三的流程示意圖;圖5是本發(fā)明實(shí)施例中一種流媒體服務(wù)器的實(shí)施例四的邏輯結(jié)構(gòu)示意圖;圖6是本發(fā)明實(shí)施例中一種終端設(shè)備的實(shí)施例五的邏輯結(jié)構(gòu)示意圖;圖7是本發(fā)明實(shí)施例中一種驗證流媒體內(nèi)容完整性的系統(tǒng)的實(shí)施例六的邏輯結(jié) 構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明實(shí)施例提供一種驗證流媒體內(nèi)容完整性的方法,本發(fā)明實(shí)施例還提供相應(yīng) 的設(shè)備以及系統(tǒng)。以下分別進(jìn)行詳細(xì)說明。實(shí)施例一、請參閱圖1,本發(fā)明實(shí)施例中驗證流媒體內(nèi)容完整性的方法的一個實(shí)施 例包括101、讀取源流媒體文件;在流媒體系統(tǒng)中,流媒體內(nèi)容以文件的形式存在,當(dāng)一個新的源流媒體文件被加 入到業(yè)務(wù)運(yùn)營商的流媒體服務(wù)器的時候,流媒體服務(wù)器將該源流媒體文件劃分為一系列的 分片,每個分片包括一定數(shù)量的數(shù)據(jù)塊,其中數(shù)據(jù)塊為網(wǎng)絡(luò)傳輸?shù)淖钚卧?,分片的排序?所有的數(shù)據(jù)塊的排序都是按照流媒體內(nèi)容的播放次序從前到后依次排列,流媒體服務(wù)器需 要以分片為單位處理該源流媒體文件以生成后流媒體文件,當(dāng)流媒體內(nèi)容發(fā)布時,流媒體 服務(wù)器是發(fā)布后流媒體文件,其中后媒體文件的分片的序號與源流媒體文件的分片的序號 --對應(yīng)。在本實(shí)施例中,將以讀取源流媒體文件的第N個分片為例對流媒體服務(wù)器處理源 流媒體文件的過程進(jìn)行描述,其中第N個分片包括M個數(shù)據(jù)塊。102、構(gòu)造后流媒體文件;流媒體服務(wù)器讀取源流媒體文件的第N個分片,其中第N個分片包括M個數(shù)據(jù)塊, 這M個數(shù)據(jù)塊的標(biāo)識為^^,Bn,2,M,構(gòu)造后流媒體文件的第N個分片的過程如下所 述,源流媒體文件除第一個分片之外的剩余分片也是和第N個分片一樣進(jìn)行處理1、將最后一個數(shù)據(jù)塊M作為后流媒體文件的第N個分片的最后一個數(shù)據(jù)塊,即 后流媒體文件的第N個分片的第M個數(shù)據(jù)塊;2、由于哈希摘要算法(例如MD5,SHA-1)具有低計算開銷,高安全性等特性,在本 實(shí)施例中,為了降低驗證開銷,流媒體服務(wù)器采用哈希摘要算法來計算數(shù)據(jù)塊的驗證信息。數(shù)據(jù)塊Bn, m調(diào)用哈希摘要函數(shù)h (),得到哈希值h (Bn, m),然后將哈希值h (Bn, m)添 加到數(shù)據(jù)塊Ish的末尾,構(gòu)成數(shù)據(jù)塊B' ,,H,將數(shù)據(jù)塊B' ,,Η作為后流媒體文件的第N 個分片的第M-I個數(shù)據(jù)塊,然后再調(diào)用哈希摘要函數(shù)h (),生成哈希值h (B ‘ ,,^1),將哈希值 h(B' N^1)添加到數(shù)據(jù)塊Bn,M_2的末尾,構(gòu)成數(shù)據(jù)塊B' N,M_2,將數(shù)據(jù)塊B' N,M_2作為后流媒體文件的第N個分片的第M-2個數(shù)據(jù)塊,繼續(xù)上述操作,直至構(gòu)造完后流媒體文件的第N個 分片的第一個數(shù)據(jù)塊。將源流媒體文件的所有分片都處理完畢后,流媒體服務(wù)器得到后流 媒體文件,該后流媒體文件的每個分片的數(shù)據(jù)塊之間以哈希鏈的形式相互連接。由于流媒體內(nèi)容的發(fā)布是采用節(jié)點(diǎn)輔助分發(fā)方案,流媒體服務(wù)器保存后流媒體文 件的所有分片的備份,并將這些分片分散保存在流媒體系統(tǒng)中的各個終端設(shè)備里,以供請 求播放流媒體內(nèi)容的終端設(shè)備下載,在本實(shí)施例中,流媒體服務(wù)器還將分散保存的分片與 保存分片的終端設(shè)備之間的對應(yīng)關(guān)系以列表的形式保存在目錄服務(wù)器中,目錄服務(wù)器可以 就是流媒體服務(wù)器,也可以是另一個單獨(dú)的服務(wù)器,請求播放流媒體內(nèi)容的終端設(shè)備可以 從目錄服務(wù)器獲得一組擁有某分片的較佳狀態(tài)的終端設(shè)備的地址列表,按照這個地址列表 依次向其他終端設(shè)備請求下載該分片,在下載過程中,若其他終端設(shè)備都無法提供該分片, 終端設(shè)備則會請求流媒體服務(wù)器提供該分片。進(jìn)一步的,為了提高終端設(shè)備下載流媒體內(nèi)容的速度,終端設(shè)備可以在自身的內(nèi) 存中劃出一定容量的緩沖區(qū),并行下載后流媒體文件的多個分片,因此考慮到終端設(shè)備分 片下載的并行性,終端設(shè)備同樣可以對這些并行下載的分片并行進(jìn)行驗證。仍然以流媒體 服務(wù)器構(gòu)造后流媒體文件的第N個分片的過程為例,該過程還包括3、當(dāng)構(gòu)造完后流媒體文件的第N個分片的第一個數(shù)據(jù)塊,流媒體服務(wù)器調(diào)用哈希 摘要函數(shù),生成后流媒體文件的第N個分片的第一個數(shù)據(jù)塊的哈希值,將這個哈希值添加 到后流媒體文件中若干個連續(xù)位于第N個分片前面的分片的第一個數(shù)據(jù)塊中,即將這個哈 希值添加到后流媒體文件的第N-I個分片的第一個數(shù)據(jù)塊中,第N-2個分片的第一個數(shù)據(jù) 塊中,...,以及第N-x個分片的第一個數(shù)據(jù)塊中,其中χ值按照終端設(shè)備在自身的內(nèi)存中劃 出的緩沖區(qū)的大小而定。103、構(gòu)造后流媒體文件的獨(dú)立驗證信息。由于哈希鏈不適用于后流媒體文件的數(shù)據(jù)塊隨機(jī)丟失的場景,為了使得業(yè)務(wù)運(yùn)營 商能夠提供快速流暢的視頻播放業(yè)務(wù),終端設(shè)備要能夠絕對保證持續(xù)驗證流媒體內(nèi)容完整 性,因此終端設(shè)備必須要能夠獲得后流媒體文件的所有數(shù)據(jù)塊的獨(dú)立驗證信息。在本實(shí)施 例中,流媒體服務(wù)器采用基于Merkle樹的樹鏈來構(gòu)造后流媒體文件中每個數(shù)據(jù)塊的獨(dú)立 驗證信息,具體的過程如下后流媒體文件的所有分片構(gòu)造一棵Merkle樹,假設(shè)后流媒體文件有兩個分片,每 個分片各有四個數(shù)據(jù)塊,構(gòu)造Merkle樹的過程具體為=Merkle樹的每一個葉子節(jié)點(diǎn)Ds,t是 由一個數(shù)據(jù)塊Bs,t的哈希值構(gòu)成,即,Ds,t = h(Bs,t),其中,s是分片的序號,t是數(shù)據(jù)塊在第 s個分片中的序號,Ds, t在Merkle樹里是按照從右至左的順序從后流媒體文件的最后一個 分片的最后一個數(shù)據(jù)塊的哈希值開始開始排列在Merkle樹的最低層里,也就是說Merkle 樹的構(gòu)造是從第二個分片的最后一個數(shù)據(jù)塊開始的,Merkle樹的每個父節(jié)點(diǎn)下面所有子節(jié) 點(diǎn)的哈希值串聯(lián)到一起再進(jìn)行哈希計算就得到它們的父節(jié)點(diǎn),即由下面的公式?jīng)Q定,Ds,bi, C = h(Ds,b s, (b+c_1)/2,Ds, (b+c+1)/2 s,c)例如,D1,卜 = I^D1,卜 U,DLhL4),這個過程一直進(jìn) 行下去直至得到Merkle樹的根節(jié)點(diǎn)h,。。t,然后對該根節(jié)點(diǎn)h,。。t進(jìn)行數(shù)字簽名,獲得根節(jié)點(diǎn) 的數(shù)字簽名信息sign (hroot) ,Merkle樹應(yīng)該是二叉平衡樹,如果Merkle樹不平衡,則調(diào)用平 衡二叉樹的平衡算法,使Merkle樹重新平衡。按照后媒體文件所有分片構(gòu)造的Merkle樹 如圖2所示。
構(gòu)造完Merkle樹后,流媒體服務(wù)器將數(shù)據(jù)塊在Merkle樹的驗證路徑上的完整信 息作為該數(shù)據(jù)塊的驗證信息添加到該數(shù)據(jù)塊上,驗證路徑是由樹的每一層上的一個節(jié)點(diǎn)組 成,這些節(jié)點(diǎn)是由該葉子路徑上的兄弟節(jié)點(diǎn)直到根節(jié)點(diǎn)的下一層節(jié)點(diǎn)為止,如對數(shù)據(jù)塊Bu 而言,它的驗證信息為乂811011^)、02,卜2,4、01,1 1,2、01,4、以及數(shù)據(jù)塊的序號3和包含該數(shù) 據(jù)塊的分片的序號1。如果使用單棵Merkle樹,后流媒體文件中一個數(shù)據(jù)塊的驗證路徑的完整信息的 大小很有可能超過網(wǎng)絡(luò)能傳輸?shù)淖畲髷?shù)據(jù)結(jié)構(gòu)的容量大小。為防止這種情況的出現(xiàn),可以 把后流媒體文件的數(shù)據(jù)塊的獨(dú)立驗證信息構(gòu)成多棵Merkle樹,將每棵Merkle樹的驗證路 徑的完整信息的長度限制在最大數(shù)據(jù)塊的長度之內(nèi)。仍然假設(shè)后流媒體文件有兩個分片,每個分片各有四個數(shù)據(jù)塊,當(dāng)前處理到數(shù)據(jù) 塊B2il,遍歷當(dāng)前Merkle樹,找到由哈希值h (B2il)構(gòu)成的葉子節(jié)點(diǎn)D2il在Merkle樹中的位 置,即當(dāng)前Merkle樹的最左端。如果插入葉子節(jié)點(diǎn)D2>1后,該葉子節(jié)點(diǎn)D2>1到根節(jié)點(diǎn)的驗證 路徑的完整信息的大小已超過網(wǎng)絡(luò)能傳輸?shù)淖畲髷?shù)據(jù)結(jié)構(gòu)的容量大小,則保存未插入葉子 節(jié)點(diǎn)D2il的Merkle樹,將葉子節(jié)點(diǎn)D2il作為新建的Merkle樹的第一個葉子節(jié)點(diǎn),新建一棵 Merkle 樹。后流媒體文件中所有數(shù)據(jù)塊的獨(dú)立驗證信息都要單獨(dú)保存,在本實(shí)施例中,可以 將后流媒體文件中所有數(shù)據(jù)塊的獨(dú)立驗證信息保存在驗證服務(wù)器中,驗證服務(wù)器可以就是 流媒體服務(wù)器,也可以是另一個單獨(dú)的服務(wù)器。在本實(shí)施例中,流媒體服務(wù)器對源流媒體文件進(jìn)行處理得到后流媒體文件,其中 后流媒體文件中的數(shù)據(jù)塊攜帶下一數(shù)據(jù)塊的驗證信息,流媒體服務(wù)器還構(gòu)造后流媒體文件 中所有數(shù)據(jù)塊各自的獨(dú)立驗證信息,將這些獨(dú)立驗證信息單獨(dú)保存中,因此本實(shí)施例能夠 保證終端設(shè)備下載的后流媒體文件中的所有數(shù)據(jù)塊都能絕對持續(xù)得到驗證,并且使得終端 設(shè)備下載后流媒體文件所需的傳輸開銷較小,而且分片的第一個數(shù)據(jù)塊的驗證信息用數(shù)字 簽名簽署,有效的杜絕了第一個數(shù)據(jù)塊的驗證信息被偽造的可能性,并且保證了采用哈希 鏈構(gòu)造的分片的后繼數(shù)據(jù)塊的驗證信息的可靠性。實(shí)施例一是從流媒體服務(wù)器的角度來描述驗證流媒體內(nèi)容完整性的方法,下面將 從終端設(shè)備的角度來描述驗證流媒體內(nèi)容完整性的方法。實(shí)施例二、請參閱圖3,本發(fā)明實(shí)施例還提供驗證流媒體內(nèi)容完整性的方法的另一 實(shí)施例,包括301、發(fā)送第一請求消息;當(dāng)終端設(shè)備需要播放某一流媒體內(nèi)容時,終端設(shè)備開始請求包含該流媒體內(nèi)容的 后流媒體文件的下載,實(shí)質(zhì)上,終端設(shè)備是下載后流媒體文件的分片。在本實(shí)施例中,終端 設(shè)備是從后流媒體文件的第一個分片開始依次請求下載,但是由于每個分片從發(fā)送方發(fā)送 到終端設(shè)備接收整個過程所需的時間會因為網(wǎng)絡(luò)等原因而有所不同,因此終端設(shè)備對每個 分片的驗證并不是一定從第一個分片開始。當(dāng)終端設(shè)備下載到某一分片時,終端設(shè)備可以先向目錄服務(wù)器請求能提供該分片 的終端設(shè)備的集合,目錄服務(wù)器根據(jù)擁有該分片的終端設(shè)備的狀態(tài),返回具有較佳狀態(tài)的 一組終端設(shè)備的地址列表,終端設(shè)備根據(jù)目錄服務(wù)器返回的地址列表,依次從地址列表中 選擇一個終端設(shè)備,發(fā)送該分片下載請求,直到有終端設(shè)備響應(yīng)為止,若沒有終端設(shè)備能夠提供該分片,終端設(shè)備則會請求流媒體服務(wù)器提供該分片。下載開始后,終端設(shè)備要對接收 的分片從分片的第一數(shù)據(jù)塊開始進(jìn)行流媒體內(nèi)容完整性驗證,由于接收的分片中沒有攜帶 分片的第一個數(shù)據(jù)塊的驗證信息,因此在本實(shí)施例中,終端設(shè)備向驗證服務(wù)器發(fā)送第一請 求消息,該第一請求消息用于請求終端設(shè)備接收的第一個數(shù)據(jù)塊的驗證信息,302、接收第一個數(shù)據(jù)塊的獨(dú)立驗證信息;終端設(shè)備從驗證服務(wù)器接收第一個數(shù)據(jù)塊的獨(dú)立驗證信息,在本實(shí)施例中,在驗 證服務(wù)器保存的后流媒體文件的所有數(shù)據(jù)塊的獨(dú)立驗證信息是采用與如圖1所示的實(shí)施 例一相同的基于Merkle樹的樹鏈構(gòu)造的。303、對第一個數(shù)據(jù)塊進(jìn)行驗證;在本實(shí)施例中,仍然假設(shè)后流媒體文件有兩個分片,每個分片各有四個數(shù)據(jù)塊,按 照后媒體文件所有分片構(gòu)造的Merkle樹如圖2所示,第一個分片的第一個數(shù)據(jù)塊的獨(dú)立驗 證信息為sign(hra。t,D2,^2,4, D1,4,Dli2,終端設(shè)備對第一個數(shù)據(jù)塊的驗證過程如下1、用對Merkle樹的根節(jié)點(diǎn)進(jìn)行數(shù)字簽名的同樣方法驗證第一個數(shù)據(jù)塊所攜帶的 sign(hroot)的完整性,若驗證結(jié)果是sign(h_t)是完整的,則執(zhí)行以下驗證第一個數(shù)據(jù)塊的 流媒體內(nèi)容完整性的步驟;2、采用哈希算法生成第一個數(shù)據(jù)塊的哈希值D' ia ;3、采用哈希算法計算D' u在Merkle樹上的父節(jié)點(diǎn),即D' 1,1^1,2 = h(D'
Di,2),D 1,1 1,4 — h (D 1,1-1,2,1^,3^1,4),1^ root — h (D 1,1 1,4,D2,1 2,4);4、將h' root與第一個數(shù)據(jù)塊所攜帶的數(shù)字簽名SignOiraJ中的h_t進(jìn)行比較。 如果相同,則第一個數(shù)據(jù)塊是完整的。304、對其他數(shù)據(jù)塊進(jìn)行驗證。當(dāng)?shù)谝粋€數(shù)據(jù)塊經(jīng)過驗證是完整的時候,則從第一個數(shù)據(jù)塊中提取同分片的第二 個數(shù)據(jù)塊的驗證信息,也就是第二個數(shù)據(jù)塊的真實(shí)哈希值,終端設(shè)備采用哈希摘要算法對 接收的第二個數(shù)據(jù)塊進(jìn)行計算,將計算所得的哈希值與真實(shí)的哈希值進(jìn)行比較,如果相同, 則第二個數(shù)據(jù)塊是完整的。當(dāng)?shù)诙€數(shù)據(jù)塊經(jīng)過驗證是完整的時候,則從第二個數(shù)據(jù)塊中 提取同分片的第三個數(shù)據(jù)塊的驗證信息,也就是第三個數(shù)據(jù)塊的真實(shí)哈希值,終端設(shè)備采 用哈希摘要算法對接收的第三個數(shù)據(jù)塊進(jìn)行計算,將計算所得的哈希值與真實(shí)的哈希值進(jìn) 行比較,如果相同,則第三個數(shù)據(jù)塊是完整的。繼續(xù)驗證同分片的后繼數(shù)據(jù)塊,直至驗證完 同分片的最后一個數(shù)據(jù)塊。由于例如網(wǎng)絡(luò)丟包,亂序等種種原因,在驗證完同分片的最后一個數(shù)據(jù)塊之前,終 端設(shè)備會在驗證某一數(shù)據(jù)塊的完整性時發(fā)生該數(shù)據(jù)塊的驗證信息缺失的情況,因此終端設(shè) 備會向驗證服務(wù)器請求該數(shù)據(jù)塊的獨(dú)立驗證信息,采用驗證服務(wù)器發(fā)送的該數(shù)據(jù)塊的獨(dú)立 驗證信息驗證該數(shù)據(jù)塊的完整性,這個過程與步驟203驗證第一個數(shù)據(jù)塊的過程可以是一 樣的,也可以是有所不同的,不同之處在于,當(dāng)終端設(shè)備從驗證服務(wù)器接收到該數(shù)據(jù)塊的獨(dú) 立驗證信息,按照該數(shù)據(jù)塊的獨(dú)立驗證信息提取出該數(shù)據(jù)塊在Merkle樹上的驗證路徑,沿 著驗證路徑逐步構(gòu)造驗證路徑上的節(jié)點(diǎn),當(dāng)構(gòu)造到某一節(jié)點(diǎn)時,若與在驗證其他數(shù)據(jù)塊的 完整性時已保存的相同序號的節(jié)點(diǎn)的內(nèi)容相同,則停止構(gòu)造驗證路徑上的剩余節(jié)點(diǎn),保存 已構(gòu)造的節(jié)點(diǎn),驗證結(jié)果是該數(shù)據(jù)塊是完整的。舉例如下仍然假設(shè)后流媒體文件共兩個分片,每個分片有四個數(shù)據(jù)塊,按照后媒體文件所有分片構(gòu)造的Merkle樹如圖2所示。若第一個分片的第二個數(shù)據(jù)塊丟失,需要驗證第一個 分片的第三個數(shù)據(jù)塊的完整性時,終端設(shè)備會向驗證服務(wù)器請求第一個分片的第三個數(shù)據(jù) 塊的獨(dú)立驗證信息,按照該數(shù)據(jù)塊的獨(dú)立驗證信息提取出該數(shù)據(jù)塊在Merkle樹上的驗證 路徑,沿著驗證路徑逐步構(gòu)造驗證路徑上的節(jié)點(diǎn),因為在驗證第一個分片的第一個數(shù)據(jù)塊 時,當(dāng)?shù)谝粋€分片的第一個數(shù)據(jù)塊是完整的時候,已構(gòu)造的節(jié)點(diǎn)D' u一就是如圖2所示的 Merkle樹的節(jié)點(diǎn)Dlil一的真實(shí)值,所以只要在驗證第一個分片的第三個數(shù)據(jù)塊的過程中生 成的同樣序號的節(jié)點(diǎn)的哈希值與已構(gòu)造的節(jié)點(diǎn)D' "Μ相同,則可判斷第一個分片的第三 個數(shù)據(jù)塊是完整的,當(dāng)?shù)谝粋€分片的第三個數(shù)據(jù)塊的完整的時候,終端設(shè)備從第一個分片 的第三個數(shù)據(jù)塊中提取出第一個分片的第四個數(shù)據(jù)塊,繼續(xù)驗證第一個分片的第四個數(shù)據(jù) 塊,直至驗證完第一個分片的最后一個數(shù)據(jù)塊的完整性。對于每個分片,終端設(shè)備都會設(shè)置一個預(yù)設(shè)值為0的破損數(shù)據(jù)塊的計數(shù)器,當(dāng)驗 證某個數(shù)據(jù)塊為破損時,其處理流程如下1、終端設(shè)備將破損數(shù)據(jù)塊的計數(shù)器加1,并丟棄該數(shù)據(jù)塊;2、若該數(shù)據(jù)塊是不可缺失的,終端設(shè)備重新向提供該分片的終端設(shè)備或者流媒體 服務(wù)器請求下載該數(shù)據(jù)塊;3、若破損數(shù)據(jù)塊的計數(shù)器超過一個預(yù)先設(shè)定的闕值,則該分片被判斷為破損的。 終端設(shè)備將向其他能提供該分片的終端設(shè)備或者流媒體服務(wù)器請求下載該分片。進(jìn)一步的,為了提高終端設(shè)備下載后流媒體文件的速度,終端設(shè)備可以在自身的 內(nèi)存中劃出一定容量的緩沖區(qū),并行下載后流媒體文件的多個分片,因此考慮到終端設(shè)備 分片下載的并行性,終端設(shè)備同樣也可以對這些并行下載的分片并行進(jìn)行驗證,具體為假設(shè)后流媒體文件有4個分片,當(dāng)?shù)谝粋€分片的第一個數(shù)據(jù)塊采用步驟203經(jīng)過 驗證后證實(shí)是完整的之后,終端設(shè)備除了從第一個分片的第一個數(shù)據(jù)塊提取出第一個分片 的第二個數(shù)據(jù)塊的驗證信息,還從第一分片的第一個數(shù)據(jù)塊提取出后繼3個分片的第一個 數(shù)據(jù)塊的驗證信息,如果終端設(shè)備已經(jīng)開始并行下載所有的分片,因此終端設(shè)備可以并行 驗證第一個分片的第二個數(shù)據(jù)塊和后繼3個分片的第一數(shù)據(jù)塊的完整性,直至并行驗證完 所有的分片的完整性。在本實(shí)施例中,終端設(shè)備通過在驗證服務(wù)器中保存的所有數(shù)據(jù)塊的獨(dú)立驗證信 息,在所有數(shù)據(jù)塊的驗證信息不缺失的情況下,從驗證服務(wù)器中提取分片的第一個數(shù)據(jù)塊 的驗證信息,再持續(xù)的對后繼數(shù)據(jù)塊進(jìn)行完整性驗證,在某個數(shù)據(jù)塊的驗證信息缺失的情 況下,從驗證服務(wù)器中提取該數(shù)據(jù)塊的獨(dú)立驗證信息,同樣能夠持續(xù)的對后繼數(shù)據(jù)塊進(jìn)行 完整性驗證,因此在本實(shí)施例中,終端設(shè)備能夠?qū)λ惺盏降臄?shù)據(jù)塊持續(xù)進(jìn)行完整性驗證, 有效的杜絕了檢漏損壞的數(shù)據(jù)塊的可能性。業(yè)務(wù)運(yùn)營商提供的視頻播放業(yè)務(wù)可以讓用戶通過VCR操作對觀看的視頻向前跳 進(jìn)或者向后跳進(jìn),這會導(dǎo)致下一播放的數(shù)據(jù)塊不一定是已被緩沖且通過驗證的數(shù)據(jù)塊,下 面將對終端設(shè)備在VCR操作場景下進(jìn)行數(shù)據(jù)塊的完整性驗證的過程進(jìn)行詳細(xì)描述,實(shí)施例三、請參閱圖4,本發(fā)明實(shí)施例還提供驗證流媒體內(nèi)容完整性的方法的另一 實(shí)施例,包括401、接收用戶的指示消息;當(dāng)用戶想對業(yè)務(wù)運(yùn)營商提供的視頻向前跳進(jìn)或者向后跳進(jìn)時,用戶可以通過遙控器上的VCR操作按鈕執(zhí)行這些操作。終端設(shè)備接收用戶的指示消息,終端設(shè)備可以從該指 示消息中獲知用戶通過VCR操作指定的將被播放的數(shù)據(jù)塊。402、確定將被播放的數(shù)據(jù)塊的位置;終端設(shè)備按照接收的指示消息確定將被播放的數(shù)據(jù)塊在后流媒體文件中所有數(shù) 據(jù)塊里的位置,在本實(shí)施例中,后流媒體文件有兩個分片,第一個分片有八個數(shù)據(jù)塊。終端 設(shè)備按照接收的指示消息確定將被播放的數(shù)據(jù)塊在后流媒體文件中所有數(shù)據(jù)塊里的位置 為第一個分片的第三個數(shù)據(jù)塊。403、判斷將被播放的數(shù)據(jù)塊是否已被緩沖,若否,則執(zhí)行步驟404和步驟405,若 是,則執(zhí)行步驟406;終端設(shè)備確定將被播放的數(shù)據(jù)塊是第一個分片的第三個數(shù)據(jù)塊后,判斷第一個分 片的第三個數(shù)據(jù)塊是否已被緩沖。404、下載包含將被播放的數(shù)據(jù)塊的分片;若將被播放的數(shù)據(jù)塊沒有被緩沖,終端設(shè)備下載包含這個的數(shù)據(jù)塊的分片,也就 是說,終端設(shè)備下載一個分片,在本實(shí)施例中,終端設(shè)備在將被播放的數(shù)據(jù)塊沒有被緩沖的 情況下,下載包含將被播放的數(shù)據(jù)塊的分片而不是下載將被播放的數(shù)據(jù)塊和這個數(shù)據(jù)塊的 后繼數(shù)據(jù)塊,是因為在流媒體系統(tǒng)中,后流媒體文件的發(fā)布采用的是節(jié)點(diǎn)輔助分發(fā)方案,因 此,請求下載一個分片要比請求下載將被播放的數(shù)據(jù)塊和這個數(shù)據(jù)塊的后繼數(shù)據(jù)塊在操作 上更方便。405、驗證將被播放的數(shù)據(jù)塊和后繼數(shù)據(jù)塊的完整性;雖然將被播放的數(shù)據(jù)塊沒有被緩沖,為了提高業(yè)務(wù)運(yùn)營商的視頻播放業(yè)務(wù)的流暢 性,終端設(shè)備不從包含將被播放的數(shù)據(jù)塊的分片的第一個數(shù)據(jù)塊開始進(jìn)行流媒體內(nèi)容完整 性驗證,而是向驗證服務(wù)器請求將被播放的數(shù)據(jù)塊(第一個分片的第三個數(shù)據(jù)塊)的獨(dú)立 驗證信息,從驗證服務(wù)器接收將被播放的數(shù)據(jù)塊的獨(dú)立驗證信息,按照將被播放的數(shù)據(jù)塊 的獨(dú)立驗證信息驗證將被播放的數(shù)據(jù)塊的完整性,當(dāng)將被播放的數(shù)據(jù)塊是完整的時候,即 第一個分片的第三個數(shù)據(jù)塊是完整的時候,終端設(shè)備從中提取出第一個分片的第四個數(shù)據(jù) 塊的驗證信息,當(dāng)?shù)谝粋€分片的第四個數(shù)據(jù)塊是完整的時候,再從中提取出第一個分片的 第五個數(shù)據(jù)塊的驗證信息,終端設(shè)備持續(xù)操作下去,直至驗證完第一個分片的第八個數(shù)據(jù) 塊的驗證信息,更詳細(xì)的驗證過程請參照如圖3所示的實(shí)施例二。406、判斷將被播放的數(shù)據(jù)塊是否已通過完整性驗證,若是,則執(zhí)行步驟407,若否, 則執(zhí)行步驟408 ;若將被播放的數(shù)據(jù)塊已被緩沖,終端設(shè)備判斷將被播放的數(shù)據(jù)塊是否已通過完整 性驗證,若是,則播放將被播放的數(shù)據(jù)塊,若否,終端設(shè)備則重新下載將被播放的數(shù)據(jù)塊,終 端設(shè)備按照從將被播放的數(shù)據(jù)塊的前一數(shù)據(jù)塊中提取出的將被播放的數(shù)據(jù)塊的驗證信息 對將被播放的數(shù)據(jù)塊進(jìn)行完整性驗證,更詳細(xì)的驗證過程請參照如圖3所示的實(shí)施例二。需要說明的是,用戶也可以通過VCR操作將視頻連續(xù)的向前跳進(jìn)或者連續(xù)向后跳 進(jìn),又或者向前跳進(jìn)后再向后跳進(jìn)等等,終端設(shè)備的操作同上述過程類似,就不再贅述。407、播放將被播放的數(shù)據(jù)塊;終端設(shè)備根據(jù)VCR操作開始播放視頻。408、重新下載并驗證將被播放的數(shù)據(jù)塊的完整性。
本實(shí)施例中,當(dāng)用戶通過VCR操作來觀看視頻時,終端設(shè)備在將被播放的數(shù)據(jù)塊 沒有被緩沖的情況下,采用驗證服務(wù)器提供的獨(dú)立驗證信息來驗證將被播放的數(shù)據(jù)塊,在 將被播放的數(shù)據(jù)塊已緩沖的情況下,從將被播放的數(shù)據(jù)塊的前一數(shù)據(jù)塊中提取出的將被播 放的數(shù)據(jù)塊的驗證信息對將被播放的數(shù)據(jù)塊進(jìn)行完整性驗證,因此,在本實(shí)施例中,終端設(shè) 備能夠在VCR操作場景下進(jìn)行數(shù)據(jù)塊的完整性驗證。下面對本發(fā)明實(shí)施例中流媒體服務(wù)器進(jìn)行描述,請參閱圖5,本發(fā)明實(shí)施例中流媒 體服務(wù)器的一個實(shí)施例四包括讀取分片單元501,用于讀取源流媒體文件的第R個分片,第R個分片包括Z個數(shù) 據(jù)塊;構(gòu)造后流媒體文件單元502,用于將第R個分片的第Z個數(shù)據(jù)塊作為后流媒體文件 的第R個分片的第Z個數(shù)據(jù)塊,計算第Z個數(shù)據(jù)塊的驗證信息,將第Z個數(shù)據(jù)塊的驗證信息 添加到第Z-I個數(shù)據(jù)塊中生成第Z-I'個數(shù)據(jù)塊,將第Z-I'個數(shù)據(jù)塊作為后流媒體文件的 第R個分片的第Z-I個數(shù)據(jù)塊,再計算第Z-I'個數(shù)據(jù)塊的驗證信息,將第Z-I'個數(shù)據(jù)塊 的驗證信息添加到第Z-2個數(shù)據(jù)塊中生成第Z-2'個數(shù)據(jù)塊,將第Z-2'個數(shù)據(jù)塊作為后流 媒體文件的第R個分片的第Z-2個數(shù)據(jù)塊,繼續(xù)上述操作,直至構(gòu)造完后流媒體文件的第R 個分片的第一個數(shù)據(jù)塊;構(gòu)造獨(dú)立驗證信息單元503,用于構(gòu)造后流媒體文件中每個數(shù)據(jù)塊的獨(dú)立驗證信 息,并單獨(dú)存儲后流媒體文件中每個數(shù)據(jù)塊的獨(dú)立驗證信息。具體的,構(gòu)造獨(dú)立驗證信息單 元503可以采用基于Merkle樹的樹鏈構(gòu)造后流媒體文件中第R個分片的每個數(shù)據(jù)塊的獨(dú) 立驗證信息。為了提高終端設(shè)備下載流媒體內(nèi)容的速度,終端設(shè)備可以在自身的內(nèi)存中劃出一 定容量的緩沖區(qū),并行下載后流媒體文件的多個分片,因此考慮到終端設(shè)備分片下載的并 行性,進(jìn)一步的,構(gòu)造后流媒體文件單元502還用于,當(dāng)構(gòu)造完后流媒體文件的第R個分片 的第一個數(shù)據(jù)塊,計算后流媒體文件的第R個分片的第一個數(shù)據(jù)塊的驗證信息,將后流媒 體文件的第R個分片的第一個數(shù)據(jù)塊的驗證信息添加到后流媒體文件中若干個連續(xù)位于 第R個分片前面的分片的第一個數(shù)據(jù)塊中,具體的,構(gòu)造后流媒體文件單元502可以按照終 端設(shè)備的緩沖區(qū)的大小確定若干個連續(xù)位于第R個分片前面的分片的數(shù)量。本實(shí)施例中的終端設(shè)備可以與如圖6所示的實(shí)施例五的終端設(shè)備相同。下面對本發(fā)明實(shí)施例中終端設(shè)備進(jìn)行描述,請參閱圖6,本發(fā)明實(shí)施例中終端設(shè)備 的一個實(shí)施例五包括發(fā)送請求消息單元601,用于發(fā)送第三請求消息,該第三請求消息用于請求接收的 后流媒體文件的當(dāng)前分片的第一個數(shù)據(jù)塊的獨(dú)立驗證信息,并且該分片包括S個數(shù)據(jù)塊;接收驗證信息單元602,用于在發(fā)送請求消息單元601發(fā)送完第三請求消息之后, 接收該分片的第一個數(shù)據(jù)塊的獨(dú)立驗證信息;驗證完整性單元603,用于按照第一個數(shù)據(jù)塊的獨(dú)立驗證信息驗證第一個數(shù)據(jù)塊 的完整性,當(dāng)?shù)谝粋€數(shù)據(jù)塊是完整的時候,從第一個數(shù)據(jù)塊開始,從已經(jīng)驗證為完整的第S 個數(shù)據(jù)塊中提取出該分片的第s+1個數(shù)據(jù)塊的驗證信息,按照第s+1個數(shù)據(jù)塊的驗證信息 驗證該分片的第s+1個數(shù)據(jù)塊的完整性,直至驗證完該分片的第S個數(shù)據(jù)塊的完整性,S屬 于1至S之間的任一整數(shù),在驗證完該分片的第S個數(shù)據(jù)塊的完整性之前,當(dāng)?shù)贕個數(shù)據(jù)塊的驗證信息缺失時,G為2至S中的任一整數(shù),發(fā)送第四請求消息,第四請求消息用于請求 第G個數(shù)據(jù)塊的獨(dú)立驗證信息,接收第G個數(shù)據(jù)塊的獨(dú)立驗證信息,按照第G個數(shù)據(jù)塊的獨(dú) 立驗證信息驗證第G個數(shù)據(jù)塊的完整性。進(jìn)一步的,驗證完整性單元603可以包括驗證子單元604,驗證子單元604用于接 收第G個數(shù)據(jù)塊的獨(dú)立驗證信息,按照第G個數(shù)據(jù)塊的獨(dú)立驗證信息提取出第G個數(shù)據(jù)塊 在Merkle樹上的驗證路徑,沿著第G個數(shù)據(jù)塊在Merkle樹上的驗證路徑逐步構(gòu)造該驗證 路徑上的節(jié)點(diǎn),當(dāng)構(gòu)造到某一節(jié)點(diǎn)時,若與在驗證其他數(shù)據(jù)塊的完整性時已保存的相同序 號的節(jié)點(diǎn)的內(nèi)容相同,則停止構(gòu)造該驗證路徑上的剩余節(jié)點(diǎn),保存已構(gòu)造的節(jié)點(diǎn),第G個數(shù) 據(jù)塊是完整的。為了提高終端設(shè)備下載流媒體內(nèi)容的速度,終端設(shè)備可以在自身的內(nèi)存中劃出一 定容量的緩沖區(qū),并行下載后流媒體文件的多個分片,因此考慮到終端設(shè)備分片下載的并 行性,進(jìn)一步,驗證完整性單元603還用于,當(dāng)?shù)谝粋€數(shù)據(jù)塊是完整的時候,從第一個數(shù)據(jù) 塊中提取出連續(xù)位于當(dāng)前分片之后的i個分片的第一個數(shù)據(jù)塊的驗證信息,按照i個分片 的第一個數(shù)據(jù)塊的驗證信息并行驗證i個分片的第一個數(shù)據(jù)塊的完整性,將i個分片中包 含完整的第一個數(shù)據(jù)塊的分片與當(dāng)前分片一起采用同樣的驗證方法并行驗證各自剩余數(shù) 據(jù)塊的完整性。為了終端設(shè)備能夠在VCR操作場景下進(jìn)行數(shù)據(jù)塊的流媒體內(nèi)容完整性驗證,進(jìn)一 步,終端設(shè)備還包括接收指示消息單元605,用于接收用戶的指示消息,該指示消息用于指定通過VCR 操作將被播放的數(shù)據(jù)塊;VCR執(zhí)行單元606用于,按照指示消息單元605所接收的指示消息確定將被播放的 數(shù)據(jù)塊在后流媒體文件中所有數(shù)據(jù)塊里的位置;判斷將被播放的數(shù)據(jù)塊是否已被緩沖,若 將被播放的數(shù)據(jù)塊沒有被緩沖,按照將被播放的數(shù)據(jù)塊在后流媒體文件中所有數(shù)據(jù)塊里的 位置下載包含將被播放的數(shù)據(jù)塊的分片,采用發(fā)送請求消息單元601請求將被播放的數(shù)據(jù) 塊的獨(dú)立驗證信息,接收將被播放的數(shù)據(jù)塊的獨(dú)立驗證信息,按照將被播放的數(shù)據(jù)塊的獨(dú) 立驗證信息驗證將被播放的數(shù)據(jù)塊的完整性;若將被播放的數(shù)據(jù)塊已被緩沖,判斷將被播 放的數(shù)據(jù)塊是否已通過完整性驗證,若是,則播放將被播放的數(shù)據(jù)塊,若否,則重新下載將 被播放的數(shù)據(jù)塊,按照從將被播放的數(shù)據(jù)塊的前一數(shù)據(jù)塊中提取出的將被播放的數(shù)據(jù)塊的 驗證信息對將被播放的數(shù)據(jù)塊進(jìn)行完整性驗證。下面對本發(fā)明實(shí)施例中驗證流媒體內(nèi)容完整性的系統(tǒng)進(jìn)行描述,請參閱圖7,本發(fā) 明實(shí)施例中驗證流媒體內(nèi)容完整性的系統(tǒng)的一個實(shí)施例六包括流媒體服務(wù)器701和終端設(shè)備702,需要說明的是,本實(shí)施例中的流媒體服務(wù)器 701可以與前述圖5所示的流媒體服務(wù)器相同,本實(shí)施例中的終端設(shè)備702可以與前述圖6 所示的終端設(shè)備相同,具體此處不再贅述本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可 以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機(jī)可讀存儲介質(zhì)中,存儲 介質(zhì)可以包括ROM、RAM、磁盤或光盤等。以上對本發(fā)明實(shí)施例所提供的驗證流媒體內(nèi)容完整性的方法以及設(shè)備和系統(tǒng)進(jìn) 行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人 員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明 書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1.一種驗證流媒體內(nèi)容完整性的方法,其特征在于,包括流媒體服務(wù)器讀取源流媒體文件的第N個分片,所述分片包括M個數(shù)據(jù)塊;將所述分片的第M個數(shù)據(jù)塊作為后流媒體文件的第N個分片的第M個數(shù)據(jù)塊,從所述 后流媒體文件的第N個分片的第M個數(shù)據(jù)塊開始,計算所述后流媒體文件的第N個分片的 第m個數(shù)據(jù)塊的驗證信息,通過將第m個數(shù)據(jù)塊的驗證信息添加到所述源流媒體文件的第 N個分片的第m-1個數(shù)據(jù)塊生成第m-1'個數(shù)據(jù)塊,將第m_l'個數(shù)據(jù)塊作為所述后流媒體 文件的第N個分片的第m-1個數(shù)據(jù)塊,直至構(gòu)造完所述后流媒體文件的第N個分片的第一 個數(shù)據(jù)塊,m屬于1至M之間的任一整數(shù);構(gòu)造所述后流媒體文件中第N個分片的每個數(shù)據(jù)塊的獨(dú)立驗證信息,并單獨(dú)存儲所述 獨(dú)立驗證信息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,構(gòu)造所述后流媒體文件中第N個分片的每 個數(shù)據(jù)塊的獨(dú)立驗證信息,具體為采用基于Merkle樹的樹鏈構(gòu)造所述后流媒體文件中第N個分片的每個數(shù)據(jù)塊的獨(dú)立 驗證信息。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,還包括當(dāng)構(gòu)造完所述后流媒體文件的第N個分片的第一個數(shù)據(jù)塊,計算所述后流媒體文件的 第N個分片的第一個數(shù)據(jù)塊的驗證信息,將所述后流媒體文件的第N個分片的第一個數(shù)據(jù) 塊的驗證信息添加到所述后流媒體文件中若干個連續(xù)位于第N個分片前面的分片的第一 個數(shù)據(jù)塊中。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,若干個連續(xù)位于第N個分片前面的分片的數(shù)量由終端設(shè)備的緩沖區(qū)的大小而定。
5.一種驗證流媒體內(nèi)容完整性的方法,其特征在于,包括終端設(shè)備發(fā)送第一請求消息,所述第一請求消息用于請求接收的后流媒體文件的分片 的第一個數(shù)據(jù)塊的獨(dú)立驗證信息,所述分片包括K個數(shù)據(jù)塊;接收第一個數(shù)據(jù)塊的獨(dú)立驗證信息;按照所述第一個數(shù)據(jù)塊的獨(dú)立驗證信息驗證第一個數(shù)據(jù)塊的完整性,當(dāng)?shù)谝粋€數(shù)據(jù)塊 是完整的時候,從第一個數(shù)據(jù)塊開始,從已經(jīng)驗證為完整的第k個數(shù)據(jù)塊中提取出所述分 片的第k+Ι個數(shù)據(jù)塊的驗證信息,按照所述第k+Ι個數(shù)據(jù)塊的驗證信息驗證所述分片的第 k+Ι個數(shù)據(jù)塊的完整性,直至驗證完所述分片的第K個數(shù)據(jù)塊的完整性,k屬于1至K之間 的任一整數(shù);在驗證完所述分片的第K個數(shù)據(jù)塊的完整性之前,當(dāng)?shù)赥個數(shù)據(jù)塊的驗證信息缺失時, T為2至K中的任一整數(shù),發(fā)送第二請求消息,所述第二請求消息用于請求第T個數(shù)據(jù)塊的 獨(dú)立驗證信息,接收第T個數(shù)據(jù)塊的獨(dú)立驗證信息,按照所述第T個數(shù)據(jù)塊的獨(dú)立驗證信息 驗證第T個數(shù)據(jù)塊的完整性。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述后流媒體文件的數(shù)據(jù)塊的獨(dú)立驗證 信息是采用基于Merkle樹的樹鏈構(gòu)造的,接收第T個數(shù)據(jù)塊的獨(dú)立驗證信息,按照所述第 T個數(shù)據(jù)塊的獨(dú)立驗證信息驗證第T個數(shù)據(jù)塊的完整性,具體為接收第T個數(shù)據(jù)塊的獨(dú)立驗證信息;按照所述第T個數(shù)據(jù)塊的獨(dú)立驗證信息提取出第T個數(shù)據(jù)塊在Merkle樹上的驗證路徑,沿著所述驗證路徑逐步構(gòu)造所述驗證路徑上的節(jié)點(diǎn),當(dāng)構(gòu)造到某一節(jié)點(diǎn)時,若與在驗證 其他數(shù)據(jù)塊的完整性時已保存的相同序號的節(jié)點(diǎn)的內(nèi)容相同,則停止構(gòu)造所述驗證路徑上 的剩余節(jié)點(diǎn),保存已構(gòu)造的節(jié)點(diǎn),第T個數(shù)據(jù)塊是完整的。
7.根據(jù)權(quán)利要求5或6所述的方法,其特征在于,還包括當(dāng)?shù)谝粋€數(shù)據(jù)塊是完整的時候,從第一個數(shù)據(jù)塊中提取出連續(xù)位于所述分片之后的j 個分片的第一個數(shù)據(jù)塊的驗證信息,按照所述j個分片的第一個數(shù)據(jù)塊的驗證信息并行驗 證所述j個分片的第一個數(shù)據(jù)塊的完整性,將j個分片中包含完整第一個數(shù)據(jù)塊的分片與 所述分片一起采用同樣的驗證方法并行驗證各自剩余數(shù)據(jù)塊的完整性。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,還包括接收用戶的指示消息,所述指示消息用于指定通過VCR操作將被播放的數(shù)據(jù)塊;按照所述指示消息確定將被播放的數(shù)據(jù)塊在所述后流媒體文件中所有數(shù)據(jù)塊里的位置;判斷將被播放的數(shù)據(jù)塊是否已被緩沖,若將被播放的數(shù)據(jù)塊沒有被緩沖,按照將被播 放的數(shù)據(jù)塊在所述后流媒體文件中所有數(shù)據(jù)塊里的位置下載包含將被播放的數(shù)據(jù)塊的分 片,請求將被播放的數(shù)據(jù)塊的獨(dú)立驗證信息,接收所述將被播放的數(shù)據(jù)塊的獨(dú)立驗證信息, 按照所述將被播放的數(shù)據(jù)塊的獨(dú)立驗證信息驗證將被播放的數(shù)據(jù)塊的完整性;若將被播放的數(shù)據(jù)塊已被緩沖,判斷將被播放的數(shù)據(jù)塊是否已通過完整性驗證,若是, 則播放將被播放的數(shù)據(jù)塊,若否,則重新下載將被播放的數(shù)據(jù)塊,按照從將被播放的數(shù)據(jù)塊 的前一數(shù)據(jù)塊中提取出的將被播放的數(shù)據(jù)塊的驗證信息對將被播放的數(shù)據(jù)塊進(jìn)行完整性 驗證。
9.一種流媒體服務(wù)器,其特征在于,包括讀取分片單元,用于讀取源流媒體文件的第R個分片,所述分片包括Z個數(shù)據(jù)塊;構(gòu)造后流媒體文件單元,用于將所述分片的第Z個數(shù)據(jù)塊作為后流媒體文件的第R個 分片的第Z個數(shù)據(jù)塊,從所述后流媒體文件的第R個分片的第Z個數(shù)據(jù)塊開始,計算所述后 流媒體文件的第R個分片的第ζ個數(shù)據(jù)塊的驗證信息,通過將第ζ個數(shù)據(jù)塊的驗證信息添 加到所述源流媒體文件的第R個分片的第z-1個數(shù)據(jù)塊生成第個數(shù)據(jù)塊,將第 個數(shù)據(jù)塊作為所述后流媒體文件的第R個分片的第z-1個數(shù)據(jù)塊,直至構(gòu)造完所述后流媒 體文件的第R個分片的第一個數(shù)據(jù)塊,ζ屬于1至Z之間的任一整數(shù);構(gòu)造獨(dú)立驗證信息單元,用于構(gòu)造所述后流媒體文件中第R個分片的每個數(shù)據(jù)塊的獨(dú) 立驗證信息,并單獨(dú)存儲所述獨(dú)立驗證信息。
10.根據(jù)權(quán)利要求9所述的流媒體服務(wù)器,其特征在于,所述構(gòu)造獨(dú)立驗證信息單元采用基于Merkle樹的樹鏈構(gòu)造所述后流媒體文件中第R 個分片的每個數(shù)據(jù)塊的獨(dú)立驗證信息。
11.根據(jù)權(quán)利要求9或10所述的流媒體服務(wù)器,其特征在于,所述構(gòu)造后流媒體文件單元還用于,當(dāng)構(gòu)造完所述后流媒體文件的第R個分片的第一 個數(shù)據(jù)塊,計算所述后流媒體文件的第R個分片的第一個數(shù)據(jù)塊的驗證信息,將所述后流 媒體文件的第R個分片的第一個數(shù)據(jù)塊的驗證信息添加到所述后流媒體文件中若干個連 續(xù)位于第R個分片前面的分片的第一個數(shù)據(jù)塊中。
12.根據(jù)權(quán)利要求11所述的流媒體服務(wù)器,其特征在于,所述構(gòu)造后流媒體文件單元按照終端設(shè)備的緩沖區(qū)的大小確定若干個連續(xù)位于第R個分片前面的分片的數(shù)量。
13.—種終端設(shè)備,其特征在于,包括發(fā)送請求消息單元,用于發(fā)送第三請求消息,所述第三請求消息用于請求接收的后流 媒體文件的分片的第一個數(shù)據(jù)塊的獨(dú)立驗證信息,所述分片包括S個數(shù)據(jù)塊;接收驗證信息單元,用于接收第一個數(shù)據(jù)塊的獨(dú)立驗證信息;驗證完整性單元,用于按照所述第一個數(shù)據(jù)塊的獨(dú)立驗證信息驗證第一個數(shù)據(jù)塊的完 整性,當(dāng)?shù)谝粋€數(shù)據(jù)塊是完整的時候,從第一個數(shù)據(jù)塊開始,從已經(jīng)驗證為完整的第s個數(shù) 據(jù)塊中提取出所述分片的第s+1個數(shù)據(jù)塊的驗證信息,按照所述第s+1個數(shù)據(jù)塊的驗證信 息驗證所述分片的第s+1個數(shù)據(jù)塊的完整性,直至驗證完所述分片的第S個數(shù)據(jù)塊的完整 性,s屬于1至S之間的任一整數(shù);在驗證完所述分片的第S個數(shù)據(jù)塊的完整性之前,當(dāng)?shù)贕個數(shù)據(jù)塊的驗證信息缺失時, G為2至S中的任一整數(shù),發(fā)送第四請求消息,所述第四請求消息用于請求第G個數(shù)據(jù)塊的 獨(dú)立驗證信息,接收第G個數(shù)據(jù)塊的獨(dú)立驗證信息,按照第G個數(shù)據(jù)塊的獨(dú)立驗證信息驗證 第G個數(shù)據(jù)塊的完整性。
14.根據(jù)權(quán)利要求13所述的終端設(shè)備,其特征在于,所述驗證完整性單元包括驗證子單元;所述驗證子單元用于接收第G個數(shù)據(jù)塊的獨(dú)立驗證信息,按照所述第G個數(shù)據(jù)塊的獨(dú) 立驗證信息提取出第G個數(shù)據(jù)塊在Merkle樹上的驗證路徑,沿著所述驗證路徑逐步構(gòu)造所 述驗證路徑上的節(jié)點(diǎn),當(dāng)構(gòu)造到某一節(jié)點(diǎn)時,若與在驗證其他數(shù)據(jù)塊的完整性時已保存的 相同序號的節(jié)點(diǎn)的內(nèi)容相同,則停止構(gòu)造所述驗證路徑上的剩余節(jié)點(diǎn),保存已構(gòu)造的節(jié)點(diǎn), 第G個數(shù)據(jù)塊是完整的。
15.根據(jù)權(quán)利要求13或14所述的終端設(shè)備,其特征在于,所述驗證完整性單元還用于,當(dāng)?shù)谝粋€數(shù)據(jù)塊是完整的時候,從第一個數(shù)據(jù)塊中提取 出連續(xù)位于所述分片之后的i個分片的第一個數(shù)據(jù)塊的驗證信息,按照所述i個分片的第 一個數(shù)據(jù)塊的驗證信息并行驗證所述i個分片的第一個數(shù)據(jù)塊的完整性,將i個分片中包 含完整的第一個數(shù)據(jù)塊的分片與所述分片一起采用同樣的驗證方法并行驗證各自剩余數(shù) 據(jù)塊的完整性。
16.根據(jù)權(quán)利要求15所述的終端設(shè)備,其特征在于,還包括接收指示消息單元,用于接收用戶的指示消息,所述指示消息用于指定通過VCR操作 將被播放的數(shù)據(jù)塊;VCR執(zhí)行單元用于,按照所述指示消息確定將被播放的數(shù)據(jù)塊在所述后流媒體文件中 所有數(shù)據(jù)塊里的位置;判斷將被播放的數(shù)據(jù)塊是否已被緩沖,若將被播放的數(shù)據(jù)塊沒有被 緩沖,按照將被播放的數(shù)據(jù)塊在所述后流媒體文件中所有數(shù)據(jù)塊里的位置下載包含將被播 放的數(shù)據(jù)塊的分片,采用所述發(fā)送請求消息單元請求將被播放的數(shù)據(jù)塊的獨(dú)立驗證信息, 接收所述將被播放的數(shù)據(jù)塊的獨(dú)立驗證信息,按照將被播放的數(shù)據(jù)塊的獨(dú)立驗證信息驗證 將被播放的數(shù)據(jù)塊的完整性;若將被播放的數(shù)據(jù)塊已被緩沖,判斷將被播放的數(shù)據(jù)塊是否 已通過完整性驗證,若是,則播放將被播放的數(shù)據(jù)塊,若否,則重新下載將被播放的數(shù)據(jù)塊, 按照從將被播放的數(shù)據(jù)塊的前一數(shù)據(jù)塊中提取出的將被播放的數(shù)據(jù)塊的驗證信息對將被 播放的數(shù)據(jù)塊進(jìn)行完整性驗證。
17. —種驗證流媒體內(nèi)容完整性的系統(tǒng),包括如權(quán)利要求9至12中任一項所述的流媒體服務(wù)器和如權(quán)利要求13至16中任一項所 述的終端設(shè)備。
全文摘要
本發(fā)明實(shí)施例公開了一種驗證流媒體內(nèi)容完整性方法,還提供相應(yīng)的設(shè)備和系統(tǒng)。在本發(fā)明實(shí)施例中,流媒體服務(wù)器對源流媒體文件進(jìn)行處理得到后流媒體文件,其中后流媒體文件中的數(shù)據(jù)塊攜帶下一數(shù)據(jù)塊的驗證信息,流媒體服務(wù)器還構(gòu)造后流媒體文件中所有數(shù)據(jù)塊各自的獨(dú)立驗證信息,將這些獨(dú)立驗證信息單獨(dú)保存,因此本發(fā)明實(shí)施例能夠保證終端設(shè)備下載的后流媒體文件中的所有數(shù)據(jù)塊都能絕對持續(xù)得到驗證,并且使得終端設(shè)備下載后流媒體文件所需的傳輸開銷較小。
文檔編號H04N21/238GK102137089SQ201010528198
公開日2011年7月27日 申請日期2010年11月1日 優(yōu)先權(quán)日2010年11月1日
發(fā)明者朱俊華 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
平武县| 广平县| 三台县| 岳西县| 揭东县| 宜君县| 宁乡县| 和顺县| 武义县| 青河县| 娄烦县| 克什克腾旗| 铜陵市| 九江市| 大埔县| 永仁县| 根河市| 苗栗市| 通渭县| 明溪县| 玉环县| 唐海县| 沙田区| 浦城县| 太白县| 海丰县| 随州市| 万荣县| 巴里| 苏州市| 醴陵市| 奉节县| 云南省| 玉环县| 镇安县| 陈巴尔虎旗| 隆德县| 江北区| 安西县| 甘南县| 抚松县|