簡易檢索 / 詳目顯示

研究生: 陳顥文
Chen, Hao-Wen
論文名稱: 基於歷史資料分析之物聯網MQTT代理人動態負載平衡設計與實作
The Design and Implementation of Dynamic Load Balancing Based on Historical Data Analysis in MQTT Broker for IoT Applications
指導教授: 楊中平
Young, Chung-Ping
學位類別: 碩士
Master
系所名稱: 電機資訊學院 - 資訊工程學系
Department of Computer Science and Information Engineering
論文出版年: 2016
畢業學年度: 105
語文別: 英文
論文頁數: 70
中文關鍵詞: 負載平衡軟體定義網路物聯網MQTT
外文關鍵詞: Load balancing, Software Defined Network, IoT, MQTT
相關次數: 點閱:157下載:6
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 在現今物聯網 (IoT) 產業的蓬勃發展造就未來可預見數以百萬的IoT裝置遍佈於人們的生活周遭,而從網路的角度來看此發展趨勢將於各個網路基礎結構上產生就更多的網路流量,因此在網路流量的負載平衡上更加顯得重要。而在物與物之間溝通的方式可預期部份的應用及系統將跳脫以往主客端 (Client-Server) 的形式進而改為採用發布及訂閱架構(Publisher-Subscriber)的 「Broker」 當作媒介。而本研究將結合軟體定義網路,透過IoT裝置的網路使用所產生之流量特徵與 MQTT Broker 伺服器間的效能狀況採用 EWMA 模型進行流量預測後,將連線至Broker的IoT裝置與Broker叢集間進行 「預先式」 的負載平衡以便達到流量平衡以及在未來潛在時間點的流量高峰做連線分散來避免服務壅塞的情況發生。且透過「MPF主機效能評定因子」與即時監控系統可用程度的「AR資源可獲得率因子」能讓在機房內採用不同硬體建置的伺服器仍能夠維持一定程度的效能平衡。而一系列的演算法稱做HDALB(Historical Data Analysis Load Balancing)為本論文提出之核心演算法。

    The Internet of things (IoT) have grown flourishing today, that will be billions of IoT nodes deployed anywhere in the future. It may generate severe network traffic to existing network infrastructure. The number of IoT nodes may affect the stability and balance of whole network infrastructure. While more IoT applications using MQTT protocol as their communication protocol, meaning that more IoT applications transmitting data to MQTT broker. In this dissertation, the author has used the Software-Defined Network to build a system architecture, which is able to monitor each MQTT broker’s system resource in the broker cluster and predicts trend of system resource and network traffic by EWMA. When the node starts connecting to a MQTT broker cluster, the proposed algorithm will reference multiple information like “Mainframe Performance Factor” and “Available Rate” which is able to make construct by different performance hardware mainframe can help algorithm dispatch more fairly. Then do load balancing process to dispatch connection. This algorithm able to solve potential congestion issues which call “Historical Data Analysis Load Balancing”.

    摘要 I Abstract II Acknowledgement III Contents IV List of Tables VIII List of Figures IX Chapter 1. Introduction 1 1.1 Motivation 1 1.2 System Overview 2 1.3 Organization 3 Chapter 2. Related Works 4 2.1 Software-Defined Networking 4 2.2 OpenFlow 4 2.3 Load Balancing 5 2.4 IoT Infrastructure 7 2.5 MQTT 7 2.6 EWMA 8 Chapter 3. System Design 9 3.1. NIT Infrastructure 9 3.1.1. Node Type 10 3.1.2. Registration 10 3.1.3. Association 10 3.1.4. Communication 11 3.2. Mainframe Performance Factor 11 3.3. Available Rate 12 3.4. Historical Data Analysis Load Balancing 13 3.4.1. Global Server Load Balancing like architecture (GSLB) 14 3.4.2. IoT Server 15 3.4.3. Collector 15 3.4.4. SDN Switch and Controller 15 3.4.5. HDALB Database 16 3.4.6. DNS Server 16 Chapter 4. System Implementation 22 4.1. Global Server Load Balancing like architecture (GLSB) 22 4.2. SDN Controller 22 4.2.1. Historical Data Analysis Load Balancing 23 4.2.2. DNS Update 23 4.2.3. Add and Remove flow 26 4.2.4. Connection persistence 26 4.2.5. Monitor 28 4.3. Collector 29 4.4. MQTT broker cluster 29 4.5. HDALB Database 29 4.5.1. Table Data Structure 29 4.5.1.1. Broker List 29 4.5.1.2. Broker History 31 4.5.1.3. Node List 32 4.5.1.4. Node History 32 Chapter 5. Experimental Results 34 5.1. The Experimental Environment 34 5.2. The Experimental Common Parameter 37 5.3. The MPF and RAR verify 37 5.4. The Experimental Subjects 40 5.4.1. Best CLB weight choosing 40 5.4.2. Processing Time 41 5.4.3. Node Type Count Distribution 42 5.4.4. Message Response Time and Message Per Second Experiment 45 5.4.4.1. Message Response Time 45 5.4.4.2. Message Per Second (Throughput) 47 5.4.5. Robust Traffic Experiment 49 5.4.5.1. Robust Traffic Experiment for HDALB 49 5.4.5.2. Robust Traffic Experiment for HDALB-AR 51 5.4.5.3. Robust Traffic Experiment for CLB 53 5.4.5.4. Robust Traffic Experiment for RR 54 5.4.5.5. Robust Traffic Experiment for RAND 56 5.4.5.6. Robust Traffic Experiment results in overview 58 5.4.6. Historical Data Analysis Experiment 59 5.4.6.1. Historical Data Analysis Experiment for HDALB without history 59 5.4.6.2. Historical Data Analysis Experiment for HDALB with history 61 5.4.6.3. Historical Data Analysis Experiment for HDALB with pre-learn 63 5.4.6.4. Historical Data Analysis Experiment for HDALB results in overview 65 Chapter 6. Conclusion and Future Work 66 6.1. Conclusion 66 6.2. Future work 66 References 67

    [1] Open Networking Foundation, "Software-Defined Networking (SDN) Definition," Open Networking Foundation, 2016. [Online]. Available: https://www.opennetworking.org/sdn-resources/sdn-definition.
    [2] Open Networking Foundation, "Software-Defined Networking: The New Norm for Networks, ONF White Paper," Open Networking Foundation, 2012.
    [3] Google, "Software Defined Networking at Scale," 2014. [Online]. Available: http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/42948.pdf.
    [4] VMWare, "Network Virtualization in Multi-tenant Datacenters," 2013.
    [5] Facebook, 2016. [Online]. Available: https://code.facebook.com/posts/360346274145943/introducing-data-center-fabric-the-next-generation-facebook-data-center-network/.
    [6] Open Networking Foundation, "OpenFlow Introduction," Open Networking Foundation, 2016. [Online]. Available: https://www.opennetworking.org/sdn-resources/openflow.
    [7] Open Networking Foundation, "OpenFlow Switch Specification Version 1.3," Open Networking Foundation, 2012.
    [8] S. Kitagami , Y. Kaneko and T. Suganuma , "Method of Autonomic Load Balancing for Long Polling in M2M Service System," in International Conference on Advanced Information Networking and Applications Workshops, 2012.
    [9] S.-L. Chen, Y.-Y. Chen and S.-H. Kuo, "CLB: A novel load balancing architecture and algorithm for cloud services," Computers and Electrical Engineering, 2016.
    [10] N. Senthil Ganesh and S. Ranjani, "Dynamic Load Balancing using Software Defined Networks," in International Conference on Current Trends in Advanced Computing (ICCTAC-2015), 2015.
    [11] S. Kaur, K. Kumar, J. Singh and N. S. Ghumman, "Round-robin based load balancing in Software Defined Networking," in Computing for Sustainable Global Development (INDIACom), 2015 2nd International Conference on, New Delhi, 2015.
    [12] D. S. Marcon and L. R. Bays, "Flow Based Load Balancing: Optimizing Web Servers Resource Utilization," Journal of Applied Computing Research, vol. 1, no. 2, pp. 76-83, 2011.
    [13] M. Koerner and O. Kao, "Multiple service load-balancing with OpenFlow," in 2012 IEEE 13th International Conference on High Performance Switching and Routing, Belgrade, 2012.
    [14] N. Handigol, S. Seetharaman, M. Flajslik, N. McKeown and R. Johari, "Plug-n-Serve: Load-Balancing Web Traffic using OpenFlow," in ACM SIGCOMM 2009 Demo, Barcelona, 2009.
    [15] R. Wang, D. Butnariu and J. Rexford, "OpenFlow-Based Server Load Balancing Gone Wild," in Hot-ICE'11 Proceedings of the 11th USENIX conference on Hot topics in management of internet, cloud, and enterprise networks and services, 2011.
    [16] L.-D. Chou, Y.-T. Yang, Y.-M. Hong, J.-K. Hu and B. Jean, "A Genetic-Based Load Balancing Algorithm in OpenFlow Network," Advanced Technologies, Embedded and Multimedia for Human-centric Computing, vol. 260, pp. 411-417, 2013.
    [17] H. Long, Y. Shen, M. Guo and F. Tang, "LABERIO: Dynamic load-balanced routing in OpenFlow-enabled networks," in Advanced Information Networking and Applications (AINA), 2013 IEEE 27th International Conference , Barcelona, 2013.
    [18] W. Yahya, A. Basuki and J. R. Jiang, "The Extended Dijkstra’s-based Load Balancing for OpenFlow Network," International Journal of Electrical and Computer Engineering (IJECE), vol. 5, no. 2, pp. 289-296, 2015.
    [19] BUTLER, www.iot-butler.eu/.
    [20] C. Sarkar, A. U. N. S. N., R. V. Prasad and A. Rahim, "DIAT: A Scalable Distributed Architecture for IoT," IEEE Internet of Things Journal , vol. 2, no. 3, pp. 230-239, 2014.
    [21] "Ebbits," 2016. [Online]. Available: www.ebbits-project.eu/.
    [22] "IoT@Work," 2016. [Online]. Available: https://www.iot-at-work.eu/.
    [23] "Internet of Things Environment for Service Creation and Testing (IoT.est)," 2016. [Online]. Available: http://ics-iot.weebly.com/iotest.html.
    [24] "uTrustIT," 2016. [Online]. Available: utrustit.cure.at.
    [25] "WuKong: A Proactive Management Framework for M2M Applications," [Online]. Available: http://ccc.ntu.edu.tw/research/projectinfo/wukong.
    [26] MQTT.ORG, 2016. [Online]. Available: http://mqtt.org/faq.
    [27] OASIS Open , "MQTT Version 3.1.1," OASIS Open , 2014.
    [28] NIST, "EWMA Control Charts," [Online]. Available: http://www.itl.nist.gov/div898/handbook/pmc/section3/pmc324.htm. [Accessed 16 08 2016].
    [29] N. Chen, "NIT Infrastructure," 2015. [Online]. Available: https://bitbucket.org/thkaw/2015-iot-neat-infrastructure.
    [30] "mqtt-malaria," [Online]. Available: https://github.com/remakeelectric/mqtt-malaria. [Accessed 18 06 2016].
    [31] "sar," [Online]. Available: http://manpages.ubuntu.com/manpages/xenial/en/man1/sar.sysstat.1.html. [Accessed 18 06 2016].
    [32] I. S. Consortium, "BIND Open Source DNS Server | Internet Systems Consortium," [Online]. Available: https://www.isc.org/downloads/bind/. [Accessed 3 11 2016].
    [33] M. Team, "Mininet," [Online]. Available: http://mininet.org/. [Accessed 3 11 2016].
    [34] R. S. F. Community, "Ryu SDN Framework," [Online]. Available: https://osrg.github.io/ryu/. [Accessed 3 11 2016].

    下載圖示 校內:2020-02-20公開
    校外:2020-02-20公開
    QR CODE