คืออะไร โปรโตคอลการสื่อสาร IoT?
โปรโตคอล IoT เป็นมาตรฐานหรือ “ภาษา” เครื่องจักรใช้ในการสื่อสารระหว่างกัน, หรือกับแพลตฟอร์ม. ขึ้นอยู่กับคุณสมบัติและฟังก์ชันการทำงาน, โปรโตคอลเหล่านี้ส่วนใหญ่แบ่งออกเป็น 3 ประเภท: โปรโตคอลการส่ง, โปรโตคอลการสื่อสาร, และโปรโตคอลเฉพาะอุตสาหกรรม.
โปรโตคอลการส่ง: ใช้โดยอุปกรณ์สำหรับ เครือข่าย IoT และการเชื่อมต่อภายในซับเน็ต, รวมถึง Wi-Fi, บลูทูธ, ซิกเบีย, อีเทอร์เน็ต, เอ็นเอฟซี, 3g/ 4g/ 5g ฯลฯ.
โปรโตคอลการสื่อสาร: ใช้สำหรับการส่งข้อมูลระหว่างอุปกรณ์, ทำงานเหนือเลเยอร์เครือข่ายและให้บริการเลเยอร์แอปพลิเคชันแก่ผู้ใช้. โปรโตคอลการสื่อสารบางส่วน: มคต, ขนลุก, http/https, websocket, AMQP.
โปรโตคอลเฉพาะอุตสาหกรรม: โปรโตคอลมาตรฐานภายในอุตสาหกรรมเฉพาะเพื่อให้แน่ใจว่าเข้ากันได้ระหว่างอุปกรณ์, ระบบ, แพลตฟอร์มโดยผู้ผลิตและแบรนด์ต่าง ๆ, เช่น JT/T 808 โปรโตคอลการสื่อสารเทอร์มินัลยานพาหนะในประเทศจีน.
เข้าใจ 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 เฉพาะ, จำเป็นอย่างยิ่งที่จะต้องพิจารณาความต้องการการสื่อสารที่แท้จริงของสถานการณ์ - เช่นข้อ จำกัด แบนด์วิดท์, ข้อกำหนดเวลาแฝง, และความปลอดภัย - ก่อนที่จะเลือกโปรโตคอลที่เหมาะสมที่สุด.