首页 > 其他分享 >Подробное объяснение протокола CoAP

Подробное объяснение протокола CoAP

时间:2023-10-24 17:44:23浏览次数:34  
标签:UDP HTTP IoT CoAP TCP RESTful

 

Что такое протокол CoAP?
CoAP (Протокол ограниченных приложений) — это протокол прикладного уровня, разработанный для устройств Интернета вещей (IoT) и сетей с ограниченными ресурсами. Его рождение также связано с тем, что большинство устройств IoT ограничены в ресурсах, таких как ЦП, ОЗУ, флэш-память, широкополосная сеть и т. д.; для таких устройств они хотят напрямую использовать TCP и HTTP существующей сети для обмена устройствами. информация.Это нереально.Для того, чтобы позволить этим устройствам успешно получить доступ к сети, был рожден протокол CoAP.
Как показано на рисунке выше, протокол CoAP — это протокол прикладного уровня, разработанный на основе UDP транспортного уровня, а протокол MQTT/HTTP — на основе TCP. Он имеет характеристики, аналогичные HTTP, но компенсирует ненадежность передачи UDP. Для небольших устройств Интернета вещей протокол CoAP является отличным выбором. CoAP, легкий протокол, может быть хорошо адаптирован к устройствам и сценариям с ограниченными ресурсами.

Основные принципы протокола CoAP:

Архитектура RESTful: CoAP основан на принципах архитектуры RESTful, позволяя устройствам управлять ресурсами с помощью стандартных методов HTTP (GET, PUT, POST, DELETE и т. д.). Каждый ресурс идентифицируется уникальным URI, который позволяет устройствам получать доступ к ресурсам и управлять ими аналогично HTTP.

Протокол UDP: CoAP обычно работает поверх UDP (протокол пользовательских дейтаграмм) вместо TCP (протокол управления передачей), например HTTP. UDP — это протокол без установления соединения, более легкий и подходящий для устройств Интернета вещей, хотя он не обеспечивает надежность TCP.

Упрощенный заголовок: заголовок протокола CoAP очень упрощен, что позволяет уменьшить размер коммуникационных пакетов. Это помогает снизить накладные расходы на связь, особенно для устройств и сетей с ограниченными ресурсами.

Наблюдение за ресурсами: CoAP поддерживает механизм наблюдения, который позволяет клиентам подписываться на ресурсы и получать уведомления об обновлении состояния ресурсов. Это полезно для сбора и мониторинга данных в реальном времени.

Прокси и многоадресная рассылка: CoAP поддерживает функцию прокси, позволяя промежуточным устройствам (прокси) пересылать и обрабатывать запросы и ответы CoAP. Поддержка многоадресной рассылки также позволяет выполнять одновременные запросы к нескольким устройствам.

Дополнительная безопасность. Хотя CoAP сам по себе является легким, его можно использовать в сочетании с протоколами уровня безопасности, такими как DTLS, для обеспечения безопасности связи. Это важно для сценариев, требующих шифрования и аутентификации.

В целом принципы CoAP позволяют ограниченным устройствам взаимодействовать с ресурсами через интерфейсы RESTful, одновременно упрощая разработку протокола. Такая конструкция делает CoAP идеальным для связи между устройствами Интернета вещей, особенно в средах с ограниченными ресурсами.

Возможности протокола CoAP
CoAP ссылается на многие идеи дизайна HTTP, а также улучшает многие детали дизайна на основе конкретных условий устройств с ограниченными ресурсами и добавляет множество практических функций. Ниже приводится краткое описание его характеристик.

(1) Легкий
Конструкция протокола CoAP очень проста: он использует меньше заголовков и полей опций и занимает меньшую полосу пропускания и ресурсы сети. Это делает его идеальным для использования в устройствах и сетях с ограниченными ресурсами.

(2) На основе UDP
CoAP обычно работает через UDP, а не через TCP. Это делает его более подходящим для эффективной связи без установления соединения, с низкой задержкой. Кроме того, CoAP также поддерживает надежную передачу сообщений через сообщения CON (подтверждаемое) и ACK (подтверждение) CoAP.

(3)RESTful архитектура*
CoAP использует архитектурный стиль RESTful и модель запроса-ответа, аналогичную HTTP. Он поддерживает распространенные методы HTTP, такие как GET, POST, PUT и DELETE, для чтения, создания, обновления и удаления ресурсов.

Примечание. RESTful архитектура*: REST (Representational State Transfer) — это стиль проектирования, а не стандарт. Если архитектура соответствует принципам REST, мы называем ее RESTful архитектурой. REST можно буквально перевести как преобразование состояния уровня представления. Презентация Уровень на самом деле относится к Это уровень представления ресурсов.

(4) Низкое энергопотребление и низкое потребление полосы пропускания.
Протокол CoAP оптимизирован для устройств и сетей с ограниченными ресурсами и обладает характеристиками низкого энергопотребления и низкого потребления полосы пропускания. Он использует такие механизмы, как наблюдение и группировка, чтобы уменьшить накладные расходы на связь.

(5) Идентификатор ресурса
CoAP использует универсальный идентификатор ресурса (URI) для идентификации ресурсов, чтобы клиенты могли находить и управлять определенными ресурсами через URI. Это похоже на URL-адреса HTTP.

(6) Поддержка многоадресной IP-адресации
Обеспечивает связь «один ко многим», что полезно для одновременного получения обновлений несколькими устройствами в Интернете вещей.

(7)Надежность
Протокол CoAP поддерживает надежную передачу, используя механизмы повторной передачи и подтверждения для обеспечения надежной доставки сообщений.

(8)Безопасность
Протокол CoAP можно использовать в сочетании с DTLS (безопасность транспортного уровня дейтаграмм) для обеспечения сквозной безопасности. DTLS — это безопасный транспортный протокол на основе UDP, используемый для защиты конфиденциальности и целостности связи CoAP.

(9) Пользовательские параметры
CoAP позволяет включать в заголовки сообщений специальные параметры для удовлетворения потребностей конкретных приложений, что делает его очень гибким и расширяемым.

Ebyte специализируется на индустрии беспроводной связи IoT, всегда уделяет внимание развитию технологий и отрасли связи IoT и находится в авангарде технологий беспроводной связи IoT. Ebyte разработала простые в использовании, высококачественные и доступные модули беспроводной связи, включая модули Wi-Fi, модули Bluetooth, модули Zigbee, модули NB, модули 4G, частные беспроводные модули, LoRa и LoRaWAN. Подождите, пока появится модуль.

Для получения более подробной информации о продукции и информации посетите наш официальный сайт:

https://www.ru-ebyte.com

标签:UDP,HTTP,IoT,CoAP,TCP,RESTful
From: https://www.cnblogs.com/serialmodule/p/17785390.html

相关文章

  • CocoaPods 在iOS开发中养活了这么多项目,它到底是个啥? | 京东云技术团队
    对于iOS开发者而言,CocoaPods并不陌生,通过pod相关的命令操作,就可以很方便的将项目中用到的三方依赖库资源集成到项目环境中,大大的提升了开发的效率。CocoaPods作为iOS项目的包管理工具,它在命令行背后做了什么操作?而又是通过什么样的方式将命令指令声明出来供我们使用的?这些实现的背......
  • CocoaPods 在iOS开发中养活了这么多项目,它到底是个啥?
    对于iOS开发者而言,CocoaPods并不陌生,通过pod相关的命令操作,就可以很方便的将项目中用到的三方依赖库资源集成到项目环境中,大大的提升了开发的效率。CocoaPods作为iOS项目的包管理工具,它在命令行背后做了什么操作?而又是通过什么样的方式将命令指令声明出来供我们使用的?这些实现的背......
  • Homebrew安装cocoapods: zsh: command not found: brew解决方法
    问题描述:通过Homebrew安装cocoapods时,输入命令行 brewinstallcocoapods出现如下报错:zsh:commandnotfound:brewzsh:找不到命令:brew 问题解决:使用以下命令,重新安装Homebrew./bin/zsh-c"$(curl-fsSLhttps://gitee.com/cunkai/HomebrewCN/raw/master/Homeb......
  • 安装cocoapods: Error installing cocoapods: The last version of activesupport (>=
    问题描述:在终端命令行安装cocoapods时,可能出现如下问题:Errorinstallingcocoapods: Thelastversionofactivesupport(>=5.0,<8)tosupportyourRuby&RubyGemswas6.1.7.6.Tryinstallingitwith`geminstallactivesupport-v6.1.7.6`andthenrunningthe......
  • ios开发之--Cocoapods更新指定的库
    最近接手了一个swift的老项目,问题还不少,把bug修复完成功编译后,还没来得及高兴,发现一运行都崩溃,经排查是三方库太旧的原因,但是有些老版本的库又不能全部更新,所以只能更新指定的库,命令如下:1、更新指定的第三方库podupdate库名2、只安装新添加的库,已更新的库忽略podinstall--verbo......
  • ThingsKit物联网平台设备CoAP接入
    入门介绍CoAP是一种计算机协议,应用于物联网,基于REST架构。它是由IETF的CoRE工作组提出的,专门用于解决物联网中设备资源受限的问题。在物联网中,很多设备具有较少的内存空间和有限的计算能力,因此传统的HTTP协议并不适用于所有设备。为了解决这个问题,CoAP被设计成一种轻量级的协议,能......
  • cocoapi-pycocotools使用
    cocoapi-pycocotools使用安装pipinstallpycocotools==2.0.0orpipinstallpycocotools-windowsfrompycocotools.cocoimportCOCO函数和说明#这个文件实现了访问COCO数据集的接口.可以进行COCO标注信息的加载,解析和可视化操作classCOCO:#用于加载COCO标......
  • Cocoapods同时导入静态库和动态库
    platform:ios,'14.1'target:'LGNetworkManager'douse_frameworks!#静态库、动态库#指定需要被编译成static_framework的库$static_framework=['AFNetworking']pre_installdo|installer|installer.pod_targets.eachdo|pod|......
  • iOS开发笔记 - 用CocoaPods管理第三方库
    在iOS项目中使用第三方类库可以说是非常常见的事,但是要正确配置这些第三方库会非常的繁琐,还好我们有CocoaPods来做这件事情,就如同在Java的世界里有Maven和Gradle,当然Maven的作用不仅仅是第三依赖库管理。通过CocoaPods工具我们可以为项目添加被称为"Pods"的依赖库(这些类库必须是Coc......
  • macos升级后安装cocoapods
    1、安装rvmcurl-Lget.rvm.io|bash-sstable2、安装rubyrvmautolibsread-onlyrvminstall2.7.2rvmuse2.7.2rvmlist 参考:https://juejin.cn/post/6950518188798902286https://blog.csdn.net/sinat_31057219/article/details/116601781 ......