• 沒有找到結果。

本論文之系統是由 Massive Deployment System(MDS)[1] [2]系 統修改而來,主要修改了 Host 與 MDS Client 兩個元件,使其支援檔 案分群與優先權機制。

4.1 傳統 BitTorrent 檔案結構

圖 16:傳統 BitTorrent 檔案結構

傳統的 BitTorrent 檔案結構,在製作 Metainfo File 時,會將所有 檔案線性化成一個群組,意思是每個檔案的後段不滿一個片段的地方,

會與下一個檔案的前段相接,如圖 16 所示,以合作企業,群想網路 科技股份有限公司為例,利用傳統 BitTorrent 製作的 Metainfo File,

導致各個模組檔案被分割成片段時,彼此頭尾相接,當麻將玩家欲下 載麻將遊戲,在這種情況,必須將所有檔案,包含非麻將所需部分皆 下載,才可進行遊戲,萬一總體遊戲檔案體積龐大,下載將曠日廢時,

這是採用過去 MDS 系統所遭遇的問題。

4.2 系統檔案結構

如同上節所述,我們希望在 MDS 系統所產生的 Signature 檔案中 使檔案分群。當遊戲公司將各個模組之間的關係定訂出來後,本論文 所改良之 Host 即可以依照其規定之關係,將檔案分群,這邊採用的 作法是,群組後端不足一片 Piece 的部分,利用一個以「0」值填滿 之無意義檔案補足,並賦予其一不與其他群組重複之檔名。如此,原 本的群組檔案加上新增的無意義檔案,必可以被所定義片段大小整除,

不會與下一個群組的檔案一同分割在同一個片段中。

下圖即是系統檔案分群之圖例說明:

圖 17:檔案分群

圖 17 中所描述內容為,同顏色之模組即同一群組,可見三群,

分別為群組 A、群組 B 和群組 C,每個群組不足一個片段部分,由無 意義檔案補足(灰色區塊)。

4.3 檔案群組與優先權

因為遊戲檔案的載入,通常會有模組區分,且有其順序性,若是 先載入必要模組,玩家即可進入遊戲。但是採用 MDS 系統來進行檔 案發佈時,除了所有檔案線性化為一個群組之外,片段的下載基本上 是採取隨機挑選下載,玩家無法預期何時可以進入遊戲。因此,在將

檔案分群之後,系統會針對各個檔案增加優先權設定,如下圖所示。

圖 18:檔案群組與優先權

如圖 18 例子,以群想麻將玩家為例,遊戲分為兩階段,先進入 大廳,再進行遊戲,以啟動大廳來說,必要模組有「啟動程式」、「核 心模組」,待大廳啟動,麻將玩家只需要再下載「麻將」模組,即可 進入遊戲,因此對該玩家來說,不管總體發佈檔案體積多大,只要先 行下載「啟動程式」、「核心模組」、「麻將」這三個模組,就可進行遊 戲。

4.4 優先群組與遊戲更新檔

遊戲公司經常會針對遊戲 bug 進行修正,以期提高玩家進行遊戲 的品質,若是使用 MDS 系統發佈檔案,每一次發佈更新檔後所製作 之 Signature,對於 MDS Client 來說,都是一份全新的下載。導致遊戲 下載變的非常沒有效率,如果只需下載更新檔,對於玩家來說,遊戲 體驗將不會受到太多影響。如下圖所示。

圖 19:遊戲群組與更新檔

以「麻將」模組更新為例,玩家只需下載麻將模組所在之片段即 可,其他群組則不受到影響,因為系統已將檔案分群,就算所在片段

位置與前次 Signature 不一樣,但是新版 Signature 中所記載之 Hash 值是相同的,不會對於檔案的驗證造成影響。

下表是系統所產生之 Signature 欄位狀態。

表 2:Signature

4.5 Signature 發佈流程

本節將介紹系統中 Signature 發佈過程。Signature 是由 Host 製作,

發佈流程基本上與原本之 MDS Host 沒有太大差別,只是在本系統中,

Signature 包含了群組優先權之資訊。

圖 20:Signature 發佈流程步驟一

圖 20 描述 Host 讀入所欲發佈檔案,除了依照 BitTorrent Protocol 製作 Signature 之外,其中也包含群組優先權之資訊。

圖 21:Signature 發佈流程步驟二

圖 21 描述 Host 製作 Signature 完畢之後,將之送至 Database 中 儲存,如此 Database 中即會保有一份此 Signature 之相關資訊。

圖 22:Signature 發佈流程步驟三

圖 22 是描述 Signature 發佈的最後一個步驟,Host 會將所欲發佈 檔案(File)傳送至 Super Seeder 處。如此 Super Seeder 才可發送檔 案片段給用戶端。

4.6 Client

本系統之 Client 基本上是由 MDS Client 修改而來,目的是能夠支 援讀取 Signature 所加入之群組優先權資訊,並且支援優先權下載。

並且能夠在所規定之優先權群組下載完畢後,進行其他動作或中斷下

即使在製作 Signature 中,將兩相同優先權之群組分群,為使 下載行為單純,在 Client 中,相同優先權之群組,視為同一 群組,片段的選擇,並無先後之分,但已盡量完成同一群組 為優先考量。

 無優先權之群組,待優先權下載完畢,再隨機選擇下載:

若是有無指定優先權之群組,待所有具有優先權之群組下載 完畢後,再隨機選擇片段下載。

相關文件