Как я могу установить размер сообщения (PDU) для сервера Californium?
Как я могу динамически установить размер PDU для Californium
сервер?
Контекст:
1) У меня есть устройство с внедренным coap-client
функциональность. Это устройство ограничено RAM
около 200 свободных байтов для rx/tx
буферы.
В запросе устройство может отправить предпочтительный размер PDU. Но я не понимаю, как настроить ответы сервера с этим размером PDU. Является ли это возможным?
2) Будет ли работать блочная функциональность для этого случая?
1 ответ
Хорошо, я нашел, как это сделать.
Это не Californium
обязанность. Управление размером PDU работает через block-wise
вариант 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