• 沒有找到結果。

6.1 結論

本論文實作出一套具有容錯性的巨量檔案發佈系統,解決了以下 的問題,單一 MDS Server 當機或斷線時,將無法繼續提供服務。而 藉由多套的 MDS Server 加上 MDS Server List 的使用可以讓系統持 續提供服務直到剩下最後一套的伺服器。

過去只提供一個 Super Seeder 提供服務,當 Super Seeder 發 生錯誤將會導致整體系統效能的降低。而現在搭配多套 Super Seeder,只要有一台 Super Seeder 可以使用,整體的系統將持續提 供服務。

目前使用多套的 MDS Server 以及 Super Seeder 再加上 MDS Server List 的使用,使得系統可以提供更穩定的服務,再加上藉由 P2P 技術加速傳播檔案使得本系統更具可用性。

我們確實解決了以下問題:

1. 當系統中有其中一台 MDS Server 斷線後,會經由容錯機制使得 Super Seeder 以及 MDS Client 可以連線到其他的 MDS Server 繼續提供下載服務以及下載功能。

2. 當系統中有其中一台 Super Seeder 斷線後,會經由容錯機制,

55

MDS Server 可以發現有 Super Seeder 發生斷線錯誤,並且即 刻置換提供服務的 Super Seeder,讓整體系統效能不受影響。

3. 即使系統發生一台 MDS Server 以及一台 Super Seeder 發生斷 線錯誤後,經由容錯機制仍然可以在短時間之內,MDS Client 選擇其他可用的 MDS Server 來取得服務。

4. 當 MDS Server 發生斷線錯誤之後,再回到可提供服務狀態,提 供系統清除垃圾資訊功能,避免系統有過多不能使用的垃圾資 訊。

5. 當 Super Seeder 發生斷線錯誤之後,在回到系統之後,MDS Server 可以即刻的將 Super Seeder 切換進服務狀態,讓系統每 個元件都可以平均負載的提供服務。

6. 整體系統即使只剩下一台 MDS Server 以及一台 Super Seeder 仍然可以提檔案下載服務,並且維持 P2P 的檔案傳輸特性,依然 可以節省企業頻寬達到最快檔案發佈功能。

6.2 未來展望

在我們實作具容錯性的巨量檔案發佈系統的時候,在 MDS Server 部分有做了一個簡易的負載平衡機制,這個負載平衡只是很

56

簡易的方式並且不是即刻的負載平衡,未來可以在負載平衡的機制上,

再進一步的研究,使得整體系統可以更快的達到負載平衡。

而目前的系統均為指令稿方式執行,系統已經趨近完善,未來也 可以透過整合介面控制多套的 MDS Server 以及 Super Seeder 並且 即時的監控所有 MDS Client 的檔案傳輸狀況,來確保所有的客戶端 都能夠快速的取得檔案。

57

參考資料

[1] Che-Yi Lin, “The Study of Massive Deployment System Based on P2P Technology – The Servers and System", Master Thesis, National Chiao Tung University, August, 2008.

[2] 梁德馨,"九十八年度台灣無線網路使用調查報告", 財團法人台灣 網路資訊中心 (TWNIC), July, 2009.

[3] Chou, Ting-Liang, "The Study of Massive Deployment System Based on P2P Technology - Clients and Performance Analysis", Master Thesis, National Chiao Tung University, August, 2008.

[4] Shawn Fanning, "Napster", http://www.napster.com, Napster, Inc., 1999, 2004.

[5] Justin Frankel, Tom Pepper, "Gnutella", http://en.wikipedia.org/wiki/Gnutella, 2000.

[6] MetaMachine.com, "eDonkey2000 (eDonkey, ed2k)", http://www.edonkey2000.com, 2000.

[7] eMule-Team, "eMule", http://www.emule-project.net, 2002.

[8] Berkeley Software Distribution, 4.2BSD, select(2), http://www.freebsd.org/cgi/man.cgi?query=select"

[9] AT&T, Inc., System V UNIX, poll(2),

http://www.freebsd.org/cgi/man.cgi?query=poll

[10] Dan Kegel, "The C10K Problem", http://www.kegel.com/c10k.html, September, 2006.

[11] FreeBSD 4.1, kqueue(2),

http://www.freebsd.org/cgi/man.cgi?query=kqueue.

[12] Linux 2.5.44, epoll(4),

http://www.xmailserver.org/linux-patches/epoll.txt.

[13] Niels Provos, "libevent API", http://monkey.org/~provos/libevent, 2008.

[14] Sun Microsystems, Inc., Solaris, /dev/poll,

http://access1.sun.com/techarticles/devpoll.html.

[15] Sun Microsystems, Inc., Solaris, event ports,

http://developers.sun.com/solaris/articles/event_completion.html.

[16] Regents of the University of California, 3-clause BSD License, http://www.linfo.org/bsdlicense.html, 1990.

58

[17] R. Braden, RFC 1122, TCP Keepalive,

http://www.faqs.org/rfcs/rfc1122.html, October 1989.

K. Egevang, P. Francis, "RFC 1631 The IP Network Address Translator (NAT)", http://tools.ietf.org/html/rfc1631, May, 1994.

[18]

J. Rosenberg, J. Weinberger, C. Huitema, R. Mahy, "RFC 3489,STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)", http://tools.ietf.org/html/rfc3489, March, 2003.

[19] Bryan Ford, Pyda Srisuresh, Dan Kegel, "Peer-to-Peer Communication Across Network Address Translators", http://www.bford.info/pub/net/p2pnat, February, 2005.

[20] J. Rosenberg, R. Mahy, P. Matthews, "IETF Behave Draft, Traversal Using Relays around NAT (TURN): Relay Extensions to Session Traversal Utilities for NAT (STUN)", http://tools.ietf.org/id/draft-ietf-behave-turn-09.txt, July, 2008.

相關文件