2.1 消息模型
CoAP的消息模型是建立在UDP端到端通信的基础上的。
CoAP的头部为固定长度的(4个字节)二进制格式,其后是紧凑的二进制格式的选项部分,然后是数据部分(payload),请求和响应都采用这种格式。CoAP的消息格式在第3章中详细讲述。每个消息都包含一个消息ID,用于检测重复提供传输可靠性。(这个消息ID是连续的,包含有16位,在默认的协议参数配置下,它允许每秒钟从一端到另一端传输大约250条消息)。
通过把消息标记为CON的,可以保障消息传输的可靠性。如图2所示,在收到一个CON消息之后,接收端会发送一个带有相同消息ID(Message ID)(在这个例子中是0x7d34)的ACK。如果在默认的超时时间之后没有收到带有相同消息ID的ACK,那么它将会被重传,如果仍然没有收到ACK,此后重传超时时间会以指数级递增。当接收端无法处理一个CON消息(也无法返回一个正常的错误响应)时,它将会回应一个RST消息,而不是ACK。
当消息不需要可靠传输(例如持续不断的读取一个传感器数据)时,可以发送NON的消息。如图3所示,这些消息不需要应答,但它们仍然拥有消息ID,用于检测重复(在这个例子中0x01a0)。当接收端无法处理一个NON消息时,它有可能会返回一个RST消息。
第4章详细讲述了CoAP消息的细节。
由于CoAP运行在UDP之上,它也支持目的ip为多播地址,可以实现多播CoAP请求。第8章讲述了正确的使用多播地址发送CoAP消息,和避免由此造成响应拥塞的预防措施。
第9章定义了CoAP的几个安全模型,从无安全的,到基于证书的安全机制。在本文档中,只指定DTLS作为协议的安全基础。文档[IPsec-CoAP]对在CoAP中使用IPsec进行了讨论。
最后更新于
这有帮助吗?