SIGMESH 2.3.3 Messages 翻译

网状网络中的所有通信都是通过发送消息来完成的。消息对状态进行操作。对于每个状态,服务器都支持一组已定义的消息,客户端可以使用这些消息来请求状态值或更改状态。服务器还可以传输未经请求的消息,其中包含关于状态和/或更改状态的信息。

消息被定义为具有操作码(Opcode)、相关参数和行为。操作码可以是单个字节(用于参数需要最大有效载荷的特殊消息),两个字节(用于标准消息),或3个字节(针对特定于供应商的消息)。

总的消息大小(包括操作码)由底层传输层(underlying transport layer)决定,它可能使用分段和重新组装(SAR)机制。为了最大化性能并避免SAR的开销,设计目标是将消息放入单个段中。传输层为非分段消息提供最多11个八位字节,在使用单字节操作码时最多有10个字节可用于参数,在使用两字节操作码时最多有9个字节可用于参数,在使用供应商特定的三字节操作码时最多有8个字节可用于参数。

传输层(transport layer)提供了一种能够传输多达32段的SAR机制。使用SAR时,最大消息大小为384字节。这意味着(不包括应用MIC)当使用单字节的操作码时,最多379字节的参数是可用的,当使用两字节的操作码时,最多378字节的参数是可用的,当使用特定于供应商的三字节的操作码时,最多377字节的参数是可用的。

SAR有效地不会对每个段的访问层(ACCESS LAYER)有效载荷施加任何额外的开销:一个10字节的消息作为未分段的消息传输,一个20字节的消息作为使用两个段的分段消息传输。

消息定义包含参数表。在消息有效负载中,参数跟随在操作码后面,除非另外指定,否则参数偏移量以字节为单位。

消息被定义为要确认或不需确认。要确认的消息(例如,Get消息)需要响应,而不需确认的消息(如状态消息)不需要响应。

Set、Clear、Recall和Store消息定义为两种变体:要确认和不需确认。消息变体在语义上是相同的,但是使用不同的操作码(Opcode)。

猜你喜欢

转载自www.cnblogs.com/gancai/p/12272287.html