簡易檢索 / 詳目顯示

研究生: 葉祐誠
Yeh, Yu-Cheng
論文名稱: 使用WebSocket壓縮優化網頁多人遊戲之表現
Optimizing Performance in Web-Based Multiplayer Game through WebSocket Compression
指導教授: 黃悅民
Huang, Yueh-Min
學位類別: 碩士
Master
系所名稱: 工學院 - 工程科學系
Department of Engineering Science
論文出版年: 2015
畢業學年度: 103
語文別: 英文
論文頁數: 63
中文關鍵詞: 遊戲性能WebSocket協定Deflate演算法壓縮擴展
外文關鍵詞: game performance, WebSocket protocol, Deflate algorithm, compression extension
相關次數: 點閱:69下載:5
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 由於網頁技術的發達,使網頁應用越來越廣泛,網頁遊戲也從簡單的架構,演變至目前可支援多人連線的3D遊戲。隨著網頁遊戲越來越複雜,當中的資料傳輸也越來越龐大,若連線網路頻寬不夠,或是客戶端硬體資源不足,遊戲將會產生明顯的延遲,帶來不良的遊戲體驗。若能透過壓縮資料來降低傳輸負載,將可降低傳輸時間,並減少延遲,提升遊戲性能。因此,本論文提出一個壓縮決策方法,根據各連線端之運算效能、網路頻寬以及檔案類型,進行壓縮決策,並計算出最佳的壓縮參數。除此之外,本論文建立一個基於網頁的多人連線遊戲,使用了WebSocket協定與其Deflate演算法壓縮擴展,以此研究壓縮決策方法應用之效果。研究成果顯示,不論是在一般或是限制頻寬下,本論文提出之方法皆能縮短整體系統時間,減少遊戲之延遲。

    Due to the rapid development of the web technologies, the web applications become more and more popular. The web game evolves from simple structure to multiplayer 3D game. As the web game becomes more and more complicated, the transmission data increases extremely. The web game will have significant latency if the network bandwidth is insufficient or lack of hardware resource on client side. This brings bad user experience. The payload of transmission can be reduced by compressing the data, and lower the transmission time. The game performance promotes along with the reduction of the latency. Therefore, a compression decision method is proposed in this thesis. The compression decision is made according to the capability of the endpoints, the network bandwidth, and data type. The optimal compression parameters are calculated by this method. Furthermore, a Web-based multiplayer game using WebSocket protocol and compression extension of Deflate algorithm is built in this thesis. The compression decision method is applied on this application to analyze the performance. The research results show that no matter high or low the network bandwidth is, the method proposed by this thesis can reduce the overall system time and lower the latency of the game.

    摘要 I Abstract II Acknowledgements III Contents IV List of Figures VI List of Tables VIII Chapter 1 Introduction 1 1.1 Motivation 1 1.2 Contribution 2 1.3 Thesis Organization 4 Chapter 2 Background and Related Work 5 2.1 HTML5 5 2.2 Web Client-Server Communications 7 2.2.1 HTTP Polling 7 2.2.2 HTTP Long Polling 8 2.2.3 WebSocket Protocol 9 2.3 Compression Algorithm 13 2.4 WebGL 16 Chapter 3 Research Methods 19 3.1 System Architecture 19 3.2 Web-Based Multiplayer Game 21 3.3 Compression Decision 24 3.4 System Workflow 32 Chapter 4 Experiments 35 4.1 Experimental Environment 35 4.1.1 Node.js on Server Side 35 4.1.2 Node.js on Client Side 37 4.1.3 Beaglebone Black 39 4.1.4 Android System 40 4.2 Results and Analysis 42 4.2.1 Transmission in Low Bandwidth 43 4.2.2 Transmission in High Bandwidth 44 4.2.3 Transmission of Compressed File 45 4.2.4 Analysis 49 Chapter 5 Conclusion and Future Work 50 5.1 Conclusion 50 5.2 Future Work 51 References 52 Appendix A 56 Appendix B 58 Appendix C 60 Appendix D 62

    [1] T. O’Reilly, “What is Web 2.0,” (Sep. 2005). Retrieved Jan. 2015, from http://www.oreilly.com/pub/a/web2/archive/what-is-web-20.html
    [2] “Interesting stats of HTTP Achieve,” (n. d.). Retrieved Jan. 2015, from http://httparchive.org/interesting.php
    [3] I. Hickson et al., “HTML5 of W3C Recommendation,” (Oct. 2014). Retrieved Nov. 2014, from http://www.w3.org/TR/html5/single-page.html
    [4] R. T. Fielding and R. N. Taylor, “Principled Design of the Modern Web Architecture,” in ACM Trans. on Internet Technology, vol. 2, pp. 115-150, May. 2002.
    [5] R. M. Lerner, “At the Forge: Communication in HTML5,” in Linux Journal, vol. 2011, no. 7, Feb. 2011.
    [6] R. M. Lerner, “At the Forge Real-Time Messaging,” in Linux Journal, vol. 2013, no. 5, Jan. 2013.
    [7] S. Mavrody, Sergey's HTML5 & CSS3 Quick Reference, 2nd ed., N. Mavrody, Ed. Belisso Corp., Mar. 2012.
    [8] S. Aghaee and C. Pautasso, “Mashup Development with HTML5,” in Proc. of the 3rd and 4th Int. Workshop on Web APIs and Services Mashups, no.10, Dec. 2010.
    [9] C. Musciano and B. Kennedy, “Dynamic Documents,” in HTML & XHTML: The Definitive Guide, 6th ed., pp. 447-456, T. Apandi Ed. Sebastopol CA: O’Reilly, 2006.
    [10] S. Loreto et al., “Known Issues and Best Practices for the Use of Long Polling and Streaming in Bidirectional HTTP,” (Apr. 2011). Retrieved Feb. 2015, from https://tools.ietf.org/html/rfc6202
    [11] I. Fette et al., “The WebSocket Protocol,” (Dec. 2011). Retrieved Feb. 2015, from https://tools.ietf.org/html/rfc6455
    [12] I. Hickson, “The WebSocket API of W3C Working Draft,” (Sep. 2011). Retrieved Feb. 2015, from http://www.w3.org/TR/2011/WD-websockets-20110929/
    [13] V. Wang et al., “The WebSocket Protocol,” in The Definitive Guild to HTML5 WebSocket, pp. 33-60, B. Renow-Clarke and C. Nelson Ed. New York: Apress, 2013.
    [14] T. Yoshino, “Compression Extension for WebSocket draft-ieft-hybi-permessage-compression-24,” (Jun. 2015). Retrieved Jun. 2015, from https://tools.ietf.org/html/draft-ietf-hybi-permessage-compression-24
    [15] Y. Furukawa, “Web-based control application using WebSocket,” in Proc. of the Int. Conf. on Accelerator and Large Experimental Physics Control Syst., pp. 673-675, Oct. 2011.
    [16] C. Gutwin et al., “Real-time Groupware in the Browser: Testing the Performance of web-based Networking,” in Proc. of the ACM conf. on Comput. Supported Cooperative Work, pp. 167-176, Mar. 2011.
    [17] Q. Liu and X. Sun, “Research of Web Real-time Communication Based on Web Socket,” in Int. J. of Commun., Network and System Sciences, vol.5, no. 12, pp. 797-801, Oct. 2012.
    [18] V. Pimentel and B. G. Nickerson, “Communicating and Displaying Real-Time Data with WebSocket,” in IEEE Internet Comput., vol.16, no.4, pp.45-53, Jul. 2012.
    [19] P. Deutsch, “DEFLATE Compressed Data Format Specification version 1.3,” (May 1996). Retrieved Feb. 2015, from https://tools.ietf.org/html/rfc1951
    [20] M. Al-Laham and I. M. M. El Emary, (2007). “Comparative Study between Various Algorithms of Data Compression Techniques,” in Int. J. of Comput. Sci. and Network Security, vol. 7, no. 4, pp. 281-291, Apr. 2007.
    [21] K. Sayood, “Adaptive Dictionary,” in Introduction to Data Compression, 3rd ed., E. A. Fox, Ed. San Francisco, CA: Elsevier Inc., pp.121-133, 2005.
    [22] M. Sharma, “Compression Using Huffman coding,” in Int. J. of Comput. Sci. and Network Security, vol.10, no. 5, pp. 133-141, May 2010.
    [23] Md. R. Hasan, “Data Compression using Huffman based LZW Encoding Technique,” in Int. J. of Sci. and Eng. Research, vol. 2, pp.1-7, Nov. 2011.
    [24] Data compression theory and algorithms, (n. d.). Retrieved Feb. 2015, from http://www.maximumcompression.com/algoritms.php
    [25] D. Salomon, and G. Motta, “Dictionary Methods,” in Handbook of Data Compression, 5th ed., W. Wheeler, Ed. New York: Springer, pp. 329-441, Dec. 2009.
    [26] T. Anusas-amornkul and C. Silawong, “The Study of Compression Algorithms for WebSocket Protocol,” in Int. Conf. on Elect. Eng./Electron. Comput. Telecommun. and Inform. Technology, pp. 1-6, May 2014.
    [27] D. Jackson, “WebGL Specification,” (Oct. 2014). Retrieved Feb. 2015, from https://www.khronos.org/registry/webgl/specs/1.0/
    [28] J. Groff “The Graphics Pipeline,” (Apr. 2010). Retrieved Feb. 2015, from http://duriansoftware.com/joe/
    [29] B. Chen and Z. Xu, “A Framework for Browser-based Multiplayer Online Games using WebGL and WebSocket,” in Int. of Conf. on Multimedia Technology, pp. 471-474, Jul. 2011.
    [30] A. Taivalsaari, and T. Mikkonen, “The Web as an Application Platform: The Saga Continues,” in 37th EUROMICRO Conf. on Software Eng. and Advanced Applicat., pp. 170-174, Aug. 2011.
    [31] Node.js v0.12.6 Manual & Documentation, (n.d.). Retrieved Mar. 2015, from https://nodejs.org/api/zlib.html
    [32] I. Grigorik, “WebSocket,” in High performance Browser Networking, pp. 287-307, C. Nash Ed. Sebastopol, CA: O’Reilly Media, Inc, Sep. 2013.
    [33] I. Grigorik, “Configuring & Optimizing WebSocket Compression,” (Nov. 2013). Retrived Mar. 2015, from https://www.igvita.com/2013/11/27/configuring-and-optimizing-websocket-compression/
    [34] J. Gailly and M. Adler “zlib 1.2.8 Manual”, (Apr. 2013). Retrieved Mar. 2015, from http://www.zlib.net/manual.html
    [35] G. Coley, “BeagleBone Black System Reference Manual,” R. P J Day, Ed. Dallas: Texas Instruments, Apr. 2013.
    [36] J. Ragnarsson, “Abandoned Equirectangular,” (Feb. 2008). Retrieved Apr. 2015, from https://www.flickr.com/photos/jonragnarsson/2294472375/

    下載圖示 校內:2020-08-19公開
    校外:2020-08-19公開
    QR CODE