Надежность передачи pub / sub CoAP - PullRequest
0 голосов
/ 09 мая 2020

Я работаю над расширением CoAP, которое позволяет ему использовать модель брокера публикации / подписки, и в настоящее время я анализирую, как здесь выполняется Transmision Reliabilty. В CoAP используются сообщения CONFIRMABLE и NON-CONFIRMABLE, чтобы гарантировать, что сообщение прибыло к месту назначения. Я подозреваю, полагается ли это расширение CoAP на сообщения CoAP, чтобы гарантировать надежность передачи, потому что я не могу найти ничего, что говорило бы об этом. Спасибо.

Ответы [ 2 ]

1 голос
/ 11 мая 2020

CoAP сообщения ненадежны и даже не передаются из конца в конец - такие вещи, как токен, идентификатор сообщения и даже номер наблюдения могут измениться при наличии прокси.

In в частности, где бы ни использовалось наблюдение (включая pub / sub), никакое конкретное представление не гарантировано доходит до наблюдателя; что является гарантированным (и обеспечивается сообщениями CON, регулярно отправляемыми как часть наблюдений), так это то, что в конечном итоге клиент получает то же представление, что и сервер (что также называется «конечной согласованностью») ). Это важная функция, поскольку она позволяет работать даже в перегруженных сетях.

Чтобы проиллюстрировать это примером, сервер может сначала отправить значение «14,7», а затем отправить «14,8» в NON, и прокси может переслать клиенту «14,8». Затем сервер может отправить «14.9» следующим в CON, что прокси-сервер подтверждает, но, возможно, прокси-сервер занят и немного задерживает отправку уведомления клиенту. Затем сервер отправляет «15.0», и прокси немедленно пересылает его. Вы видите, что клиент никогда не получал «14.9», даже несмотря на то, что это был CON, но он получил более позднее значение.

Конечно, не каждое развертывание использует прокси, но это часть дизайна REST архитектуры, что все в них должно работать так же хорошо, если оно есть.

1 голос
/ 10 мая 2020

В CoAP используются сообщения CONFIRMABLE и NON-CONFIRMABLE, чтобы гарантировать, что сообщение прибыло в пункт назначения.

Сообщения CON передаются повторно, пока не истечет время счетчика повторной передачи или не истечет ACK / RST получен как ответ. Это делает очень вероятным, что сообщение прибудет к месту назначения, но «гарантия» - это нечто другое. «Перережьте провод», и никакая технология не может гарантировать, что сообщение достигнет места назначения. Получая ACK, вы можете полагаться, что сообщение пришло, но если вы его не получите, вы этого не знаете.

Повторная передача потребляет пропускную способность, и выгода от отправки "много разных" сообщений (" «ненадежные») по сравнению с «некоторыми» сообщениями («надежными») зависит от приложения c. Это решение по спецификации приложения c также верно и для pubsub. Я не уверен, почему pubsub должен явно упоминать поведение CON / NON.

Просто упомяну: такие вопросы можно задавать непосредственно в основном списке рассылки IETF . Там вы можете связаться с авторами RF C и получить их отзывы. Вам нужно будет зарегистрироваться там.

...