MQTT Protocol


ทุกวันนี้ใครๆต่างก็เคยได้ยินคำว่า IoT (Internet of Things) อย่างเเพร่หลาย แม้เเต่ผู้ใช้งานในระดับ Home use ก็สามารถหา Things (อุปกรณ์ Hardware ท่ีเป็น IoT) มาติดตั้งเพื่อใช้งานภายในบ้านได้อย่างง่ายดาย มีจำหน่ายโดยทั่วไป ยกตัวอย่างเช่น Smart Plug ที่เราสามารถสั่งการ ตรวจสอบสถานะผ่านทาง Application บนมือถือได้ , Smart Light หรือหลอดไฟ ที่สามารถกดเปลี่ยนโทนสีให้เหมาะสมตามความต้องการ , Smart TV ที่ต่อ Internet สามารถใช้ดู Youtube หรือ Netflix ได้อย่างง่ายดาย หรือเครื่องใช้ไฟฟ้าอื่นๆก็ตามที่สามารถเชื่อมต่อเข้าสู่ Network ได้ เราก็เรียกได้ว่ามันคือ IoT

เบื้องหลังการรับส่งข้อมูลจาก Things ผ่านทาง Internet เข้าสู่ Server หรือ Platform ของผู้ให้บริการ และเเสดงผลหรือสั่งการผ่านทาง App นั้น สิ่งนึงที่อยู่เบื้องหลัง และได้รับความนิยมใช้งานกันในกลุ่ม IoT Developer ก็คือสื่งที่เราเรียกว่า MQTT Protocol 

Message Queuing Telemetry Transport (MQTT) เป็น Protocol ที่ออกแบบมาเพื่อการเชื่อมต่อแบบ M2M (machine-to-machine) คืออุปกรณ์กับอุปกรณ์ มีน้ําหนักเบา (Lightweight) ออกแบบมาเพื่อใช้งานกับอุปกรณ์อิเล็กทรอนิกส์ขนาดเล็ก การรับส่งข้อมูลในเครือข่ายที่มีขนาดเล็ก Bandwidth ต่ำ ใช้หลักการทํางานแบบ publisher / subscriber คล้ายกับหลักการที่ใช้ใน Web Service ที่ต้องใช้ Web Server เป็นตัวกลางระหว่างคอมพิวเตอร์ของผู้ใช้ แต่ MQTT จะใช้ตัวกลางที่เรียกว่า Broker เพื่อทําหน้าที่ จัดการคิว รับส่งข้อมูลระหว่างอุปกรณ์ และทั้งในส่วนที่เป็น Publisher และ Subscriber ดังภาพ


การทํางานของ MQTT Protocol นั้นยังเป็นแบบ Plain text ซึ่งอาจทําให้มีผู้ไม่หวังดีสามารถทํา Man in the middle เพื่อดักฟังข้อมูลได้

เพื่อป้องกันการโจมตีดังกล่าว จึงมีการพัฒนา Secure MQTT ขึ้นมา โดยการใช้ SSL (Secure Socket Layer) เข้ามาช่วยในการ Encrypt ข้อมูล โดยการใช้ Private Key / Public Key ที่ถูก Generate ขึ้นมาคู่กัน (Key Chain) ซึ่งทําให้ผู้โจมตี กระทําการโจมตีได้ยากขึ้น

นอกจากนี้ MQTT Protocol ยังรองรับการเชื่อมต่อเเบบ Web Socket และ Secure Web Socket ได้เช่นกัน

ในส่วนของการทำ Authentication หรือการยืนยันตัวตนนั้น MQTT Protocol จะใช้ Username และ Password โดยหาก Things ต้องการเชื่อมต่อเข้ามาที่ MQTT Broker จะต้องกำหนด Username / Password ให้ถูกต้องเพื่อให้สามารถรับส่งข้อมูลได้

ตัวอย่าง MQTT Broker ที่นิยมใช้กันในปัจจุบัน เช่น Mosquito , Rabbit MQ เป็นต้น โดยที่ผู้สนใจสามารถ Download มาติดตั้งได้โดยไม่ต้องจ่ายเงินเเต่อย่างใด


MQTT Protocol
Payungsak Klinchampa
22 May, 2020
Share this post
Tags
Edit
Archive