Tổng quan về các giao thức kết nối mạng và nhắn tin cho IoT

Xin chào, Khabrovites! Nhà phát triển IoT khóa học trực tuyến đầu tiên của Nga ra mắt trong OTUS vào tháng XNUMX. Ghi danh cho khóa học hiện đang mở, liên quan đến việc chúng tôi tiếp tục chia sẻ các tài liệu hữu ích với bạn.

Tổng quan về các giao thức kết nối mạng và nhắn tin cho IoT

Internet vạn vật (IoT, Internet of Things) sẽ được xây dựng trên cơ sở hạ tầng mạng hiện có, các công nghệ và giao thức hiện được sử dụng trong nhà/văn phòng và Internet, đồng thời sẽ cung cấp nhiều hơn thế nữa.

Mục đích của hướng dẫn này là cung cấp một cái nhìn tổng quan ngắn gọn về các giao thức mạng và ứng dụng cho IoT.

Ghi chú. Bạn phải có kiến ​​thức cơ bản về công nghệ mạng.

Mạng IoT

IoT sẽ chạy trên các mạng TCP/IP hiện có.

TCP/IP sử dụng mô hình bốn lớp với các giao thức cụ thể ở mỗi lớp. cm. hiểu mô hình lớp TCP/IP 4 (ta hiểu mô hình bốn lớp của TCP/IP).

Sơ đồ bên dưới cho thấy sự so sánh giữa các giao thức hiện đang được sử dụng và những giao thức có nhiều khả năng được sử dụng nhất cho IoT.

Tổng quan về các giao thức kết nối mạng và nhắn tin cho IoT

Ghi chú biểu đồ:

  1. Kích thước phông chữ cho biết mức độ phổ biến của giao thức. Ví dụ, ở bên trái, IPv4 lớn hơn, vì nó phổ biến hơn nhiều trên Internet hiện đại. Tuy nhiên, nó nhỏ hơn ở bên phải vì IPv6 dự kiến ​​sẽ phổ biến hơn trong IoT.

  2. Không phải tất cả các giao thức được hiển thị.

  3. Hầu hết tất cả các thay đổi đều ở cấp kênh (cấp 1 và 2) và cấp ứng dụng (cấp 4).

  4. Các lớp mạng và vận chuyển có thể sẽ không thay đổi.

Giao thức tầng liên kết

Ở cấp độ liên kết dữ liệu (Data Link), bạn cần kết nối các thiết bị với nhau. Ví dụ, chúng có thể ở gần nhau trong các mạng cục bộ (mạng cục bộ) và ở khoảng cách rất xa: trong đô thị (mạng khu vực đô thị) và mạng toàn cầu (mạng diện rộng).

Hiện tại, ở cấp độ này, mạng gia đình và văn phòng (LAN) sử dụng Ethernet và Wi-Fi, còn mạng di động (WAN) sử dụng 3G/4G. Tuy nhiên, nhiều thiết bị IoT có công suất thấp, chẳng hạn như cảm biến và chỉ được cấp nguồn bằng pin. Trong những trường hợp này, Ethernet không phù hợp nhưng có thể sử dụng Wi-Fi công suất thấp và Bluetooth công suất thấp.

Mặc dù các công nghệ không dây hiện có (Wi-Fi, Bluetooth, 3G/4G) sẽ tiếp tục được sử dụng để kết nối các thiết bị này, nhưng cũng đáng xem xét các công nghệ mới được thiết kế riêng cho các ứng dụng IoT có khả năng phát triển phổ biến.

Trong số đó:

  • BLE - Bluetooth năng lượng thấp

  • LoRaWAN - WAN tầm xa

  • SigFox

  • LTE-M

Chúng được mô tả chi tiết hơn trong bài viết. Tổng quan về công nghệ không dây IOT (tổng quan về các công nghệ IoT không dây).

lớp mạng

Ở tầng mạng (Networking), về lâu dài giao thức sẽ chiếm ưu thế IPv6. Không chắc rằng IPv4 sẽ được sử dụng, nhưng nó có thể đóng một vai trò nào đó trong giai đoạn đầu. Hầu hết các thiết bị IoT gia đình, chẳng hạn như bóng đèn thông minh, hiện đang sử dụng IPv4.

lớp vận chuyển 

Ở tầng vận chuyển (Transport), Internet và web do TCP thống trị. Nó được sử dụng trong cả HTTP và nhiều giao thức Internet phổ biến khác (SMTP, POP3, IMAP4, v.v.).

MQTT, mà tôi hy vọng sẽ trở thành một trong những giao thức lớp ứng dụng chính để nhắn tin, hiện đang sử dụng TCP.

Tuy nhiên, trong tương lai, do chi phí thấp hơn, tôi hy vọng UDP sẽ trở nên phổ biến hơn cho IoT. Có lẽ phổ biến hơn MQTT-SN, chạy trên UDP. Xem bài so sánh TCP so với UDP .

Lớp ứng dụng và giao thức nhắn tin

Các đặc điểm quan trọng đối với các giao thức IoT:

  • Tốc độ - lượng dữ liệu được truyền mỗi giây.

  • Độ trễ là thời gian cần thiết để gửi một tin nhắn.

  • Tiêu thụ điện năng

  • An ninh.

  • Tính sẵn có của phần mềm.

Hiện tại, hai giao thức chính đang được sử dụng tích cực ở cấp độ này: HTTP và MQTT.

HTTP có lẽ là giao thức nổi tiếng nhất ở cấp độ này bên dưới web (WWW). Nó sẽ tiếp tục đóng vai trò quan trọng đối với IoT, vì nó được sử dụng cho API REST - cơ chế chính để tương tác giữa các ứng dụng và dịch vụ web. Tuy nhiên, do chi phí hoạt động cao, HTTP khó có thể trở thành giao thức IoT chính, mặc dù nó vẫn sẽ được sử dụng rộng rãi trên Internet.

MQTT (Truyền tải từ xa xếp hàng tin nhắn) đã trở thành giao thức nhắn tin chính trong IoT do tính nhẹ và dễ sử dụng của nó. xem bài viết Giới thiệu về MQTT cho người mới bắt đầu (Giới thiệu về MQTT cho người mới bắt đầu).

So sánh HTTP và MQTT cho IoT

MQTT đang nhanh chóng trở thành tiêu chuẩn thực tế cho các ứng dụng IoT. Điều này là do sự nhẹ nhàng và tốc độ của nó so với HTTP và thực tế rằng nó là giao thức một-nhiều chứ không phải một-đối-một (HTTP).

Nhiều ứng dụng web hiện đại sẽ vui vẻ sử dụng MQTT thay vì HTTP nếu nó có sẵn tại thời điểm phát triển của chúng.

Một ví dụ điển hình là gửi thông tin cho nhiều khách hàng, chẳng hạn như điểm đến và điểm khởi hành của tàu hỏa/xe buýt/máy bay. Trong trường hợp này, giao thức một đối một như HTTP có rất nhiều chi phí hoạt động và đặt nhiều tải lên máy chủ web. Mở rộng quy mô các máy chủ web này có thể khó khăn. Với MQTT, khách hàng kết nối với một nhà môi giới, có thể dễ dàng thêm vào để cân bằng tải. Xem video hướng dẫn về nó Xuất bản lại dữ liệu HTML qua MQTT (Ví dụ về chuyến bay đến) và bài viết MQTT so với HTTP cho IOT.

Các giao thức nhắn tin khác

HTTP không được thiết kế cho các ứng dụng IoT, nhưng như đã đề cập, nó sẽ được sử dụng rộng rãi trong một thời gian do được sử dụng rộng rãi trong API.

Hầu như tất cả các nền tảng IoT đều hỗ trợ cả HTTP và MQTT.

Tuy nhiên, có những giao thức khác đáng xem xét.

Các giao thức

  • MQTT - (Truyền tải từ xa xếp hàng tin nhắn). Sử dụng TCP/IP. Mô hình đăng ký xuất bản yêu cầu một nhà môi giới tin nhắn.

  • AMQP - (Giao thức xếp hàng tin nhắn nâng cao). Sử dụng TCP/IP. Mô hình Publisher-Subscriber và Point-to-Point.

  • COAP - (Giao thức ứng dụng bị ràng buộc). Sử dụng UDP. Được thiết kế dành riêng cho IoT, sử dụng mô hình yêu cầu-phản hồi như trong HTTP. RFC 7252.

  • DDS - (Dịch vụ phân phối dữ liệu) 

Trong này Bài viết các giao thức chính và các ứng dụng của chúng được xem xét. Kết luận của bài viết này là IoT sẽ sử dụng một bộ giao thức, tùy thuộc vào mục đích sử dụng của chúng.

Tuy nhiên, khi nhìn lại, trong những năm đầu của Internet, giao thức HTTP trở nên thống trị chỉ là một trong nhiều giao thức.

Mặc dù HTTP ban đầu không được hình thành để truyền tệp và email, nhưng ngày nay nó được sử dụng cho cả hai.

Tôi hy vọng điều tương tự sẽ xảy ra với các giao thức nhắn tin trong IoT: hầu hết các dịch vụ sẽ sử dụng một giao thức chiếm ưu thế.

Dưới đây là biểu đồ Google Xu hướng cho thấy mức độ phổ biến của MQTT, COAP và AMQP đã thay đổi như thế nào trong vài năm qua.

Tổng quan về Google Xu hướng 

Tổng quan về các giao thức kết nối mạng và nhắn tin cho IoT

Hỗ trợ giao thức theo nền tảng

  • Microsoft Azure - MQTT, AMQP, HTTP và HTTPS

  • AWS - MQTT, HTTPS, MQTT qua ổ cắm web

  • IBM Bluemix - MQTT,HTTPS,MQTT

  • Thingworx — MQTT, HTTPS, MQTT, AMQP

Tóm tắt thông tin

Hầu hết tất cả các thay đổi đều ở cấp kênh (cấp 1 và 2) và cấp ứng dụng (cấp 4).

Các lớp mạng và vận chuyển có thể sẽ không thay đổi.

Ở lớp ứng dụng, các thành phần IoT sẽ sử dụng các giao thức nhắn tin. Mặc dù chúng ta vẫn đang ở giai đoạn đầu trong quá trình phát triển IoT, nhưng có khả năng một hoặc hai giao thức nhắn tin sẽ nổi bật.

Trong vài năm qua, MQTT đã trở nên phổ biến nhất và tôi hiện đang tập trung vào trang web này.

HTTP cũng sẽ tiếp tục được sử dụng vì nó đã được tích hợp sẵn trong các nền tảng IoT hiện có.

Đó là tất cả. Chúng tôi mời bạn đăng ký một bài học demo miễn phí về chủ đề này "Chatbot ra lệnh nhanh cho thiết bị".

Đọc thêm:

Nguồn: www.habr.com

Thêm một lời nhận xét