新四季網

Cdn-p2p混合網絡的模擬方法和系統的製作方法

2023-10-09 04:06:34 2

專利名稱:Cdn-p2p混合網絡的模擬方法和系統的製作方法
技術領域:
本發明涉及分發網絡的模擬,尤其涉及⑶N-P2P混合網絡的模擬方法和系統。
背景技術:
CDN-P2P(CDN Content Delivery Network,內容傳遞網絡;P2P :Peerto Peer,端 對端網絡)混合網絡是近年來受到關注的新型內容分發系統,採用兩級層次化模型CDN級 和P2P級。⑶N-P2P混合網絡跟傳統⑶N網絡相比,可降低伺服器負載,提高可擴展性,從 而可通過減小邊緣伺服器數量節約部署成本;與純P2P網絡相比,可提供更好的QoS保障。 另外,CDN-P2P混合網絡可顯著降低骨幹網絡傳輸負載。對於這類拓撲規模龐大的系統進 行性能分析與評價存在架構複雜、控制困難、開銷很大的問題,因此一般通過模擬實驗的方 式加以驗證,在節約開發時間與費用的前提下利用計算機對其數學模型或者系統模型進行 評估,並收集豐富的研究數據從而評價該系統的真實特性。⑶N-P2P混合網絡結構可抽象成如圖1所示的兩級層次化模型。內容分發過程分 為兩個階段CDN級和P2P級。在骨幹網部署CDN級分發系統,將內容分布到骨幹網絡的邊 緣,並在副本傳輸中應用P2P技術,邊緣伺服器可同時從源伺服器和其它邊緣伺服器獲取 副本數據;在接入網構建中心化的P2P自治網,用戶節點之間可相互交換文件內容。因此, 用戶節點即可從CD網絡的邊緣伺服器獲取數據,同時也可通過P2P網絡從其它peer節點 (對等節點)獲取數據。目前在國內外已經存在關於⑶N和P2P網絡的模擬平臺,但是都未涉及⑶N-P2P 混合網絡協議的模擬;也存在一些通用性模擬平臺,但是由於這些平臺設計缺乏針對性,比 如未考慮實際上層網絡的特點等,基於通用性模擬平臺的開發往往受到很多限制而影響性 能,不能直接用來模擬⑶N-P2P混合網絡。模擬平臺的稀缺導致對CDN-P2P混合網絡特性和相關策略的研究缺乏實驗平臺 和實驗數據的支撐。

發明內容
為解決上述問題,本發明提供了⑶N-P2P混合網絡的模擬方法和系統,能夠實現 對⑶N-P2P混合網絡的模擬,獲得⑶N-P2P混合網絡的性能仿真數據,以供網絡布置更新和 網絡性能改進中使用。本發明公開了一種⑶N-P2P混合網絡的模擬方法,包括步驟1,讀取配置文件,建立虛擬⑶N-P2P混合網絡;步驟2,初始化離散事件列表,並在所述離散事件列表中插入對應於下載節點初次 加入行為的節點加入事件,插入傳輸速率計算事件和統計信息事件;步驟3,從所述離散事件列表中依次彈出事件,根據所述事件的類型在所述虛擬 ⑶N-P2P混合網絡中執行對應操作;步驟4,將所述離散事件列表中所有事件執行完成後,統計整個模擬過程數據信息,結束模擬。所述配置文件包括CDN_P2P混合網絡拓撲結構、鏈路信息、邊緣伺服器對應的存 儲文件信息;
所述步驟1進一步為,步驟21,從配置文件中讀取⑶N-P2P混合網絡的拓撲結構,確定⑶N-P2P混合網絡 中實體的數目和類型,為所述虛擬CDN-P2P混合網絡中對應於所述實體的類或者結構體分 配空間,並初始化所述對應於所述實體的類或者結構體,以在虛擬CDN-P2P混合網絡中生 成對應虛擬實體;所述虛擬實體包括對應於邊緣伺服器的虛擬邊緣伺服器、對應於全局索 引伺服器的虛擬全局索引伺服器、和對應於下載節點的虛擬下載節點;步驟22,從配置文件中讀取鏈路信息和⑶N-P2P混合網絡的拓撲結構,為所有所 述虛擬實體之間的虛擬鏈路分配結構體空間,初始化所有虛擬鏈路的鏈路信息;步驟23,從配置文件讀取邊緣伺服器對應的存儲文件信息,更新虛擬邊緣伺服器 的本地存儲文件列表,以及虛擬全局索引伺服器的文件對應的邊緣伺服器位置信息列表。所述步驟22中初始化所有虛擬鏈路的鏈路信息進一步為,步驟31,採用從自治系統到下載節點逐層設置的方式初始化所有虛擬鏈路的鏈路 fn息ο所述步驟2進一步包括,步驟41,在內存池中為所述離散事件列表分配空間,所述離散事件列表的行數為 下載節點數目和CDN-P2P混合網絡中單個下載節點最大事件數的乘積;步驟42,為所有下載節點生成對應於初次加入行為的節點加入事件並插入所述離 散事件列表,所述節點加入事件個數為下載節點總數;步驟43,生成統計信息事件和傳輸速率計算事件,並將所述統計信息事件和所述 傳輸速率計算事件插入所述離散事件列表。所述步驟3中根據所述事件的類型在所述虛擬CDN-P2P混合網絡中執行對應操作 進一步包括,步驟51,如果所述事件的類型為節點加入事件,則執行如下步驟;步驟52,根據加入的節點對象地址計算所述節點在所述虛擬⑶N-P2P混合網絡中 id,並依據所述配置文件中文件的種子節點的數目和位置信息設置種子節點,初始化所述 節點在所述虛擬CDN-P2P混合網絡中下載所需的數據結構,以在虛擬CDN-P2P混合網絡中 完成對應虛擬節點加入;步驟53,在所述虛擬⑶N-P2P混合網絡中,所述虛擬節點向虛擬子索引伺服器請 求對等列表,並嘗試連接所述對等列表中的每個對象,如果成功建立連接,則嘗試啟動數據 傳輸;步驟54,初始化下次索引請求事件和下次節點阻塞事件;將所述下次索引請求事 件和所述下次節點阻塞事件加入所述離散事件列表。在處理節點加入事件時,將加入的節點設為活躍狀態;所述步驟3中根據所述事件的類型在所述虛擬CDN-P2P混合網絡中執行對應操作 進一步包括,步驟61,如果所述事件的類型為節點離開事件,則執行如下步驟;
步驟62,如果離開的所述節點在所述虛擬⑶N-P2P混合網絡對應的虛擬節點被置為活躍狀態,則將所述虛擬節點置為不活躍狀態;步驟63,在所述虛擬⑶N-P2P混合網絡中,所述虛擬節點向虛擬子索引伺服器發送離開消息,所述虛擬子索引伺服器將本地的所述虛擬節點信息刪除;步驟64,關閉所有所述虛擬節點執行上傳或者下載而建立的連接,清空所述虛擬節點的本地所有相關的數據結構;步驟65,在所述虛擬⑶N-P2P混合網絡中,所有與所述虛擬節點建立連接的虛擬節點清除與所述虛擬節點相關的狀態和數據結構信息。所述步驟65後還包括,步驟71,所述與所述虛擬節點建立連接的虛擬節點判斷自身當前對等的虛擬節點 的數目,如果當前對等的虛擬節點的數目小於一預設閾值,則所述虛擬節點向所述虛擬子 索引伺服器請求新的對等列表,並根據所述對等列表建立連接,如果成功建立連接,則嘗試 啟動數據傳輸。所述步驟3中根據所述事件的類型在所述虛擬CDN-P2P混合網絡中執行對應操作 進一步包括,步驟81,如果所述事件的類型為傳輸速率計算事件,則執行如下步驟;步驟82,初始化存儲所述虛擬鏈路的信息的鏈路信息數組,將所述鏈路信息數組 按照虛擬鏈路的平均連接帶寬值形成一個最小堆;步驟83,從所述最小堆中依次彈出虛擬鏈路,針對所述虛擬鏈路上的每條連接,遍 歷連接所在的所有虛擬鏈路,更新虛擬鏈路的可用帶寬值;步驟84,將每條連接對應的傳輸的字節數加到連接的起始虛擬節點和結束虛擬節 點的數據傳輸數組中以記錄已經傳輸的字節數,如果連接的結束虛擬節點,在傳輸所述字 節數之後下載完成,則根據配置文件中節點的離開方式生成節點離開事件,並將所述節點 離開事件插入離散事件列表;步驟85,計算當前處於下載狀態的虛擬節點的下載速度,如果經過一段預設緩衝 時間後所述虛擬節點的下載速率仍低於第二預設閾值,則所述虛擬節點向虛擬子索引服務 器請求對等列表,並嘗試連接所述對等列表中的每個對象,如果成功建立連接,則嘗試啟動 數據傳輸。所述步驟3中根據所述事件的類型在所述虛擬CDN-P2P混合網絡中執行對應操作 進一步包括,步驟91,如果所述事件的類型為節點阻塞事件,則執行如下步驟步驟92,從節點在所述虛擬⑶N-P2P混合網絡對應的虛擬節點的阻塞列表中找出 第一個對所述虛擬節點感興趣且被阻塞的對等虛擬節點,將所述對等的虛擬節點移動到所 述阻塞列表的頭部;步驟93,從所述虛擬節點的現有連接的對等虛擬節點中依據下載速度越快越優先 的原則選擇預設數目的對等虛擬節點,將所述對等虛擬節點設為非阻塞狀態,該數目最多 為所述虛擬節點的最大上傳數減1,如果當前連接數小於最大上傳數,則將所有連接設為非 阻塞狀態;步驟94,將所述阻塞列表中的第一個狀態為阻塞的對等虛擬節點的狀態設為非阻塞狀態;步驟95,生成下次的節點阻塞事件,設置發生時間,將生成的節點阻塞事件插入離 散事件列表。初始化後的離散事件列表中包括索引請求事件; 所述索引請求事件中記錄有所述索引請求事件發生的主體;所述步驟3中根據所述事件的類型在所述虛擬CDN-P2P混合網絡中執行對應操作 進一步包括,步驟101,如果所述事件的類型為索引請求事件,則執行以下步驟;步驟102,如果索引請求的類型為普通類型,則由所述索引請求事件發生的主體向 虛擬子索引伺服器發送索引請求獲得對等列表;步驟103,如果索引請求的類型為緊急索引請求,虛擬子索引伺服器回複列表給發 送索引請求的虛擬節點,回復的列表包括向虛擬節點提供服務的虛擬邊緣伺服器信息和對 等虛擬節點信息;步驟104,虛擬節點根據接收的列表中的對等虛擬節點的信息或者邊緣伺服器信 息,依次嘗試同等虛擬節點或邊緣伺服器建立連接,如果連接建立成功,嘗試啟動數據傳 輸;步驟105,虛擬節點生成下次的索引請求事件,事件類型設為普通類型,設置發生 時間,將生成的索引請求事件插入所述離散事件列表。初始化後的離散事件列表中包括副本更新事件;所述步驟3中根據所述事件的類型在所述虛擬CDN-P2P混合網絡中執行對應操作 進一步包括,步驟111,如果所述事件的類型為副本更新事件,則執行以下步驟;步驟112,從配置文件讀取邊緣伺服器對應的存儲文件信息,所述虛擬⑶N-P2P混 合網絡中虛擬邊緣伺服器根據所述存儲文件信息更新本地存儲文件列表;步驟113,所述虛擬⑶N-P2P混合網絡中虛擬全局索引伺服器根據所述存儲文件 信息更新文件對應的邊緣伺服器位置信息列表,並生成下次的副本更新事件,設置發生時 間,將所述生成的副本更新事件插入所述離散事件列表。所述步驟3中根據所述事件的類型在所述虛擬CDN-P2P混合網絡中執行對應操作 進一步包括,步驟121,如果所述事件的類型為統計信息事件,則執行以下步驟;步驟122,遍歷所述虛擬⑶N-P2P混合網絡的虛擬節點列表,統計其中已經完成的 以及處於空閒狀態的虛擬節點數目,生成一個新的統計信息事件,設置發生時間,將所述統 計事件插入所述離散事件列表。所述步驟83中更新虛擬鏈路的可用帶寬值進一步為,步驟131,如果連接所在虛擬鏈路的可用帶寬值大於所述的虛擬鏈路的平均帶寬 值,則將所述虛擬鏈路的可用帶寬值減去所述平均帶寬值,否則,將所述虛擬鏈路的可用帶 寬值更新為零。本發明還公開了一種⑶N-P2P混合網絡的模擬系統,包括拓撲管理模塊,用於讀取配置文件,建立虛擬⑶N-P2P混合網絡;
內存管理模塊,用於以虛擬⑶N-P2P混合網絡中虛擬實體和事件為對象,進行空 間分配和釋放;事件管理模塊,用於初始化離散事件列表,並在所述離散事件列表中插入對應於下載節點初次加入行為的節點加入事件,插入傳輸速率計算事件和統計信息事件;從所述 離散事件列表中依次彈出事件;網絡運行模擬模塊,用於根據所述彈出的事件的類型在所述虛擬CDN-P2P混合網 絡中執行對應操作;並且將所述離散事件列表中所有事件執行完成後,統計整個模擬過程 數據信息,結束模擬。所述配置文件包括CDN_P2P混合網絡拓撲結構、鏈路信息、邊緣伺服器對應的存 儲文件信息;所述拓撲管理模塊進一步用於從配置文件中讀取⑶N-P2P混合網絡的拓撲結構, 確定CDN-P2P混合網絡中實體的數目和類型,通過所述內存管理模塊為所述虛擬CDN-P2P 混合網絡中對應於所述實體的類或者結構體分配空間,並初始化所述對應於所述實體的類 或者結構體,以在虛擬CDN-P2P混合網絡中生成對應虛擬實體;從配置文件中讀取鏈路信 息和CDN-P2P混合網絡的拓撲結構,通過所述內存管理模塊為所有所述虛擬實體之間的虛 擬鏈路分配結構體空間,初始化所有虛擬鏈路的鏈路信息;從配置文件讀取邊緣伺服器對 應的存儲文件信息,更新虛擬邊緣伺服器的本地存儲文件列表,以及虛擬全局索引伺服器 的文件對應的邊緣伺服器位置信息列表;所述虛擬實體包括對應於邊緣伺服器的虛擬邊緣伺服器、對應於全局索引伺服器 的虛擬全局索引伺服器、和對應於下載節點的虛擬下載節點。所述拓撲管理模塊在初始化所有虛擬鏈路的鏈路信息時進一步用於採用從自治 系統到下載節點逐層設置的方式初始化所有虛擬鏈路的鏈路信息。所述內存管理模塊進一步用於在內存池中為所述離散事件列表分配空間,所述離 散事件列表的行數為下載節點數目和CDN-P2P混合網絡中單個下載節點最大事件數的乘 積;所述事件管理模塊進一步用於為所有下載節點生成對應於初次加入行為的節點 加入事件並插入所述離散事件列表,所述節點加入事件個數為下載節點總數;生成統計信 息事件和傳輸速率計算事件,並將所述統計信息事件和所述傳輸速率計算事件插入所述離 散事件列表。所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類型為節點加入 事件時,進一步用於根據加入的節點對象地址計算所述節點在所述虛擬CDN-P2P混合網絡 中id,並依據所述配置文件中文件的種子節點的數目和位置信息設置種子節點,初始化所 述節點在所述虛擬⑶N-P2P混合網絡中下載所需的數據結構,以在虛擬⑶N-P2P混合網絡 中完成對應虛擬節點加入;使所述虛擬節點向虛擬子索引伺服器請求對等列表,並嘗試連 接所述對等列表中的每個對象,如果成功建立連接,則嘗試啟動數據傳輸;初始化下次索引 請求事件和下次節點阻塞事件;通過所述事件管理模塊將所述下次索引請求事件和所述下 次節點阻塞事件加入所述離散事件列表。在處理節點加入事件時,將加入的節點設為活躍狀態;所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類型為節點離開事件時,進一步用於如果離開的所述節點在所述虛擬CDN-P2P混合網絡對應的虛擬節點被 置為活躍狀態,則將所述虛擬節點置為不活躍狀態;使所述虛擬節點向虛擬子索引伺服器 發送離開消息,使所述虛擬子索引伺服器將本地的所述虛擬節點信息刪除;關閉所有所述 虛擬節點執行上傳或者下載而建立的連接,清空所述虛擬節點的本地所有相關的數據結 構;使所有與所述虛擬節點建立連接的虛擬節點清除與所述虛擬節點相關的狀態和數據結 構信息。所述網絡運行模擬模塊還用於判斷所述與所述虛擬節點建立連接的虛擬節點判 斷當前對等的虛擬節點的數目,如果當前對等的虛擬節點的數目小於一預設閾值,則使所 述虛擬節點向所述虛擬子索引伺服器請求新的對等列表,並根據所述對等列表建立連接, 如果成功建立連接,則嘗試啟動數據傳輸。所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類型為傳輸速率 計算事件時,進一步用於初始化存儲所述虛擬鏈路的信息的鏈路信息數組,將所述鏈路信 息數組按照虛擬鏈路的平均連接帶寬值形成一個最小堆;從所述最小堆中依次彈出虛擬鏈 路,針對所述虛擬鏈路上的每條連接,遍歷連接所在的所有虛擬鏈路,更新虛擬鏈路的可用 帶寬值;將每條連接對應的傳輸的字節數加到連接的起始虛擬節點和結束虛擬節點的數據 傳輸數組中以記錄已經傳輸的字節數,如果連接的結束虛擬節點,在傳輸所述字節數之後 下載完成,則根據配置文件中節點的離開方式生成節點離開事件,並將所述節點離開事件 插入離散事件列表;計算當前處於下載狀態的虛擬節點的下載速度,如果經過一段預設緩 衝時間後所述虛擬節點的下載速率仍低於第二預設閾值,則所述虛擬節點向虛擬子索引服 務器請求對等列表,並嘗試連接所述對等列表中的每個對象,如果成功建立連接,則嘗試啟 動數據傳輸。所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類型為節點阻塞 事件時,進一步用於從節點在所述虛擬CDN-P2P混合網絡對應的虛擬節點的阻塞列表中找 出第一個對所述虛擬節點感興趣且被阻塞的對等虛擬節點,將所述對等的虛擬節點移動到 所述阻塞列表的頭部;從所述虛擬節點的現有連接的對等虛擬節點中依據下載速度越快越 優先的原則選擇預設數目的對等虛擬節點,將所述對等虛擬節點設為非阻塞狀態,該數目 最多為所述虛擬節點的最大上傳數減1,如果當前連接數小於最大上傳數,則將所有連接設 為非阻塞狀態;將所述阻塞列表中的第一個狀態為阻塞的對等虛擬節點的狀態設為非阻塞 狀態;生成下次的節點阻塞事件,設置發生時間,通過所述事件管理模塊將生成的節點阻塞 事件插入離散事件列表。初始化後的離散事件列表中包括索引請求事件;所述索引請求事件中記錄有所述索引請求事件發生的主體;所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類型為索引請求 事件時,進一步用於如果索引請求的類型為普通類型,則由所述索引請求事件發生的主體 向虛擬子索引伺服器發送索引請求獲得對等列表;如果索引請求的類型為緊急索引請求, 虛擬子索引伺服器回複列表給發送索引請求的虛擬節點,回復的列表包括向虛擬節點提供 服務的虛擬邊緣伺服器信息和對等虛擬節點信息;使虛擬節點根據接收的列表中的對等虛 擬節點的信息或者邊緣伺服器信息,依次嘗試同等虛擬節點或邊緣伺服器建立連接,如果 連接建立成功,嘗試啟動數據傳輸;生成下次的索引請求事件,事件類型設為普通類型,設置發生時間,通過所述事件管理模塊將生成的索引請求事件插入所述離散事件列表。初始化後的離散事件列表中包括副本更新事件;所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類型為副本更新 事件時,進一 步用於從配置文件讀取邊緣伺服器對應的存儲文件信息,使虛擬邊緣伺服器 根據所述存儲文件信息更新本地存儲文件列表;使虛擬全局索引伺服器根據所述存儲文件 信息更新文件對應的邊緣伺服器位置信息列表,並生成下次的副本更新事件,設置發生時 間,將所述生成的副本更新事件插入所述離散事件列表。所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類型為統計信息 事件時,進一步用於遍歷所述虛擬CDN-P2P混合網絡的虛擬節點列表,統計其中已經完成 的以及處於空閒狀態的虛擬節點數目,生成一個新的統計信息事件,設置發生時間,通過所 述事件管理模塊將所述統計事件插入所述離散事件列表。本發明的有益效果在於,能夠實現對⑶N-P2P混合網絡的模擬,獲得⑶N-P2P混 合網絡的性能仿真數據,以供網絡布置更新和網絡性能改進中使用;配置文件中指定邊緣 伺服器存儲文件的信息,這種存儲信息策略的制定就是新型網絡副本放置策略,使得可以 供其他研究人員對其提出的副本放置策略進行仿真實驗,因而本發明具有很好的易用性, 支持本領域常用的模擬平臺實現語言和新型混合網絡副本放置策略的模擬實驗;通過從配 置文件中讀取網絡拓撲,使得本發明具有良好的可擴展性,可以根據需要自行定製CDN-P2P 混合網絡的規模;通過⑶N-P2P混合網絡拓撲結構的生成等信息可以通過配置文件設定, 使得本發明中技術方案便於配置性。


圖1是現有技術中⑶N-P2P混合網絡結構抽象後的結構示意圖;圖2是本發明⑶N-P2P混合網絡的模擬方法的流程圖;圖3是本發明⑶N-P2P混合網絡的模擬系統的結構圖;圖4是本發明⑶N-P2P混合網絡的模擬系統的實施例的結構圖。
具體實施例方式下面結合附圖,對本發明做進一步的詳細描述。如圖2所示為本發明方法流程,包括下列步驟。步驟S100,讀取配置文件,建立虛擬⑶N-P2P混合網絡。步驟S200,初始化離散事件列表,在離散事件列表中插入對應於下載節點初次加 入行為節點加入事件、傳輸速率計算事件和統計信息事件。步驟S300,從離散事件列表依次彈出事件,根據彈出的事件的類型在所述虛擬 ⑶N-P2P混合網絡執行相應操作。步驟S400,將所述離散事件列表中所有事件執行完畢,統計整個模擬過程數據信 息,結束模擬。一具體實施方式
中,所述步驟SlOO的具體實現如下所述。步驟S101,從配置文件中讀取⑶N-P2P混合網絡的拓撲結構,確定⑶N-P2P混合網 絡中實體的數目和類型,並為所述虛擬CDN-P2P混合網絡中對應於所述實體的類或者結構體分配空間,並初始化所述虛擬CDN-P2P混合網絡中對應於所述實體的類或者結構體,以 在虛擬CDN-P2P混合網絡中生成對應虛擬實體。所述虛擬實體包括對應於邊緣伺服器的虛 擬邊緣伺服器、對應於全局索引伺服器的虛擬全局索引伺服器、和對應於下載節點的虛擬 下載節點。現有技術的CDN-P2P混合網絡中實體包括自治系統、邊緣伺服器、全局索引伺服器、子索引伺服器、數據中轉節點和下載節點。實施例中,邊緣伺服器、全局索引伺服器和子索引伺服器設計為類,自治系統、數 據中轉節點和下載節點設計為結構體。步驟S102,從配置文件中讀取鏈路信息和⑶N-P2P混合網絡的拓撲結構,為所有 所述虛擬實體之間的虛擬鏈路分配結構體空間,初始化所有虛擬鏈路的鏈路信息。在一實施例中,採用從自治系統到下載節點逐層設置的方式初始化所有虛擬鏈路 的鏈路信息。從配置文件讀取以下信息節點加入網絡的方式,一般設置為所有節點在模擬開 始時一次性加入網絡;節點離開網絡的方式,一般設置為下載完成即離開;一個文件中包 含的塊的數目、不同類型的鏈路帶寬值。節點加入網絡的方式是在生成節點加入事件時設置事件的發生主體和發生時間 時會用到,一次性加入則為每個節點分別生成一個加入事件,時間設置為模擬開始的時間; 節點離開網絡的方式在傳輸速率計算事件中使用,如果判斷節點已經下載完成,則生成節 點離開事件,離開方式決定離開事件的發生時間;實施例中模擬方法中,文件塊的大小是固 定的256KB,文件塊的數目決定了文件的大小對於判斷文件下載是否完成有用,另外,節點 之間相互交換數據也是以文件塊為單位的。步驟S103,從配置文件讀取邊緣伺服器對應的存儲文件信息,更新虛擬⑶N-P2P 混合網絡中虛擬邊緣伺服器的本地存儲文件列表,以及虛擬⑶N-P2P混合網絡中虛擬全局 索引伺服器的文件對應的邊緣伺服器位置信息列表。一具體實施方式
中,所述步驟S200的具體實現如下所述。步驟S201,在內存池中為所述離散事件列表分配空間,所述離散事件列表個數為 下載節點數目和CDN-P2P混合網絡中單個下載節點最大事件數的乘積。步驟S202,為所有下載節點生成對應於初次加入行為的節點加入事件並插入所述 離散事件列表,所述節點加入事件個數為下載節點總數,所述節點加入事件發生時間為當 前時間。離散事件列表初始為空。事件發生時間為當前時間則表示生成所述事件,並將所 述事件加入該離散事件列表。步驟S203,生成日誌記錄事件和傳輸速率計算事件並插入所述離散事件列表。生成傳輸速率計算事件和日誌記錄事件,設置傳輸速率計算事件的發生時間為當 前時間,日誌記錄事件的發生時間為一段預設時間間隔後,如30秒後,並將兩個事件插入 離散事件列表。一具體實施方式
中,所述步驟S300的具體實現如下所述。步驟S310,從離散事件列表彈出一個事件,設置當前時間為事件的發生時間。通過完成仿真鍾推進設置當前時間為事件的發生時間。當仿真鍾推進到事件的發生時間時,就處理該事件。;步驟S320,根據彈出的事件的類型在所述虛擬⑶N-P2P混合網絡執行相應操作。如果所述事件的類型為節點加入事件,則中對應執行如下步驟; 步驟S3011,根據加入的節點對象地址計算所述節點在所述虛擬⑶N-P2P混合網 絡中id,並依據所述配置文件中種子節點的數目和位置信息設置種子節點,初始化所述節 點在所述虛擬⑶N-P2P混合網絡中下載所需的數據結構,以在虛擬⑶N-P2P混合網絡中完 成對應虛擬節點加入。種子節點是指某一個文件的種子節點,為只提供該文件上傳而不需要從其他節點 下載文件的節點。實施例中,下載所需的數據結構包括節點擁有的文件塊數,節點的本地位圖數 組,文件塊被下載節點所擁有數目的列表等,根據配置文件中種子節點的數目和位置信息 指定種子節點,將種子節點的下載狀態設為已完成。步驟S3012,在所述虛擬⑶N-P2P混合網絡中,所述虛擬節點向虛擬子索引伺服器 請求對等列表,並嘗試連接所述對等列表中的每個對象,如果成功建立連接,則嘗試啟動數 據傳輸。如果成功建立連接,則查詢對方虛擬節點是否有本虛擬節點需要的文件塊,如果 有則向對方發送interested消息(興趣消息),對方如果沒有阻塞本虛擬節點,則可以進行 數據傳輸,否則,進入阻塞隊列等待。步驟S3013,初始化下次索引請求事件和下次節點阻塞事件;將所述下次索引請 求事件和所述下次節點阻塞事件加入所述離散事件列表。生成下次索引請求事件,設置發生時間,例如10分鐘後;生成下次節點阻塞事件, 設置發生時間,例如30秒後。如果所述事件的類型為節點離開事件,則執行如下步驟。步驟S3021,如果離開的所述節點在所述虛擬⑶N-P2P混合網絡對應的虛擬節點 被置為活躍狀態,則將所述虛擬節點置為不活躍狀態。節點在節點加入事件處理中設置為活躍狀態。步驟S3022,在所述虛擬⑶N-P2P混合網絡中,所述虛擬節點向虛擬子索引伺服器 發送離開消息,所述虛擬子索引伺服器將本地的所述虛擬節點信息刪除。步驟S3023,關閉所有所述虛擬節點執行上傳或者下載而建立的連接,清空所述虛 擬節點的本地所有相關的數據結構。步驟S3024,在所述虛擬⑶N-P2P混合網絡中,所有與所述虛擬節點建立連接的虛 擬節點清除與所述虛擬節點相關的狀態和數據結構信息。進一步較佳的具體實施方式
還包括步驟S3025,所述與所述虛擬節點建立連接的虛擬節點判斷自身當前對等的虛擬 節點的數目,如果當前對等的虛擬節點的數目小於某一閾值,例如20,則所述虛擬節點向所 述虛擬子索引伺服器請求新的對等列表,並根據所述對等列表建立連接,如果成功建立連 接,則嘗試啟動數據傳輸。如果所述事件的類型為傳輸速率計算事件,則執行如下步驟。步驟S3031,初始化存儲所述虛擬鏈路的信息的鏈路信息數組,將所述鏈路信息數組按照虛擬鏈路的平均連接帶寬值形成一個最小堆。平均連接帶寬值為虛擬鏈路帶寬除以該虛擬鏈路的連接數量。步驟S3032,從所述最小堆中依次彈出虛擬鏈路,針對所述虛擬鏈路上的每條連 接,遍歷連接所在的所有虛擬鏈路,更新虛擬鏈路的可用帶寬值。具體實施例中,更新方法為如果連接所在虛擬鏈路的可用帶寬值大於所述的虛擬 鏈路的平均帶寬值,則將該虛擬鏈路的可用帶寬值減去所述平均帶寬值,否則,將所述虛擬 鏈路的可用帶寬值更新為零。步驟S3033,將每條連接對應的傳輸字節數加到連接的起始虛擬節點和結束虛擬 節點的數據傳輸數組中以記錄已經傳輸的字節數,如果數據接收節點,也就是連接的結束 虛擬節點,在接收這些字節數之後下載完成,則根據配置文件中節點的離開方式生成節點 離開事件,並將該事件插入離散事件列表。步驟S3034,計算當前處於下載狀態的虛擬節點的下載速度,如果經過一段預設緩 衝時間後,例如3分鐘,所述虛擬節點的下載速率仍低於第二預設閾值,則所述虛擬節點向 虛擬子索引伺服器請求對等列表,並嘗試連接所述對等列表中的每個對象,如果成功建立 連接,則嘗試啟動數據傳輸。初始化後的離散事件列表中包括節點阻塞事件;如果所述事件的類型為節點阻塞事件,則執行如下步驟。步驟S3041,從節點在所述虛擬⑶N-P2P混合網絡對應的虛擬節點的阻塞列表中 找出第一個對所述虛擬節點感興趣且被阻塞的對等虛擬節點,將所述對等的虛擬節點移動 到所述阻塞列表的頭部。一個節點對另一個節點感興趣是指一個節點向另一個節點發出了 interested消 息。P2P協議為BitTorrent協議時,對於已經建立連接的兩個節點A和B,如果節點A擁有 節點B沒有的數據塊,則稱節點B對A感興趣。步驟S3042,從所述虛擬節點的現有連接的對等虛擬節點中依據下載速度越快越 優先的原則選擇預設數目的對等虛擬節點,將所述對等虛擬節點設為非阻塞狀態,該數目 最多為所述虛擬節點的最大上傳數減1,如果當前連接數小於最大上傳數,則將所有連接設 為非阻塞狀態。最大上傳數為配置數值,例如最大上傳數為5。步驟S3043,將所述阻塞列表中的第一個狀態為阻塞的對等虛擬節點的狀態設為 非阻塞狀態;步驟S3044,生成下次的節點阻塞事件,設置發生時間,將生成的節點阻塞事件插 入離散事件列表。實施例中設置的發生時間為10秒鐘之後。初始化後的離散事件列表中包括索引請求事件。所述索引請求事件中記錄有所述索引請求事件發生的主體。如果所述事件的類型為索引請求事件,則執行以下步驟。 步驟S3051,如果索引請求的類型為普通類型,則由所述索引請求事件發生的主體 向虛擬子索引伺服器發送索引請求獲得對等列表。步驟S3052,如果索引請求的類型為緊急索引請求,虛擬子索引伺服器回複列表給發送索引請求的虛擬節點,回復的列表包括向虛擬節點提供服務的虛擬邊緣伺服器信息和 對等虛擬節點信息。步驟S3053,虛擬節點根據接收的列表中的對等虛擬節點的信息或者邊緣伺服器 信息,依次嘗試同等虛擬節點或邊緣伺服器建立連接,如果連接建立成功,嘗試啟動數據傳 輸。步驟S3054,虛擬節點生成下次的索引請求事件,事件類型設為普通類型,設置發 生時間,將生成的索引請求事件插入所述離散事件列表。
一實施例中設置發生時間為10分鐘後。初始化後的離散事件列表中包括副本更新事件。如果所述事件的類型為副本更新事件,則執行以下步驟;步驟S3061,從配置文件讀取邊緣伺服器對應的存儲文件信息,所述虛擬⑶N-P2P 混合網絡中虛擬邊緣伺服器根據所述存儲文件信息更新本地存儲文件列表。步驟S3062,所述虛擬⑶N-P2P混合網絡中虛擬全局索引伺服器根據所述存儲文 件信息更新文件對應的邊緣伺服器位置信息列表,並生成下次的副本更新事件,設置發生 時間,將所述生成的副本更新事件插入離散事件列表。一實施例中設置發生時間為10分鐘後。初始化後的離散事件列表中包括統計信息事件。如果所述事件的類型為統計信息事件,則執行以下步驟。步驟S3071,遍歷所述虛擬⑶N-P2P混合網絡的虛擬節點列表,統計其中已經完成 的以及處於空閒狀態的虛擬節點數目,生成一個新的統計信息事件,設置發生時間,將所述 新的統計事件插入所述離散事件列表。步驟S400的具體實施過程,包括如下步驟。步驟S401,所有事件執行完畢,統計整個模擬過程數據信息,包括總共產生的事件 數目、節點空閒的總時間和所佔的比例。步驟S402,模擬結束,程序退出。本發明一種⑶N-P2P混合網絡的模擬系統如圖3所示,包括內存管理模塊100、 拓撲管理模塊200、事件管理模塊300、和網絡運行模擬模塊400。拓撲管理模塊200,用於讀取配置文件,建立虛擬⑶N-P2P混合網絡。內存管理模塊100,用於以虛擬⑶N-P2P混合網絡中虛擬實體和事件為對象,進行 空間分配和釋放。因為在模擬過程中,會對虛擬實體和事件進行頻繁的空間分配和釋放,用專門的 內存管理模塊100進行管理。事件管理模塊300,用於初始化離散事件列表,並在所述離散事件列表中插入對應 於下載節點初次加入行為的節點加入事件,插入傳輸速率計算事件和統計信息事件;從所 述離散事件列表中依次彈出事件。網絡運行模擬模塊400,用於根據所述彈出的事件的類型在所述虛擬⑶N-P2P混 合網絡中執行對應操作;並且將所述離散事件列表中所有事件執行完成後,統計整個模擬 過程數據信息,結束模擬。較佳的方式中,所述配置文件包括⑶N-P2P混合網絡拓撲結構、鏈路信息、邊緣伺服器對應的存儲文件信息;所述拓撲管理模塊進一步用於從配置文件中讀取⑶N-P2P混合網絡的拓撲結構,確定CDN-P2P混合網絡中實體的數目和類型,通過所述內存管理模塊為所述虛擬CDN-P2P 混合網絡中對應於所述實體的類或者結構體分配空間,並初始化所述虛擬CDN-P2P混合網 絡中對應於所述實體的類或者結構體,以在虛擬CDN-P2P混合網絡中生成對應虛擬實體; 從配置文件中讀取鏈路信息和CDN-P2P混合網絡的拓撲結構,通過所述內存管理模塊為所 有所述虛擬實體之間的虛擬鏈路分配結構體空間,初始化所有虛擬鏈路的鏈路信息;從配 置文件讀取邊緣伺服器對應的存儲文件信息,更新虛擬邊緣伺服器的本地存儲文件列表, 以及虛擬全局索引伺服器的文件對應的邊緣伺服器位置信息列表。所述虛擬實體包括對應於邊緣伺服器的虛擬邊緣伺服器、對應於全局索引伺服器 的虛擬全局索引伺服器、和對應於下載節點的虛擬下載節點。進一步較佳的方式中,所述拓撲管理模塊在初始化所有虛擬鏈路的鏈路信息時進 一步用於採用從自治系統到下載節點逐層設置的方式初始化所有虛擬鏈路的鏈路信息。較佳的方式中,所述內存管理模塊進一步用於在內存池中為所述離散事件列表分 配空間,所述離散事件列表的行數為下載節點數目和CDN-P2P混合網絡中單個下載節點最 大事件數的乘積;所述事件管理模塊進一步用於為所有下載節點生成對應於初次加入行為的節點 加入事件並插入所述離散事件列表,所述節點加入事件個數為下載節點總數;生成統計信 息事件和傳輸速率計算事件,並將所述統計信息事件和所述傳輸速率計算事件插入所述離 散事件列表。較佳的方式中,所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的 類型為節點加入事件時,進一步用於根據加入的節點對象地址計算所述節點在所述虛擬 CDN-P2P混合網絡中id,並依據所述配置文件中文件的種子節點的數目和位置信息設置 種子節點,初始化所述節點在所述虛擬CDN-P2P混合網絡中下載所需的數據結構,以在虛 擬CDN-P2P混合網絡中完成對應虛擬節點加入;使所述虛擬節點向虛擬子索引伺服器請求 對等列表,並嘗試連接所述對等列表中的每個對象,如果成功建立連接,則嘗試啟動數據傳 輸;初始化下次索引請求事件和下次節點阻塞事件;通過所述事件管理模塊將所述下次索 引請求事件和所述下次節點阻塞事件加入所述離散事件列表。較佳的方式中,在處理節點加入事件時,將加入的節點設為活躍狀態。所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類型為節點離開 事件時,進一步用於如果離開的所述節點在所述虛擬CDN-P2P混合網絡對應的虛擬節點被 置為活躍狀態,則將所述虛擬節點置為不活躍狀態;使所述虛擬節點向虛擬子索引伺服器 發送離開消息,使所述虛擬子索引伺服器將本地的所述虛擬節點信息刪除;關閉所有所述 虛擬節點執行上傳或者下載而建立的連接,清空所述虛擬節點的本地所有相關的數據結 構;使所有與所述虛擬節點建立連接的虛擬節點清除與所述虛擬節點相關的狀態和數據結 構信息。較佳的方式中,所述網絡運行模擬模塊還用於判斷所述與所述虛擬節點建立連接 的虛擬節點判斷當前對等的虛擬節點的數目,如果當前對等的虛擬節點的數目小於一預設 閾值,則使所述虛擬節點向所述虛擬子索引伺服器請求新的對等列表,並根據所述對等列表建立連接,如果成功建立連接,則嘗試啟動數據傳輸。較佳的方式中,所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類 型為傳輸速率計算事件時,進一步用於初始化存儲所述虛擬鏈路的信息的鏈路信息數組, 將所述鏈路信息數組按照虛擬鏈路的平均連接帶寬值形成一個最小堆;從所述最小堆中依 次彈出虛擬鏈路,針對所述虛擬鏈路上的每條連接,遍歷連接所在的所有虛擬鏈路,更新虛 擬鏈路的可用帶寬值;將每條連接對應的傳輸的字節數加到連接的起始虛擬節點和結束虛 擬節點的數據傳輸數組中以記錄已經傳輸的字節數,如果連接的結束虛擬節點,在傳輸所 述字節數之後下載完成,則根據配置文件中節點的離開方式生成節點離開事件,並將所述 節點離開事件插入離散事件列表;計算當前處於下載狀態的虛擬節點的下載速度,如果經 過一段預設緩衝時 間後所述虛擬節點的下載速率仍低於第二預設閾值,則所述虛擬節點向 虛擬子索引伺服器請求對等列表,並嘗試連接所述對等列表中的每個對象,如果成功建立 連接,則嘗試啟動數據傳輸。較佳的方式中,所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類 型為節點阻塞事件時,進一步用於從節點在所述虛擬CDN-P2P混合網絡對應的虛擬節點的 阻塞列表中找出第一個對所述虛擬節點感興趣且被阻塞的對等虛擬節點,將所述對等的虛 擬節點移動到所述阻塞列表的頭部;從所述虛擬節點的現有連接的對等虛擬節點中依據下 載速度越快越優先的原則選擇預設數目的對等虛擬節點,將所述對等虛擬節點設為非阻塞 狀態,該數目最多為所述虛擬節點的最大上傳數減1,如果當前連接數小於最大上傳數,則 將所有連接設為非阻塞狀態;將所述阻塞列表中的第一個狀態為阻塞的對等虛擬節點的狀 態設為非阻塞狀態;生成下次的節點阻塞事件,設置發生時間,通過所述事件管理模塊將生 成的節點阻塞事件插入離散事件列表。較佳的方式中,初始化後的離散事件列表中包括索引請求事件;所述索引請求事件中記錄有所述索引請求事件發生的主體;所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類型為索引請求 事件時,進一步用於如果索引請求的類型為普通類型,則由所述索引請求事件發生的主體 向虛擬子索引伺服器發送索引請求獲得對等列表;如果索引請求的類型為緊急索引請求, 虛擬子索引伺服器回複列表給發送索引請求的虛擬節點,回復的列表包括向虛擬節點提供 服務的虛擬邊緣伺服器信息和對等虛擬節點信息;使虛擬節點根據接收的列表中的對等虛 擬節點的信息或者邊緣伺服器信息,依次嘗試同等虛擬節點或邊緣伺服器建立連接,如果 連接建立成功,嘗試啟動數據傳輸;生成下次的索引請求事件,事件類型設為普通類型,設 置發生時間,通過所述事件管理模塊將生成的索引請求事件插入所述離散事件列表。較佳的方式中,初始化後的離散事件列表中包括副本更新事件;所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類型為副本更新 事件時,進一步用於從配置文件讀取邊緣伺服器對應的存儲文件信息,使虛擬邊緣伺服器 根據所述存儲文件信息更新本地存儲文件列表;使虛擬全局索引伺服器根據所述存儲文件 信息更新文件對應的邊緣伺服器位置信息列表,並生成下次的副本更新事件,設置發生時 間,將所述生成的副本更新事件插入所述離散事件列表。較佳的方式中,所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類 型為統計信息事件時,進一步用於遍歷所述虛擬CDN-P2P混合網絡的虛擬節點列表,統計其中已經完成的以及處於空閒狀態的虛擬節點數目,生成一個新的統計信息事件,設置發 生時間,通過所述事件管理模塊將所述統計事件插入所述離散事件列表。在一具體實施例中還包括位圖管理模塊和日誌管理模塊,如圖4所示。在網絡運行模擬模塊進行內容分發過程中,內存管理模塊負責對象空間的管理, 降低模擬開 銷;位圖管理模塊負責下載節點位圖信息的管理;日誌管理模塊負責分發過程 中網絡和節點狀態的記錄等,以便進行數據分析和統計。位圖管理模塊本模塊負責⑶N-P2P混合網絡中P2P傳輸時節點的資源位圖信息 操作。包括位圖的初始化、對方節點資源信息判斷、本地資源信息判斷、位圖添力卩、下載完成 判斷等。日誌管理模塊本模塊負責模擬過程中的模式設置、日誌記錄等工作,為數據統計 提供支持,包括調試模式的設置、打開日誌文件、關閉日誌文件、日誌記錄等。本發明的模擬過程由許多的離散事件組成,離散事件的發生時間間隔會影響模擬 的進程,包括下載節點執行索引事件的間隔,比如10分鐘;邊緣伺服器的副本更新事件的 時間間隔,比如10分鐘;如果模擬一段時間,比如3分鐘,後節點的下載速率仍低於某一閾 值,觸發緊急索引事件;執行傳輸速率計算事件的時間間隔,比如100毫秒;執行阻塞事件 以阻塞一個最慢的peer的時間間隔,比如10 ;執行節點阻塞事件的時間間隔,比如30秒; 執行統計信息事件的時間間隔,比如30秒。本領域的技術人員在不脫離權利要求書確定的本發明的精神和範圍的條件下,還 可以對以上內容進行各種各樣的修改。因此本發明的範圍並不僅限於以上的說明,而是由 權利要求書的範圍來確定的。
權利要求
一種CDN-P2P混合網絡的模擬方法,其特徵在於,包括步驟1,讀取配置文件,建立虛擬CDN-P2P混合網絡;步驟2,初始化離散事件列表,並在所述離散事件列表中插入對應於下載節點初次加入行為的節點加入事件,插入傳輸速率計算事件和統計信息事件;步驟3,從所述離散事件列表中依次彈出事件,根據所述事件的類型在所述虛擬CDN-P2P混合網絡中執行對應操作;步驟4,將所述離散事件列表中所有事件執行完成後,統計整個模擬過程數據信息,結束模擬。
2.如權利要求1所述的CDN-P2P混合網絡的模擬方法,其特徵在於,所述配置文件包括CDN-P2P混合網絡拓撲結構、鏈路信息、邊緣伺服器對應的存儲文 件信息;所述步驟1進一步為,步驟21,從配置文件中讀取⑶N-P2P混合網絡的拓撲結構,確定⑶N-P2P混合網絡中實 體的數目和類型,為所述虛擬CDN-P2P混合網絡中對應於所述實體的類或者結構體分配空 間,並初始化所述對應於所述實體的類或者結構體,以在虛擬CDN-P2P混合網絡中生成對 應虛擬實體;所述虛擬實體包括對應於邊緣伺服器 的虛擬邊緣伺服器、對應於全局索引服 務器的虛擬全局索引伺服器、和對應於下載節點的虛擬下載節點;步驟22,從配置文件中讀取鏈路信息和CDN-P2P混合網絡的拓撲結構,為所有所述虛 擬實體之間的虛擬鏈路分配結構體空間,初始化所有虛擬鏈路的鏈路信息;步驟23,從配置文件讀取邊緣伺服器對應的存儲文件信息,更新虛擬邊緣伺服器的本 地存儲文件列表,以及虛擬全局索引伺服器的文件對應的邊緣伺服器位置信息列表。
3.如權利要求2所述的CDN-P2P混合網絡的模擬方法,其特徵在於, 所述步驟22中初始化所有虛擬鏈路的鏈路信息進一步為,步驟31,採用從自治系統到下載節點逐層設置的方式初始化所有虛擬鏈路的鏈路信肩、ο
4.如權利要求1所述的CDN-P2P混合網絡的模擬方法,其特徵在於, 所述步驟2進一步包括,步驟41,在內存池中為所述離散事件列表分配空間,所述離散事件列表的行數為下載 節點數目和CDN-P2P混合網絡中單個下載節點最大事件數的乘積;步驟42,為所有下載節點生成對應於初次加入行為的節點加入事件並插入所述離散事 件列表,所述節點加入事件個數為下載節點總數;步驟43,生成統計信息事件和傳輸速率計算事件,並將所述統計信息事件和所述傳輸 速率計算事件插入所述離散事件列表。
5.如權利要求1所述的CDN-P2P混合網絡的模擬方法,其特徵在於,所述步驟3中根據所述事件的類型在所述虛擬CDN-P2P混合網絡中執行對應操作進一 步包括,步驟51,如果所述事件的類型為節點加入事件,則執行如下步驟; 步驟52,根據加入的節點對象地址計算所述節點在所述虛擬⑶N-P2P混合網絡中id, 並依據所述配置文件中文件的種子節點的數目和位置信息設置種子節點,初始化所述節點在所述虛擬⑶N-P2P混合網絡中下載所需的數據結構,以在虛擬⑶N-P2P混合網絡中完成 對應虛擬節點加入;步驟53,在所述虛擬CDN-P2P混合網絡中,所述虛擬節點向虛擬子索引伺服器請求對 等列表,並嘗試連接所述對等列表中的每個對象,如果成功建立連接,則嘗試啟動數據傳 輸;步驟54,初始化下次索引請求事件和下次節點阻塞事件;將所述下次索引請求事件和 所述下次節點阻塞事件加入所述離散事件列表。
6.如權利要求1所述的CDN-P2P混合網絡的模擬方法,其特徵在於, 在處理節點加入事件時,將加入的節點設為活躍狀態;所述步驟3中根據所述事件的類型在所述虛擬CDN-P2P混合網絡中執行對應操作進一 步包括,步驟61,如果所述事件的類型為節點離開事件,則執行如下步驟; 步驟62,如果離開的所述節點在所述虛擬CDN-P2P混合網絡對應的虛擬節點被置為活 躍狀態,則將所述虛擬節點置為不活躍狀態;步驟63,在所述虛擬CDN-P2P混合網絡中,所述虛擬節點向虛擬子索引伺服器發送離 開消息,所述虛擬子索引伺服器將本地的所述虛擬節點信息刪除;步驟64,關閉所有所述虛擬節點執行上傳或者下載而建立的連接,清空所述虛擬節點 的本地所有相關的數據結構;步驟65,在所述虛擬CDN-P2P混合網絡中,所有與所述虛擬節點建立連接的虛擬節點 清除與所述虛擬節點相關的狀態和數據結構信息。
7.如權利要求6所述的CDN-P2P混合網絡的模擬方法,其特徵在於, 所述步驟65後還包括,步驟71,所述與所述虛擬節點建立連接的虛擬節點判斷自身當前對等的虛擬節點的數 目,如果當前對等的虛擬節點的數目小於一預設閾值,則所述虛擬節點向所述虛擬子索引 伺服器請求新的對等列表,並根據所述對等列表建立連接,如果成功建立連接,則嘗試啟動 數據傳輸。
8.如權利要求1所述的CDN-P2P混合網絡的模擬方法,其特徵在於,所述步驟3中根據所述事件的類型在所述虛擬CDN-P2P混合網絡中執行對應操作進一 步包括,步驟81,如果所述事件的類型為傳輸速率計算事件,則執行如下步驟; 步驟82,初始化存儲所述虛擬鏈路的信息的鏈路信息數組,將所述鏈路信息數組按照 虛擬鏈路的平均連接帶寬值形成一個最小堆;步驟83,從所述最小堆中依次彈出虛擬鏈路,針對所述虛擬鏈路上的每條連接,遍歷連 接所在的所有虛擬鏈路,更新虛擬鏈路的可用帶寬值;步驟84,將每條連接對應的傳輸的字節數加到連接的起始虛擬節點和結束虛擬節點的 數據傳輸數組中以記錄已經傳輸的字節數,如果連接的結束虛擬節點,在傳輸所述字節數 之後下載完成,則根據配置文件中節點的離開方式生成節點離開事件,並將所述節點離開 事件插入離散事件列表;步驟85,計算當前處於下載狀態的虛擬節點的下載速度,如果經過一段預設緩衝時間後所述虛擬節點的下載速率仍低於第二預設閾值,則所述虛擬節點向虛擬子索引伺服器請 求對等列表,並嘗試連接所述對等列表中的每個對象,如果成功建立連接,則嘗試啟動數據 傳輸。
9.如權利要求1所述的CDN-P2P混合網絡的模擬方法,其特徵在於,所述步驟3中根據所述事件的類型在所述虛擬CDN-P2P混合網絡中執行對應操作進一 步包括,步驟91,如果所述事件的類型為節點阻塞事件,則執行如下步驟 步驟92,從節點在所述虛擬CDN-P2P混合網絡對應的虛擬節點的阻塞列表中找出第一 個對所述虛擬節點感興趣且被阻塞的對等虛擬節點,將所述對等的虛擬節點移動到所述阻 塞列表的頭部;步驟93,從所述虛擬節點的現有連接的對等虛擬節點中依據下載速度越快越優先的原 則選擇預設數目的對等虛擬節點,將所述對等虛擬節點設為非阻塞狀態,該數目最多為所 述虛擬節點的最大上傳數減1,如果當前連接數小於最大上傳數,則將所有連接設為非阻塞 狀態;步驟94,將所述阻塞列表中的第一個狀態為阻塞的對等虛擬節點的狀態設為非阻塞狀態;步驟95,生成下次的節點阻塞事件,設置發生時間,將生成的節點阻塞事件插入離散事 件列表。
10.如權利要求1所述的⑶N-P2P混合網絡的模擬方法,其特徵在於, 初始化後的離散事件列表中包括索引請求事件;所述索引請求事件中記錄有所述索引請求事件發生的主體;所述步驟3中根據所述事件的類型在所述虛擬CDN-P2P混合網絡中執行對應操作進一 步包括,步驟101,如果所述事件的類型為索引請求事件,則執行以下步驟; 步驟102,如果索引請求的類型為普通類型,則由所述索引請求事件發生的主體向虛擬 子索引伺服器發送索引請求獲得對等列表;步驟103,如果索引請求的類型為緊急索引請求,虛擬子索引伺服器回複列表給發送索 引請求的虛擬節點,回復的列表包括向虛擬節點提供服務的虛擬邊緣伺服器信息和對等虛 擬節點信息;步驟104,虛擬節點根據接收的列表中的對等虛擬節點的信息或者邊緣伺服器信息,依 次嘗試同等虛擬節點或邊緣伺服器建立連接,如果連接建立成功,嘗試啟動數據傳輸;步驟105,虛擬節點生成下次的索引請求事件,事件類型設為普通類型,設置發生時間, 將生成的索引請求事件插入所述離散事件列表。
11.如權利要求1所述的⑶N-P2P混合網絡的模擬方法,其特徵在於, 初始化後的離散事件列表中包括副本更新事件;所述步驟3中根據所述事件的類型在所述虛擬CDN-P2P混合網絡中執行對應操作進一 步包括,步驟111,如果所述事件的類型為副本更新事件,則執行以下步驟;步驟112,從配置文件讀取邊緣伺服器對應的存儲文件信息,所述虛擬⑶N-P2P混合網絡中虛擬邊緣伺服器根據所述存儲文件信息更新本地存儲文件列表;步驟113,所述虛擬CDN-P2P混合網絡中虛擬全局索引伺服器根據所述存儲文件信息 更新文件對應的邊緣伺服器位置信息列表,並生成下次的副本更新事件,設置發生時間,將 所述生成的副本更新事件插入所述離散事件列表。
12.如權利要求1所述的⑶N-P2P混合網絡的模擬方法,其特徵在於,所述步驟3中根據所述事件的類型在所述虛擬CDN-P2P混合網絡中執行對應操作進一 步包括,步驟121,如果所述事件的類型為統計信息事件,則執行以下步驟;步驟122,遍歷所述虛擬⑶N-P2P混合網絡的虛擬節點列表,統計其中已經完成的以及 處於空閒狀態的虛擬節點數目,生成一個新的統計信息事件,設置發生時間,將所述統計事 件插入所述離散事件列表。
13.如權利要求8所述的⑶N-P2P混合網絡的模擬方法,其特徵在於,所述步驟83中更新虛擬鏈路的可用帶寬值進一步為,步驟131,如果連接所在虛擬鏈路的可用帶寬值大於所述的虛擬鏈路的平均帶寬值,則 將所述虛擬鏈路的可用帶寬值減去所述平均帶寬值,否則,將所述虛擬鏈路的可用帶寬值 更新為零。
14.一種⑶N-P2P混合網絡的模擬系統,其特徵在於,包括拓撲管理模塊,用於讀取配置文件,建立虛擬CDN-P2P混合網絡;內存管理模塊,用於以虛擬CDN-P2P混合網絡中虛擬實體和事件為對象,進行空間分 配和釋放;事件管理模塊,用於初始化離散事件列表,並在所述離散事件列表中插入對應於下載 節點初次加入行為的節點加入事件,插入傳輸速率計算事件和統計信息事件;從所述離散 事件列表中依次彈出事件;網絡運行模擬模塊,用於根據所述彈出的事件的類型在所述虛擬CDN-P2P混合網絡中 執行對應操作;並且將所述離散事件列表中所有事件執行完成後,統計整個模擬過程數據 信息,結束模擬。
15.如權利要求14所述的⑶N-P2P混合網絡的模擬系統,其特徵在於,所述配置文件包括CDN-P2P混合網絡拓撲結構、鏈路信息、邊緣伺服器對應的存儲文 件信息;所述拓撲管理模塊進一步用於從配置文件中讀取⑶N-P2P混合網絡的拓撲結構,確定 ⑶N-P2P混合網絡中實體的數目和類型,通過所述內存管理模塊為所述虛擬⑶N-P2P混合 網絡中對應於所述實體的類或者結構體分配空間,並初始化所述對應於所述實體的類或者 結構體,以在虛擬CDN-P2P混合網絡中生成對應虛擬實體;從配置文件中讀取鏈路信息和 CDN-P2P混合網絡的拓撲結構,通過所述內存管理模塊為所有所述虛擬實體之間的虛擬鏈 路分配結構體空間,初始化所有虛擬鏈路的鏈路信息;從配置文件讀取邊緣伺服器對應的 存儲文件信息,更新虛擬邊緣伺服器的本地存儲文件列表,以及虛擬全局索引伺服器的文 件對應的邊緣伺服器位置信息列表;所述虛擬實體包括對應於邊緣伺服器的虛擬邊緣伺服器、對應於全局索引伺服器的虛 擬全局索引伺服器、和對應於下載節點的虛擬下載節點。
16.如權利要求15所述的⑶N-P2P混合網絡的模擬系統,其特徵在於,所述拓撲管理模塊在初始化所有虛擬鏈路的鏈路信息時進一步用於採用從自治系統 到下載節點逐層設置的方式初始化所有虛擬鏈路的鏈路信息。
17.如權利要求14所述的⑶N-P2P混合網絡的模擬系統,其特徵在於,所述內存管理模塊進一步用於在內存池中為所述離散事件列表分配空間,所述離散事 件列表的行數為下載節點數目和CDN-P2P混合網絡中單個下載節點最大事件數的乘積;所述事件管理模塊進一步用於為所有下載節點生成對應於初次加入行為的節點加入 事件並插入所述離散事件列表,所述節點加入事件個數為下載節點總數;生成統計信息事 件和傳輸速率計算事件,並將所述統計信息事件和所述傳輸速率計算事件插入所述離散事 件列表。
18.如權利要求14所述的⑶N-P2P混合網絡的模擬系統,其特徵在於,所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類型為節點加入事件 時,進一步用於根據加入的節點對象地址計算所述節點在所述虛擬CDN-P2P混合網絡中 id,並依據所述配置文件中文件的種子節點的數目和位置信息設置種子節點,初始化所述 節點在所述虛擬CDN-P2P混合網絡中下載所需的數據結構,以在虛擬CDN-P2P混合網絡中 完成對應虛擬節點加入;使所述虛擬節點向虛擬子索引伺服器請求對等列表,並嘗試連接 所述對等列表中的每個對象,如果成功建立連接,則嘗試啟動數據傳輸;初始化下次索引請 求事件和下次節點阻塞事件;通過所述事件管理模塊將所述下次索引請求事件和所述下次 節點阻塞事件加入所述離散事件列表。
19.如權利要求14所述的⑶N-P2P混合網絡的模擬系統,其特徵在於,在處理節點加入事件時,將加入的節點設為活躍狀態;所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類型為節點離開事件 時,進一步用於如果離開的所述節點在所述虛擬CDN-P2P混合網絡對應的虛擬節點被置為 活躍狀態,則將所述虛擬節點置為不活躍狀態;使所述虛擬節點向虛擬子索引伺服器發送 離開消息,使所述虛擬子索引伺服器將本地的所述虛擬節點信息刪除;關閉所有所述虛擬 節點執行上傳或者下載而建立的連接,清空所述虛擬節點的本地所有相關的數據結構;使 所有與所述虛擬節點建立連接的虛擬節點清除與所述虛擬節點相關的狀態和數據結構信 肩、ο
20.如權利要求19所述的⑶N-P2P混合網絡的模擬系統,其特徵在於,所述網絡運行模擬模塊還用於判斷所述與所述虛擬節點建立連接的虛擬節點判斷當 前對等的虛擬節點的數目,如果當前對等的虛擬節點的數目小於一預設閾值,則使所述虛 擬節點向所述虛擬子索引伺服器請求新的對等列表,並根據所述對等列表建立連接,如果 成功建立連接,則嘗試啟動數據傳輸。
21.如權利要求14所述的⑶N-P2P混合網絡的模擬系統,其特徵在於,所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類型為傳輸速率計算 事件時,進一步用於初始化存儲所述虛擬鏈路的信息的鏈路信息數組,將所述鏈路信息數 組按照虛擬鏈路的平均連接帶寬值形成一個最小堆;從所述最小堆中依次彈出虛擬鏈路, 針對所述虛擬鏈路上的每條連接,遍歷連接所在的所有虛擬鏈路,更新虛擬鏈路的可用帶 寬值;將每條連接對應的傳輸的字節數加到連接的起始虛擬節點和結束虛擬節點的數據傳輸數組中以記錄已經傳輸的字節數,如果連接的結束虛擬節點,在傳輸所述字節數之後下 載完成,則根據配置文件中節點的離開方式生成節點離開事件,並將所述節點離開事件插 入離散事件列表;計算當前處於下載狀態的虛擬節點的下載速度,如果經過一段預設緩衝 時間後所述虛擬節點的下載速率仍低於第二預設閾值,則所述虛擬節點向虛擬子索引服務 器請求對等列表,並嘗試連接所述對等列表中的每個對象,如果成功建立連接,則嘗試啟動 數據傳輸。
22.如權利要求14所述的⑶N-P2P混合網絡的模擬系統,其特徵在於,所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類型為節點阻塞事件 時,進一步用於從節點在所述虛擬CDN-P2P混合網絡對應的虛擬節點的阻塞列表中找出第 一個對所述虛擬節點感興趣且被阻塞的對等虛擬節點,將所述對等的虛擬節點移動到所述 阻塞列表的頭部;從所述虛擬節點的現有連接的對等虛擬節點中依據下載速度越快越優先 的原則選擇預設數目的對等虛擬節點,將所述對等虛擬節點設為非阻塞狀態,該數目最多 為所述虛擬節點的最大上傳數減1,如果當前連接數小於最大上傳數,則將所有連接設為 非阻塞狀態;將所述阻塞列表中的第一個狀態為阻塞的對等虛擬節點的狀態設為非阻塞狀 態;生成下次的節點阻塞事件,設置發生時間,通過所述事件管理模塊將生成的節點阻塞事 件插入離散事件列表。
23.如權利要求14所述的⑶N-P2P混合網絡的模擬系統,其特徵在於,初始化後的離散事件列表中包括索引請求事件;所述索引請求事件中記錄有所述索引請求事件發生的主體;所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類型為索引請求事件 時,進一步用於如果索引請求的類型為普通類型,則由所述索引請求事件發生的主體向虛 擬子索引伺服器發送索引請求獲得對等列表;如果索引請求的類型為緊急索引請求,虛擬 子索引伺服器回複列表給發送索引請求的虛擬節點,回復的列表包括向虛擬節點提供服務 的虛擬邊緣伺服器信息和對等虛擬節點信息;使虛擬節點根據接收的列表中的對等虛擬節 點的信息或者邊緣伺服器信息,依次嘗試同等虛擬節點或邊緣伺服器建立連接,如果連接 建立成功,嘗試啟動數據傳輸;生成下次的索引請求事件,事件類型設為普通類型,設置發 生時間,通過所述事件管理模塊將生成的索引請求事件插入所述離散事件列表。
24.如權利要求14所述的⑶N-P2P混合網絡的模擬系統,其特徵在於,初始化後的離散事件列表中包括副本更新事件;所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類型為副本更新事件 時,進一步用於從配置文件讀取邊緣伺服器對應的存儲文件信息,使虛擬邊緣伺服器根據 所述存儲文件信息更新本地存儲文件列表;使虛擬全局索引伺服器根據所述存儲文件信息 更新文件對應的邊緣伺服器位置信息列表,並生成下次的副本更新事件,設置發生時間,將 所述生成的副本更新事件插入所述離散事件列表。
25.如權利要求14所述的⑶N-P2P混合網絡的模擬系統,其特徵在於,所述網絡運行模擬模塊用於在所述事件管理模塊彈出的事件的類型為統計信息事件 時,進一步用於遍歷所述虛擬CDN-P2P混合網絡的虛擬節點列表,統計其中已經完成的以 及處於空閒狀態的虛擬節點數目,生成一個新的統計信息事件,設置發生時間,通過所述事 件管理模塊將所述統計事件插入所述離散事件列表。
全文摘要
本發明涉及CDN-P2P混合網絡的模擬方法及系統,方法包括步驟1,讀取配置文件,建立虛擬CDN-P2P混合網絡;步驟2,初始化離散事件列表,並在所述離散事件列表中插入對應於下載節點初次加入行為的節點加入事件,插入傳輸速率計算事件和統計信息事件;步驟3,從所述離散事件列表中依次彈出事件,根據所述事件的類型在所述虛擬CDN-P2P混合網絡中執行對應操作;步驟4,將所述離散事件列表中所有事件執行完成後,統計整個模擬過程數據信息,結束模擬。本發明能夠實現對CDN-P2P混合網絡的模擬,獲得CDN-P2P混合網絡的性能仿真數據,以供網絡布置更新和網絡性能改進中使用。
文檔編號H04L29/08GK101841531SQ20101012688
公開日2010年9月22日 申請日期2010年3月16日 優先權日2010年3月16日
發明者李軍, 楊國標, 王展, 翟海濱, 蔣海 申請人:中國科學院計算技術研究所

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀