天天看點

P2P模拟器

P2P網絡在規模上能夠擴充到很大,網絡異構性也很高,而且加入p2p網絡的計算機在帶寬、存儲容量、計算能力上有巨大的差異。并且,p2p網絡的工作涉及使用者計算機、實體網絡、應用層覆寫網、P2P協定和最高層的使用者,多層得複雜性導緻:

  • 如果要在真實環境中實際運作,測試一個p2p網絡需要付出巨大的努力,通常是不可取的;
  • 反而,使用模拟的方法忽略掉一些不必要和不關心的細節,在可控的環境中測試、評價一個P2P網絡,不僅友善、易實作,且結果常常能更公平(可以基于統一模拟器測試多種p2p協定)。

但長久以來沒有得到重視的原因:(這是03年時的論調,僅供參考,現在已經有了很大的變化)

  • P2p大規模的、動态性的覆寫網絡,是以前網絡沒有遇到過的,使其模拟器設計、開發十分困難;
  • 現有經典模拟器NS-2等的存在,使得研究者不遠花費大量勞動開發專用P2P模拟器 (實際并非這樣,如NS-2,它模拟的網絡層次很低,最高到達傳輸層,但p2p卻工作在應用層)
  • 從Napster,P2P一直就是一種"民間的"的Internet應用,開發者往往專注于吸引使用者,很少有人真正研究它。
  • 到目前為止,p2p領域的研究者對于大規模分布式應用開發中的模拟工作的效果、目标和過程,都未能達成共識,缺乏一個指引人們去實作的标準。

但是現在,已經産生了很多,如:P2P sim,3Ls, GunutellaSim, PeerSim等,還有nb的全球網絡服務仿真平台PlanetLab。

設計準則:

  • 簡潔易用
  • 通用性:适用各種p2p協定
  • 可擴充性:結點規模既能很小,又能擴大到成千上萬
  • 分層,可組合:既能工作在網絡層,又能工作在應用層(模拟是又可分開,又能組合)
  • 能産生各種必要的事件:至少要産生p2p網絡中最基本的各種事件:路由、事件查詢、結點加入、結點離開或者失效;
  • 合理的時間、空間開銷
  • 合理的同步機制、無死鎖
  • 時延設定合理:p2p網絡中的很多細節因素,如時延,擁塞隊列延遲、帶寬和資料包丢失等,讓p2p模拟器全部都模拟不合理也不必要,在這麼多因素中,時延是不可忽略的,p2p模拟器必須為網絡拓撲設定合理的時延。在P2Psim中,網絡的時延由拓撲提供,而其值基于對Internet主機的真實測量和分析。
  • 新協定實作簡單:盡可能側重算法,要求p2p模拟器對P2p協定中的許多細節做合理的抽象
  • 模拟資訊記錄:如協定參數、時間、消息數、查詢成功率等。

具體的模拟器介紹,自己google吧…,等我研究一段時間,會寫一些體會上來。

【參考書籍:對等網絡:結構、應用與設計】