Что означает транзакция CoAP Max в Contiki? - PullRequest
0 голосов
/ 09 июня 2018

Я не понял, относятся ли транзакции Max к стороне клиента или стороне сервера CoAP.Например, если COAP_MAX_OPEN_TRANSACTIONS равно 4. Означает ли это, что CoAP-клиент может отправлять 4 параллельных запроса на разные серверы, или это означает, что CoAP Server может обрабатывать максимум 4 запроса параллельно.

Потому что из кода я вижу, что он инициирует запрос на блокировку со стороны клиента, который не позволит выполнить цикл для другой транзакции.

Итак, здесь нужны пояснения.Если несколько транзакций CoAP возможны со стороны клиента, пожалуйста, укажите, как.Спасибо.

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Согласно документу dunkels.com/adam/kovatsch11low-power.pdf Раздел III-F Клиенты CoAP предоставляют вызов функции блокировки, реализованной с использованием прототипов для выдачи запроса.Эта модель линейного программирования также может скрывать блочные передачи, поскольку она продолжается сначала, когда все данные были получены.Исходя из этого, я предполагаю, что клиент может генерировать одну транзакцию за раз и блокировать ожидание подтверждения (или тайм-аута).

Вот кодовая ссылка https://github.com/contiki-os/contiki/blob/master/apps/er-coap/er-coap-engine.c#L370.

Наоборот,Сервер может отвечать на несколько транзакций одновременно, потому что есть транзакции, которые ждут ответа (скажем, от датчиков) и должны сохранить состояние.Это мое понимание вопроса.Если я не прав то поправьте пожалуйста.

0 голосов
/ 10 июня 2018

По ссылкам:

https://github.com/contiki-os/contiki/blob/bc2e445817aa546c0bb93a9900093ec276005e2a/apps/er-coap/er-coap-conf.h#L51

https://github.com/contiki-ng/contiki-ng/wiki/Documentation:-CoAP#configuration

Я предполагаю, что это просто максимальное количество подтверждающих запросов (которые еще не получили ACK)быть сохраненным одновременно для повторной передачи.

И он используется для резервирования памяти для максимального количества этих запросов:

https://github.com/contiki-os/contiki/blob/3f4436bac9a9f6da0df188372d4374693eab8a52/apps/er-coap/er-coap-transactions.c#L57

MEMB(transactions_memb, coap_transaction_t, COAP_MAX_OPEN_TRANSACTIONS);
...