我对IoT协议栈有疑问。 在谷歌学者或IEEE关于IoT的论文之间进行搜索,我找到了实际的“ IoT协议栈”: IoT Stack 我认为这是不正确的。 疑问在于传输层和应用层。
1)如果物联网还有许多其他应用层协议,例如MQTT,XMPP,AMQP,WebSocket等,为什么在应用层上只有CoAP?
2)如果在上层(应用程序)的物联网环境中有一些重要的协议(例如MQTT)运行在TCP上,为什么它们仅在传输层提供UDP?
答案 0 :(得分:0)
“ IoT”一词在不同的利益群体中具有不同的含义;因此,“物联网堆栈”一词也是如此。
链接的图像所描绘的是IETF IoT Stack,这是IETF关于应使用什么IoT设备配得该名称的想法。 CoAP是IETF指定的应用协议(并由OMA LwM2M,OCF或Thread等其他各种协议所使用),并且根据我的经验,它是最合适的协议,因为它允许在小型设备上完全操作(技术上:根据{{3 }} –祝您实现XMPP,WebSocket或类似的东西好运,同时仍然足够强大,可以表达来自HTTP Web的所有概念。
仅描绘UDP的图像可能是由于对物联网设备的关注:虽然CoAP可以在多个传输层(包括TCP和WebSocket,也包括草稿版本的SMS)中传输,但这些传输还是间接使用的(例如,例如,通过使用网关与UDP连接的设备进行通信的浏览器应用程序),设备本身的预期情况是在6LoWPAN网络上使用基于UDP的CoAP。这并不排除其他部署方案(例如,LwM2M在UDP和TCP传输中在蜂窝网络上大量使用CoAP),但最好将其视为最小的设备的典型示例。