Мне нужно создать сеть из 10 узлов. Я хочу, чтобы каждый мот предоставлял 3 услуги с s1 = 0,25, s2 = 0,5 и s3 = 0,025. Кроме того, я хочу идентифицировать/выбрать эгоистичные/злонамеренные пылинки.
Любая помощь будет высоко оценена.
Мне нужно создать сеть из 10 узлов. Я хочу, чтобы каждый мот предоставлял 3 услуги с s1 = 0,25, s2 = 0,5 и s3 = 0,025. Кроме того, я хочу идентифицировать/выбрать эгоистичные/злонамеренные пылинки.
Любая помощь будет высоко оценена.
Решение этой проблемы не должно быть сложным, чтобы написать его самостоятельно, но я думаю, вы можете взглянуть на использование хака регистрации и распространения службы (servreg-hack) в contiki. Работа приложения очень проста, все, что делает приложение, — это позволяет узлам рекламировать услуги, которые они предлагают, путем широковещательной передачи SERVICE_ID
(это просто 8-битное целое число без знака). Когда другой узел в непосредственной близости от широковещательного узла получает сообщение, он сохраняет SERVICE_ID
и адрес узла, отправившего сообщение. Если узлу нужна услуга, он может просто найти адрес узла, который предлагает услугу, вызвав функцию servreg_hack_lookup
.
Приложения unicast-sender
и unicast receiver
в разделе примеров дистрибутива contiki (Contiki/examples/ipv6/simple-udp-rpl
) используйте servreg_hack.
Таким образом, на обоих узлах вы должны инициализировать приложение servreg, вызвав
servreg_hack_init();
затем у поставщика услуг вы должны зарегистрировать услугу, позвонив
servreg_hack_register(SERVICE_ID, service_provider_ip_addr);
затем эта служба будет получена и зарегистрирована на узле пользователя службы. Затем пользователь службы может позвонить
service_provider_ipaddr = servreg_hack_lookup(SERVICE_ID);
чтобы получить адрес узла, предоставляющего услугу, идентифицированную SERVICE_ID
.