簡易檢索 / 詳目顯示

研究生: 黃偉任
Huang, Wei-Jen
論文名稱: 一個與平台無關且具備可攜能力的點對點系統框架
A Platform-Independent and Portable Framework for Large Scale P2P System
指導教授: 黃能富
Huang, Nen-Fu
口試委員:
學位類別: 碩士
Master
系所名稱: 電機資訊學院 - 資訊工程學系
Computer Science
論文出版年: 2009
畢業學年度: 97
語文別: 英文
論文頁數: 44
中文關鍵詞: 點對點框架點對點網路點對點計算
外文關鍵詞: P2P Framework, P2P Network, P2P Computing
相關次數: 點閱:2下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 在這個科技日新月異的年代,P2P這個名詞已經越來越流行,只要我們使用一台具備上網功能的電腦,就有機會接觸到P2P這個名詞,無論是檔案傳輸、即時串流影音、隨選影音系統,以及各種可透過電子媒體傳輸的資料皆可透過P2P架構來傳輸。有別於傳統的主從式架構的網路資料傳輸方式,P2P提供了一個更具強韌性與可靠度的環境。話雖如此,然而實做一個P2P系統並非如此簡單,設計系統時底層的實做太過於複雜,包括:處理來自IPv4及IPv6的TCP封包傳送與UDP封包的傳送、與不同作業系統之間特殊的系統層級API wrapper處理、定時事件處理機制、可擴充之模組化設計、NAT穿透資料傳輸能力、資料傳輸備援設計等等,對於剛踏入從事P2P研究領域的研究人員,實在是一件頭痛的事情。
    因此本論文提出一個相當嚴謹的框架方法,以提供研究人員與研發工程師,能夠依照此方法設計出一個完整的P2P系統,專注於各種P2P演算法的設計,降低開發人員在設計不同的作業系統平台上之P2P模組的問題,制定公用的程式呼叫介面以達到模組化連接,加上CDN機制的資料備援系統與NAT穿透伺服器的設計,解決了各種異質網路的狀況。綜合以上,本論文之方法經由團隊分工的方式,大幅降低開發時間與成本,提高商業系統穩定性與營運效率。


    Living in a time with fast-developing technology, the peer-to-peer (P2P) has become a popular term. As long as we use a computer equipped with the Internet access, we are able to get to know the term, P2P, among file transmission, real-time audio, video streaming, video on demand systems and any data transmitted through electronic media, and all of them can be transmitted through the P2P network. Differentiating from the traditional client-server network of information transmission, P2P serves with better robustness and reliability for a large scale network service. However, implementing a P2P system is not that easy; the implementation of the design of the underlying system, including the processing of TCP packets and UDP packets from IPv4 and IPv6, design API wrapper to communicate with different operating system, periodical event handler mechanism, extensible modules design, NAT packet traversal technique and data recovery service, frustrates those researchers who just work in this field. Therefore, this thesis presents a framework of rigorous methods to researchers and engineers to design a complete P2P system, focus on the design of a variety of P2P algorithms to decrease problems developer may face while designing P2P platform module in different OS, and call the API in the module to reduce mistakes. Besides, with the CDN mechanism redundant system and NAT Hole punch design, it will address malfunctions of a variety of heterogeneous network. Based on the above, this method in this thesis aims to significantly save the developing time and expense, and improves business efficiency and operational stability by team cooperation.

    Chapter 1 Introduction Chapter 2 Background 2.1 Network Programming 2.1.1 BSD Socket and Winsock API 2.1.2 Network Programming Design Pattern 2.2 Related Works 2.2.1 JXTA P2P Framework Chapter 3 L-Framework 3.1 Core Loader Architecture 3.1.1 UML Diagram and Details of Core Loader 3.1.2 Network Protocol 3.1.3 Plug-in Interface and API 3.1.4 Boot Up the Core Loader 3.2 UDP NAT Hole Punching 3.2.1 The Theory of UDP NAT Hole Punching 3.3 CDN based P2P Localization 3.3.1 How to Speed Up a P2P System 3.3.2 Memory Mapped File Mechanism Chapter 4 Experiments 4.1 Effectiveness of L-Framework 4.1.1 The Portability Check in Different Platform 4.1.2 Boot Up the Core Loader in Browser 4.2 Correctness of L-Framework 4.2.1 Environment Setup 4.2.2 Mesh-based P2P Algorithms Plug-in 4.2.3 Peer Number Statistics 4.2.4 Seed Upload and Download Rate 4.2.5 Peer Upload and Download Rate 4.2.6 P2P Global Information Viewer Chapter 5 Conclusions 5.1 Summary References

    [1] http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
    [2] http://www.microsoft.com/WINDOWS/
    [3] http://en.wikipedia.org/wiki/Unix-like
    [4] http://en.wikipedia.org/wiki/Embedded_Linux
    [5] OSI Reference Model, Hubert Zimmermann, IEEE Transactions on Communications, Vol. COMM-28(4), p425, April 1980.
    [6] http://msdn.microsoft.com/en-us/library/aa286483.aspx
    [7] http://www.php.net/
    [8] http://en.wikipedia.org/wiki/AJAX
    [9] http://en.wikipedia.org/wiki/Berkeley_sockets
    [10] http://msdn2.microsoft.com/en-us/library/ms741416.aspx
    [11] Douglas C. Schmidt, Reactor: “An Object Behavioral Pattern for Demultiplexing and Dispatching Handles for Synchronous Events”.
    [12] Irfan Pyarali, Tim Harrison, Douglas C. Schmidt, and Thomas Jordan, Proactor: “An Object Behavioral Pattern for Demultiplexing and Dispatching Handlers for Asynchronous Events”.
    [13] James Hu, Irfan Pyarali, and Douglas C. Schmidt, “Applying the Proactor Pattern to High-Performance Web Servers”.
    [14] http://msdn.microsoft.com/en-us/library/aa365198(VS.85).aspx
    [15] http://lse.sourceforge.net/io/aio.html
    [16] http://jxta.dev.java.net/
    [17] http://www.java.com/getjava/
    [18] http://www.bittorrent.com/
    [19] http://httpd.apache.org/
    [20] UML ISO/IEC 19501:2005 Information technology, Open Distributed Processing, Unified Modeling Language (UML) Version 1.4.2
    [21] http://www.ietf.org/
    [22] http://msdn.microsoft.com/en-us/library/aa751972(VS.85).aspx
    [23] http://java.sun.com/docs/books/jni/
    [24] Bryan Ford, Pyda Srisuresh, and Dan Kegel, “Peer-to-Peer Communication Across Network Address Translators”.
    [25] http://www.akamai.com/
    [26] http://fedoraproject.org/
    [27] http://www.centos.org/
    [28] Nen-Fu Huang and Yi-Ru Chen, “Design of a P2P Live Multi-Media Streaming System with Hybrid Push and Pull Mechanisms”, Master thesis, Department of Computer Science, National Tsing Hua University, July 2009.

    無法下載圖示 全文公開日期 本全文未授權公開 (校內網路)
    全文公開日期 本全文未授權公開 (校外網路)
    全文公開日期 本全文未授權公開 (國家圖書館:臺灣博碩士論文系統)
    QR CODE