3.1 Option的格式
CoAP定义了许多option。消息中的每个option都有一个option编号,option值长度,和option值。 消息中的option号(TLV格式中的T)并不是直接指定option编号的。所有的option必须按实际option编号的递增排列,某一个option和上一个option之间的option编号差值为delta;每一个TLV格式的option号都是delta值(数据包中第一个option的delta即它的option编号)。同一个编号的option再次出现时,delta的值为0。
option编号由“CoAP option编号”表维护(见12.2节)。5.4讲述了本文档中定义的option的语义。
一个option之中的各个字段的含义如下:
Option Delta:4-bit无符号整型。值0-12代表option delta。其它3个值作为特殊情况保留:
当值为13:有一个8-bit无符号整型(extended)跟随在第一个字节之后,本option的实际delta是这个8-bit值加13。
当值为14:有一个16-bit无符号整型(网络字节序)(extended)跟随在第一个字节之后,本option的实际delta是这个16-bit值加269。
当值为15:为payload标识符而保留。如果这个字段被设置为值15,但这个字节不是payload标识符,那么必须当作消息格式错误来处理。
Option Length:4-bit无符号整数。值0-12代表这个option值的长度,单位是字节。其它3个值是特殊保留的:
当值为13:有一个8-bit无符号整型跟随在第一个字节之后,本option的实际长度是这个8-bit值加13。
当值为14:一个16-bit无符号整型(网络字节序)跟随在第一个字节之后,本option的实际长度是这个16-bit值加269。
当值为15:保留为将来使用。如果这个字段被设置为值15,必须当作消息格式错误来处理。
Option Value:共option Length个字节。option值字段的长度和格式取决于具体的option,有可能定义变长的值。3.2节讲述了本文档所使用的option格式。其它文档中定义的option可能使用其它option值的格式。
最后更新于
这有帮助吗?