如何使用coap协议向服务器发送数据包

如何使用coap协议向服务器发送数据包,第1张

CoAP的URL

在HTTP的世界中,RESTFul协议由于其简单性和适用性,在WEB应用中越来越受欢迎,这样的道理同样适用于CoAP。

一个CoAP资源可以被一个URI所描述,例如一个设备可以测量温度,那么这个温度传感器的URI被描述为:CoAP://machine.address:5683/sensors/temperature。

请注意,CoAP的默认UDP端口号为5683。

CoAP观察模式

在物联网的世界中,你需要去监控某个传感器例如温度或湿度等。

在这种情况下,CoAP客户端并不需要不停的查询CoAP服务器端的数据变化情况。

CoAP客户端可以发送一个观察请求到服务器端。

从该时间点开始计算,服务器便会记住客户端的连接信息,一旦温度发生变化,服务器将会把新结果发送给客户端。

如果客户端不在希望获得温度检测结果,那么客户端将会发送一个RST复位请求,此时服务器便会清除与客户端的连接信息。

CoAP块传输

CoAP协议的特点是传输的内容小巧精简,但是在某些情况下不得不传输较大的数据。

在这种情况下可以使用CoAP协议中的某个选项设定分块传输的大小,那么无论是服务器或客户端可完成分片和组装这两个动作。

随着越来越多的人通过PC、手机等设备相互连接,现代互联网蓬勃发展使得人们的生活发生了翻天覆地的变化。很多人预测将会有更多其他的设备相互连接,这些设备的数量将远远超过人类的数量,到时候形成的网络将是现有网络的N个量级,这个网络带给世界的变化将是无法估量的。

不像人接入互联网的简单方便,由于物联网设备大多都是资源限制型的,有限的CPU、RAM、Flash、网络宽带等。对于这类设备来说,想要直接使用现有网络的TCP和HTTP来实现设备实现信息交换是不现实的。于是为了让这部分设备能够顺利接入网络,CoAP协议就被设计出来了。

以上是来自维基百科对CoAP的定义。简言之,CoAP是受约束设备的专用Internet应用程序协议。

CoAP是一个完整的二进制应用层协议,消息格式紧凑,默认运行在UDP上。

这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。

这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。

这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器的软硬件资源无法完成对请求的处理。

CoAP参考了很多HTTP的设计思路,同时也根据受限资源限制设备的具体情况改良了诸多的设计细节,增加了很多实用的功能。

CoAP协议的设计参考了HTTP,CoAP和MQTT都是行之有效的物联网协议,一下为它们之间的异同。

EMQ的开源版提供了一个 Generic CoAP 的实现,读者如果有兴趣的话可以试用一下。在EMQ的商业版中,包含了对CoAP的完整支持。

CoAP是一种面向网络的协议,采用了与HTTP类似的特征,核心内容为资源抽象、REST交互以及可扩展的头选项等。

为了克服HTTP对于受限环境的劣势,CoAP既考虑到数据报长度的最优化,又考虑到提供可靠通信。

一方面,CoAP提供URI,REST 式的方法如GET,POST,PUT和DELETE,以及可以独立定义的头选项以提高可扩展性。另一方面,CoAP基于UDP协议,为了弥补UDP传输的不可靠性,CoAP定义了带有重传机制的事务处理机制。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11306582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存