CoAP — پروتکل کاربرد محدود

HTTP سبک برای حسگرهای باتری‌خور و کم‌توان: همان روش‌های GET و PUT و کدهای پاسخ، ولی با سرآیند ۴ بایتی روی UDP. با گزینهٔ Observe، حسگر هر تغییر را خودش خبر می‌دهد.

  • لایهٔ OSI: 7 (کاربرد)
  • انتقال: UDP (یا DTLS)
  • پورت: 5683 / 5684
  • استاندارد: RFC 7252 / 7641
  • سطح: متوسط · حدود 7 دقیقه

نکته‌های کلیدی

  • چهار نوع پیام داریم: CON (نیازمند تأیید)، NON، ACK و RST؛ قابلیت اطمینان را خود CoAP روی UDP می‌سازد.
  • کدها شبیه HTTP‌اند: ۲٫۰۵ محتوا، ۲٫۰۴ تغییر کرد، ۴٫۰۴ پیدا نشد؛ دروازه‌ها به‌راحتی CoAP را به HTTP ترجمه می‌کنند.
  • برای امنیت از DTLS روی پورت 5684 یا OSCORE استفاده کنید؛ CoAP بدون رمز را هرگز رو به اینترنت باز نگذارید (در حملات تقویت DDoS سوءاستفاده شده است).

مراحل شبیه‌سازی (6 بسته)

  1. GET با Observe: دروازه دمای اتاق را می‌خواهد و با گزینهٔ Observe مشترک تغییرات می‌شود. نوع CON یعنی این پیام باید تأیید شود.
  2. پاسخ همراه تأیید: حسگر در همان پیام ACK پاسخ را هم می‌دهد (Piggybacked): کد ۲٫۰۵ یعنی محتوا، معادل 200 OK در HTTP.
  3. اعلان تغییر: دما بالا رفت. حسگر بدون پرسش دوباره، خودش اعلان می‌فرستد. نوع NON یعنی تأیید لازم نیست و باتری کمتری مصرف می‌شود.
  4. PUT گم شد: دروازه به شیر رادیاتور فرمان بستن می‌دهد ولی بسته در شبکهٔ بی‌سیم گم می‌شود.
  5. ارسال دوباره: ACK در مهلت ۲ تا ۳ ثانیه نرسید؛ دروازه همان پیام را با همان شناسهٔ پیام می‌فرستد و مهلت بعدی را دو برابر می‌کند.
  6. 2.04 Changed: شیر بسته شد و تأیید می‌کند. اگر پیام تکراری می‌رسید، شیر از روی شناسهٔ پیام آن را تشخیص می‌داد و دوباره اجرا نمی‌کرد.

پرسش‌های رایج

CoAP چیست؟

CoAP (پروتکل کاربرد محدود) HTTP سبک برای حسگرهای باتری‌خور و کم‌توان: همان روش‌های GET و PUT و کدهای پاسخ، ولی با سرآیند ۴ بایتی روی UDP. با گزینهٔ Observe، حسگر هر تغییر را خودش خبر می‌دهد.

CoAP در کدام لایهٔ شبکه کار می‌کند؟

در لایهٔ ۷ مدل OSI (کاربرد)؛ انتقال: UDP (یا DTLS)؛ پورت: 5683 / 5684. دسته: صنعتی و اینترنت اشیا.

استاندارد CoAP کدام است؟

CoAP در RFC 7252 / 7641 تعریف شده است (۲۰۱۴).

کد پاسخ 2.05 در CoAP معادل کدام کد HTTP است؟

200 OK (Content).

مهم‌ترین نکته‌های CoAP چیست؟

چهار نوع پیام داریم: CON (نیازمند تأیید)، NON، ACK و RST؛ قابلیت اطمینان را خود CoAP روی UDP می‌سازد. کدها شبیه HTTP‌اند: ۲٫۰۵ محتوا، ۲٫۰۴ تغییر کرد، ۴٫۰۴ پیدا نشد؛ دروازه‌ها به‌راحتی CoAP را به HTTP ترجمه می‌کنند. برای امنیت از DTLS روی پورت 5684 یا OSCORE استفاده کنید؛ CoAP بدون رمز را هرگز رو به اینترنت باز نگذارید (در حملات تقویت DDoS سوءاستفاده شده است).

درس‌های مرتبط

  • Modbus/TCP — پروتکل صنعتی مادباس
  • MQTT — پیام‌رسانی سبک اینترنت اشیا

منابع