如何为Californium
服务器动态设置 PDU 的大小?
语境:
1) 我有一个具有已实现coap-client
功能的设备。该设备受限于RAM
大约 200 个空闲字节的rx/tx
缓冲区。
在请求中,设备可以发送首选 PDU 大小。但我不明白如何用这个 PDU 大小配置服务器响应。是否可以?
2)在这种情况下,是否可以使用块级功能?
如何为Californium
服务器动态设置 PDU 的大小?
语境:
1) 我有一个具有已实现coap-client
功能的设备。该设备受限于RAM
大约 200 个空闲字节的rx/tx
缓冲区。
在请求中,设备可以发送首选 PDU 大小。但我不明白如何用这个 PDU 大小配置服务器响应。是否可以?
2)在这种情况下,是否可以使用块级功能?
好的,我找到了方法。
这不是一种Californium
责任。PDU 大小的管理通过block-wise
option进行Block2
。
请参阅CoAP 逐块 RFC Section 3.1
:
在第二个示例(图 3)中,客户端预期按块传输(例如,由于链路格式描述 [RFC6690] 中的大小指示)并发送块大小建议。除最后一个以外的所有 ACK 消息都携带 64 字节的有效载荷;最后一个携带 1 到 64 个字节。
Client Server
| |
| CON [MID=1234], GET, /status, 2:0/0/64 ------> |
| |
| <------ ACK [MID=1234], 2.05 Content, 2:0/1/64 |
| |
| CON [MID=1235], GET, /status, 2:1/0/64 ------> |
| |
| <------ ACK [MID=1235], 2.05 Content, 2:1/1/64 |
: :
: ... :
: :
| CON [MID=1238], GET, /status, 2:4/0/64 ------> |
| |
| <------ ACK [MID=1238], 2.05 Content, 2:4/1/64 |
| |
| CON [MID=1239], GET, /status, 2:5/0/64 ------> |
| |
| <------ ACK [MID=1239], 2.05 Content, 2:5/0/64 |
Figure 3: Block-Wise GET with Early Negotiation