7 โปรโตคอลการสื่อสาร IoT ที่จำเป็นที่นักพัฒนาทุกคนต้องรู้

เหมืองแร่ ธ.ค. 26. 2024
สารบัญ

    คืออะไร โปรโตคอลการสื่อสาร IoT?

    โปรโตคอล IoT เป็นมาตรฐานหรือ “ภาษา” เครื่องจักรใช้ในการสื่อสารระหว่างกัน, หรือกับแพลตฟอร์ม. ขึ้นอยู่กับคุณสมบัติและฟังก์ชันการทำงาน, โปรโตคอลเหล่านี้ส่วนใหญ่แบ่งออกเป็น 3 ประเภท: โปรโตคอลการส่ง, โปรโตคอลการสื่อสาร, และโปรโตคอลเฉพาะอุตสาหกรรม.

    โปรโตคอลการส่ง: ใช้โดยอุปกรณ์สำหรับ เครือข่าย IoT และการเชื่อมต่อภายในซับเน็ต, รวมถึง Wi-Fi, บลูทูธ, ซิกเบีย, อีเทอร์เน็ต, เอ็นเอฟซี, 3g/ 4g/ 5g ฯลฯ.

    โปรโตคอลการสื่อสาร: ใช้สำหรับการส่งข้อมูลระหว่างอุปกรณ์, ทำงานเหนือเลเยอร์เครือข่ายและให้บริการเลเยอร์แอปพลิเคชันแก่ผู้ใช้. โปรโตคอลการสื่อสารบางส่วน: มคต, ขนลุก, http/https, websocket, AMQP.

    โปรโตคอลเฉพาะอุตสาหกรรม: โปรโตคอลมาตรฐานภายในอุตสาหกรรมเฉพาะเพื่อให้แน่ใจว่าเข้ากันได้ระหว่างอุปกรณ์, ระบบ, แพลตฟอร์มโดยผู้ผลิตและแบรนด์ต่าง ๆ, เช่น JT/T 808 โปรโตคอลการสื่อสารเทอร์มินัลยานพาหนะในประเทศจีน.

    7 Essential IoT Communication Protocols

    เข้าใจ 7 โปรโตคอลการสื่อสาร IoT:

    ที่นี่คุณจะพบโปรโตคอลการสื่อสารที่ใช้ในอุตสาหกรรม IoT, รวมทั้ง:

    1. พักผ่อน/http

    ส่วนที่เหลือคืออะไร

    พักผ่อน (การโอนสถานะตัวแทน)เป็นรูปแบบสถาปัตยกรรมมากกว่ามาตรฐานสำหรับการออกแบบแอปพลิเคชันเครือข่าย, โดยทั่วไปใช้ HTTP เป็นโปรโตคอลการขนส่งเพื่อใช้หลักการทางสถาปัตยกรรม.

    คุณสมบัติ:

    • การไร้สัญชาติ: แต่ละคำขอมีข้อมูลที่จำเป็นทั้งหมด, และเซิร์ฟเวอร์ไม่ได้รักษาสถานะของลูกค้า.
    • การระบุทรัพยากร: ด้านเซิร์ฟเวอร์, สถานะแอปพลิเคชันและฟังก์ชั่นสามารถแบ่งออกเป็นทรัพยากรต่าง ๆ, ซึ่งสัมผัสกับลูกค้า. ตัวอย่างของทรัพยากรรวมถึงวัตถุแอปพลิเคชัน, บันทึกฐานข้อมูล, อัลกอริทึม, ฯลฯ. แต่ละทรัพยากรได้รับการกำหนดที่อยู่ที่ไม่ซ้ำกันโดยใช้ URI (ตัวระบุทรัพยากรสากล).
    • อินเทอร์เฟซเครื่องแบบ: ใช้วิธี HTTP มาตรฐานเพื่อจัดการทรัพยากร, เช่น Get, โพสต์, ใส่, ลบ

    แอปพลิเคชัน:

    REST/HTTP เป็นหลักมีจุดมุ่งหมายเพื่อลดความซับซ้อนของสถาปัตยกรรมระบบของอินเทอร์เน็ต, บรรลุการมีเพศสัมพันธ์แบบหลวม ๆ ระหว่างการโต้ตอบกับไคลเอนต์และเซิร์ฟเวอร์อย่างรวดเร็ว, จึงช่วยลดเวลาแฝงการโต้ตอบ. ดังนั้น, เหมาะสำหรับ แอปพลิเคชัน IoT, เปิดใช้งานการเปิดรับทรัพยากร IoT ผ่านการพักผ่อน, การอนุญาตให้บริการถูกเรียกใช้โดยแอปพลิเคชันอื่น ๆ.

    2. ขนลุก

    Coap คืออะไร

    ขนลุก (โปรโตคอลแอปพลิเคชันที่ จำกัด) เสนอการสื่อสารที่ง่ายและมีประสิทธิภาพสำหรับอุปกรณ์ที่มีข้อ จำกัด, ทำให้เหมาะสำหรับการทำงานในพลังงานต่ำ, แบนด์วิดธ์ต่ำ, และสภาพแวดล้อมที่มีความล่าช้าสูง.

    คุณสมบัติ:

    • การบีบอัดส่วนหัว: Coap มีส่วนหัวไบนารีขนาดกะทัดรัดพร้อมฐานของ 4 ไบต์, ตามด้วยตัวเลือกเพิ่มเติม, โดยทั่วไปส่งผลให้ส่วนหัวคำขอของ 10-20 ไบต์.
    • วิธีการและ uris: รองรับ Get, ใส่, โพสต์, ลบวิธีการ, และ URIS สำหรับการเข้าถึงทรัพยากรเซิร์ฟเวอร์.
    • ชั้นขนส่ง: สร้างขึ้นบน UDP เพื่อลดค่าใช้จ่ายและรองรับมัลติคาสต์, ด้วยกลไกความน่าเชื่อถือแบบหยุดและรอที่เรียบง่าย.
    • การสื่อสารแบบอะซิงโครนัส: ไม่เหมือน http, Coap รองรับการสื่อสารแบบอะซิงโครนัส, เหมาะสำหรับแอปพลิเคชัน M2M.
    • การค้นพบทรัพยากร: รวมรูปแบบในตัวสำหรับการค้นพบทรัพยากร, สอดคล้องกับ RFC 5785, การใช้ /.well-known/core สำหรับคำอธิบายทรัพยากร.
    • การแคช: รองรับการแคชคำอธิบายทรัพยากรเพื่อเพิ่มประสิทธิภาพ.

    แอปพลิเคชัน:

    Coap เป็น API ที่ใช้ HTTP ที่ง่ายขึ้น. Coap เป็นโปรโตคอลเลเยอร์แอปพลิเคชันใน 6 สแต็คโปรโตคอล Lowpan, เหมาะสำหรับเครือข่าย IP การสื่อสารที่ จำกัด ทรัพยากร, เช่นเซ็นเซอร์พลังงานต่ำและระบบฝังตัว.

    3. มคต

    mqtt คืออะไร

    โปรโตคอล MQTT ใช้รูปแบบการเผยแพร่/สมัครสมาชิก, โดยทั่วไปแล้วเทอร์มินัล IoT จะเชื่อมต่อกับนายหน้า MQTT ผ่าน TCP. นายหน้าจัดการเนื้อหาการสื่อสารผ่านหัวข้อและรับผิดชอบในการส่งต่อข้อความระหว่างอุปกรณ์.

    คุณสมบัติ:

    • รุ่น Pubish/สมัครสมาชิก: ลูกค้าสามารถเผยแพร่ข้อความไปยังหัวข้อและสมัครรับข้อความจากหัวข้อเฉพาะ. รุ่นนี้ช่วยให้การกระจายข้อความที่ยืดหยุ่น.
    • แบนด์วิดท์ต่ำ: ส่วนหัวข้อความน้อยที่สุด, โดยทั่วไปเท่านั้น 2 ไบต์, รองรับการใช้แบนด์วิดท์ที่มีประสิทธิภาพและทำให้เหมาะสำหรับแบนด์วิดท์ต่ำ, ความเหนียวแน่นสูง, และเครือข่ายที่ไม่เสถียร.
    • ความน่าเชื่อถือ: MQTT เสนอระดับ QOS สามระดับสำหรับการส่งข้อความ: “มากที่สุดครั้งหนึ่ง,” “อย่างน้อยหนึ่งครั้ง,” และ “หนึ่งครั้ง”

    แอปพลิเคชัน:

    MQTT โดยทั่วไปเหมาะสำหรับการรวบรวมข้อมูลอุปกรณ์ไปยังจุดสิ้นสุด (เช่น, อุปกรณ์ -> เซิร์ฟเวอร์) และการสื่อสารจากส่วนกลางในสถาปัตยกรรมเครือข่ายดาว, กับนายหน้าทำหน้าที่เป็นฮับ. มีการใช้กันอย่างแพร่หลายในสถานการณ์ IoT และยังได้รับการยอมรับในแอปพลิเคชันมือถือบางตัว, เช่น Facebook Messenger (อย่างประวัติศาสตร์).

    4. DDS

    DDS คืออะไร

    DDS (บริการกระจายข้อมูล) เป็นมาตรฐานมิดเดิลแวร์ที่สร้างขึ้นสำหรับ ระบบเรียลไทม์. เป็นไปตามความต้องการที่เข้มงวดของแอปพลิเคชันแบบกระจายโดยการให้เวลาแฝงต่ำ, ปริมาณงานสูง, และประสิทธิภาพที่กำหนด.

    คุณสมบัติ:

    • เป็นศูนย์กลางข้อมูล
    • รูปแบบการส่งข้อความเผยแพร่/สมัครสมาชิก Brokerless: สนับสนุนจุดหนึ่งไปอีกจุดหนึ่ง, จุดต่อมัลติพอยต์, และการสื่อสารหลายจุดถึงหลายจุด.
    • เสนอ 21 คุณภาพบริการ (Qos) นโยบาย

    แอปพลิเคชัน:

    แจกจ่าย, น่าเชื่อถือสูง, การสื่อสารข้อมูลแบบเรียลไทม์สำหรับอุปกรณ์. ตอนนี้, DDS ถูกนำมาใช้กันอย่างแพร่หลายในสาขาต่างๆเช่นการบินพลเรือนและการควบคุมอุตสาหกรรม.

    5. AMQP

    AMQP คืออะไร

    AMQP เป็นโปรโตคอลเลเยอร์แอปพลิเคชันแบบเปิดมาตรฐานที่ออกแบบมาเพื่อให้แน่ใจว่ามีการส่งข้อความและกลไกการเข้าคิวที่เชื่อถือได้.

    คุณสมบัติ:

    • โปรโตคอลระดับลวด: ส่งข้อมูลข้ามเครือข่ายเป็นกระแสของไบต์.
    • ความเข้ากันได้สูงเนื่องจากมาตรฐานเปิด
    • ยืดหยุ่นได้ & ปลอดภัย: รองรับรูปแบบการส่งข้อความต่างๆ, รวมถึงการเผยแพร่/สมัครสมาชิกและจุดต่อจุด. นอกจากนี้ยังรวมถึงกลไกความปลอดภัยหลายอย่าง, เช่นการเข้ารหัสและการรับรองความถูกต้อง.

    แอปพลิเคชัน:

    ใช้ครั้งแรกสำหรับการส่งข้อความธุรกรรมในระบบการเงิน, ตอนนี้ AMQP ใช้เป็นหลักในแอปพลิเคชัน IoT สำหรับการสื่อสารและการวิเคราะห์ข้อมูลระหว่างอุปกรณ์มือถือและศูนย์ข้อมูลแบ็กเอนด์.

    6. xmpp

    xmpp คืออะไร

    เป็นโปรโตคอลการสื่อสารแบบเปิดมาตรฐาน, xmpp (โปรโตคอลการส่งข้อความและการแสดงตนที่ขยายได้) ออกแบบมาสำหรับการสื่อสารแบบเรียลไทม์, เช่นข้อมูลการส่งข้อความแบบทันทีและข้อมูลการแสดงตน.

    คุณสมบัติ:

    • รูปแบบการสื่อสารไคลเอนต์/เซิร์ฟเวอร์: ลูกค้าส่งคำขอไปยังเซิร์ฟเวอร์, ซึ่งประมวลผลคำขอและส่งการตอบกลับหรือทรัพยากรที่เหมาะสมกลับไปยังไคลเอนต์กลับ.
    • เครือข่ายแบบกระจาย: หลายโหนดอิสระในรูปแบบเครือข่าย, กำจัดความล้มเหลวเพียงจุดเดียว.
    • ลูกค้าง่าย ๆ: ลูกค้าจัดการงานน้อยลง, ด้วยการคำนวณส่วนใหญ่ที่ทำในฝั่งเซิร์ฟเวอร์.
    • XML ใช้เพื่ออธิบายข้อมูล, สร้างความมั่นใจในความเข้ากันได้ข้ามแพลตฟอร์ม, แม้ว่า JSON จะได้รับความนิยมมากขึ้นในการใช้งานที่ทันสมัย.

    แอปพลิเคชัน:

    XMPP ใช้ในการส่งข้อความโต้ตอบแบบทันที, การจัดการเครือข่าย, การจัดส่งเนื้อหา, เครื่องมือการทำงานร่วมกัน, การแชร์ไฟล์, การเล่นเกม, การตรวจสอบระบบระยะไกล, และอีกมากมาย.

    7. JMS

    JMS คืออะไร

    JMS (บริการข้อความ Java) เป็น API มาตรฐานของแพลตฟอร์ม Java สำหรับการส่งข้อความในแอปพลิเคชันแบบกระจาย. ช่วยให้แอปพลิเคชันสามารถสื่อสารผ่านคิวข้อความ, ดังนั้นการบรรลุอะซิงโครนัส, ยืดหยุ่นได้, และการแลกเปลี่ยนข้อความที่เชื่อถือได้.

    คุณสมบัติ:

    • การสื่อสารแบบอะซิงโครนัส: อนุญาตให้ส่งและรับข้อความในเวลาที่ต่างกัน, เพิ่มความยืดหยุ่นและการตอบสนองของระบบ.
    • ความทนทานของข้อความ: ให้ข้อความคงอยู่, ตรวจสอบให้แน่ใจว่าข้อความจะไม่หายไปในกรณีที่ระบบล้มเหลว, และเพิ่มความน่าเชื่อถือ
    • การสนับสนุนการทำธุรกรรม: JMS ให้การสนับสนุนการทำธุรกรรม, สร้างความมั่นใจว่าอะตอมของกลุ่มการดำเนินการข้อความ, หมายถึงการดำเนินการทั้งหมดนั้นประสบความสำเร็จอย่างสมบูรณ์หรือล้มเหลวทั้งหมด, จึงรับประกันความสอดคล้องของข้อมูล.

    แอปพลิเคชัน:

    JMS เหมาะสำหรับแอปพลิเคชันแบบกระจายที่ต้องการการส่งข้อความแบบอะซิงโครนัส, ระบบ decoupling, และความน่าเชื่อถือสูง, เช่นการรวมแอปพลิเคชันระดับองค์กร, สถาปัตยกรรมที่ขับเคลื่อนด้วยเหตุการณ์, และการประมวลผลข้อมูลแบบเรียลไทม์.

    การเปรียบเทียบโปรโตคอลการสื่อสาร IoT

    คุณสมบัติ DDS มคต AMQP xmpp JMS พักผ่อน/http ขนลุก
    สิ่งที่เป็นนามธรรม ผับ/ย่อย ผับ/ย่อย ผับ/ย่อย นา ผับ/ย่อย คำขอ/ตอบกลับ คำขอ/ตอบกลับ
    สถาปัตยกรรม พื้นที่ข้อมูลทั่วโลก หนังสือมอบฉันทะ P2P หรือพร็อกซี นา หนังสือมอบฉันทะ ผ่านการรับประกัน TCP P2P
    Qos 22 ประเภท 3 ประเภท 3 ประเภท นา 3 ประเภท ยืนยันผ่าน TCP หรือข้อความที่ได้รับการยืนยัน ใช่
    ความสามารถในการทำงานร่วมกันได้ ใช่ บางส่วน ใช่ นา เลขที่ ใช่ ใช่
    ผลงาน 100,000 msg/s/sub 1,000 msg/s/sub 1,000 msg/s/sub นา 1,000 msg/s/sub 100 req/s 100 req/s
    ตามเวลาจริง ใช่ เลขที่ เลขที่ เลขที่ เลขที่ เลขที่ ใช่
    ชั้นขนส่ง รองรับ UDP และ TCP TCP TCP ไม่ได้ระบุไว้, มักจะ TCP TCP UDP UDP
    การกรองการสมัครสมาชิก การกรองตามเนื้อหาและการกรองตามหัวข้อ การสมัครสมาชิกชั้นตามหัวข้อและเนื้อหาข้อความ คิวและการกรองข้อความ นา เนื้อหาข้อความและการกรองหัวข้อ ไม่รองรับ สนับสนุนหัวข้อและมัลติคาสต์
    การเข้ารหัส เป็นไบนารี เป็นไบนารี เป็นไบนารี รูปแบบ xml เป็นไบนารี ข้อความธรรมดา ข้อความธรรมดา
    การค้นพบแบบไดนามิก ใช่ เลขที่ เลขที่ นา เลขที่ เลขที่ เลขที่
    ความปลอดภัย ให้ FSS, ทลส, และตัวเลือกความปลอดภัยอื่น ๆ ชื่อผู้ใช้/รหัสผ่านง่ายๆ, การเข้ารหัสข้อมูล SSL การเข้ารหัสข้อมูล SASL และ TLS นา ให้ FSS, ทลส, การสนับสนุน JAAS API การสนับสนุนทั่วไปสำหรับ SSL และ TLS การสนับสนุนทั่วไปสำหรับ SSL และ TLS

     

    บทสรุป

    มคต, DDS, AMQP, xmpp, JMS, พักผ่อน, และ COAP เป็นโปรโตคอลที่ใช้กันอย่างแพร่หลาย, แต่ละครั้งมีการใช้งานหลายอย่าง, การสนับสนุนการเรียกร้องนั้นสำหรับการเผยแพร่/สมัครสมาชิก IoT แบบเรียลไทม์. อย่างไรก็ตาม, เมื่อออกแบบสถาปัตยกรรมระบบ IoT เฉพาะ, จำเป็นอย่างยิ่งที่จะต้องพิจารณาความต้องการการสื่อสารที่แท้จริงของสถานการณ์ - เช่นข้อ จำกัด แบนด์วิดท์, ข้อกำหนดเวลาแฝง, และความปลอดภัย - ก่อนที่จะเลือกโปรโตคอลที่เหมาะสมที่สุด.

    ต่อไป: โลราวัน vs ซิกบี: ความแตกต่างคืออะไร?
    ก่อนหน้า: สูงสุด 5 เคล็ดลับความปลอดภัยในที่ทำงานใน 2025: เทคโนโลยี IoT ช่วยให้มั่นใจในความปลอดภัยของพนักงาน